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