Var ar:array[1..5] of integer; i,s:integer; begin randomize; writeln('Array:'); for i:=1 to 5 do begin ar[i]:=random(5,37); writeln(ar[i]); s:=s+ar[i]; end; writeln('Sum=',s); end.
//2
Var ar:array[1..20] of integer; i,s:integer; begin randomize; writeln('Array:'); for i:=1 to 20 do begin ar[i]:=random(-77,123); writeln(ar[i]); if ar[i] mod 2<>0 then s:=s+1; end; writeln('Count=',s); end.
//3
Var ar:array[1..5] of integer; i:integer; r:real; begin writeln('Array:'); for i:=1 to 5 do begin readln(ar[i]); r:=r+ar[i]; end; r:=r/5; writeln('Res=',r); end.
В данном случае достаточно просто идти с конца. Скажем, если есть число 99, очевидно, последней командой было "прибавить 1". Далее, 98 - может быть получено умножением на 2, и следует выбирать именно эту команду - программа точно не будет превосходить по размеру вариант, где последней операцией является сложение. Например, 98 - 49 - 48 короче, чем 98 - 97 - 96 - 48
Ответить на вопрос
Поделитесь своими знаниями, ответьте на вопрос:
Ввести числа а, в, с. если а> =b> =c, то поменять местами значения а и в. (неполное ветвление! )
//1
Var
ar:array[1..5] of integer;
i,s:integer;
begin
randomize;
writeln('Array:');
for i:=1 to 5 do
begin
ar[i]:=random(5,37);
writeln(ar[i]);
s:=s+ar[i];
end;
writeln('Sum=',s);
end.
//2
Var
ar:array[1..20] of integer;
i,s:integer;
begin
randomize;
writeln('Array:');
for i:=1 to 20 do
begin
ar[i]:=random(-77,123);
writeln(ar[i]);
if ar[i] mod 2<>0 then s:=s+1;
end;
writeln('Count=',s);
end.
//3
Var
ar:array[1..5] of integer;
i:integer;
r:real;
begin
writeln('Array:');
for i:=1 to 5 do
begin
readln(ar[i]);
r:=r+ar[i];
end;
r:=r/5;
writeln('Res=',r);
end.