Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Задача на файлы записей

Автор: Zlo 23.12.2007 16:14

Помогите написать программу, а то зачет не поставят(:
Заполнить текстовый файл данными о 30 абитуриентов поступающих на три разных факультета(фамилия, имя, факультет,оценки,полученные на трех экзаменах). Переписать данные в файл записей. вывести на экран списки абитуриентов по факультетам,получивших "двойку" на одном из экзаменов.

Автор: Тёмный Эльф 23.12.2007 18:41

Цитата(Zlo @ 23.12.2007 12:14) *

Помогите написать программу, а то зачет не поставят(:
Заполнить текстовый файл данными о 30 абитуриентов поступающих на три разных факультета(фамилия, имя, факультет,оценки,полученные на трех экзаменах). Переписать данные в файл записей. вывести на экран списки абитуриентов по факультетам,получивших "двойку" на одном из экзаменов.

А что конкретно не получается? О типе данных Записи можешь прочитать в факе: http://forum.pascal.net.ru/index.php?showtopic=9198, о работе с файлами здесь: http://forum.pascal.net.ru/index.php?showtopic=3584

Автор: Zlo 25.12.2007 1:54

Вообщем есть программа помогите исправить а то работает некоректно


const n=30;
type ocen=array[1..3] of byte;
student=record
Fi:string;
fak:string;
oc:ocen;
end;

var ab:array[1..30] of student;
out:file of student;
i:integer; s:string;
begin
assign(input,'input.txt');reset(input);
for i:=1 to n do begin
read(s);
ab[i].Fi:=ab[i].Fi+s;
read(s); ab[i].Fi:=ab[i].Fi+' '+s;
read(ab[i].fak);
read(ab[i].oc[1]);
read(ab[i].oc[2]);
readln(ab[i].oc[3]);
end;
close(input);
assign(out,'output.txt');
rewrite(out);
for i:=1 to n do
write(out,ab[i]);
close(out);
for i:=1 to n do
if (ab[i].fak=ab[1].fak) then
if (ab[i].oc[1]=2) or (ab[i].oc[2]=2)or(ab[i].oc[3]=2) then writeln(ab[i].Fi);
for i:=1 to n do
if (ab[i].fak<>ab[i].fak) then
if (ab[i].oc[1]=2)or(ab[i].oc[2]=2)or(ab[i].oc[3]=2) then writeln(ab[i].Fi);
end.


Автор: andriano 25.12.2007 3:35

В чем состоит некорректность?

Автор: Ozzя 25.12.2007 14:33

Ввод в текстовый файл с клавиатуры:

...
type
ocen=array[1..3] of byte;
student=record
Fam,Imya:string;
fak:string;
oc:ocen;
end;
...
var
f: text;
begin
assign(f,'input.txt');rewrite(f);
for i:=1 to n do
begin
readln(ab[i].Fam);
readln(ab[i].Imya);
readln(ab[i].fak);
readln(ab[i].oc[1]);
readln(ab[i].oc[2]);
readln(ab[i].oc[3]);
end;
close(f);