Создание файла и извлечение информации по фильтру

Четверг, 10 Сен 2009

Создать файл, содержащий сведения об абитуриентах: фамилия, средний балл аттестата, какое учебное заведение окончил, год окончания. Получить список абитуриентов, окончивших в текущем году техникум, средний балл аттестата которых не ниже 4.

program fayl_student;
type student=record
fam,uch:string[15];
sbal:real;
year:integer;
end;
var f:file of student;
st:student;
n,i:integer;
BEGIN
assign(f,’Student.dat’); rewrite(f);
writeln(’Vvedite kol-vo studentov’);
readln(n);
writeln(’Vvedite INFO o studentah’);
for i:=1 to n do
Begin
writeln;
write(’Familiya studenta:’);
readln(st.fam);
write(’Sredniy bal attestata (4i5-kruto):’);
readln(st.sbal);
write(’Uchebnoe zavedenie okonchil (tehnikum-kruto):’);
readln(st.uch);
write(’God okonchaniya (2006-kruto):’);
readln(st.year);
write(f,st);
End;
writeln;
Writeln(’Poluchen Fail!!! (Press Enter to continue)’);
close(f);
readln;
writeln(’Studenti, kotorie v 2006 godu okonchili TEHNIKUM,’);
writeln(’(sredniy bal ne nige 4)’);
reset(f);
While not eof(f) do
Begin
read(f,st);
if (st.year)=2006 then
begin
if (st.uch)=’tehnikum’ then
begin
if (st.sbal)>=4 then writeln(st.fam);
end;
end;
end;
writeln;
close(f);
readln;
end.

Найти студентов, имеющих нужный средний бал

Среда, 09 Сен 2009

Файл комбинированного типа содержит такую информацию: фамилию и инициалы студента, название группы, средний бал последней сессии. Подсчитать количество студентов, которые имееют средний бал выше 9.

Program studenti;
Type
stud = Record
fio : String[50];
group: string[10];
SredBal :integer;
End;
Var
f : file of stud;
p : stud;
ch:char;
b :boolean;
kol:integer;
Begin
b:=false;
Assign(F,’D:\pascal\Test1.txt’);
try
reset(f);
except
b:=true;
writeln(’Nenaiden fail’);
rewrite(f);
{zapolnim}
writeln(’dobavim zapis? y/n’);
read(ch);
while upcase(ch)=’Y’ do
begin
writeln(’fio - ‘);
Read(p.fio);
writeln(’group - ‘);
Read(p.group);
writeln(’sredbal - ‘);
read(p.sredbal);
write(f,p);
writeln(’dobavim zapis? y/n’);
read(ch);
end;
end;
{4itaem}
if b then reset(f);
kol:=0;
while not eof(f) do
begin
read(f,p);
if p.sredbal>9 then kol:=kol+1;
end;
close(f);
writeln(kol);
End.