lele4kass
?>

Ввести числа а, в, с. если а> =b> =c, то поменять местами значения а и в. (неполное ветвление! )

Информатика

Ответы

rsd737
//Pascal ABC.NET v3.1 сборка 1172

//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.
migor72
{0 - умножить на 2; 1 - прибавить 1}

5: 001 {1 - 2 - 4 - 5}
50: 0100010 {1 - 2 - 3 - 6 - 12 - 24 - 25 - 50}
99: 010000101 {1 - 2 - 3 - 6 - 12 - 24 - 48 - 49 - 98 - 99}

В данном случае достаточно просто идти с конца. Скажем, если есть число 99, очевидно, последней командой было "прибавить 1". Далее, 98 - может быть получено умножением на 2, и следует выбирать именно эту команду - программа точно не будет превосходить по размеру вариант, где последней операцией является сложение.
Например,
98 - 49 - 48 короче, чем
98 - 97 - 96 - 48

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

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

Ввести числа а, в, с. если а> =b> =c, то поменять местами значения а и в. (неполное ветвление! )
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

lakeeva90
vasinam
mirsanm26249
Kharkina1328
Sergei
info6
zagadka27
Ter-Pogosov_Vasilevna
diana-kampoteks
sse1105
Nadegdasb
Смирнов_Андрей691
elenasnikitina84
chavagorin
natalia-shelkovich