|
|
Опции темы | Опции просмотра |
09.03.2016, 19:18 | #1 (permalink) |
Member
Регистрация: 09.12.2015
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Паскаль. Помогите сделать данную программу не используя оператора 'record'
- сформировать файл из записей, содержащих сведения о книге(фамилия автора, название, год издания); - упорядочить компоненты файла так, чтобы сначала следовали все книги Петрова, а затем все остальные. program qwertyui; uses crt; type book=record fam:string[20]; naz:string[20]; god:word; end; var b,d,x:book; f:file of book; n,i,j,p:integer; begin clrscr; assign(f,'book'); rewrite(f); write('Kol-vo zapisei n='); readln(n); for i:=1 to n do begin writeln('Kniga ',i); with b do begin write('Famaliya: ');readln(fam); write('Nazvanie: ');readln(naz); write('God: ');readln(god); end; write(f,b); end; clrscr; reset(f); p:=0; for i:=0 to filesize(f)-1 do begin seek(f,i); read(f,b); if b.fam='Petrov' then{esli -} begin p:=p+1;{schitaem} x:=b;{zapominaem} for j:=i downto p do{igem nazaf} begin seek(f,j-1);{chitaem pred-ee chislo } read(f,d); seek(f,j);{vstavlyaem vpered} write(f,d); end; seek(f,p-1);{vstavlyaem na mesto kotoroe nashli} write(f,x); end end; seek(f,0); while not eof(f) do begin read(f,b); with b do writeln(fam,' ',naz,' ',god); end; writeln; if p=0 then write('Knig avtora Petrova net'); close(f); readln end. |
09.03.2016, 19:18 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Похожие топики уже создавались, предлагаю вам почитать их Помогите пожалуйста составить программу с использованием оператора выбора Помогите написать программу, Паскаль |
09.03.2016, 19:37 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Прежде всего, "record" - это никакой не оператор, а тип данных. Вам что, требуется всё это без записей? Ладно, сейчас нарисую.
|
09.03.2016, 20:05 | #4 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Например, так (пути к файлам поставьте свои):
Код:
program qwertyui; Uses CRT; var f1,f2:Text; S:String; n,i:integer; begin clrscr; assign(f1,'D:\book1'); rewrite(f1); assign(f2,'D:\book2'); rewrite(f2); write('Kol-vo knig n='); readln(n); for i:=1 to n do begin writeln('Kniga ',i,':'); write('Familiya: '); readln(S); writeln(f1,S); write('Nazvanie: '); readln(S); writeln(f1,S); write('God: '); readln(S); writeln(f1,S); end; Close(f1); Reset(f1); Repeat readln(f1,S); if S='Petrov' then begin writeln(f2,S); readln(f1,S); writeln(f2,S); readln(f1,S); writeln(f2,S); end; Until EoF(f1); Reset(f1); Repeat readln(f1,S); if S='Petrov' then begin readln(f1); readln(f1); end else writeln(f2,S); Until EoF(f1); Close(f1); Close(f2); end. |
09.03.2016, 20:14 | #5 (permalink) |
Member
Регистрация: 09.12.2015
Сообщений: 23
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо Вам большое!!
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|