Имеются сведения о книгах, содержащихся в библиотеке. Сведения о каждой из книг — это фамилия автора, название и год издания.
а) Получить название книг данного автора, изданных с 1960 г.
б) Определить, имеется ли книга, содержащая в своем название слово «информатика». Вывести сведения обо всех таких книгах
в) Вывести сведения о книгах, которые имеют несколько изданий (автор и названия повторяются, а годы издания разные).
спросил 18 Дек, 18 от cevka в категории школьный раздел


решение вопроса

+7
а)
uses crt;
type fkniga=record
              avtor:string[90];
              name:string[30];
              god:1000..2050;
             end;
var ff:file of fkniga;kl:byte;  imya:string;
procedure pr_sozid(ff:file of fkniga);
var i,n:byte; book:fkniga;
begin
  rewrite(ff);
  writeln('Количество создаваемых записей?');
  readln(n);
  for i:=1 to n do
  with book do
  begin
    writeln('Введите автора книги');
    readln(avtor);
    writeln('Введите название книги');
    readln(name);
    writeln('Введите год издания книги');
    readln(god);
    write(ff,book);
    ClrScr;
  end;
  writeln('Создание завершено');
end;
procedure pr_poisk(ff:file of fkniga);
var book:fkniga;avtor1:string;
begin
  reset(ff);
  writeln('Поиск книги с годом издания- 1960.');
  writeln('Введите автора для поиска');
  readln(avtor1);
  writeln('Поиск книги автора-',avtor1,' года издания- 1960.');
  while not eof(ff) do
  begin
    read(ff,book);
    if (book.god=1960)and(book.avtor=avtor1) then begin
    writeln('Информация о книге');
    writeln('"',book.name,'"');
    writeln('Автор книги- ',book.avtor);
    writeln('Год издания- ',book.god);
                          end;
  end;
end;
begin
  writeln('Введите имя файла');
  readln(imya);
  assign(ff,imya);
  writeln('Вы хотите');
  repeat
  writeln('1- Создать файл?');
  writeln('2- Найти запись в файле');
  readln(kl);
  until kl in [1,2];
  case kl of
  1:pr_sozid(ff);
  2:pr_poisk(ff);
  end;
  close(ff);
end.

б)
type
    TBook = record
        author : String[30];
        name : String[50];
        year : 1950..2014;
    end;
var
    f : File Of TBook;
    book : TBook;
begin
    Assign(f, 'BiBl'); Reset(f);
    while Not(Eof(f)) do
    begin
        Read(f, book);
        with book do
        begin
            WriteLn(name);
            if (name = 'Информатика') then
                WriteLn(author, ' ', year);
        end;
    end;
    Close(f);
end.
ответил 18 Дек, 18 от Olenka

Связанных вопросов не найдено

Обучайтесь и развивайтесь всесторонне вместе с нами, делитесь знаниями и накопленным опытом, расширяйте границы знаний и ваших умений.

Популярное на сайте:

Как быстро выучить стихотворение наизусть? Запоминание стихов является стандартным заданием во многих школах. 

Как научится читать по диагонали? Скорость чтения зависит от скорости восприятия каждого отдельного слова в тексте. 

Как быстро и эффективно исправить почерк?  Люди часто предполагают, что каллиграфия и почерк являются синонимами, но это не так.

Как научится говорить грамотно и правильно? Общение на хорошем, уверенном и естественном русском языке является достижимой целью.