Информатика, вопрос задал РОЗИ24 , 2 года назад

Создать файл f, содержащий сведения о книгах. Сведения о каждой из книг – это фамилия автора, название книги и год издания. С помощью другой программы найти все книги данного автора, изданные с 1980 года. Сохранить эту информацию в файле g.

Ответы на вопрос

Ответил danilbin
1
Program primer;
Var f,g:text;
    I,n,k: integer;        S,a,data: string;    Begin
Assign(f,'F.txt');
Assign(g,'G.txt');
rewrite(f);
Writeln('Кол-во книг? ');
readln(n);
for i:=1 to n do begin
writeln('Фамилия автора, название и год издания книги № ',i,' ?');
readln(s);
writeln(f,s);  // в фаил f забиваем данные
end;
close(f);
Writeln('Укажите автора для поиска ');
readln(a);
Rewrite(g);
Reset(f);
For i:=1 to 2 do begin
Readln(f,s);
if (pos(a,s)<>0) then begin  //ищем автора
data:=''; 
for k:=length(s) downto 1 do begin 
          if (s[k]=' ') then begin 
                   data:=data+copy(s,k+1,length(s));        //смотрим дату
                   break;         
         end;             
         end;        
         end;
if (strtoint(data) >= 1980) then writeln(g,s);  //сравниваем дату 
end;
close(f);
close(g);
end.
ABC Pascal

РОЗИ24: только автора книгу и год программа так и не выводит
РОЗИ24: (((
danilbin: Не выводит на экран или в файл g?
РОЗИ24: на экран
danilbin: Это и не предусмотрено, по условию программа должна их только найти и и сохранить с файле g.
РОЗИ24: а где его потом искать, что бы посмотреть? или это тоже не предусмотрено?
danilbin: В файле g
РОЗИ24: а где этот файл находится?
danilbin: В папке в паскалем. Путь не указывал.
РОЗИ24: const n=50;
var х: array [1..n] of integer;
р: integer;
Пусть первые (n-1) элемент массива х упорядочены по неубыванию,
а n-я позиция в этом массиве свободна. Требуется вставить новый элемент р в этот массив с сохранением упорядоченности по неубыванию. Для поиска места вставки для элемента р использовать бинарный поиск.
Новые вопросы