Var St: string; z:string[10]; x:string[2]; i,j,k,m: integer; //новые переменные Begin Write('введите строку текста - St'); Readln(St); k:=0; //обнуляем на всякий случай z:='0123456789'; i:=1; for j:=1 to length(St) do //начало begin; for m:=1 to 10 do if St[j]=z[m] then inc(k); end; if k=0 then begin; writeln('в тексте нет цифр'); exit; end; //конец while i<=length(st)-1 do begin x:=copy(st,I,2); if (x[1]=x[2]) and (pos(x[1],z)<>0) then begin delete(st,i,2); insert('две',st,i); i:=i+1; end; i:=i+1; end; writeln('преобразованная строка ', st); End.
Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.
m - 1 – номер дня недели первого числа месяца (считая с 0)
n - 1 – пройдёт от первого числа
(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)
(m + n - 2) mod 7 + 1 – ответ.
Программа (PascalABC.NET):
begin
var n := ReadInteger;
var m := ReadInteger;
print((m + n - 2) mod 7 + 1)
end.
Пример ввода:
7
7
Пример вывода:
6
(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)
z:string[10];
x:string[2];
i,j,k,m: integer; //новые переменные
Begin
Write('введите строку текста - St');
Readln(St);
k:=0; //обнуляем на всякий случай
z:='0123456789';
i:=1;
for j:=1 to length(St) do //начало
begin;
for m:=1 to 10 do
if St[j]=z[m] then inc(k);
end;
if k=0 then
begin;
writeln('в тексте нет цифр');
exit;
end; //конец
while i<=length(st)-1 do
begin
x:=copy(st,I,2);
if (x[1]=x[2]) and (pos(x[1],z)<>0) then
begin
delete(st,i,2);
insert('две',st,i);
i:=i+1;
end;
i:=i+1;
end;
writeln('преобразованная строка ', st);
End.
Объяснение:
Последовательность дней недели периодична с периодом 7, поэтому номер дня недели можно найти, взяв остаток от деления: (номер дня недели первого числа + сколько Такое решение будет давать верный ответ для всех дней недели кроме воскресенья: для воскресений будет выведен ноль (а не 7). Решить это можно, перенумеровав все номера дней недели с нуля, а не с единицы.
m - 1 – номер дня недели первого числа месяца (считая с 0)
n - 1 – пройдёт от первого числа
(m + n - 2) mod 7 – номер нужного дня недели (считая с 0)
(m + n - 2) mod 7 + 1 – ответ.
Программа (PascalABC.NET):
begin
var n := ReadInteger;
var m := ReadInteger;
print((m + n - 2) mod 7 + 1)
end.
Пример ввода:
7
7
Пример вывода:
6
(Действительно, 1 апреля 2018 года – воскресенье, а сегодня, 7 апреля – суббота)