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

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

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

> Задача на стеки и очереди.
Анисия
сообщение 4.03.2009 7:10
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

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


Добрый день. Помогите разобраться с очередями и стеками. Как организовать очередь из n целых чисел. Пока взяла 5 чисел, это получается что надо сформировать массив. Посмотрите пожалуйста правильно сделала?

program Lab_4;
const max=5;
type Evt= integer;
var
elem:array [1..max] of Evt;
spos, rpos:integer;

end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Анисия
сообщение 27.03.2009 7:16
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 25
Пол: Женский
Реальное имя: Анисия

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


Выходит за пределы страницы blink.gif f:=f+1; на этой строке
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 27.03.2009 17:55
Сообщение #3


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(Анисия @ 27.03.2009 7:16) *
Выходит за пределы страницы blink.gif f:=f+1; на этой строке
И это все, что ты можешь сказать?.. Это определила не ты, а железная машина. А ты должна из этого сделать выводы.

Но сначала поправка: не страницы, а массива. И не на этой строке, а на следующей.
Ты f чем инициалицировала? 4? Так. А потом к нему единицу прибавила? Прибавила. Что вышло? Правильно, 5. А массив у тебя размерности какой? 4. Так чего ты хочешь?.. blink.gif

Тебе надо сделать не просто приращение f, а циклическое приращение по модулю 5. И массив тебе, думаю, надо нумерновать с нуля, а не с единицы. Тогда приращение f сделаешь так:

f:=(f+1) mod 5;

Понятно?
Еще ты с m запуталась. Пусть m будет длина очереди, а нумерация - от 0 до m-1=m1.
Вот, смотри, я тебе все это сделал. И, ПОЖАЛУЙСТА, обрати внимание на формат.. Ну нельзя же программы писать как записки соседу по парте!..
program ocher;
const
m=5;
m1=m-1;

type
tEl=integer;

var
line: array [0..m1] of tEl;
a: tEl;
f,r, n:integer;

function vvod( e:tEl): boolean;
begin
if n<m then begin
f:=(f+1) mod m;
line[f]:=e;
inc(n);
vvod:=true
end
else vvod:=false
end;

function vivod( var e:tEl): boolean;
begin
if n>0 then begin
e:=line[r];
r:=r+1;
dec(n);
vivod:=true;
end
else vivod:=false;
end;

procedure init;
begin
r:=0; f:=m1; n:=0;
end;

begin
init;
writeln(vvod(2));
writeln(vvod(3));
writeln(vvod(4));
writeln(vvod(5));
writeln(vvod(6));

while vivod(a) do
writeln('vvod ', a);
readln;
end.

И последнее: зачем ты стала переделывать мой код? Только сейчас заметил, что он практически идентичен)). Для тренировки? smile.gif Ок, похвально, что не копи-пейст)).
Спрашивай еще, что неясно.


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Анисия   Задача на стеки и очереди.   4.03.2009 7:10
volvo   Тебе что, стек организовать надо на основе массива...   4.03.2009 9:33
Анисия   Тебе что, стек организовать надо на основе массив...   4.03.2009 10:55
volvo   Очередь можно сформировать на основе статического ...   4.03.2009 11:29
Lapp   Мне кажется, что дело даже не в том, что шестой эл...   4.03.2009 15:28
Анисия   Анисия - разберешься? :) Попробую...   5.03.2009 4:31
Анисия   Подскажите что означает две команды Dec и Inс???   5.03.2009 5:07
Lapp   Подскажите что означает две команды Dec и Inс??? ...   25.03.2009 7:12
amega   а можно маденький вопросик? уже которою програму п...   25.03.2009 9:38
volvo   Не путай теплое с мягким... TElem описывает тип да...   25.03.2009 10:11
amega   о спасибо! буду знать теперь) :good:   25.03.2009 10:19
Анисия   Попробовала сегодня написать, счою программку на о...   25.03.2009 10:43
volvo   Добавь первой строкой {$R+} и запусти свою пр...   25.03.2009 10:59
Анисия   Выходит за пределы страницы :blink: f:=f+1; на эт...   27.03.2009 7:16
Lapp   Выходит за пределы страницы :blink: f:=f+1; на эт...   27.03.2009 17:55
Анисия   Мне дали вот такое задание: организовать очередь и...   30.03.2009 9:11
Анисия   Как я правидно поняла, надо циклом создавать очере...   30.03.2009 19:42
volvo   Мне всегда нравятся вот такие задания... Просто ве...   31.03.2009 10:22
Lapp   А ты что предлагаешь? Пришел кто-то последним, тут...   31.03.2009 13:05
Анисия   :unsure: :( Спасибо за то, что указали за мою бе...   1.04.2009 3:49
Анисия   Спасибо всем огромное!!!! У меня п...   1.04.2009 10:01


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

 



- Текстовая версия 20.06.2025 14:38
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"