Составьте подпрограмму формирующую массив - Turbo Pascal

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

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

Составьте программу с подпрограммой. Подпрограмма формирует массив из множества элементов находящиеся между первым и максимальным элементом из заданного массива. В подпрограмме предусмотреть обработку одномерного массива с регулируемыми размерами, с помощью нетипизированного массива и локального преобразования типов. Последний абзац совсем не понятен для меня. Помогите пожалуйста.

Решение задачи: «Составьте подпрограмму формирующую массив»

textual
Листинг программы
program vector2;
 
const
  n_max=100;
type
  vector=array[1..n_max] of real;
procedure CreateArray(a:vector;var x:vector;n:integer);
var
  i:integer;
begin
  for i:=1 to n do
    x[i]:=a[i];
end;
var
  a,b:vector;
  i,m_max:integer;
begin
  m_max:=1;
  for i:=1 to n_max do
    begin
      a[i]:=random(n_max);
      write(a[i]:8:2);
      if a[i]>a[m_max] then
        m_max:=i;
    end;
  writeln;
  writeln('Max: ',a[m_max]:8:2);
  createarray(a,b,m_max);
  for i:=1 to m_max do
    write(b[i]:8:2);
  readln;
end.

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

В данном коде создается программа vector2, которая использует язык программирования Turbo Pascal. Константа n_max определяет максимальное количество элементов, которое может содержать вектор (массив). Тип vector представляет собой массив, состоящий из чисел типа real. Процедура CreateArray принимает три аргумента: a (изначальный вектор), x (новообразованный вектор) и n (количество элементов для копирования). Она копирует каждый элемент из a в x. Две переменные a и b представляют собой исходный и новый векторы соответственно. Переменная i используется для итерации по каждому элементу вектора. Переменная m_max используется для хранения индекса максимального элемента в векторе a. Цикл for выполняется от 1 до n_max. Внутри цикла генерируется случайное число от 1 до n_max и присваивается элементу a. Затем выводится значение этого элемента. Если текущий элемент больше максимального, то обновляется значение переменной m_max. Затем вызывается процедура createarray, которая создает новый вектор b и копирует в него все элементы из a. Далее происходит вывод значений всех элементов вектора b. Программа заканчивается вызовом функции readln, чтобы прочитать ввод пользователя и завершить работу программы.

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

11   голосов , оценка 4 из 5
Похожие ответы