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

Вывести список в отсортированном виде

23.06.2013, 21:06. Показов 1386. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите пож сделать сортировку списка в паскале.
Даны 10 человек (ФИО, пол, год рождения). Вывести список в отсортированном виде.
Список хранится в фале txt.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.06.2013, 21:06
Ответы с готовыми решениями:

Запись чисел из файла 1, и запись в файл 2 в отсортированном виде
Задание: Есть файл 1, в нем находятся числа, нужно их отсортировать по возрастанию и записать в...

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

Вычислить и вывести на экран в виде таблицы значения функции, заданной в виде ряда Тейлора
Вычислить и вывести на экран в виде таблицы значения функции, заданной с помощью ряда Тейлора, ...

Вывести в отсортированном виде список вводимых студентов
Доброе время суток! Помогите разобраться в работе с классами С начало происходит ввод данных...

7
Фрилансер
73 / 73 / 51
Регистрация: 25.10.2011
Сообщений: 317
23.06.2013, 22:07 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
const n=10;
 Type
  massiv = record
    FIO, Pol :string;
    God_rojd: integer;
  end;
  
var 
mas: array [1..n] of massiv;
i:integer;
f:text;
 
procedure Sort;                 //Сортировка методом прямого выбора
var i,k,j,x:integer; x1:massiv;
begin
for i:=1 to n do
begin
k:=i;
x:= mas[i].god_rojd;
x1:=mas[i];
For j:= i+1 to n do
if mas[j].god_rojd < x then
begin
k:=j;
x:= mas[j].god_rojd;
x1:= mas[j]
end;
mas[k]:=mas[i];
mas[i]:=x1
end;
end;
 
procedure read_file;
var s:string;
begin
Assign(f,'Sortirovka.txt');
reset(f);
for i:=1 to n do
begin
readln(f,mas[i].FIO);
readln(f,s); mas[i].god_rojd:=strtoint(s);
readln(f,mas[i].Pol);
end;
close(f);
end;
 
begin
read_file;
Sort;
writeln('Ñîðòèðîâêà ïî ñòàðøèíñòâó');
writeln;
for i:=1 to n do
begin
write(mas[i].god_rojd,' ');
write(mas[i].FIO,' ');
write(mas[i].Pol,' ');
writeln;
end;
 
end.
Sortirovka.txt
1
0 / 0 / 0
Регистрация: 23.06.2013
Сообщений: 5
23.06.2013, 23:02  [ТС] 3
Спасибо большое. А как сделать сортировку по фамилиям?
0
Фрилансер
73 / 73 / 51
Регистрация: 25.10.2011
Сообщений: 317
23.06.2013, 23:40 4
заменить в процедуре Sort mas[i].god_rojd на ord(mas[i].FIO[1])
0
0 / 0 / 0
Регистрация: 23.06.2013
Сообщений: 5
24.06.2013, 01:25  [ТС] 5
Поменял, все заработало, но когда стал менять фамилии в txt перестал сортировать. В чем проблема?
0
0 / 0 / 0
Регистрация: 23.06.2013
Сообщений: 5
24.06.2013, 01:32  [ТС] 6
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
uses crt;
const n=10;
 Type
  massiv = record
    FIO, Pol :string;
    God_rojd: integer;
  end;
 
var
mas: array [1..n] of massiv;
i:integer;
f:text;
 
procedure Sort;                 //Ñîðòèðîâêà ìåòîäîì ïðÿìîãî âûáîðà
var i,k,j,x:integer; x1:massiv;
begin
for i:=1 to n do
begin
k:=i;
x:= ord(mas[i].FIO[1]);
x1:=mas[i];
For j:= i+1 to n do
if ord(mas[i].FIO[1]) < x then
begin
k:=j;
x:= ord(mas[i].FIO[1]);
x1:= mas[j]
end;
mas[k]:=mas[i];
mas[i]:=x1
end;
end;
 
procedure read_file;
var s:string;
begin
Assign(f,'Sortirovka.txt');
reset(f);
for i:=1 to n do
begin
readln(f,mas[i].FIO);
readln(f,s); mas[i].god_rojd:=strtoint(s);
readln(f,mas[i].Pol);
end;
close(f);
end;
 
begin
read_file;
Sort;
writeln('Ñîðòèðîâêà ïî ñòàðøèíñòâó');
writeln;
for i:=1 to n do
begin
write(mas[i].god_rojd,' ');
write(mas[i].FIO,' ');
write(mas[i].Pol,' ');
writeln;
end;
 
end.
Вложения
Тип файла: txt Sortirovka.txt (184 байт, 6 просмотров)
0
Фрилансер
73 / 73 / 51
Регистрация: 25.10.2011
Сообщений: 317
24.06.2013, 12:16 7
ОЙ тупанул немного, вот как должна выглядеть процедура сортировки
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure Sort;
var i,k,j,x:integer; x1:massiv;
begin
for i:=1 to n do
begin
k:=i;
x:= ord(mas[i].FIO[1]);
x1:=mas[i];
For j:= i+1 to n do
if ord(mas[j].FIO[1]) < x then
begin
k:=j;
x:= ord(mas[j].FIO[1]);
x1:= mas[j]
end;
mas[k]:=mas[i];
mas[i]:=x1
end;
end;
1
0 / 0 / 0
Регистрация: 23.06.2013
Сообщений: 5
24.06.2013, 22:25  [ТС] 8
Спасибо большое !!!

 Комментарий модератора 
Если какой-либо пост на форуме показался вам полезным, то вы можете выразить свою благодарность, нажав кнопку "Спасибо" внизу самого поста
0
24.06.2013, 22:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.06.2013, 22:25
Помогаю со студенческими работами здесь

Как вывести БД в отсортированном виде ?
Дана БД: https://www.cyberforum.ru/attachment.php?attachmentid=158776&amp;d=1338803516 как...

Создать класс, который выведет список деловых контактов в отсортированном виде
Помогите мне пожалуйста! У меня все время выводит ошибку &quot;Ссылка на объект не указывает на...

Напечатать отдельно чётные и нечётные числа массива в отсортированном виде
задачка такая, надо отсортировать цифры, и напечатать отдельно четные и нечетные цыфри я...

Вывести список в виде таблицы
Помогите пожалуйста мне с программой. Структуры в С++. Определить структуру student . 1. Вывести...


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

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