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

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

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

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

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

textual
Листинг программы
  1. program pr;
  2. type
  3.   prec = ^trec;
  4.   trec = record
  5.     num: integer;
  6.     next: prec;
  7.   end;
  8. var
  9.   stack: prec;
  10. procedure push(const arg: integer);
  11. var
  12.   p: prec;
  13. begin
  14.   new(p);
  15.   p^.num := arg;
  16.   p^.next := stack;
  17.   stack := p;
  18. end;
  19. procedure printstack;
  20. var
  21.   p: prec;
  22. begin
  23.   p := stack;
  24.   while p <> nil do
  25.   begin
  26.     writeln(p^.num);
  27.     p := p^.next;
  28.   end;
  29. end;
  30. function poisk(stack: prec): integer;
  31. var
  32.   max: integer;
  33.   buf: prec;
  34. begin
  35.   buf := stack;
  36.   max := buf^.num;
  37.   while buf <> nil do
  38.   begin
  39.     if buf^.num > max then max := buf^.num;
  40.     buf := buf^.next;
  41.   end;
  42.   poisk := max;
  43. end;
  44. function co(stack: prec; const c: integer): integer;
  45. var
  46.   p: prec;
  47.   cout: integer;
  48. begin
  49.   cout := 0;
  50.   p := stack;
  51.   while (p <> nil) and (p^.num <> c) do
  52.   begin
  53.     cout := cout + 1;
  54.     p := p^.next;
  55.   end;
  56.   co := cout;
  57. end;
  58. var
  59.   S: string;
  60.   i, m, c, k: integer;
  61. begin
  62.   for i := 1 to 10 do
  63.   begin
  64.     m := random(21);
  65.     push(m);
  66.   end;
  67.   printstack;
  68.   c := poisk(stack);
  69.   writeln('Наибольший элемент: ', c);
  70.   k := co(stack, c);
  71.   writeln('Количество элементов, которые находятся до наибольшего: ', k);
  72. 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

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

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

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