Подпрограмма-функция - Pascal

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

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

Написать программу решения задачи, используя функции: в основной функции ввести с клавиатуры или вычислить с помощью генератора случайных чисел 10 элементов массива вещественного типа и напечатать результат вычислений, во вспомогательной - вычислить скалярную величину, согласно варианта задания:

Решение задачи: «Подпрограмма-функция»

textual
Листинг программы
  1. const
  2.     N = 10;
  3. type
  4.     TVector = Array[1..N] Of Real;
  5. function GenVector(var ar: TVector): Boolean;
  6. var
  7.     i: 1..N;
  8.     k: Integer;
  9. begin
  10.     repeat
  11.         WriteLn('Выберите способ инициализации массива:');
  12.         WriteLn('1. Ручной ввод.');
  13.         WriteLn('2. Генератор случайных чисел.');
  14.         ReadLn(k);
  15.     until (k in [1..2]);
  16.     Write('Вектор X:');
  17.     if (k = 2)
  18.     then
  19.     begin
  20.         Randomize;
  21.         for i := 1 to N do
  22.         begin
  23.             ar[i] := Random*20 - 10;
  24.             Write(ar[i]:7:2);
  25.         end;
  26.         WriteLn;
  27.     end
  28.     else
  29.     begin
  30.         WriteLn;
  31.         for i := 1 to N do
  32.         begin
  33.             Write('x[', i, ']=');
  34.             ReadLn(ar[i]);
  35.         end;
  36.     end;
  37.     GenVector := True;
  38. end;
  39.  
  40. function G(const ar: TVector): Extended; //Double | Real
  41. var
  42.     p, s: Extended; //Double | Real
  43.     i: 1..N;
  44. begin
  45.     p := 1;
  46.     s := 0;
  47.     for i := 1 to N do
  48.     begin
  49.         p := p*ar[i];
  50.         s := s + ar[i];
  51.     end;
  52.     G := Cos(p)/Sin(s);
  53. end;
  54.  
  55. var
  56.     x: TVector;
  57. begin
  58.     GenVector(x);
  59.     WriteLn('G=', G(x):0:3);
  60. end.

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

  1. Объявление константы N со значением 10.
  2. Объявление типа TVector как массива из 10 вещественных чисел.
  3. Объявление функции GenVector с возвращаемым значением Boolean и параметром ar типа TVector.
  4. Объявление переменной i типа целого числа в диапазоне от 1 до 10.
  5. Объявление переменной k типа целого числа.
  6. Начало блока кода функции GenVector.
  7. Цикл повторения до тех пор, пока значение переменной k не будет в диапазоне от 1 до 2.
  8. Вывод сообщений о выборе способа инициализации массива.
  9. Считывание значения переменной k.
  10. Завершение цикла повторения.
  11. Вывод сообщения Вектор X:.
  12. Если значение переменной k равно 2, то выполняется следующий блок кода, иначе следующий блок кода.
  13. Если выбрано значение 2, то для каждого элемента массива ar генерируется случайное вещественное число в диапазоне от -10 до 10, и его значение выводится.
  14. В противном случае пользователю предлагается ввести значения элементов массива ar вручную.
  15. Окончание блока кода функции GenVector.
  16. Определение функции G с параметром ar типа TVector и возвращаемым значением типа Extended (вещественное число с повышенной точностью).
  17. Объявление переменных p и s типа Extended и переменной i типа целого числа в диапазоне от 1 до 10.
  18. Начало блока кода функции G.
  19. Установление начальных значений переменных p и s равными 1 и 0 соответственно.
  20. Вычисление произведения всех элементов массива ar и их суммы.
  21. Вычисление значения функции G по формуле Cos(p)/Sin(s).
  22. Окончание блока кода функции G.
  23. Объявление переменной x типа TVector.
  24. Начало блока кода программы.
  25. Инициализация массива x с помощью функции GenVector.
  26. Вывод значения функции G для массива x с точностью до трех знаков после запятой.
  27. Окончание блока кода программы.

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


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

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

8   голосов , оценка 3.875 из 5

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

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

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