С Новым годом! Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 26.09.2017
Сообщений: 62

Организовать три очереди с одинаковым количеством элементов

15.11.2017, 15:15. Показов 699. Ответов 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
Program MordovskihK;
Type
  EXO = ^O;
  O = record
       Data : real;
       Next : EXO;
  End;
Var
  i, a, b : Real;
  Min, Vibr, Other, EndMin, EndVibr, EndOther : EXO;
  f : File of real;
  Stroka : string;
Procedure writeO(Var BeginO, EndO : EXO; c : real);
  . . .
Procedure Print(u : EXO);
  . . .
Begin
  Min := Nil;
  Vibr := Nil;
  Other := Nil;
  EndMin := Nil;
  EndVibr := Nil;
  EndOther := Nil;
  writeln ('Введите имя файла >');
  readln(Stroka);
  writeln ('Введите промежуток >');
  readln(a, b);
  assign(f, Stroka);
  reset(f);
  while not Eof(f) do
    begin
      read(f, i);
        if i<a
          then
            writeO(Min, EndMin, i)
          else
            if (i>=a) and (i<=b)
              then
                writeO(Vibr, EndVibr, i)
              else
                writeO(Other, EndOther, i)
    end;
  close(f);
  writeln('Числа, меньшие ', а);
  Print(Min);
  writeln('Числа из промежутка [', а, ',' , b, ']');
  Print(Vibr);
  writeln('Числа, большие ', b);
  Print(Other);
End.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
15.11.2017, 15:15
Ответы с готовыми решениями:

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

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

Организовать вещественные файлы А и В с одинаковым количеством компонентов. Получить файл С, компоненты которого определяются по правилу
Помогите пожалуйста! Организовать вещественные файлы А и В с одинаковым количеством компонентов. Получить файл С, компоненты которого...

2
0 / 0 / 0
Регистрация: 26.09.2017
Сообщений: 62
24.11.2017, 12:02  [ТС]
а что не так?
0
Эксперт Pascal/Delphi
6812 / 4568 / 4820
Регистрация: 05.06.2014
Сообщений: 22,434
27.11.2017, 11:01
Взято отсюда:
Динамические структуры данных (списки, очереди, стеки, деревья)

Цитата Сообщение от Noname1331 Посмотреть сообщение
Организовать три очереди с одинаковым количеством элементов,
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
program Ochered3;
 
const
  n = 3;
 
type
  Tinf = string;{тип данных, который будет храниться в элементе очереди}
  List = ^TList;{Указатель на элемент типа TList}
  TList = record {А это наименование нашего типа "запись" обычно динамические структуры описываются через запись}
    data: TInf;  {данные, хранимые в элементе}
    next: List;   {указатель на следующий элемент}
  end;
 
{Процедура добавляющая элемент в очередь}
procedure AddElem(var stek1: List; znach1: TInf);
var
  tmp: List;
begin
  New(tmp); {выделяем в памяти место для нового элемента}
  tmp^.next := stek1;  {указатель на следующий элемент "направляем" на хвост очереди}
  tmp^.data := znach1; {добавляем к элементу данные}
  stek1 := tmp; {хвост очереди изменился, надо перенести и указатели на неё}
end;
 
{Процедура вывода очереди начиная с хвоста}
procedure Print(stek1: List);
begin
  if stek1 = nil then {проверка на пустоту очереди}
  begin
    writeln('Очередь пуста.');
    exit;
  end;
  while stek1 <> nil do {пока указатель stek1 не станет указывать в пустоту}
  begin{а это произойдёт как только он перейдёт по ссылке последнего элемента}
    Write(stek1^.data, ' '); {выводить данне}
    stek1 := stek1^.next{и переносить указатель в начало очереди}
  end;
end;
 
{Процедура освобождения памяти занятой очередью}
procedure FreeStek(stek1: List);
var
  tmp: List;
begin
  while stek1 <> nil do {пока stek1 не станет указывать в "пустоту" делать}
  begin
    tmp := stek1; {указатель tmp направим на хвост очереди}
    stek1 := stek1^.next; {хвост очереди перенесём на следующий за данным элементом элемент}
    Dispose(tmp);{освободим память занятую под удаляемый элемент}
  end;
end;
 
var
  Stk1, {переменная, которая всегда будет указывать на "хвост" очереди}
  Stk2, Stk3: List; {рабочая переменная}
  znach: Tinf; {данные вводимые пользователем}
  i: integer;
 
begin
  Stk1 := nil;
  Stk2 := nil;
  Stk3 := nil;
  for i := 1 to n do 
  begin
    write('Введите значение добавляемого элемента для 1-й очереди: ');
    readln(znach); {считываем значение добавляемого нового элемент}
    AddElem(Stk1, znach);
  end;
  for i := 1 to n do 
  begin
    write('Введите значение добавляемого элемента для 2-й очереди: ');
    readln(znach); {считываем значение добавляемого нового элемент}
    AddElem(Stk2, znach);
  end;
  for i := 1 to n do 
  begin
    write('Введите значение добавляемого элемента для 3-й очереди: ');
    readln(znach); {считываем значение добавляемого нового элемент}
    AddElem(Stk3, znach);
  end;
  
  Writeln('Очередь № 1:');
  Print(Stk1); {вызов процедуры вывода}
  Writeln;
  Writeln('Очередь № 2:');
  Print(Stk2); {вызов процедуры вывода}
  Writeln;
  Writeln('Очередь № 3:');
  Print(Stk3); {вызов процедуры вывода}
  FreeStek(Stk1); {освобождаем память занятую очередью}
  FreeStek(Stk2); {освобождаем память занятую очередью}
  FreeStek(Stk3); {освобождаем память занятую очередью}
end.
Цитата Сообщение от Noname1331 Посмотреть сообщение
запросив какую-то дополнительную информацию
Какую?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.11.2017, 11:01
Помогаю со студенческими работами здесь

Создать очередь из целых чисел. Определить среднее значение элементов очереди. Организовать просмотр данных очереди
Создать очередь из целых чисел. Определить среднее значение элементов очереди. Организовать просмотр данных очереди.

Сколько соответствующих элементов двух последовательностей с одинаковым количеством элементов совпадают?
8. Сколько соответствующих элементов двух последовательностей с одинаковым количеством элементов совпадают? Массивы при выполнении...

Определить, есть ли в данном массиве столбец с одинаковым количеством положительных и отрицательных элементов
Дан двумерный массив размером n*m, заполненный случайными числами. Определить, есть ли в данном массиве столбец, в котором равное...

Вывести на экран номер столбца с одинаковым количеством положительных и отрицательных элементов (функция)
Дан двумерный массив размерности M на N. Вывести на экран номер столбца с одинаковым количеством положительных и отрицательных элементов,...

Из введенных целых чисел сформировать два списка типа стек с одинаковым количеством элементов.
Из введенных целых чисел сформировать два списка типа стек с одинаковым количеством элементов. Разработать функцию, какая соединает два...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru