программа находит совершенные числа в диапазоне от 1 до 10000 (совершенное число - натуральное число, равное сумме всех своих собственных делителей)
Program z3; ' - заголовок программы var ' - служебное слово, начинающее раздел описания переменных i,j,s: word; ' - описание переменных i,j,s как числа от 0 до 65535 begin ' - служебное слово, начинающее описание операторов программы for i := 1 to 10000 do begin ' - организация цикла по i от 1 до 10000 s := 0; ' - обнуление переменной s for j:=1 to i div 2 do ' - организация цикла по j от 1 до целая_часть(i:2) if i mod j = 0 then ' - если i делится на j без остатка, s := s+j; ' - то переменную s увеличиваем на значение переменной j if s = i then ' - если значения переменных s и i совпадают write(i,' '); ' - то распечатываем значение переменной i end; ' - конец цикла по i writeln; ' - пустой оператор печати, используется для организации печати с новой строки readln; ' - пустой оператор чтения, используется для организации задержки экрана end. ' - служебное слово, заканчивающее описание операторов программы
Const bd=['0'..'3']; var s,wa,wb,w:string; c:char; i,n:integer; bad_a:boolean; begin WriteLn('Вводите фразу, разделяя слова ровно одним пробелом'); Read(s); s:=s+' '; n:=Length(s); wa:=''; wb:=''; i:=1; bad_a:=false; w:=''; while i<=n do begin repeat c:=s[i]; if c<>' ' then begin bad_a:=bad_a or (c in bd); w:=w+c; Inc(i) end else begin if not bad_a then wa:=wa+' '+w; if s[i-1]='Я' then wb:=wb+' '+w; w:=''; bad_a:=false end until c=' '; Inc(i); end; wa:=Copy(wa,2,Length(wa)-1); wb:=Copy(wb,2,Length(wb)-1); Writeln(wa); Writeln(wb) end.
программа находит совершенные числа в диапазоне от 1 до 10000 (совершенное число - натуральное число, равное сумме всех своих собственных делителей)
Program z3; ' - заголовок программы
var ' - служебное слово, начинающее раздел описания переменных
i,j,s: word; ' - описание переменных i,j,s как числа от 0 до 65535
begin ' - служебное слово, начинающее описание операторов программы
for i := 1 to 10000 do begin ' - организация цикла по i от 1 до 10000
s := 0; ' - обнуление переменной s
for j:=1 to i div 2 do ' - организация цикла по j от 1 до целая_часть(i:2)
if i mod j = 0 then ' - если i делится на j без остатка,
s := s+j; ' - то переменную s увеличиваем на значение переменной j
if s = i then ' - если значения переменных s и i совпадают
write(i,' '); ' - то распечатываем значение переменной i
end; ' - конец цикла по i
writeln; ' - пустой оператор печати, используется для организации печати с новой строки
readln; ' - пустой оператор чтения, используется для организации задержки экрана
end. ' - служебное слово, заканчивающее описание операторов программы
bd=['0'..'3'];
var
s,wa,wb,w:string;
c:char;
i,n:integer;
bad_a:boolean;
begin
WriteLn('Вводите фразу, разделяя слова ровно одним пробелом');
Read(s);
s:=s+' ';
n:=Length(s); wa:=''; wb:='';
i:=1; bad_a:=false; w:='';
while i<=n do begin
repeat
c:=s[i];
if c<>' ' then begin
bad_a:=bad_a or (c in bd);
w:=w+c;
Inc(i)
end
else begin
if not bad_a then wa:=wa+' '+w;
if s[i-1]='Я' then wb:=wb+' '+w;
w:=''; bad_a:=false
end
until c=' ';
Inc(i);
end;
wa:=Copy(wa,2,Length(wa)-1);
wb:=Copy(wb,2,Length(wb)-1);
Writeln(wa);
Writeln(wb)
end.