пожалуста помогите очень нужно решить.
создайте файл каталог книг. занесите в отдельный файл все произведения заданного пользователем автора. структура записи файла каталог книг: автор (40 знаков), название (80 знаков), год издания (4 знака), специальность (40 знаков). записи упорядочены по фамилиям автора.
заранее огромное спасибо
ФАЙЛЫ-Помогите пожалуста!!!!!!
Модераторы: Хыиуду, MOTOCoder, Medved, dr.Jekill
Что за файл, какая среда разработки?
Если Паскаль - проще всего так (fin - входной файл, fout - выходной, s - строка, author - строка с автором)
Если Паскаль - проще всего так (fin - входной файл, fout - выходной, s - строка, author - строка с автором)
Код: Выделить всё
readln(fin,s);
while pos(author,copy(s,1,40))=0 do
readln(f,s);
repeat
writeln(fout,s);
readln(fin,s);
until (pos(author,copy(s,1,40))=0) or eof(fin);
if pos(author,copy(s,1,40))<>0 then
writeln(fout,s);
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
среда разработки - турбо паскаль. если можно напишите поподробнее, очень нужно.
весь основной код я привел. остальное (описание переменных, открытие и закрытие файлов) - школьный курс.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
вот условие:
создайте файл каталог книг. занесите в отдельный файл все произведения заданного пользователем автора. структура записи файла каталог книг: автор (40 знаков), название (80 знаков), год издания (4 знака), специальность (40 знаков). записи упорядочены по фамилиям автора.
вот текст проги:
А как преобразовать эту прогу чтобы записи были упорядочены по фамилиям авторов????
создайте файл каталог книг. занесите в отдельный файл все произведения заданного пользователем автора. структура записи файла каталог книг: автор (40 знаков), название (80 знаков), год издания (4 знака), специальность (40 знаков). записи упорядочены по фамилиям автора.
вот текст проги:
Код: Выделить всё
program zadacha;
type cat=record
avtor:string[40];
nazv:string[80];
god:string[4];
spec:string[40];
end;
var s1,s2:string;
i,n:integer;
f1,f2:text;
d:array [1..100] of cat;
begin writeln('vvedite n');
readln(n);
writeln('vvedite put k 1-my faily');
readln(s1);
assign(f1,s1);
writeln('vvedite put k 2-my faily');
readln(s2);
assign(f2,s2);
rewrite(f1);
for I:=1 to n do
with d[i] do
begin writeln('vvesti avtora');
readln(avtor);
writeln(f1,avtor);
writeln('vvesti nazvanie');
readln(nazv);
writeln(f1,nazv);
writeln('vvesti god');
readln(god);
writeln(f1,god);
writeln('vvesti special');
readln(spec);
writeln(f1,spec);
end;
close(f1);
reset(f1);
rewrite(f2);
writeln('введите автора для поиска ');
readln(s1);
while not(eof(f1)) do
for i:=1 to n do
begin readln(f1,s2);
if s1=s2 then writeln(f2,d[i].nazv);
end;
close(f1);
close(f2);
end.
В приведенном примере - никак, поскольку здесь сделано последовательное считывание С КЛАВИАТУРЫ в ФАЙЛ данных о книге. По идее файл должен формироваться ручками до начала работы программы. А считывание пойдет так
for i:=1 to n do
begin
readln(f,s);
d.avtor:=copy(s,1,40);
d.nazv=copy(s,41,80);
d.god=copy(s,121,4);
d.spec=copy(s,125,40:
end;
А потом отсортировать хотя бы тем же методом пузырька
for i:=1 to n do
begin
readln(f,s);
d.avtor:=copy(s,1,40);
d.nazv=copy(s,41,80);
d.god=copy(s,121,4);
d.spec=copy(s,125,40:
end;
А потом отсортировать хотя бы тем же методом пузырька
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.