Сколько элементов стека, начиная с вершины, находится до элемента с максимальным значением. - Free Pascal

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

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

Создать стек из случайных целых чисел и определить, сколько элементов стека, начиная с вершины, находится до элемента с максимальным значением.

Решение задачи: «Сколько элементов стека, начиная с вершины, находится до элемента с максимальным значением.»

textual
Листинг программы
program pr;
type
  prec = ^trec;
  trec = record 
    num: integer;
    next: prec;
  end;
var
  stack: prec;
procedure push(const arg: integer);
var
  p: prec;
begin
  new(p);
  p^.num := arg;
  p^.next := stack;
  stack := p;
end;
procedure printstack;
var
  p: prec;
begin
  p := stack;
  while p <> nil do
  begin
    writeln(p^.num);
    p := p^.next;
  end;
end;
function poisk(stack: prec): integer;
var
  max: integer;
  buf: prec;
begin
  buf := stack;
  max := buf^.num;
  while buf <> nil do
  begin
    if buf^.num > max then max := buf^.num;
    buf := buf^.next;
  end;
  poisk := max;
end;
function co(stack: prec; const c: integer): integer;
var
  p: prec;
  cout: integer;
begin
  cout := 0;
  p := stack;
  while (p <> nil) and (p^.num <> c) do
  begin
    cout := cout + 1;
    p := p^.next;
  end;
  co := cout;
end;
var
  S: string;
  i, m, c, k: integer;
begin
  for i := 1 to 10 do
  begin
    m := random(21);
    push(m);
  end;
  printstack;
  c := poisk(stack);
  writeln('Наибольший элемент: ', c);
  k := co(stack, c);
  writeln('Количество элементов, которые находятся до наибольшего: ', k);
end.

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

  1. Объявление типа данных prec для ссылки на элемент стека.
  2. Объявление переменной stack типа prec для хранения вершины стека.
  3. Определение процедуры push для добавления элемента в стек.
  4. Определение процедуры printstack для печати всех элементов стека.
  5. Определение функции poisk для поиска элемента с максимальным значением в стеке.
  6. Определение функции co для подсчета количества элементов в стеке до элемента с максимальным значением.
  7. Объявление переменных S, i, m, c, k для хранения результатов работы программы.
  8. Заполнение стека случайными числами от 1 до 20.
  9. Печать стека.
  10. Нахождение элемента с максимальным значением в стеке и его вывод.
  11. Подсчет количества элементов в стеке до элемента с максимальным значением и его вывод.

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


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

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

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