Подсчитать, сколько элементов стека превышает среднее значение от всех его элементов - 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.

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


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

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

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