Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2011, 11:21   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

непонятно, что Вы там накрутили и зачем..
вот мой вариант (я просто чуток подправил Ваш код...)
Код:
uses crt;
type PSTRC=^Strc;
     Strc=record
     inf:integer;
     ptr:PSTRC;
end;


Procedure Dop(var S:Pstrc;dat:integer);
var nov:Pstrc;
begin
New(nov);
nov^.inf:=dat;
nov^.Ptr:=s;
S:=nov;
end;

Function Ud(var S:Pstrc; var err:boolean):integer;
var old:Pstrc;
begin
 if s<>Nil then
  begin
   old:=S;
   S:=S^.ptr;
   Ud:=old^.inf;
   dispose(old);
   err:=false
  end
 else
  begin
   Ud:=0;
   err:=true
  end
end;

Function Cht(s:PSTRC; var err:boolean):integer;
begin
if s<>Nil then
 begin
  write('inf=',s^.inf:3);
  err:=false;
  Cht:=s^.inf;
 end
else begin
      writeln('stack pust');
      err:=True;
      cht:=0;
     end;
end;

var S1 : PSTRC;
    k, N, CntN, One :integer;
    StackErr : boolean;


BEGIN
 clrscr;
 S1 := nil; {обязательно проиницилизируем стек пустым значением}

 WriteLn('Введите последовательность целых чисел (0 - окончание ввода)');
 readln(k);
 while k<>0 do
  begin
   if k<>0 then Dop(s1,k);
   readln(k);
  end;
 writeln;

 Write('Введите искомое значение N: ');
 readln(N);

 CntN := 0; {счётчик элементов равных N иницилизируем (присвоим ноль)}

 { Вывод содержимого стека с одновременным удалением из стека 
   и подсчитываем, сколько элементов стека равны N }
 while s1<>Nil do
  begin
    One :=  Ud(s1, StackErr);
    if One=N then 
      inc(CntN);
    Write(One,' ');
  end;

  {вывод результатов}
  WriteLn;
  WriteLn('Число элементов равных ',N,' было ',CntN);
  readln;
END.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.04.2011, 12:35   #12
Dower
Пользователь
 
Регистрация: 09.03.2009
Сообщений: 20
По умолчанию

А как подсчитать просто количество элементов, не обязательно равных N?

P.S Все сам разобрался.

Спасибо за помощь.

Последний раз редактировалось Dower; 26.04.2011 в 12:39.
Dower вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Turbo Pascal 7.0 @vror@ Помощь студентам 2 05.05.2010 16:58
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44
Turbo Pascal glavad Помощь студентам 4 16.12.2009 12:36
а free pascal не читает задачи которые написаны на turbo pascal? demonara Паскаль, Turbo Pascal, PascalABC.NET 3 25.05.2009 16:28
Pascal Множества, стек, списки, очередь. RrR5 Помощь студентам 4 26.01.2009 15:00