IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Очередь, в статической памяти
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 152
Пол: Женский

Репутация: -  0  +


Здравствуйте! Не могли бы вы сказать как можно изменить строчку
newtail:=(Q.tail mod MaxN) + 1; в программе очереди с помощью массива? Пожалуйста, подскажите. В faqe у вас только очередь в дин памяти. Мне нужно, чтобы очередь заполнялась полностью, а не оставляла одно звено. Программа по работе с очередями-добавление и удаление. Сама программа:
Код

program ochered_mas;
const
 MaxN=100;
  type
   Telem=integer;
   Telements=array[1..MaxN]of Telem;
   TQueue=record
    Elements:Telements;
    Head:integer;
    Tail:integer
   end;
    procedure InitQueue(var Q:TQueue);
     begin
      Q.Head:=1;
      Q.tail:=1;
     end;
    procedure PushQ(var Q:Tqueue;E:Telem;var c:boolean);
    var
     newtail:integer;
      begin
       newtail:=(Q.tail mod MaxN) + 1;
      with Q do
       if newtail<>head then
        begin
         tail:=newtail;
         elements[tail]:=E;
         c:=true;
        end
       else
        c:=false;
      end;
    procedure popQ(var Q:tQueue;E:Telem;var c:boolean);
     begin
      if (Q.head<>Q.tail) then
       begin
        with Q do
         begin
          E:=Elements[head];
          head:=(Head mod MaxN)+1;
         end;
       end;
     end;
  var
   Q:Tqueue;
   number:integer;
   E:telem;
   c:boolean;
  begin
     InitQueue(Q);
      repeat
       writeln('1:Push');
       writeln('2:Pop');
       writeln('3:Exit');
       writeln('Vvedite luboy nomer.');
       readln(number);
        case number of
      1:
       begin
        writeln('Vvedite chislo dlya dobavleniya.');
        readln(E);
        pushQ(Q,E,c);
       end;
      2:
       begin
        writeln('Vvedite chislo dlya izvlecheniya.');
        readln(E);
        PopQ(Q,E,c);
        writeln('izvlechonnoye chislo= ',E);
       end;
      end;
     if (Q.head=Q.tail) then
      writeln('Ochered pusta');
    until number=3
  end.


--------------------
Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.

Нима
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 4.09.2025 21:27
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name