Подсчитать, сколько элементов стека превышает среднее значение от всех его элементов - Free Pascal
Формулировка задачи:
Подсчитать, сколько элементов стека, построенного из случайных чисел, превышает среднее значение от всех элементов стека.
Программно стек реализуется в виде однонаправленного списка с одной точкой входа (вершиной стека).
Решение задачи: «Подсчитать, сколько элементов стека превышает среднее значение от всех его элементов»
textual
Листинг программы
- program pr;
- type
- prec = ^trec;
- trec = record
- num: integer;
- next: prec;
- end;
- var
- stack: prec;
- procedure push(an: integer);
- var
- p: prec;
- begin
- new(p);
- p^.num := an;
- p^.next := stack;
- stack := p;
- end;
- function pop(var an: integer): boolean;
- var
- p: prec;
- begin
- pop := (stack <> nil);
- if stack <> nil then
- begin
- an := stack^.num;
- p := stack;
- dispose(p);
- end;
- end;
- procedure printstack;
- var
- p: prec;
- begin
- p := stack;
- while p <> nil do
- begin
- writeln(p^.num);
- p := p^.next;
- end;
- end;
- function summstack: integer;
- var
- p: prec;
- sum: integer;
- begin
- sum := 0;
- p := stack;
- while p <> nil do
- begin
- sum := sum + p^.num;
- p := p^.next;
- end;
- summstack := sum;
- end;
- function coutstack( const av: real): integer;
- var
- p: prec;
- cout: integer;
- begin
- cout := 0;
- p := stack;
- while p <> nil do
- begin
- if p^.num > av then
- begin
- cout := cout + 1;
- end;
- p := p^.next;
- coutstack := cout;
- end;
- end;
- var
- x, n, i, s, k: integer;
- avg: real;
- begin
- stack := nil;
- randomize;
- writeln('Введите количество элементов для заполнения стека');
- readln(n);
- for i := 1 to n do
- begin
- x := random(21);
- push(x);
- end;
- writeln;
- printstack;
- writeln;
- s := summstack;
- avg := s / n;
- writeln('Среднее значение элементов списка: ', avg);
- k := coutstack(avg);
- writeln('Количество элементов списка, превышающих среднее значение:', k);
- end.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д