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

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

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

> Очереди, queue
сообщение
Сообщение #1


Гость






Как видно из задания, задача будет идти о очередях.
Если кто забыл - напоминаю: основное правило очереди - первым вошёл - первым вышел!
Итак. Пусть дан одномерный массив (он задаёт количество элементов).
Задача заключается в следующем: с помощью функций put и get реализовать распечатку текста на экране.
.Например:
get(1)
get(2)
writeln(get)
writeln(get)

Причём если следующая команда get будет превышать массив, то число будет !!!!!записываться
в конец очереди (другой вариант - в начало)!!!!!!!!!!!!
пример:
put(1)
put(2)
put(3)
get
get
get ; здесь массив состоит из 2-х элементов и происходит переполнение ...

ВАЖНО:
функции имеют слежующий вид:

function put(i:integer):boolean; (возвращает false если очередь пуста(по-моему - а может когда переполнение??)
и true, если переполнения нет)

function get:integer;

Вот и всё: ПОМОГИТЕ бедному студенту.!
P.S:
Вот я написал, но при переполнении не то, совсем не то:
Код

uses crt;
const m=10;
var n:array[0..m] of integer;
   i,j: integer;
procedure Init;
begin
 for i:=1 to m do n[i]:=0;
 n[0]:=1;
end;
function put(a:integer):boolean;
begin
 put:=false;
 if n[0]<=m then
  begin
    n[n[0]]:=a;
    n[0]:=n[0]+1;
    put:=true;
  end;
end;
function get: integer;
begin
 if n[0]>1 then
  begin
    get:=n[1];
    n[0]:=n[0]-1;
    for i:=1 to m-1 do
     n[i]:=n[i+1];
  end;
end;
begin
init;
clrscr;
writeln;
put(1);
put(2);
put(3);
writeln(get);
writeln(get);
put(4);
writeln(get);
writeln(get);
readln;
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Гость_Boris   Очереди   10.11.2004 0:04
volvo   Гость_Boris Вы же сами себе противоречите…   10.11.2004 0:20
GoodWind   может при переполнении стоит сдвигать очередь впе…   10.11.2004 0:31
Гость_Boris   Так вот я и прошу переделать программу!   10.11.2004 0:32
volvo   Поймите, нельзя переделать программу, не зная то…   10.11.2004 0:41
Гость_Boris   А функцию get тогда как переделать? Или всё тоже с…   10.11.2004 0:42
GoodWind   а разве переполненность очереди влияет на get ??   10.11.2004 0:46
Гость_Boris   Ещё как...а в принципе ... дайте подумать...наврно…   10.11.2004 1:00
GoodWind   Нет не тестил :no: Предоставлю Вам сию почетную…   10.11.2004 1:03
Гость_Boris   Только что тестил ... при m=3 b put(1) pu(2) pu(3)…   10.11.2004 1:06
GoodWind   дык вы пытаетесь из очереди длиной 3 элемента взят…   10.11.2004 1:12
Гость_Boris   Так я же и говорю: если в друг очередь больше то п…   10.11.2004 1:26
volvo   Попробуйте так: const  m = 3; var …   10.11.2004 1:54
Гость_Boris   Спасибо..юработает. Спасибо большое. Добавлено (9…   10.11.2004 2:33
volvo   Гость_Boris Комментарии к программе добавлены   10.11.2004 3:07
Гость_Boris   Thank - спасибо [b]Добавлено (10.11.04 14:30): […   10.11.2004 13:03
volvo   Гость_Boris Скажите, Вы не догадываетесь о сущест…   10.11.2004 19:47
Гость_Boris   Всё равно пишет : 1 3 4 а должен : 1 3 0 4   10.11.2004 21:07
volvo   Ну что мне, EXE выслать? Какой компилятор? P.S. А…   10.11.2004 21:28
Altair   ЗЫ: я так понял задача решена (раз за нее взялся v…   10.11.2004 21:50
Гость_Boris   m=3. Вот.Можешь *.pas выложить. Но всё рвно - я же…   10.11.2004 22:43
volvo   Гость_Boris Ну Вы же свои посты-то хоть читайте…   10.11.2004 23:04
GoodWind   можт промазал мимо клавиши ;) :D   11.11.2004 1:22
Гость_Boris   Да, извини. Тогда как ты написал должно получится:…   11.11.2004 1:59
volvo   Гость_Boris const  m = 2; var  a…   11.11.2004 2:15
Гость_Boris   It's good. I am glad. Thank all and good bye. …   11.11.2004 14:31
Гость_Boris   А можно вместо этих "конечных" нулей нап…   11.11.2004 21:25
volvo   Ну не выводит моя программа нули при полной очеред…   11.11.2004 21:30
Гость_Boris   2 недели ... и то не охотно. Ну что - можно?   11.11.2004 21:39
volvo   :angry: Если то нельзя. Я могу помочь с решением…   12.11.2004 2:30
Altair   :P Абалдеть :rolleyes: он еще и не доволен... Г…   12.11.2004 11:27
Гость_Boris   Ну а как этц цифру 0 преоразовать в символ и добав…   12.11.2004 12:39
APAL   Как-как - читай встроенный HELP. Если с английск…   12.11.2004 15:36


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

 





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