Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.02.2019, 09:51   #1
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию трём учащимся присвоины номера. Коля t = 220, Петя t = 65, Саша t = 56. Согласно формуле t = 31*(m-1)+(d-1), вычислите число рождения каждого учащегося, где m - месяц, а d - число

Только создал тему и не успел выложить код для задачи.

Задача: трём учащимся присвоины номера. Коля t = 220, Петя t = 65, Саша t = 56. Согласно формуле t = 31*(m-1)+(d-1), вычислите число рождения каждого учащегося, где m - месяц, а d - число рождения.

Код:
int t = 56;
int m = 1; m++;
int d = 1; d++;
t = 31 * (m - 1) + (d - 1);
bool x = t == 56;
Console.WriteLine(d);
Console.ReadKey();
Не могу задать цикл при котором сравнивается ответ и выводиться правильный.
IronManXiaomi вне форума Ответить с цитированием
Старый 04.02.2019, 09:59   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Какой цикл? t+32 подели нацело на 31 - получишь месяц. Если остаток от деления 0, то вычти из месяца 1. Из t+32 вычти месяц умноженный на 31 - получишь день
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.02.2019, 09:59   #3
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 746
По умолчанию

Пишите: sergeisky@yahoo.com.
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 04.02.2019, 10:03   #4
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию

Я, конечно, короткий вариант написал. Там параметр t задаётся вводом, то есть может быть любое число. Цикл нужен для шага +1, так как надо перебирать и вывести только правильное число рождения. Возможно, я усложняют решение, но препод скажет, введите t = 1000.
IronManXiaomi вне форума Ответить с цитированием
Старый 04.02.2019, 10:50   #5
Cuprum5
Форумчанин
 
Регистрация: 09.05.2017
Сообщений: 746
По умолчанию

Так t - это что такое? Число дней?
Т.е. день рождения(считая только дни) начиная от 01.01.19?
Напишу программу на C++ и Asm для AVR. Черчение: sergeisky@yahoo.com.
Cuprum5 вне форума Ответить с цитированием
Старый 04.02.2019, 11:07   #6
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию

В условиях задачи этого нет. Скорее всего дни в году 365 или 366.
IronManXiaomi вне форума Ответить с цитированием
Старый 04.02.2019, 11:13   #7
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию

Код:
double t, m, d;
Console.WriteLine("введите t");
t=Convert.ToInt32(Console.ReadLine());
m = (t+32)/31;
d=(t+32)-31*m;
if (t>366)
{
Console.WriteLine("нет решения");
}
Console.WriteLine(d);
Console.ReadKey();

Последний раз редактировалось IronManXiaomi; 04.02.2019 в 11:16.
IronManXiaomi вне форума Ответить с цитированием
Старый 04.02.2019, 11:56   #8
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию

Спасибо, разобрался. Модератор, пожалуйста, удалите тему.
IronManXiaomi вне форума Ответить с цитированием
Старый 04.02.2019, 12:10   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Спасибо, разобрался. Модератор, пожалуйста, удалите тему.
Ну и двойка. Где:
Цитата:
Если остаток от деления 0, то вычти из месяца 1
проверь для t=30

ЗЫ для t=60 получишь 30 февраля ) А для t=185 - 31 июня. Это тоже учесть как бы
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 04.02.2019 в 12:18.
Аватар вне форума Ответить с цитированием
Старый 04.02.2019, 12:42   #10
IronManXiaomi
Пользователь
 
Регистрация: 04.02.2019
Сообщений: 19
По умолчанию

Деление на ноль не может быть, даже при t=0. Double сменил на int. По условиям задачи не требуется учитывать февраль. Но, добавить можно.
IronManXiaomi вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральное число n .Вычислите выражение max(|z1|...|zn|) Kate18 Паскаль, Turbo Pascal, PascalABC.NET 10 18.04.2016 11:52
Дано натуральное число n.Вычислите a(a+1)...(a+n-1). (на C) Konsyello Помощь студентам 1 14.10.2013 15:37
Дано трехзначное число. Если в сумме его цифр присутствует число 7,то число записать в зеркальном виде ( Паскаль ) Эля777 Помощь студентам 5 22.04.2013 23:23