Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
1

Очередь

21.05.2010, 14:51. Показов 2695. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать очередь с n элементами. Дополнить её k элементами и распечатать. ребята, прошу, помогите
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2010, 14:51
Ответы с готовыми решениями:

Очередь
Помогите с решением задачи. Создать очередь, тип элементов которого Запись с полями: назване...

очередь
есть вопрос, помогите...как организовать очередь не списком, а по другой логике?...

динамическая очередь
ПожалуЙста помогите. Я сделал процедуру удаления одного элемента из дин. очереди. Но мне нужно...

Создать очередь
Нужно создать очередь из integer с вводом и выводом в файл

14
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
21.05.2010, 18:14 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
uses crt;
type
Link=^Chisla;
Chisla=record
  chis:integer;
  next:Link;
end;
var
i,n,k:integer;
Head,Tail:Link;
{Процедура ввода}
procedure Input(var Head1,Tail1:Link;a:integer);
var
tmp:Link;
begin
  New(tmp);
  tmp^.next:=nil;
  tmp^.chis:=a;
     if Tail1 <> nil then
       Tail1^.next:=tmp;
         Tail1:=tmp;
           if Head1=nil then
             Head1:=Tail1;
end;
{Процедура вывода}
procedure Print(Head1:Link);
begin
 if Head1=nil then
   begin
     writeln('Очередь пуста!');
     exit;
   end;
  while Head1 <> nil do
    begin
      write(Head1^.chis:4);
      Head1:=Head1^.next;
    end;
end;
{Процедура удаления очереди}
procedure FreeTurn(var Head1:Link);
var
tmp:Link;
begin
  while Head1 <> nil do
    begin
      tmp:=Head1;
      Head1:=Head1^.next;
      Dispose(tmp);
    end;
end;
 
begin
 Head:=nil; Tail:=nil;
  writeln('Введите количество элементов');
  readln(n);
   for i:=1 to n do
     begin
       writeln('Введите элемент');
       readln(k);
       Input(Head,Tail,k);
     end;
  writeln('Элементы очереди');
  Print(Head);
  writeln('Введите количество элементов');
  readln(n);
  for i:=1 to n do
     begin
       writeln('Введите элемент');
       readln(k);
       Input(Head,Tail,k);
     end;
  writeln;
  writeln('Элементы очереди');
  Print(Head);
  FreeTurn(Head);
end.
Тут особо комментариев нету, если что спрашивайте
2
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
21.05.2010, 19:05  [ТС] 3
Ну вот смотри))
я сделал так....проще но она кривая..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
Program xz;
uses crt;
type ochered=^st;
       st=record
       inf:integer;
       link:ochered;
var begl,endl.p:ochered; i,n:integer;
begin
clrscr;
begl:=nil;
endl:=nil;
new(p);
writeln('BBECTU ELEMENTU OCHEREDU');
readln(p^.inf);
p^.link:=nil;
begl:=p;
endl:=p;
writeln('BBECTU kol-vo dobavlyaemux elementov');
readln(n);
for i:=1 to n do
begin
new(p);
writeln('BBECTU DOBAVLENUE OCHEREDU');
readln(p^.inf);
p^.link:=nil;
endl^.link:=p;
endl:=p;
end;
p:=begl;
while p<>nil do
begin
write(p^.inf,' ');
p:=p^.link;
readln;
end;
end.
вот так вот..... всё по простому..только я не указывал кол-во элементов очереди вначале..
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
21.05.2010, 19:08 4
Так почему не сделать то же самое
Цитата Сообщение от Conroex Посмотреть сообщение
for i:=1 to n do
begin
new(p);
writeln('BBECTU DOBAVLENUE OCHEREDU');
readln(p^.inf);
p^.link:=nil;
endl^.link:=p;
endl:=p;
end;
и в самом начале, ведь это тоже добавление?
0
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
21.05.2010, 19:33  [ТС] 5
да это добавление...
я тебе говорю за кол-во элементов в начальной очереди
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
21.05.2010, 19:41 6
Цитата Сообщение от Conroex Посмотреть сообщение
да это добавление...
я прекрасно понимаю про что говоришь. Дополнение и создание очереди то есть заполнение её элементами происходит одинаково. поэтому для того чтобы дополнить очередь элементами ты должен использовать тот же алгоритм что и при формирование очереди,те что я написала выше, что тут не понятного?
1
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
21.05.2010, 20:00  [ТС] 7
тоесть сделать вот так вот?
C++
1
2
3
4
5
6
new(p);
writeln('BBECTU ELEMENTU OCHEREDU');
readln(p^.inf);
p^.link:=nil;
begl^.link:=p;
endl:=p;
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
21.05.2010, 20:07 8
Не совсем так, вот я поправила
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Program xz;
uses crt;
type ochered=^st;
       st=record
       inf:integer;
       link:ochered;
     end;
