Показать сообщение отдельно
Непрочитано 02.08.2005, 18:04   #1
flashg
Мужской Продвинутый
Автор темы
 
Аватар для flashg
 
Регистрация: 18.01.2004
Адрес: Сургут
Помогите усовешенствовать и разобратся - Задание в паскале.

Мне было задана куча заданий - и вот решил тут одно заданице набить.

Посмотрел пример и набил - и получается. Но хочу усовершенствовать работу программы.

Вот задание: РАЗРАБОТАТЬ БАЗУ ДАННЫХ "ДЕТСКАЯ БИБЛИОТЕКА" (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, АВТОРА КНИГИ, НАЗВАНИЕ КНИГИ, ГОРОД И ИЗДАТЕЛЬСТВО, ГОД ВЫПУСКА). ВЫВЕСТИ НА ЭКРАН ДАННЫЕ О КНИГАХ, ВЫПУЩЕННЫХ В 1995 ГОДУ.
======================================
Вот что я набил:
-----------------------
Program pr_12;
uses crt;
type person=record
sname,name,otc,avtr,nb,pub,year:string[14];
end;

var rbook:array[1..20] of person;
f1,f2:text; i,n:integer;
st1:string;

BEGIN clrscr; Assign(f1,'p1.pas'); Rewrite(f1);

writeln('Введите количество записей'); readln(n);
for i:=1 to n do with rbook[i] do begin

WRITELN('Фамилия '); readln(sname); writeln(f1,sname);

WRITELN('имя'); readln(name); writeln(f1,name);

WRITELN('Отчество'); readln(otc); writeln(f1,otc);

WRITELN('Автар книги');readln(avtr); writeln(f1,avtr);

WRITELN('Название книги');readln(nb); writeln(f1,nb);

WRITELN('Издательство');readln(pub); writeln(f1,pub);

WRITELN('Год выпуска');readln(year); writeln(f1,year);


end;


Assign(f2,'p2.pas'); rewrite(f2);
Writeln('Введите год');
Readln(st1); Writeln('Ф И О Автар книги Название книги Издательство Год выпуска');
Writeln(f2,'Ф И О Автар книги Название книги Издательство Год выпуска');
for i:=1 to n do begin With rbook[i] do
if year=st1 then begin
Writeln(sname:10,name:10,otc:10,avtr:10,nb:10,pub:10,year:10);
Writeln(f2,sname:10,name:10,otc:10,avtr:10,nb:10,pub:10,year:10);
end; end;
close(f1); Close(f2); readln; END.
-------------------------------------------
!!! как в выше описанной программе (что вней под корректировать чтобы) - сделать так чтобы после того как я введу N количество данных она не спрашивал по какому году искать а сразу за меня искала и вывела резултьата года 1995 !!! - покажите какие строки на что заменить.
--------------------------------------------
программа работает но вот что мне не нравится - фантазировать имена фаимли отчества итд для N количества персон - это немного нудно

и я подумал а почему бы не сделать так создать уже файл P1.pas вбить туда эти данные (вот тока сразу возникает вопрос каким оброзом) запустив уже удавшеюся программуу и минутку думая на соченяв имена прогнав её выполнев все действия я уже получил этот файл мне тока остаётся переписать программу чтобы уже содержимое файла считать)

вот как выглядит содержимое файла:B]P1.pas[/B] :
Федотов
Игорь
Алексеев
Азимов
Академия


это на одну персону данные

я прочитал в книге чтобы паскаль считал мне этот файл надо ввести вот такую строку Assign(f1,'p1.pas'); reset(f1); т.е. мне надо её по идее заменить в и получается вот что
====================
Program pr_12;
uses crt;
type person=record
sname,name,otc,avtr,nb,pub,year:string[14];
end;

var rbook:array[1..20] of person;
f1,f2:text; i,n:integer;
st1:string;

BEGIN clrscr; Assign(f1,'p1.pas'); reset(f1);

Assign(f2,'p2.pas'); rewrite(f2);
Writeln('Введите год');
Readln(st1); Writeln('Ф И О ');
Writeln(f2,'Ф И О А');
for i:=1 to n do begin With rbook[i] do
if year=st1 then begin
Writeln(sname:10,name:10,otc:10,avtr:10,nb:10,pub:10,year:10);
Writeln(f2,sname:10,name:10,otc:10,avtr:10,nb:10,pub:10,year:10);
end; end;
close(f1); Close(f2); readln; END.
===============================
Программа запускается (об ошибках не сообщаентся т.е. с виду их нет):
Но Во первых я не вижу (как сделать так что когда я указываю паскалю что данные необходимо взять из другого файла т.е. считать - чтобы содержимое этого файла (текстового) отоброзилось на экране т.е. вылетает соодержимое потом вопрос какой год?
Во вторых я указываю год 96 и в текстовом файле там есть такой (при работе с тем текстом к программае что я набил в самом верху где я должен всё вручную персонально набить - это работает а в этом случае варианта - высвечивается тока ФИО - т.е. заголовок но нет данных - в чём ошибка?
flashg вне форума  
Конфигурация ПК
Ответить с цитированием