Реферат: Разработка модулей программы /Укр./
Название: Разработка модулей программы /Укр./ Раздел: Топики по английскому языку Тип: реферат |
Складання програм з використанням модулів. Теоретичні відомості. Прогресивним підходом у програмувонні вважається використання модулів або блоків. Набір процедур та функцій, об’єднаних в один блок (UNIT), може компілюватися незалежно від головної програми. Завдяки цьому час компіляції для великих програм може на багато зменшуватися, а це має велике значення при відладці програм, які приходиться досить часто компілювати. МОДУЛЬ(UNIT) – це програмна одиниця, текст якої відкомпільовано незалежно. Вона включає в себе визначення констант, типів даних, змінних, процедур та функцій, доступних для використання в програмах, які викликають. Внутрішня структура модуля прихована від користувача. Структура модуля. В модулі можна виділити декілька розділів: заголовок, інтерфейсна частина, реалізаційна частина і інілізаційна частина. Заголовок модуля. UNIT ім’я модуля; Інтерфейсна частина. INTERFACE початок розділу оголошень; USES модулі, які використовуються; LABEL оголошення доступних глобальних міток; CONST оголошення доступних глобальних констант; TYPE оголошення доступних глобальних типів; VAR оголошення доступних глобальних змінних; PROCEDURE(FUNCTION) заголовки доступних процедур (функцій); Реалізаційна частина. IMPLEMENTATION початок розділу реалізації; USES модулі, які використовуються при реалізації; LABEL оголошення скритих глобальних міток; CONST оголошення глобальних констант; TYPE оголошення скритих глобальних типів; VAR оголошення скритих глобальних змінних; PROCEDURE(FUNCTION) тіла доступних та скритих процедур (функцій); Інілізаційна частина. BEGIN основний блок модуля. END. Індивідуальне завдання. Варіант №7. Скласти програму на мові Pascal розв’язку даної задачі та виконання її на ЕОМ. Процедури та функції оформити у вигляді модуля. Задача 1. Модуль: unit gregory; {---------------------------------------------------------} interface uses crt; var c,k:array [1..5,1..4] of real; i,j:integer; m:byte; function facktorial(x:integer):real; {---------------------------------------------------------} implementation function facktorial(x:integer):real; var i:integer; facktorial1:real; begin facktorial1:=1; if i<=1 then facktorial:=1 else begin for i:=1 to x do facktorial1:=facktorial1*i; facktorial:=facktorial1; end; end; {---------------------------------------------------------} begin end. Запускна програма: uses gregory; begin clrscr; writeln('Введiть елементи масива:'); writeln; for i:=1 to 5 do for j:=1 to 4 do begin write('Елемент [',i,',',j,']='); readln(c[i,j]); end; m:=0; clrscr; for i:=1 to 5 do begin for j:=1 to 4 do begin k[i,j]:=c[i,j]/facktorial(i+j); if k[i,j]<1 then m:=m+1; write(k[i,j]:7:5,' '); end; writeln; end; end. Робота з файлами. Теоретичні відомості Файл – це сукупність даних однакового типу. Таке визначення збігається з визначенням масиву, але, на відміну від останнього, файл зберігають на диску, кількість даних у файлі при його описуванні не вказується, елементи файла не мають індексів, що ускоаднює роботу з ними. Опис файлового типу має вигляд: Type <ім'я типу> = File of <тип компонент>; Процедури і функції для роботи з файлами: Assign – зв'язує деякий зовнішній файл на диску з файловою змінною. Reset – відкриває уже раніше створений файл данних на диску, ім'я якого було перед цим пов'язане процедурою Assign. Rewrite – створює новий файл і відкриває його. Якщо файл вже існує вміст знищується, а сам файл відкривається знову. Close – закриває файл, який зв'язаний з файловою змінною. Eof – набуває значення true, якщо досягнуто кінець файла, інакше набуває значення false. IOResult – використовується для пошуку помилок, які виникають при роботі з файлами. Індивідуальне завдання Задача 1. Написати програму контролю знань студентів з літератури. Оформити файл відповідей та файл питань. Задача 2. Написати програму що виводить на екран студентів, що набрали прохідний бал не нижче 8. Задача 1: program zavd1; uses crt; const qfile='quest.txt'; afile='ansver.txt'; var f1,f2:text; i,k:integer; name,ansv:string; begin clrscr; assign(f1,qfile); assign(f2,afile); rewrite(f2); reset(f1); write('Введіть своє ім`я, групу :'); readln(name); writeln(f2,name); while not eof(f1) do begin readln(f1,name); writeln(name); write('Ваша відповідь :'); readln(name); writeln(f2,name); readln(f1,ansv); if ansv=name then k:=k+1; i:=i+1; end; writeln(f2,'Всього питань :'); writeln(f2,i); writeln(f2,'Правильних питань :'); writeln(f2,k); close(f1); close(f2); end. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ: Вміст файлу протоколу: Бригіда e02 толстой поет да Всього питань : 3 Правильних питань : 2 Задача 2: program typefiles; uses crt; const kolocenok=2; type abiturient=record fio:string; marks:array [1..kolocenok] of integer; end; var ser,i,j,k:integer; abit: array [1..40] of abiturient; temp: abiturient; begin clrscr; write('Введiть кiлькiсть абiтурiентiв: '); readln(k); for i:=1 to k do begin writeln('абiтурiент ',i,':'); write('im`я: '); readln(temp.fio); writeln('Введiть оцiнки: '); for j:=1 to kolocenok do readln(temp.marks[j]); abit[i]:=temp; end; clrscr; for i:=1 to k do begin writeln('абiтурiент ',i,':'); write('im`я: ',abit[i].fio); write(' мае оцiнки: '); ser:=0; for j:=1 to kolocenok do begin write(abit[i].marks[j],', '); ser:=ser+abit[i].marks[j]; end; writeln; if ser>8 then writeln(' З А Ч И С Л Е Н И Й ! '); writeln; end; end. РЕЗУЛЬТАТИ РОБОТИ ПРОГРАМИ: абiтурiент 1: im`я: Саша мае оцiнки: 4, 5, ЗАЧИСЛЕНИЙ! абiтурiент 2: im`я: Петро мае оцiнки: 3, 4, абiтурiент 3: im`я: Олег мае оцiнки: 4, 2, абiтурiент 4: im`я: Микола мае оцiнки: 2, 2, Висновок:поглибив знання, вміння та навички розробки з використанням текстових та типизованих файлів, закріпив свої знання в області записів та типизованих файлів. |