русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Приклад № 2


Дата додавання: 2014-11-28; переглядів: 892.


Дано файл записів в якому зберігається інформація о студентах факультету – ПІБ, група, чотири оцінки за попередню сесію, чотири оцінки по підсумкам атестації. Зібрати в один текстовий файл інформацію о тих студентах чий рівень остаточних знань не менш 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.Стандартні функції для роботи з різними типами файлів


<== попередня лекція | наступна лекція ==>
Readln ( f, x ) | ЗАВДАННЯ № 1


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн