Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Komaa

Ведомость студентов

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

Студворк — интернет-сервис помощи студентам
Нужно составить ведомость студентов, вводятся фамилии студентов их надо отсортировать пирамидальной или сортировкой деревом. и вывести на экран. начало есть, а дальше незнаю как вывести в отдельном окне.У меня получается все в одном.Может кто поможет?


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
const
  maxCount = 100; 
 
type
  TSurname = string[30]; 
  mas = array[0..maxCount] of TSurname; 
var
  a: mas; }
 
procedure sort(var a: mas; count: integer);
 
 
procedure DownHeap(index, Count: integer; Current: TSurname);
  { Функция пробегает по пирамиде восстанавливая ее
    Также используется для изначального создания пирамиды
    Использование: Передать номер следующего элемента в index
    Процедура пробежит по всем потомкам и найдет нужное место для следующего элемента}
  var
    Child: Integer;
  begin
    {Начиная от индекса index ищем место для вставки нового элемента}
    while index < Count div 2 do begin
      {Берем первый индекс потомка от узла с индексом в массиве index}
      Child := (index+1)*2-1;
      {Берем индекс наибольшего из потомков для index}
      if (Child < Count-1) and (a[Child] < a[Child+1]) then
        Child:=Child+1;
      {Если элемент для вставки больше двух потомков для узла с номером в массиве index,
        то выходим и вставляем его на это место}
      if Current >= a[Child] then
        break;
      {Ставим на место index максимального из потомков}
      a[index] := a[Child];
      {Далее пытаемся вставлять в индекс index}
      index := Child;
    end;
    {Здесь мы оказываемся если Current >= a[index*2+1] и Current >= a[index*2+2]
      либо index >= Count div 2 что означает что на данном месте в массиве находится лист дерева}
    a[index] := Current;
  end;
 
 
{Основная функция}
var
  i: integer;
  Current: TSurname;
begin
  {Собираем пирамиду}
  { Начиная от предков листов вставляем элементы в дерево тем самым получаем
    сначала сортирующие деревья состоящие из корня и не одного или двух потомков
    далее сортирующие деревья высоты 3 и т.д. и при вставке последнего элемента
    a[0] получаем сортирующее дерево}
  for i := (Count div 2)-1 downto 0 do
    DownHeap(i, Count, a[i]);
  {Пирамида собрана. Теперь сортируем}
  for i := Count-1 downto 0 do
  begin
    { перемещаем верхушку в начало отсортированного списка
      т.к. в корне дерева находится максимальный элемент }
    Current := a[i];
    a[i] := a[0];
    { вставляем элемент с a[i] в дерево получая сортирующее дерево
      с общим числом узлов i штук}
    DownHeap(0, i, Current);
  end;
end;
 
{ Создание рассписания для группы с именем s }
procedure CreateTimetable(s: string);
var
  count: integer; 
  i: integer;
  sub: string; 
  s2: string; 
begin
  writeln;writeln;writeln;
  writeln('Zapolnenie rasspisania dlia gruppi ', s);
  write('Vvedite nazvanie predmeta: ');
  readln(sub);
  write('Vvedite tip otchetnosti (examen, zachet): ');
  readln(s2);
  while (s2 <> 'examen') and (s2 <> 'zachet') do
  begin
    writeln('Vvedeno ne dopustimoe znachenie');
    write('Vvedite tip otchetnosti (examen, zachet): ');
    readln(s2);
  end;
  write('Vvedite kolichestvo chelovek v gruppe: ');
  readln(count);
  while count <= 0 do
  begin
    writeln('Kolichestvo chelovek v gruppe dolzno bit > 0'); 
    write('Vvedite kolichestvo chelovek v gruppe: ');
    readln(count);
  end;
    for i := 0 to count - 1 do
  begin
    writeln;
    write('Vvedite familiu studenta nomer ', i+1, ': ');
    readln(a[i]);
  end;
  {Сортировка массива файмилий}
  sort(a, count);
  writeln;writeln;writeln;
  writeln('Gruppa ', s);
  writeln('Predmet: ', sub);
  writeln('Otchetnost: ', s2);
  writeln('Spisok studentov gruppi: ', s);
  writeln;
 
  for i := 0 to count - 1 do
    writeln(a[i]); 
end;
 
 
begin
  CreateTimetable('1 kurs - ZhurFak 1 -5-09');
  CreateTimetable('2 kurs - ZhurFak 2 -5-08');
  CreateTimetable('3 kurs - ZhurFak 3 -5-07');
  readln;
end.
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.03.2010, 14:51
Ответы с готовыми решениями:

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

Задача-ведомость за зарплату
Задача-ведомость за зарплату представлена в виде таблиц, одна содержит фамилии работников цеха,вторая их зарплату за тек.месяц,найти...

Описать тип записи - ведомость о товарах в магазине
описать тип записи - ведомость о товарах в магазине. сформировать масив товаров, которые есть в магазине, составить программу, которая...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.03.2010, 14:51
Помогаю со студенческими работами здесь

Ведомость расходов материалов
Ведомость расходов материалов на строительство содержит данные о наименовании материала,количестве израсходованного материала,стоимости...

Опишите, используя структурированные записи, экзаменационную ведомость, в которой проставляются оценки за четыре экзамена
Люди добрые, помогите с задачами! Пожалуйста! Очень надо, зачет скоро! 3) Опишите, используя структурированные записи,...

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

Дана ведомость успеваемости студентов
Дана ведомость успеваемости студентов (Ф.И.О. и пять оценок), вывести на экран фамилии студентов, у которых средний балл «4» и выше.

Массив студентов первого курса. Вывести процент студентов, сдавших все экзамены на 4, 5
Добрый вечер. Задание следующее: В массиве содержится информация о сдаче зимней сессии студентами первого курса. Сведения о каждом...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru