КК
Катерина Клеймёнова

помогите исправить программу.

Создать файл, содержащий сведения о коллекции книг. Каждая запись содержит поля: автор, название, год издания, номер стеллажа. Количество записей произвольное. Написать программу, выводящую на экран следующую информацию:
-местонахождения книги такого-то названия;
- список имеющихся книг такого-то автора;
- общее число книг
выводится почему-то не нужный стеллаж,а все.(прогромма на паскале)
Program workfile;
uses crt;
Type
book=record
author:string;
title:string;
year:word;
stack:byte;
end;
var
st:array[byte] of book;
F:file of book;
i,n,k1,k2,k3:byte;
x,y,z:char;
BEGIN
clrscr;
write (' введите количество книг n='); readln(n);
for i:=1 to n do
begin
write('автор:'); readln(st.author);
write('название:'); readln(st.title);
write('год издания:'); readln(st.year);
write('номер стеллажа:'); readln(st.stack);
end;
Assign(F,'book.txt');
Rewrite(F);
For i:=0 to n do
write(F, st);
Close(F);
i:=0;
Assign(F,'book.txt');
Reset(F);
write('введите название книги:'); readln(x);
while not eof(F) do
begin
read(F,st);
k1:=pos(x,st.title);
if (k1<>0)then
writeln('местонахождение книги:',st.stack);
end;
close(F);
i:=0;
Assign(F,'book.txt');
Reset(F);
write('список книг автора:'); readln(z);
while not eof(F) do
begin
read(F,st);
k2:=pos(z,st.author);
if k2<>0 then
begin
writeln('название книги:',st.title);
writeln('год издания:',st.year);
writeln('местонахождение книги:',st.stack);
end;
end;
writeln('общее число книг n=',n);
Close(F);
END.

На
Наталья

Исправил бы, да вот незадача, я понятия не имею что это за язык. . был бы СИ шарп или СИ плус плус то да)

Илья Рылов
Илья Рылов

Program workfile;

uses crt;

Type
book=record
author:string;
title:string;
year:word;
stack:byte;
end;

var
st : book;
F : file of book;
i,n, p:byte;
x,y,z:String;

BEGIN
clrscr;

{ ========== Ввод списка книг и сохранение в файл ========== }
write (' введите количество книг n='); readln(n);
Assign(F,'book.txt');
Rewrite(F);
for i:=1 to n do
begin
write('автор: '); readln(st.author);
write('название: '); readln(st.title);
write('год издания: '); readln(st.year);
write('номер стеллажа: '); readln(st.stack);
end;
Close(F);

{ ========== Поиск книги по названию ========== }
Assign(F,'book.txt');
Reset(F);
write('введите название книги: '); readln(x);
while not eof(F) do
begin
read(F,st);
p:=pos(x,st.title);
if p<>0 then
WriteLn(st.title, ' (', st.author, ' ', st.year, '). N стеллажа ', st.stack);
end;
close(F);

{ ========== Поиск книги по автору ========== }
Assign(F,'book.txt');
Reset(F);
write('список книг автора: '); readln(z);
while not eof(F) do
begin
read(F,st);
p:=pos(z,st.author);
if p<>0 then
WriteLn(st.title, ' (', st.author, ' ', st.year, '). N стеллажа ', st.stack);
end;
close(F);
end.

СШ
Саидмузаффар Шарипов

А в чем собственно проблема?

СП
Сергей Попов

вроде все правильно
попробуйте писать более длинные строки книг

Похожие вопросы
Помогите исправить программу
помогите исправить программу в паскале
помогите исправить ошибки в программе DElphi
помогите исправит ошибку в программе паскаль
Помогите исправить код программы
Помогите исправить ошибки в программе.
Помогите исправить ошибку в программе. С++ Builder
помогите исправит программу паскаль
ошибки в коде программы помогите исправить
помогите исправить программу...