Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.10.2017
Сообщений: 16

Организовать три очереди с одинаковым количеством элементов, содержащие соответствено имена, отчества и фамилии людей

19.02.2018, 19:27. Показов 1140. Ответов 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
Type 
  EXO = ^O;
  O = record
    Data : String[30];
    Next : EXO;
  end;
  
  EXOFul = ^OFul;
  OFul = record
    Fam : String[30];
    Name : String[30];
    Name2 : String[30];
    Com : String[100]; 
    Next : EXOFul;
  end;
 
Var
  BF,EF, BN,EN, BN2,EN2 : EXO;
  BFul,EFul: EXOFul;  
  n,i : integer;
  Fam, Name, Name2 : String[30];
  Com : String[100]; 
  Stroka : string;  
  
  Function FreeO(x1 : EXO): boolean;
  Begin
    FreeO := (x1 = Nil);
  End;
 
  Function FreeOFul(x1 : EXOFul): boolean;
  Begin
    FreeOFul := (x1 = Nil);
  End;
 
  Procedure writeO(Var BeginO, EndO : EXO; c : String[30]);
  Var
    u : EXO;
  Begin
    new(u);
    u^.Data := c;
    u^.Next := Nil;
    if BeginO = Nil {проверяем, пуста ли очередь}
      then
        BeginO := u {ставим указатель начала очереди на первый созданный элемент}
      else
        EndO^.Next := u; {ставим созданный элемент в конец очереди}
    EndO := u; {переносим указатель конца очереди на последний элемент}
  End;
 
  Procedure writeOFull(Var BeginO, EndO : EXOFul; F,N,N2 : String[30]; C:String[100]);
  Var
    u : EXOFul;
  Begin
    new(u);
    u^.Fam := F;    
    u^.Name := N;    
    u^.Name2 := N2;    
    u^.Com := C;    
    u^.Next := Nil;
    if BeginO = Nil {проверяем, пуста ли очередь}
      then
        BeginO := u {ставим указатель начала очереди на первый созданный элемент}
      else
        EndO^.Next := u; {ставим созданный элемент в конец очереди}
    EndO := u; {переносим указатель конца очереди на последний элемент}
  End;
 
 
  Procedure readO(Var BeginO : EXO; Var c : String[30]);
  Var
    u : EXO;
  Begin
    if FreeO(BeginO)
      then
        writeln('Очередь пуста')
      else
        begin
          c := BeginO^.Data; {считываем искомое значение в переменную с}
          u := BeginO; {ставим промежуточный указатель на первый элемент очереди}
          BeginO := BeginO^.Next;{указатель начала переносим на следующий элемент}
          dispose(u); {освобождаем память, занятую уже ненужным первым элементом}
        end;
  End;
 
  Procedure readOFul(Var BeginO : EXOFul; Var F,N,N2 : String[30]; Var C:String[100]);
  Var
    u : EXOFul;
  Begin
    if FreeOFul(BeginO)
      then
        writeln('Очередь пуста')
      else
        begin
          F := BeginO^.Fam;
          N := BeginO^.Name;
          N2 := BeginO^.Name2;
          u := BeginO; {ставим промежуточный указатель на первый элемент очереди}
          BeginO := BeginO^.Next;{указатель начала переносим на следующий элемент}
          dispose(u); {освобождаем память, занятую уже ненужным первым элементом}
        end;
  End;
  
  
begin
  BF := nil; EF := nil;
  BN := nil; EN := nil; 
  BN2 := nil; EN2 := nil;
  BFul := nil; EFul := nil;
        
  write('Введите число элементов в очередях:'); readln(n);
  for i:=1 to n do begin
    write(i, ' введите фамилию: '); readln(fam);
    writeO(BF, EF, fam);
    write(i, ' введите имя: '); readln(name);
    writeO(BN, EN, name);
    write(i, ' введите отчество: '); readln(name2);
    writeO(BN2, EN2, name2);
  end;
        
  for i:=1 to n do begin
    readO(BF, fam); readO(BN, name); readO(BN2, name2);
    write(i, ' Для ', fam, ' ', name, ' ', name2, ' введите комментарий: '); readln(com);
    writeOFull(BFul, EFul, fam, name, name2, com);
  end;
 
  writeln;
  writeln('Полученный список:');
  for i:=1 to n do begin
    readOFul(BFul, fam, name, name2, com);
    writeln(i, ' ', fam, ' ', name, ' ', name2, ' ', com);
  end;
  
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.02.2018, 19:27
Ответы с готовыми решениями:

