alesia1986
?>

Як виконується фрагмент алгоритму наведений на малюнку 3.45?

Информатика

Ответы

skorpion7228528
Const
  nn = 20;

type
  ta = array[1..nn] of integer;

procedure FillArray(var a: ta; n, min, max: integer);
var
  i, k: integer;
begin
  k := max - min + 1;
  for i := 1 to n do a[i] := Random(k) + min
end;

procedure WriteArray(a: ta; n, p: integer);
var
  i: integer;
begin
  for i := 1 to n do Write(a[i]:p);
  Writeln
end;

procedure CopyNegative(var a, b: ta; m: integer; var n: integer);
var
  i: integer;
begin
  n := 0;
  for i := 1 to m do
    if a[i] < 0 then
    begin
      Inc(n);
      b[n] := a[i]
    end
end;

var
  n: integer;
  x, y: ta;

begin
  Randomize;
  FillArray(x, 10, -50, 50);
  Writeln('Исходный массив');
  WriteArray(x, 10, 4);
  CopyNegative(x, y, 10, n);
  Writeln('Массив из отрицательных элементов');
  WriteArray(y, n, 4);
  FillArray(x, 8, -200, 100);
  Writeln('Исходный массив');
  WriteArray(x, 12, 5);
  CopyNegative(x, y, 12, n);
  Writeln('Массив из отрицательных элементов');
  WriteArray(y, n, 5);
end.

Тестовое решение:
Исходный массив
 -12  17  35  -4 -45   8  33  -8 -47  -4
Массив из отрицательных элементов
 -12  -4 -45  -8 -47  -4
Исходный массив
 -150 -174   92 -168   69  -60 -165  -78  -47   -4    0    0
Массив из отрицательных элементов
 -150 -174 -168  -60 -165  -78  -47   -4
Константин Андрей
Var
a,max,max2:real;
i:integer;
begin
  writeln('Введите скорость');
    for i:=1 to 7 do
        begin
            readln(a);
              if a>max then

              if max>max2 then

                 max2:=a

              else

                 max:=a;

         end;

     writeln(max:4:2,' ',max2:4:2);

end.

           или через массив

В массив заносим 2 элемента. В цикле вводим остальные элементы. В массиве находим минимальный и, если введенный следующий элемент (b) больше минимального массива, то записываем b в массив на место наименьшего.

В результате в массиве два максимальных эл-та

 

var

a:array[1..2]of integer;

n,i,min,j,m,b:integer;

begin

     readln(n);

     readln(a[1],a[2]);

     for i:=3 to n do

         begin

           readln(b);min:=a[1];m:=1;

                     for j:=1 to 2 do

                         if a[j]<min then

                         begin

                            min:=a[j];

                            m:=j;

                         end;

                     if b>min then

                        a[m]:=b;

           end;

         for i:=1 to 2 do

             writeln(a[i]);

     end.

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

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

Як виконується фрагмент алгоритму наведений на малюнку 3.45?
Ваше имя (никнейм)*
Email*
Комментарий*