manager6
?>

известно, что 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: = "

Информатика

Ответы

dima-pashkovec
Допустим, мы ведем счет дней недели с воскресенья и присваиваем дням такие номера:
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
Это Воскресенье
vbg238
Var
  i, a, b, n, n2, j: longint;
  s: string;
  flag: boolean;

begin
  Write('Введите через пробел границы диапазона: ');
  Readln(a, b);
  if b < a then begin n := a; a := b; b := n end;
  if a < 11 then a := 11;
  for i := a to b do
  begin
    Str(i, s);
    n := Length(s); n2 := n div 2; flag := true; j := 1;
    repeat
      flag := (s[j] = s[n - j + 1]);
      j := j + 1
    until (not flag) or (j > n2);
    if flag then Write(i, ' ')
  end;
end.

Тестовое решение:

Введите через пробел границы диапазона: 800 1500
808 818 828 838 848 858 868 878 888 898 909 919 929 939 949 959 969 979 989 999 1001 1111 1221 1331 1441
mzubenko6
1.

program xopow1;
   uses   crt;
   var  
 a, b, Sek: integer;  
begin  
writeln('Введите границы:');  
repeat    
readln(a, b);  
until b >= a;  
 clrscr;  
for a := a to b do
    begin    
Sek := a * 60;    
writeln(a, ' мин. = ', sek, ' сек.')  
end
end.

2.

program xopow2;
  uses crt; 
Var
 z:integer;
 f,x,y:real; 
Begin 
clrscr; 
Writeln;
X:=10000;
Y:=(x/100)*10;
for z:=1 to 7 do 
 Begin 
X:=x+y; 
Writeln(Z,' -й день тренировок спортсмен пробежал ',X:3:2,' Км.'); 
End; 
Writeln('Нажмите Enter...'); 
Readln; 
end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

известно, что 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: = "
Ваше имя (никнейм)*
Email*
Комментарий*