Пусть дано N целых чисел и целое число A. При делении этих чисел на A получается новый набор чисел – остатки от деления каждого числа на A. Например, у
нас есть числа 1,3,4 и число 2. После деления на 2 у нас получаются остатки 1,1,0.
Требуется написать программу, которая находит сумму различных чисел в наборе
остатков после деления на A и проверяет, превышает ли она A
uses crt;
var
i: integer; {счетчик}
s: integer;
begin
clrscr; {очистка экрана}
writeln ('Программа выводит числа от 1 до 99, сумма цифр которых равна числу S');
writeln ('Введите число S, от 0 до 18: ');
{ввод числа S с проверкой на корректность}
repeat
readln (s);
if (s>18) or (s<0) then
writeln ('Неверный ввод. Повторите')
until (s<=18) and (s>=0);
{вывод нужных чисел на экран (цикл с предусловием)}
for i := 1 to 99 do
if ((i div 10) + (i mod 10) = s) then {div дает целую часть, mod - остаток от деления}
write (i, ' ');
repeat until keypressed; {пустой цикл для задержки экрана до нажатия клавиши}
end.
Объяснение:
Задание 1
program bukva;
const R=[' ','.',',',';',':','?','!','-']; // разделители
var
s,bukv:string;
i,kol,len:integer;
procedure UpCaseRus(var s:string);
{русские в верхний регистр}
var i:integer;
begin
for i:=1 to length(s) do
if s[i] in ['а'..'п'] then s[i]:=chr(ord(s[i])-32)
else if s[i] in ['р'..'я'] then s[i]:=chr(ord(s[i])-80)
else if s[i]='ё' then s[i]:='Ё';
end;
begin
readln(s);
readln(bukv);
UpCaseRus(s);
UpCaseRus(bukv);
For i:=length(s) downto 2 do
if ((s[i] in R) and (s[i-1] in R)) then delete(s,i,1);
len:=length(s);
kol:=0;
for i:=len downto 1 do
begin
if s[i] in R then
if s[i+1]=bukv then kol:=kol+1;
end;
if s[1]=bukv then kol:=kol+1;
writeln('Слов на букву '+bukv+' ',kol);
readln;
end.
Задание 2
const r=[' ','.',',',';',':','?','!','-'];
var
s:string;
i,kol,d:integer;
begin
readln(s);
len:=length(s);
kol:=0; d:=0;
For i:=length(s) downto 2 do
if ((s[i] in r) and (s[i-1] in r)) then delete(s,i,1);
for i:=1 to length(s) do
begin
if s[i] in r then kol:=kol+1
else if (s[i] in ['0'..'9']) then d:=d+1;
end;
writeln('Слов всего ',kol+1);
writeln('Цифр в тексте ',d);
readln;
end.