![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
setare |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Здравствуйте! Не могли бы вы сказать как можно изменить строчку
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. -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
setare, я бы переписал процедуры PushQ и PopQ вот так:
procedure PushQ(var Q: Tqueue;E: Telem;var c: boolean); Так она полностью работоспособна... Кстати, обрати внимание на то, что в процедуре PopQ перед E:Telem стоит Var, иначе как же ты собираешься возвращать значение из процедуры? ![]() Цитата как можно изменить строчку А вот эту строчку как раз менять не нужно. Зачем тебе лишний If в программе? |
setare |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Мне лишний иф как раз не нужен. Он нужен преподу. Спасиб за обьяснения! Следовательно изменить нельзя?
-------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну почему же нельзя?
head:=(Head mod MaxN)+1; полностью аналогично if head < maxN then |
setare |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 152 Пол: Женский Репутация: ![]() ![]() ![]() |
Спасибо! Вы мне очень помогли! И извините за беспокойство! Кстати, возвращаясь к спискам. Они все-таки не работают. Ни ваш модуль ни то, что я написала.
![]() -------------------- Ты спрашиваешь, как я переношу длинные бессонные ночи?Как свеча: как только настает утро, я гасну, тем самым, имея возможность заново загореться.
Нима |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
Я не принимаю вот таких голословных утверждений. Если они "не работают", то они не будут в FAQ-е. А если Вы нашли ошибку, то предоставьте полный код, который не выдает правильный результат, потому что я могу написать десяток ссылок на те посты, где ВСЕ эти программы отработали и никаких проблем НЕ возникло.
|
![]() ![]() |
![]() |
Текстовая версия | 21.07.2025 11:04 |