Пожалуста помогите очень нужно. Скоро зачеты
Создайте файл Каталог книг. Занесите в отдельный файл все произведения заданного пользователем автора. Структура записи файла Каталог книг: автор (40 знаков), название (80 знаков), год издания (4 знака), специальность (40 знаков). Записи упорядочены по фамилиям автора.
Очень нужен текст программы. ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО.
Ну хоть чем-нибудь помогите
Сам-то пробовал делать ? Если да, то выкладывай что есть, посмотрим, если нет, скажи что конкретно вызывает затруднение. Если "я вообще не знаю с чего начать", тебе сюда: http://forum.pascal.net.ru/index.php?showtopic=9198
Так это вроде не запись а в большей степени работа с файлами. Затруднение вызывает упорядочить по фамилиям авторов
Я тут кое-что сделал . Может проверите,мне кажется не совсем соответствует заданию
program q;
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);
writeln('вводите авторов в алфавитном порядке');
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.
Как преобразовать данную прогу чтобы записи были упорядочены по фамилии автора?????
Ну хорошо:
program q;
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.
Как тогда упорядочить по фамилиям?????
Давно-давно, когда я решал подобную задачу на сортировку записей, то делал так:
Склеивал поля записи в одну строку, сортировал массив строк (любым способом), затем обратно их расклеивал.
Во-первых, заключи в теги код программ.
Во-вторых, ищи по форуму. Сортировки записей много раз выкладывались (как в файле, так и в массиве)
Чето я вообще ничего не могу найти, может дадите ссылочку?
http://forum.pascal.net.ru/index.php?showtopic=17434&hl=Сортировки+записей