profile
Опубликовано 6 лет назад по предмету Информатика от Lena5681

Составить на Pascal программу с использованием процедуры и функции:
"Даны действительные числа a1, …, an, b1, …, bn. В последовательности a1, …, an, и в последовательности b1, …, bn все элементы, следующие за элементом с наибольшим значением (за первым по порядку, если их несколько), заменить на 0,5."

  1. Ответ
    Ответ дан Gleb1Kosyrev
    var ar1:array of real;ar2:array of real;
    n,i,maxi1,maxi2,seed:integer;
    max1,max2:real;

    function gener(var ar:array of real;i:integer; var seed:integer):real;
    begin;
    randomize(seed);
    {В этой задаче я впервые столкнулся с неслучайным random(). Чтобы она генерировала новый ряд чисел, измените значение seed в начале основной программы}
    seed:=random(-10,10);
    ar[i]:=random(-10,10);
    gener:=ar[i];
    end;

    procedure maxS(ar:array of real;var maxi,n:integer; var max:real);
    var i:integer;
    begin;
    max:=-2147483648;
    for i:=1 to n do  if max<ar[i] then
       begin;
        max:=ar[i];
        maxi:=i;
       end;
    for i:=maxi+1 to n do
    ar[i]:=0.5;
    end;


    begin;
    randomize;
    readln(n);
    setlength(ar1,n+1);
    setlength(ar2,n+1);
    writeln('Array A:');
    for i:=1 to n do
      write(gener(ar1,i,seed):4);
    seed:=random(-10,10);
    writeln;
    writeln('Array B:');
    for i:=1 to n do
      write(gener(ar2,i,seed):4);
    maxS(ar1,maxi1,n,max1);
    maxS(ar2,maxi2,n,max2);
    writeln;
    writeln('Final array A:');
    for i:=1 to n do
    write(ar1[i]:4);
    writeln;
    writeln('Final array B:');
    for i:=1 to n do
    write(ar2[i]:4);
    end.
Самые новые вопросы