Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Ivan_Shakal
1 / 1 / 0
Регистрация: 05.12.2014
Сообщений: 22
#1

Подкоректировать программу

12.12.2014, 11:42. Просмотров 140. Ответов 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
type
    TAbon = record
        fam : String[25];
        adres : String[75];
        tel : String[15];
    end;
    TFile = File Of TAbon;
 
var
    a : TAbon;
    f : TFile;
    i, n : Byte;
 
function Min(x, y : Byte) : Byte; //для нахождения минимума
begin
    if (x < y) then
        y := x;
    Min := y;
end;
 
procedure Swap(var x, y : TAbon); //процедура, меняющая местами два экземпляра
var
    z : TAbon;
begin
    z := x;
    x := y;
    y := z;
end;
 
procedure Sort(var f : TFile; const n : Byte);
var
    arr : Array[1..255] Of TAbon; //временный массив абонентов
    i, j, k : Byte;
    same : Boolean;
begin
    Close(f); Reset(f); //открываем на чтение
    for i := 1 to n do
        Read(f, arr[i]); //считываем
    for i := 2 to n do //сортировка пузырьком с дополнением по анализу строк
    begin
        for j := n downto i do
        begin
            same := True; //инициализируем и принимаем, что две строки изначально одинаковы
            for k := 1 to Min(Length(arr[j].fam), Length(arr[j - 1].fam)) do //по всей длине меньшей строки (чтоб за границу не выйти)
                if (arr[j].fam[k] <> arr[j - 1].fam[k]) then //если строки до этого момента были одинаковы и текущие символы различны
                begin
                    same := False; //помечаем, что строки разные
                    if (arr[j].fam[k] < arr[j - 1].fam[k]) then //проверяем, нужно ли менять местами
                    begin
                        Swap(arr[j], arr[j - 1]); //меняем
                        Break; //заканчиваем сравнение строк
                    end;
                end;
            if same And (Length(arr[j].fam) < Length(arr[j - 1].fam)) then //если рассматриваемые строки одинаковы (1234 и 123 будут, ибо в цикле выше мы рассматривали только по три символа) и длина различна ("Петров" должен стоять выше, чем "Петрова", но не наоборот)
                Swap(arr[j], arr[j - 1]); //меняем местами
        end;
    end;
    Close(f); ReWrite(f);
    for i := 1 to n do
        Write(f, arr[i]);
    Close(f);
end;
 
begin
    Write('n='); ReadLn(n); //кол-во абонентов
    Assign(f, 'f.dat'); ReWrite(f); //открываем на перезапись
    for i := 1 to n do //цикл внесения в бд абонентов
    begin
        with a do
        begin
            Write('fam: '); ReadLn(fam);
            Write('adres: '); ReadLn(adres);
            Write('tel: '); ReadLn(tel);
        end;
        Write(f, a);
    end;
    Sort(f, FileSize(f)); Reset(f);
    WriteLn; WriteLn;
    while Not(Eof(f)) do //вывод сортированного перечня
    begin
        Read(f, a);
        with a do
        begin
            WriteLn('fam: ', fam);
            WriteLn('   adres: ', adres);
            WriteLn('   tel: ', tel);
        end;
    end;
    Close(f);
end.

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

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2014, 11:42
Ответы с готовыми решениями:

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

подкоректировать (с++)
Здравствуйте!!! Задача такая! Вводится дата, месяц, год. Нужно посчитать дни с...

Подкоректировать Функцию
ВСЕМ ПРИВЕТ Написать функцию, которая принимает два параметра: основание...

Список, подкоректировать
Вообщем вот программа, мне в ней нужно заменить все да на нет. проблема в том...

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

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2014, 11:42

нужно подкоректировать онлайн чат
Написал онлайн чат, но когда пишу в нем сообщение текст не выводится, что...

Немного подкоректировать вывод данных Tasm
Помогите с такой проблемой. Есть код на тасме. он выводит индексы второго и...

Как подкоректировать мой код что бы оно заменяло повторяющиеся символы на цифыр
#include &quot;dialog.h&quot; #include &quot;ui_dialog.h&quot; #include &lt;QTextCodec&gt; #include...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru