Вычислить значения выражений, использующих в качестве переменных элементы одномерного массива - 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 с некоторыми математическими операциями.