Вывести фамилии, имена и отчества мастеров с высшим образованием и вычислить их средний стаж.
В анкетах сотрудников некоторого учреждения имеются следующие сведения: фамилия, имя, отчество, год рождения, должность (мастер, инженер,...

Рандомно вывести имена, фамилии, отчества.
Я делаю некую БД и хочу чтобы из моего множества рандомно выводились имена,фамилии,отчества.С числовыми данными таких проблем нет,а вот с...

По списку студентов вывести фамилии, имена и отчества юношей
С клавиатуры вводится текст, который представляет собой список студентов группы с указанием фамилии, имени и отчества студента, которые...

2
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
19.02.2018, 19:43
Организовать три очереди с одинаковым количеством элементов
0
0 / 0 / 2
Регистрация: 21.02.2018
Сообщений: 99
21.02.2018, 15:25
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
Program cal;
type
  EXO = ^O;
  O = record
    Data: String[30];
    Next: EXO;
  end;
  
  EXOFul = ^OFul;
  OFul = record
    Fam: String[30];
    Name: String[30];
    Name2: String[30];
    Com: String[100];
    Next: EXOFul;
  end;
 
var
  BF, EF, BN, EN, BN2, EN2: EXO;
  BFul, EFul: EXOFul;
  n, i: integer;
  Fam, Name, Name2: String[30];
  Com: String[100];
  Stroka: string;
 
function FreeO(x1: EXO): boolean;
begin
  FreeO := (x1 = nil);
end;
 
function FreeOFul(x1: EXOFul): boolean;
begin
  FreeOFul := (x1 = nil);
end;
 
procedure writeO(var BeginO, EndO: EXO; c: String[30]);
var
  u: EXO;
begin
  new(u);
  u^.Data := c;
  u^.Next := nil;
  if BeginO = nil {проверяем, пуста ли очередь}
    then
    BeginO := u {ставим указатель начала очереди на первый созданный элемент}
  else
    EndO^.Next := u; {ставим созданный элемент в конец очереди}
  EndO := u; {переносим указатель конца очереди на последний элемент}
end;
 
procedure readO(var BeginO: EXO; var c: String[30]);
var
  u: EXO;
begin
  if FreeO(BeginO)
    then
    writeln('Очередь пуста')
  else
  begin
    c := BeginO^.Data; {считываем искомое значение в переменную с}
    u := BeginO; {ставим промежуточный указатель на первый элемент очереди}
    BeginO := BeginO^.Next;{указатель начала переносим на следующий элемент}
    dispose(u); {освобождаем память, занятую уже ненужным первым элементом}
  end;
end;
 
procedure readOFul(var BeginO: EXOFul; var F, N, N2: String[30]; var C: String[100]);
var
  u: EXOFul;
begin
  if FreeOFul(BeginO)
    then
    writeln('Очередь пуста')
  else
  begin
    F := BeginO^.Fam;
    N := BeginO^.Name;
    N2 := BeginO^.Name2;
    C := BeginO^.Com;
    u := BeginO; {ставим промежуточный указатель на первый элемент очереди}
    BeginO := BeginO^.Next;{указатель начала переносим на следующий элемент}
    dispose(u); {освобождаем память, занятую уже ненужным первым элементом}
  end;
end;
 
procedure writeOFull(var BeginO, EndO: EXOFul; var BF, BN, BN2: EXO; i: integer);
var
  u: EXOFul;
  Fam, Name, Name2: String[30];
  com: String[100];
begin
  readO(BF, fam); // читаем элемент из очереди 1 фимилии
  readO(BN, name); // читаем элемент из очереди 2 имена
  readO(BN2, name2); // читаем элемент из очереди 3 отчества
  write(i, ' Для ', fam, ' ', name, ' ', name2, ' введите комментарий: ');
  readln(com);
 
  new(u); // сосзадём новый элемент типа EXOFul и записываем в него считанные из очередей данные
  u^.Fam := fam;
  u^.Name := name;
  u^.Name2 := name2;
  u^.Com := com;
  u^.Next := nil;
  if BeginO = nil then{проверяем, пуста ли очередь}
    BeginO := u {ставим указатель начала очереди на первый созданный элемент}
  else
    EndO^.Next := u; {ставим созданный элемент в конец очереди}
  EndO := u; {переносим указатель конца очереди на последний элемент}
end;
 
begin
  BF := nil;EF := nil;
  BN := nil;EN := nil;
  BN2 := nil;EN2 := nil;
  BFul := nil;EFul := nil;
  
  write('Введите число элементов в очередях:');readln(n);
  for i := 1 to n do 
  begin
    // заполняем три очереди данными
    write(i, ' введите фамилию: ');readln(fam);
    writeO(BF, EF, fam); // очередь 1 фамилий
    write(i, ' введите имя: ');readln(name);
    writeO(BN, EN, name); // очередь 2 имён
    write(i, ' введите отчество: ');readln(name2);
    writeO(BN2, EN2, name2); // очередь 3 отчеств
  end;
  
  for i := 1 to n do 
  begin
    writeOFull(BFul, EFul, BF, BN, BN2, i);
  end;
  
  writeln;
  writeln('Полученный список:');
  for i := 1 to n do 
  begin
    readOFul(BFul, fam, name, name2, com);
    writeln(i, ' ', fam, ' ', name, ' ', name2, ' ', com);
  end;
  
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2018, 15:25
Помогаю со студенческими работами здесь

Вывести фамилии людей, живущих в разных городах по одинаковым адресам или сообщить, что таких людей нет
Задача:В файле содержаться адреса n человек. Вывести фамилии людей, живущих в разных городах по одинаковым адресам или сообщить, что таких...

Вывести фамилии, имена и отчества и средние баллы студентов, не получающих стипендии
1) Вывести фамилии,имена и отчества и средние баллы студентов, не получающих степендию

Вывести фамилии, имена и отчества всех студентов мужского пола, старших 18 лет
вывести фамилии, имена и отчества всех студентов мужского пола, старших 18 лет. Должна вводиться информация о студентах(фамилии,...

Организовать три очереди с одинаковым количеством элементов
Организовать три очереди с одинаковым количеством элементов, содержащие соответствено имена, отчества и фамилии людей. Составьте очередь из...

В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы
В списке, содержащем фамилии, имена и отчества студентов группы, заменить имена и отчества на инициалы. Напечатать полученный список. (В...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru