Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 25.08.2015
Сообщений: 3

Вывод отсортированного списка на экран

04.12.2015, 18:50. Показов 745. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Задание программы: составить список упорядоченный по фамилии и вывести его на экран(+еще много но с ними пока проблем нет) . С созданием вроде все получилось а вывод как то не очень хорошо работает. Если ввожу например фамилию на Б а потом на В то при отображении выводится только В, если же далее вводить фамилию на А то при выводе выводится А,Б,В. но если ввести данные на АБ то при выводе получается следующая запись: АБ,Б,В. Я уже не знаю что сделать... возможно что то забыл передать или записать в ^.next какой либо параметр. Помогите пожалуйста
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
program kyrs;
 
type
  ykazatelb = ^ykazateli;
  ykazateli = record
    fam: string[10];
    staz: byte;
    oklad, god_rod: integer;
    next: ykazatelb;
  end;
 
var
  fail: text;
  first, data: ykazatelb;
  a: char;
 
procedure dobavl(var fail: text; var first, data: ykazatelb);
var
  first_adres, sekond_adres: ykazatelb;
  fam: string[10];
  staz: byte;
  oklad, god_rod: integer;
begin
  writeln;
  writeln('введите фамилию');
  readln(fam);
  writeln(fail, fam);
  writeln('введите стаж работы');
  readln(staz);
  writeln(fail, staz);
  writeln('введите оклад');
  readln(oklad);
  writeln(fail, oklad);
  writeln('введите год рождения сотрудника');
  readln(god_rod);
  writeln(fail, god_rod);
  new(data);
  data^.fam := fam;
  data^.staz := staz;
  data^.oklad := oklad;
  data^.god_rod := god_rod;
  data^.next := nil;
  if first = nil then {Если список пуст, то вставляем первый элемент}
    first := data
    else  {Если список не пуст, то просматриваем его до тех пор, пока не отыщется подходящее место для data^ или не закончится список}
  begin
    first_adres := first;
    sekond_adres := first;
    while (sekond_adres <> nil) and (sekond_adres^.fam <= fam) do
    begin
      first_adres := sekond_adres;
      sekond_adres := sekond_adres^.next;
    end;
    if sekond_adres = nil then {Пройден весь список}
      first_adres^.next := data {Элемент добавляется в конец списка}
          else {Пройден не весь список}
    begin
      data^.next := sekond_adres; 
      if sekond_adres = first then
        first := data {Вставляем в начало списка}
      else
        data^.next := data;{Вставляем внутрь списка}
    end;
  end;
  readln;
end;
 
procedure pokaz(data: ykazatelb);{Распечатка списка}
begin
  while data <> nil do
  begin
    Writeln(' | ', data^.fam, ' | ', data^.staz, ' | ', data^.oklad, ' | ', data^.god_rod, ' | ');
    data := data^.next;
  end;
  Writeln;
end;
 
begin
  assign(fail, 'fail.txt');
  rewrite(fail);
  a := '0';
  first := nil;
  while a <> '3' do
  begin
    writeln;
    writeln('1 ввод');
    writeln('2 показать');
    writeln('3 выход');
    readln(a);
    case a of
      '1': dobavl(fail, first, data);
      '2': pokaz(data)
    end;
  end;
  
  writeln;
  close(fail);
end.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2015, 18:50
Ответы с готовыми решениями:

Заполнение списка и вывод отсортированного списка на экран
нужно Создать список,значения которого равны значениям массива.Создать список,равный отсортированному первому списку. ...

Вывод в текстовый файл списка файлов, отсортированного по дате последнего изменения (начиная с самого старого)
Хотелось бы узнать, какой командой можно выполнить данную операцию. Желательно чтобы вывод был в порядке новизны файлов (сначала файлы,...

Вывод списка на экран с возможностью раскрытия одного из пунктов списка
По разному пытался сформулировать вопрос, но гугл так и не дал мне даже близко чего-то подходящего. Суть такова, что на экран...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.12.2015, 18:50
Помогаю со студенческими работами здесь

Бинарный поиск для отсортированного списка
Привет, возник вопрос по работе и написанию бинарного поиска, написал код. Первый вопрос для чего нужен int key, сам код вот public static...

Создание пилообразной последовательности из отсортированного списка
Имеется некий список, допустим . Помогите пожалуйста написать алгоритм, позволяющий получить из этого списка, что-то вроде , т.е. каждый...

IMAP получения отсортированного списка писем
Всем привет. Стоит такая задача. Надо получить ограниченный список (к примеру, не больше 50) и список этот должен быть отсортирован по...

Операции по редактированию динамического списка, отсортированного по фамилии
Из сформированого списка, упорядоченного по полю Фамилия . Данные вводятся в поля редактирования (Edit1 и Edit2) и нажатием кнопки Добавить...

Ошибка кодировки при выводе оригинального и отсортированного списка
Здравствуйте, уважаемые форумчане! Не могу понять, почему трабла с кодировкой? При выводе оригинального и отсортированного списка...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru