• Известно, что 31 января 2011 года приходится на понедельник. Какие значения должны быть присвоены литерной переменной у в алгоритме, определяющем день недели для любого числа (chislo) января 2011 года?
    С объяснением.
    chislo := chislo mod 7
    если chislo=3 то y:= "
    если chislo=4 то y:= "
    если chislo=5 то y:= "
    если chislo=6 то y:= "
    если chislo=0 то y:= "
    если chislo=1 то y:= "
    если chislo=2 то y:= "

Ответы 1

  • Допустим, мы ведем счет дней недели с воскресенья и присваиваем дням такие номера:0- Вс, 1- Пн, 2- Вт, 3- Ср, 4- Чт, 5- Пт, 6- Сб.Определим, когда в январе было первое Вс.Если 31 был Пн, то 4 недели назад, т.е. 31-28=3 числа тоже был Пн.А Вс было перед Пн, т.е. 2 января.Числа от 0 до 6 - это остатки целочисленного деления на 7.Получается, что остаток деления числа 2 на 7, должен привести нас к нулю. А он равен двум.Идея: вычтем из остатка 2, чтобы получился ноль.Идея хороша для остатка 2, 3, 4, 5, и 6. Она даст нам значения 0, 1, 2, 3 и 4. А вот для остатков 0 и 1, она даст -2 и -1, что нехорошо.Внесем корректировку. если получилось отрицательное значение, увеличим его на 7.Проверим ,будет ли это работать.1 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно2 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верно3 января - Пн (номер дня 1) алгоритм дает 3-2 = 1 - верно4 января - Вт (номер дня 2) алгоритм дает 4-2 = 2 - верно5 января - Ср (номер дня 3) алгоритм дает 5-2 - 3 - верно6 января - Чт (номер дня 4) алгоритм дает 6-2 = 4 - верно7 января - Пт (номер дня 5) алгоритм дает 0-2 = -2 и +7 = 5 - верно8 января - Сб (номер дня 6) алгоритм дает 1-2 = -1 и +7 = 6 - верно9 января - Вс (номер дня 0) алгоритм дает 2-2 = 0 - верноВсе работает.// PascalABC.NET 3.3, сборка 1625 от 17.01.2018// Внимание! Если программа не работает, обновите версию!begin  var chislo:=ReadInteger('Номер дня в январе 2011 года:');  chislo:=chislo mod 7-2;  if chislo<0 then chislo:=chislo+7;  var y:string;  case chislo of  0:y:='Воскресенье';  1:y:='Понедельник';  2:y:='Вторник';  3:y:='Среда';  4:y:='Четверг';  5:y:='Пятница';  6:y:='Суббота'  end;  Writeln('Это ',y)end.ПримерыНомер дня в январе 2011 года: 31Это ПонедельникНомер дня в январе 2011 года: 13Это ЧетвергНомер дня в январе 2011 года: 23Это Воскресенье
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years