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

Робота с файлами

07.12.2014, 23:14. Просмотров 886. Ответов 1
Метки нет (Все метки)

В исходном файле имеется набор записей вида:
Фамилия
Полный адрес
Домашний телефон
1)Сделать программу которая формирует исходный файл.
2)Сделать процедуру, которая будет выводить на экран по имени (в порядке алфавита) полные данные про человека.
Заранее благодарю!

Добавлено через 5 часов 53 минуты
Актуально!

Добавлено через 1 час 47 минут
ап ап
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.12.2014, 23:14
Ответы с готовыми решениями:

Изобразить идущего робота
ЗДРАСТВУЙТЕ! ПОМОГИТЕ ПОЖАЛУЙСТА НАПИСАТЬ ПРОГУ ДЛЯ ЗАДАЧКИ: СОСТАВИТЬ...

Тема: Робота з кількома масивами
Дан цілочисельний масив A розміру N (≤ 15). Переписати в новий ...

Нарисовать робота на языке Паскаль
помогите пожалуйста нарисовать робота на языке паскаль!

Задачи робота
Помогите еще 2 задачи, срочно надо

Задачи робота
Помогите пожалуйста решить

1
JokeR.BY
CAPITAL OF ROCK!
1278 / 705 / 982
Регистрация: 03.03.2010
Сообщений: 2,284
Завершенные тесты: 2
08.12.2014, 00:47 2
Лучший ответ Сообщение было отмечено Ivan_Shakal как решение

Решение

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.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2014, 00:47

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

Алгоритм для робота
Добрый вечер. Дали задание: написать алгоритм для робота. Я написал, а мне...

Усовершенствовать коды робота и чертежника
Доброго времени суток. Нужна ваша помощь. У меня есть 2 кода: робот и...


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

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

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