Сколько элементов стека, начиная с вершины, находится до элемента с максимальным значением. - 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.
Объяснение кода листинга программы
- Объявление типа данных
prec
для ссылки на элемент стека. - Объявление переменной
stack
типаprec
для хранения вершины стека. - Определение процедуры
push
для добавления элемента в стек. - Определение процедуры
printstack
для печати всех элементов стека. - Определение функции
poisk
для поиска элемента с максимальным значением в стеке. - Определение функции
co
для подсчета количества элементов в стеке до элемента с максимальным значением. - Объявление переменных
S
,i
,m
,c
,k
для хранения результатов работы программы. - Заполнение стека случайными числами от 1 до 20.
- Печать стека.
- Нахождение элемента с максимальным значением в стеке и его вывод.
- Подсчет количества элементов в стеке до элемента с максимальным значением и его вывод.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д