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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2009, 14:31   #1
g0vlad
 
Регистрация: 13.04.2009
Сообщений: 2
По умолчанию stek_dek

Pomogite pozalusto s dekom!
Zada4a: proceduri dobavljaut v vektor STEK(sprava) i DEK(sleva),a tak ze udaljatj lementi steka i deka!
Stek ja uze sam napisal, a dek ni kak ne polu4aetsaj, esli vi mozete, pomogite pozalusto!
4estnoje studen4eskoje vam spasibo, zaranee!
Код:
{-------------------------------------------}
Program STEK_DEK;
Uses crt;
const max=10;
var i:integer;
    headr,tailr,heads,tails:integer;
    mas:array[1..max] of integer;

PROCEDURE add_dek;
???????????????????????????????????
PROCEDURE delete_dek;
???????????????????????????????????
PROCEDURE add_stek;
   Begin
   ClrScr;
      Textcolor(LIGHTBLUE); GoToXY(3,19); ClrEol;
      If (tails=max) and (heads>tailr+1)
         Then Begin
                 heads:=heads-1; Randomize;
                 mas[heads]:=random(90)+10;
              End else
                 If (heads<=tailr+1)
                 Then Begin
                 GoToXY(26,19); TextColor(red);
                 Writeln('error!');
              End;
    End;

PROCEDURE delete_stek;
   Begin
      ClrScr;
      If (heads<=max)
         Then Begin
                 mas[heads]:=0; heads:=heads+1;
              End else
              if (heads>max) then
                 Begin
                    GotoXY(26,19); TextColor(red);
                    Writeln('error!');
                 End;
   End;

var q:integer;
BEGIN
   ClrScr;
   headr:=1; tailr:=0;
   heads:=max+1; tails:=max;
   For i:=1 to max Do
    mas[i]:=0;
  repeat
  For i:=1 to max do
  Begin
    GoToXY(10+i*4,10); TextColor(YELLOW); Writeln(mas[i]:4);
  End;
    
GotoXY(1,3); Textcolor(WHITE);
  Writeln('1. Dobavitj element v dek(sprava sleva).');
  Writeln('2. Udalitj element iz deka(sprava sleva).');
  Writeln('3. Dobavitj novij element v stek.');
  Writeln('4. Udalitj element iz steka.');
  Writeln('5. EXIT.');
  Readln(q);
     case q of
        1: add_dek;
        2: delete_dek;
        3: add_stek;
        4: delete_stek;
     End;
     until q=5;
END.

Последний раз редактировалось Stilet; 13.04.2009 в 14:36.
g0vlad вне форума Ответить с цитированием
Старый 13.04.2009, 14:39   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Если я правильно понял то добавление в DEK вроде такого:
Код:
var  mas:array[1..max] of integer;

begin
 mas[head_DEK]:=чемуто;
 if Head_DEK<>max then inc(head_DEK) else Head_DEK:=1;
end;
А удаление это просто Dec(Head_DEK);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.04.2009, 14:50   #3
g0vlad
 
Регистрация: 13.04.2009
Сообщений: 2
По умолчанию

nemnogo ne ponjal napiwite pozalusto polnij tekst programmi
g0vlad вне форума Ответить с цитированием
Ответ


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