Подсчитать, сколько элементов стека превышает среднее значение от всех его элементов - 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д