Рубрика «Комбинированный файл»

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

Четверг, 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

Файл комбинированного типа содержит список книг библиотеки, а именно: название книги, автора, год выпуска. Вывести на экран список тех книг, которые выданы после 2005 года.

Program 2005;
Type
bib = Record
name : String[50];
avtor: String[50];
god : integer;
End;
Var
f : file of bib;
p : bib;
ch:char;
b :boolean;
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(’name - ‘);
Read(p.name);
writeln(’avtor - ‘);
Read(p.avtor);
writeln(’god - ‘);
read(p.god);
write(f,p);
writeln(’dobavim zapis? y/n’);
read(ch);
end;
end;
{4itaem}
if b then reset(f);
while not eof(f) do begin
read(f,p);
if p.god>2008 then writeln(p.name);
end;
close(f);
End.