• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Создание и преобразование файлов. Файлы прямого доступа

Rexton62

Ученик
Регистрация
21 Май 2017
Сообщения
1
Реакции
0
Баллы
0
Создание и преобразование файлов. Файлы прямого доступа

Задание: Сформировать файл, состоящий из пяти записей, каждая из которых содержит фамилию любимого вами актера и название фильма, в котором он снимался. Составить программу определения названия фильма по фамилии актера, который в нем снимался.

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

Пожалуйста, помоги сделать программу в Паскале.
Ладно, "помогаю". Хотя решительно никаких, кроме Вашей лени, проблем тут не усматриваю. Имя и адрес файла, разумеется, поправьте на свой вкус. Равно как и список актёров и фильмов.
Код:
Type
 Infor = Record
          Actor, Film:String;
         end;

Const
 Ar:Array[1..5] of Infor=((Actor:         'Gabin'; Film:'Le Chat'),
                          (Actor:'Schwarzenegger'; Film:'Terminator 2'),
                          (Actor:         'Loren'; Film:'The Key'),
                          (Actor:         'Delon'; Film:'Borsalino'),
                          (Actor:       'Deneuve'; Film:'Le Choc'));

Var
 f:File of Infor;
 i:Byte;
 S:String;
 Inf:Infor;

Begin
 Assign(f,'D:\xxx');
 Rewrite(f);
 for i:=1 to 5 do write(f,Ar[i]);
 Close(f);
 Write('Enter the actor: ');
 Readln(S);
 Reset(f);
 Repeat
  Read(f,Inf);
 Until Inf.Actor=S;
 Close(f);
 Writeln('Film: '+Inf.Film);
 Readln
End.
 
Ах да, пардон: не разглядел, что требуется прямой доступ (хотя на кой пёс, если всё равно идёт последовательный перебор?). Исправил. Заодно вставил защиту от вылета при неверном вводе фамилии актёра.
Код:
Type
 Infor = Record
          Actor, Film:String;
         end;

Const
 Ar:Array[1..5] of Infor=((Actor:         'Gabin'; Film:'Le Chat'),
                          (Actor:'Schwarzenegger'; Film:'Terminator 2'),
                          (Actor:         'Loren'; Film:'The Key'),
                          (Actor:         'Delon'; Film:'Borsalino'),
                          (Actor:       'Deneuve'; Film:'Le Choc'));

Var
 f:File of Infor;
 i:Integer;
 S:String;
 Inf:Infor;

Begin
 Assign(f,'D:\xxx');
 Rewrite(f);
 for i:=1 to 5 do write(f,Ar[i]);
 Close(f);
 Write('Enter the actor: ');
 Readln(S);
 Reset(f);
 i:=-1;
 Repeat
  Inc(i);
  Seek(f,i);
  Read(f,Inf);
 Until (Inf.Actor=S) or (i=4);
 Close(f);
 If (i=4) and (Inf.Actor<>S) then
  Writeln('No such film!')
 else
  Writeln('Film: '+Inf.Film);
 Readln
End.
 
Назад
Сверху