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

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

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

Дано const n=11 var x:array[1..n] of real y:real Написать программу для вычесления следующих функций: наброски
Листинг программы
  1. const N = 11;
  2. var
  3. arr: array[1..N] of real;
  4. y:real;
  5. i, id: byte;
  6. flag: boolean;
  7. max: integer;
  8. begin
  9. for i:=1 to N do
  10. read(arr[i]);
  11. flag := True;
  12. for i:=1 to N do
  13. if not odd(arr[i]) then begin
  14. flag := False;
  15. break;
  16. end;
  17. if flag = True then begin
  18. for i:=1 to N do begin
  19. if arr[i] > 0 then
  20. arr[i] := 0;
  21. write(arr[i],' ');
  22. end;
  23. writeln;
  24. end
  25. else begin
  26. max := abs(arr[i]);
  27. id := 1;
  28. for i:=2 to N do
  29. if abs(arr[i]) > max then begin
  30. max := abs(arr[i]);
  31. id := i;
  32. end;
  33. writeln('arr[',id, ']=', max);
  34. end;
  35. end.

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

textual
Листинг программы
  1. var
  2.     ar: Array[Byte] Of Real;
  3.     i, n, zad2: Byte;
  4.     zad1, zad3, zad4, zad5: Extended; //Double|Real
  5. begin
  6.     repeat
  7.         Write('Введите размерность вектора (>1): ');
  8.         ReadLn(n);
  9.     until (n > 1);
  10.     Randomize;
  11.     Write('Сгенерированный вектор:');
  12.     zad1 := 1;
  13.     zad2 := 0;
  14.     zad3 := 0;
  15.     zad4 := 0;
  16.     zad5 := 0;
  17.     for i := 0 to n - 1 do
  18.     begin
  19.         ar[i] := Random*198 - 99;
  20.         Write(ar[i]:7:2);
  21.         if (ar[i] > ar[zad2])
  22.         then
  23.             zad2 := i;
  24.         zad1 := zad1 * ar[i];
  25.         if (Odd(i))
  26.         then
  27.             zad3 := zad3 - ar[i]
  28.         else
  29.         begin
  30.             zad3 := zad3 + ar[i];
  31.             zad5 := zad5 + Sqr(ar[i]);
  32.         end;
  33.     end;
  34.     i := 0;
  35.     repeat
  36.         zad4 := zad4 + ar[i]*ar[n - 1 - i];
  37.         Inc(i);
  38.     until (i > n div 2);       
  39.     WriteLn;
  40.     WriteLn('zad1=', Exp(Ln(Abs(zad1))/n):0:2);
  41.     WriteLn('zad2=', ar[zad2]:6:2);
  42.     WriteLn('zad3=', zad3:0:2);
  43.     WriteLn('zad4=', 2*zad4:0:2);
  44.     WriteLn('zad5=', zad5:0:2);
  45. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут