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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2013, 21:37   #1
vlad32651
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию найти длину последовательности в стеке (Паскаль)

В целочисленном стеке найти длину самой длинной последовательности подряд идущих элементов, равных нулю, затем заменить все нулевые элементы на найденное значение.
vlad32651 вне форума Ответить с цитированием
Старый 11.12.2013, 10:07   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

показывайте код на Паскале, где вы описываете, заполняете, выводите на экран свой стек, тогда и о длине последовательности поговорим.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.12.2013, 13:13   #3
vlad32651
 
Регистрация: 10.12.2013
Сообщений: 4
По умолчанию

вот мой стек
Код:
Program Stek;
Uses crt;
type
  Tinf=integer; {тип данных, который будет храниться в элементе стека}
  List=^TList;  {Указатель на элемент типа TList}
  TList=integer
    data:TInf;  {данные, хранимые в элементе}
    next:List;   {указатель на следующий элемент}
  end;
 
{Процедура добавляющая элемент в стек}
procedure AddElem(var stek1:List;znach1:TInf);
var
  tmp:List;
begin
  GetMem(tmp,sizeof(TList)); 
  tmp^.next:=stek1;  
  tmp^.data:=znach1; 
  stek1:=tmp; 
end;
 
{Процедура вывода стека}
procedure Print(stek1:List);
begin
  if stek1=nil then 
  begin
    writeln('Стек пуст.');
    exit;
  end;
  while stek1<>nil do 
  begin    
   Write(stek1^.data, ' '); 
    stek1:=stek1^.next  
  end;
end;
 
{Процедура освобождения памяти занятой стеком}
Procedure FreeStek(stek1:List);
var
  tmp:List;
begin
  while stek1<>nil do 
  begin
    tmp:=stek1; 
    stek1:=stek1^.next; 
    FreeMem(tmp,SizeOf(Tlist));
  end;
end;
 
{Поиск элемента в стеке по значению если нужен
Function SearchElemZnach(stek1:List;znach1:TInf):List;
begin
  if stek1<>nil then {если стек не пуст, то}
    while (Stek1<>nil) and (znach1<>stek1^.data) do 
      stek1:=stek1^.next; 
  SearchElemZnach:=stek1;
end; }
 
var
  Stk, {переменная, которая всегда будет указывать на "вершину" стека}
  tmpl:List; {рабочая переменная}
  znach:Tinf; {данные вводимые пользователем}
  ch:char; {для работы менюшки}
begin
    Stk:=nil;
    repeat 
    clrscr; 
    Write('Программа для работы со ');
    Textcolor(4);
    Writeln('стеком.');
    Textcolor(7);
    Writeln('Выберите желаемое действие:');
    Writeln('1) Добавить элемент.');
    Writeln('2) Вывод стека.');
    Writeln('3) Выход.');
    writeln;
    ch:=readkey; 
    case ch of 
      '1':begin
            write('Введите значение добавляемого элемента: ');
            readln(znach);          
   AddElem(Stk,znach);
          end;
      '2':begin
            clrscr; 
            Print(Stk); 
            readkey; 
          end;
  until ch='3';
  FreeStek(Stk); 
end.
vlad32651 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
найти max и min в стеке shilovec5377 Общие вопросы C/C++ 3 25.06.2013 09:46
Найти количество членов последовательности b1,b2..bn, которые имеют четные порядковые номера и являются нечетными числами (Паскаль Vetal_1715 Помощь студентам 3 23.05.2012 13:20
длину последовательности задать константой. димон4ик_ Помощь студентам 1 30.10.2011 18:45
Разработать алгоритм и составить программу для решения задачи. Длину последовательности задать димон4ик_ Помощь студентам 0 18.10.2011 10:55
Разработать алгоритм и составить программу для решения задачи. Длину последовательности задать димон4ик_ Помощь студентам 2 18.10.2011 09:39