Дано файл записів в якому зберігається інформація о студентах факультету – ПІБ, група, чотири оцінки за попередню сесію, чотири оцінки по підсумкам атестації. Зібрати в один текстовий файл інформацію о тих студентах чий рівень остаточних знань не менш 60%, інформацію об інших (двоєчниках) записати в другий текстовий файл рівень знань визначається слідуючим чином:
А - оцінка в сесію, В - оцінка за атестацію
B
рівень = --- * 100
A
Programex_rec2;
Uses Crt;
Type student = record
fio: string [20]; {ПІБ студента}
gr: string [4]; {група}
s: array [1..4] of integer; {оцінки за сесію}
a: array [1..4] of integer; {оцінки за атестацію}
u: array [1..4] of real; {рівень знань по предметам}
ur: real; {загальний рівень}
end;
f_st_rec = file of student;
f_st_txt = text;
Var st: student; {студент}
f1: f_st_rec; {файл з записями}
f2, f3: f_st_txt; {текстові файли
f2 – відмінники
f3 – двоєчники }
i, m: integer; {i - счетчик,
m – змінна вибору в меню}
ch: char; {допоміжна змінна}
stroka: string;
Procedure entr (var f1:f_st_rec); {Введення даних}
begin
clrscr;
rewrite(f1); {відкриття нового файлу записів}
writeln('Введить інформацію о студентах');
writeln('по закінченню натисніть - Esc');
repeat
with st do
begin gotoxy(1,3);
write('Фамилия: '); readln(fio);
write('Группа : '); readln(gr);
writeln('Оцінки за сесію:');
for i:=1 to 4 do {Введення 4-х оцінок за сесію}
begin
gotoxy (5*i, 7); readln(s[i]);
end;
writeln;
writeln('Оценки за аттестацию:');
for i:=1 to 4 do {Ведення 4-х оцінок за атестацію}
begin
gotoxy (5*i, 11); readln(a[i]);
end;
writeln;
ur:=0.;
writeln('Ріввень остаточних знань з предметів:');
for i:=1 to 4 do
begin
u[i]:=a[i]/s[i];
gotoxy (5*i, 16); writeln(u[i]:6:2);
ur:=ur + u[i];
end;
writeln;
writeln('Загальний рівень остаточних знань:');
ur:=ur/4;
gotoxy (5, 20); writeln(ur:6:2);
end; {with}
write(f1, st);
writeln('Enter -продовжити, Esc – закінчити введення');
ch:=readkey;
clrscr;
until ch=#27;
close(f1);
end; { процедура введення entr закінчена}
Procedure obrab (var f1:f_st_rec; var f2,f3:f_st_txt);
begin clrscr;
reset(f1); {відкриття файлу записів для читання}
rewrite(f2); rewrite(f3); {Текстові - для запису}
writeln(f2, 'Наши відмінники'); writeln(f2);
writeln(f3, 'Наши двоєчники'); writeln(f3);
while not(eof(f1)) do
begin
read(f1, st);
if (st.ur>=0.60) then
writeln(f2, st.fio,' Рівень: ', st.ur:6:2)
else
writeln(f3, st.fio,' Рівень: ', st.ur:6:2);
end;
close(f1); close(f2); close(f3); clrscr;
end; { процедура обробки закінчена}
Procedure view_txt (var f2,f3:f_st_txt); {Огляд}
begin
clrscr;
reset(f2); reset(f3);
writeln;
while not(eof(f2)) do
begin
readln(f2, stroka);
writeln(stroka);
end;
writeln;
while not(eof(f3)) do
begin
readln(f3, stroka);
writeln(stroka);
end;
close(f2); close(f3);
readkey;
End; { процедура огляду закінчена’}
Procedure menu;
begin
textbackground(lightgray); textcolor(white);
repeat
clrscr;
gotoxy(20, 7);write (' Меню:');
gotoxy(20, 8);write ('1- Введення вихідних даних ');
gotoxy(20, 9);write ('2- Обробка даних');
gotoxy(20,10);write ('3- Огляд текстових файлів');
gotoxy(20,11);write ('4- Exit');
repeat
gotoxy(30,12);write ('Ваш вибор:');
gotoxy(41,12);write (' ');gotoxy(41,12);readln(m);
until (m>=1) and (m<=5);
if m=1 then entr(f1);
if m=2 then obrab(f1,f2,f3);
if m=3 then view_txt(f2,f3);
until m = 4;
textbackground(black); { перехід до стандартного екрану}
textcolor(white); { черний фон – біли символи }
clrscr;
end; {Процедура меню закінчена}
Begin { Основна програма }
clrscr;
assign(f1, 'rec.dat');
assign(f2, 'txt1.dat');
assign(f3, 'txt2.dat');
menu;
writeln('Кінец работи');
readkey;
End.
ХІД РОБОТИ:
1. Скласти програму для вашого завдання.
2. Після загрузки операційної системи увійти в систему програмування ТурбоПаскаль – для цього необхідно двійчи щелкнути мишою на позначці програми, яка знаходиться на Робочому столі Windows.
3. В системі Турбо Паскаль увійти в меню за допомогою миши, вибрати пункт File, увійти в нього и вибрати команду: New – якщо необхідно увести нову програму, і вибрати Open –якщо бажаєте викликати свою вже існуючу програму. Увійти у список файлів (клавіша [Tab]) и з допомогою клавіш управління курсором вибрати необхідний файл і натиснути клавішу [Enter].
4. В окні системи набрати програму або внести необхідні зміни у вашу раніше створену програму
5. Запустити програму на виконання : для цього в меню системи вибрати пункт Run
6. В зошит переписати результат роботи програми ( усі рядки, що були виведені на екран)
7. Якщо необхідно (по вказівки викладача) записати свою програму на диск у вигляди файлу – для цього необхідно увійти в меню системи, вибрати пункт File и виконати команду Save з вказанням імені свого файлу.
8. Вийти з системи Турбо Паскаль – для цього необхідно увійти в меню системи, вибрати пункт File и виконати команду Exit.
СКЛАД ЗВИТУ:
1. Тема, мета роботи.
2. Текст завдань для виконання .
3. Порядок виконання роботи.
4. Хід виконання роботи – схема алгоритму, текст програми, результат роботи програми
5. Вивід по роботі
КОНТРОЛЬНІ ПИТАННЯ:
1. Файловий тип даних, типи файлів в мові Паскаль
2. Організація роботи з текстовими файлами в мові програмування Паскаль.
3. Організація роботи з типізованими файлами в мові програмування Паскаль.
4.Стандартні функції для роботи з різними типами файлів