var begl,endl,p:ochered; i,n:integer;
begin
clrscr;
begl:=nil;
endl:=nil;
writeln('Введите колво элементов очереди');
readln(n);
for i:=1 to n do
begin
new(p);
writeln('Введите доб элемент');
readln(p^.inf);
p^.link:=nil;
if  endl <> nil then
endl^.link:=p;
endl:=p;
if  begl=nil then
 begl:=endl;
end;
 
writeln('BBECTU kol-vo dobavlyaemux elementov');
readln(n);
for i:=1 to n do
begin
new(p);
writeln('BBECTU DOBAVLENUE OCHEREDU');
readln(p^.inf);
p^.link:=nil;
endl^.link:=p;
endl:=p;
end;
p:=begl;
while p<>nil do
begin
write(p^.inf,' ');
p:=p^.link;
readln;
end;
end.
0
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
21.05.2010, 20:22  [ТС] 9
Извини, что я такой наивный, но позволь спросить...
Цитата Сообщение от lera8 Посмотреть сообщение
Не совсем так, вот я поправила
Pascal
1
2
3
4
5
f
if  endl <> nil then
endl^.link:=p;
endl:=p;
if  begl=nil then
Для чего эти условия?
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
21.05.2010, 20:26 10
Вот это условие
Цитата Сообщение от Conroex Посмотреть сообщение
if endl <> nil then
это для добавление элементов в очередь в которой уже что то есть
а это условие

Цитата Сообщение от Conroex Посмотреть сообщение
if begl=nil then
обрабатывает то случай если мы добавляем элемент в пустую очередь то есть заносим первый элемент.
вот так, может вот только не очень объяснила
0
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
22.05.2010, 12:51  [ТС] 11
Всё понял)))

Ещё одно)) помоги мне в конце распечатать очередь в рядок с пробелом..) просто по теории алгоритмам я ваще не люлю))
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
22.05.2010, 12:54 12
Цитата Сообщение от lera8 Посмотреть сообщение
write(p^.inf,' ');
p:=p^.link;
readln;
Вот отсюда убери Readln
0
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
22.05.2010, 12:57  [ТС] 13
Убрал, теперь после ввода дополнительных элементов меня выкидует на основную программу...
0
636 / 219 / 64
Регистрация: 03.11.2009
Сообщений: 488
22.05.2010, 13:00 14
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
Program xz;
uses crt;
type ochered=^st;
       st=record
       inf:integer;
       link:ochered;
     end;
var begl,endl,p:ochered; i,n:integer;
begin
clrscr;
begl:=nil;
endl:=nil;
writeln('Введите колво элементов очереди');
readln(n);
for i:=1 to n do
begin
new(p);
writeln('Введите доб элемент');
readln(p^.inf);
p^.link:=nil;
if  endl <> nil then
endl^.link:=p;
endl:=p;
if  begl=nil then
 begl:=endl;
end;
 
writeln('BBECTU kol-vo dobavlyaemux elementov');
readln(n);
for i:=1 to n do
begin
new(p);
writeln('BBECTU DOBAVLENUE OCHEREDU');
readln(p^.inf);
p^.link:=nil;
endl^.link:=p;
endl:=p;
end;
p:=begl;
while p<>nil do
begin
write(p^.inf,' ');
p:=p^.link;
end;
end.
попробуй у меня работает
1
35 / 34 / 9
Регистрация: 20.04.2010
Сообщений: 126
22.05.2010, 13:09  [ТС] 15
Да работает он не выводит...
Цитата Сообщение от lera8 Посмотреть сообщение
Pascal
1
2
3
4
5
6
begin
write(p^.inf,' ');
p:=p^.link;
end;
readln;
end.
я сделал так...оно выводит сразу..но в столбец..
0
22.05.2010, 13:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2010, 13:09
Помогаю со студенческими работами здесь

стек и очередь
помогите пожалуйста используя стек и очередь решить задачу: в текстовом файле записан...

очередь из 7-ти символов
Постройте очередь из 7-ти символов - ‘k’, ‘l’,‘m’, ‘n’, ‘o’, ‘p’, ‘r’. Выведите из очереди три...

очередь из N покупателей
выстроилась очередь из N покупателей .известно время обслуживания продавцом каждого...

Стек, очередь.
1)Дан файл, создать стэк вывести адрес 1-ого и адрес посл. элемента стэка. Положительные элемен....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru