Вычислить значения выражений, использующих в качестве переменных элементы одномерного массива - Pascal

Узнай цену своей работы

Формулировка задачи:

Дано const n=11 var x:array[1..n] of real y:real Написать программу для вычесления следующих функций: наброски
const N = 11;
var
    arr: array[1..N] of real;
y:real;
    i, id: byte;
    flag: boolean;
    max: integer;
begin
    for i:=1 to N do
        read(arr[i]);
 
    flag := True;
    for i:=1 to N do
        if not odd(arr[i]) then begin
            flag := False;
            break;
        end;
 
    if flag = True then begin
        for i:=1 to N do begin
            if arr[i] > 0 then
                arr[i] := 0;
            write(arr[i],' ');
        end;
        writeln;
    end
    else begin
        max := abs(arr[i]);
        id := 1;
        for i:=2 to N do
            if abs(arr[i]) > max then begin
                max := abs(arr[i]);
                id := i;
            end;
        writeln('arr[',id, ']=', max);
    end;
end.

Решение задачи: «Вычислить значения выражений, использующих в качестве переменных элементы одномерного массива»

textual
Листинг программы
var
    ar: Array[Byte] Of Real;
    i, n, zad2: Byte;
    zad1, zad3, zad4, zad5: Extended; //Double|Real
begin
    repeat
        Write('Введите размерность вектора (>1): ');
        ReadLn(n);
    until (n > 1);
    Randomize;
    Write('Сгенерированный вектор:');
    zad1 := 1;
    zad2 := 0;
    zad3 := 0;
    zad4 := 0;
    zad5 := 0;
    for i := 0 to n - 1 do
    begin
        ar[i] := Random*198 - 99;
        Write(ar[i]:7:2);
        if (ar[i] > ar[zad2])
        then
            zad2 := i;
        zad1 := zad1 * ar[i];
        if (Odd(i))
        then
            zad3 := zad3 - ar[i]
        else
        begin
            zad3 := zad3 + ar[i];
            zad5 := zad5 + Sqr(ar[i]);
        end;
    end;
    i := 0;
    repeat
        zad4 := zad4 + ar[i]*ar[n - 1 - i];
        Inc(i);
    until (i > n div 2);        
    WriteLn;
    WriteLn('zad1=', Exp(Ln(Abs(zad1))/n):0:2);
    WriteLn('zad2=', ar[zad2]:6:2);
    WriteLn('zad3=', zad3:0:2);
    WriteLn('zad4=', 2*zad4:0:2);
    WriteLn('zad5=', zad5:0:2);
end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • ar: массив вещественных чисел
    • i: счётчик для цикла
    • n: размерность массива
    • zad2, zad1, zad3, zad4, zad5: расширенные вещественные числа (тип double/real)
  2. Цикл для ввода размерности массива:
    • Пользователю предлагается ввести размерность вектора, пока она не будет больше 1.
  3. Генерация случайных чисел и вывод массива:
    • Генерируется массив случайных чисел
    • Сгенерированный массив выводится на экран
    • Инициализация переменных zad1, zad2, zad3, zad4, zad5
  4. Цикл для обработки массива и вычисления значений переменных zad1, zad2, zad3, zad4, zad5:
    • Каждый элемент массива заполняется случайным числом от -99 до 99
    • Печать элемента массива
    • Определение значения переменной zad2, если текущий элемент больше предыдущего наибольшего значения
    • Вычисление произведения элементов массива и сохранение значения в zad1
    • Вычисление значения переменной zad3 в зависимости от четности индекса
    • Вычисление значения переменной zad5 как суммы квадратов нечетных элементов массива
    • Вычисление значения переменной zad4 как суммы произведений первой половины элементов массива на соответствующие им элементы с конца массива
  5. Вывод результатов:
    • Вывод расчетных значений переменных zad1, zad2, zad3, zad4, zad5 с некоторыми математическими операциями.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.1 из 5