«Модульне програмування»


Скачати 48.27 Kb.
Назва «Модульне програмування»
Дата 05.04.2013
Розмір 48.27 Kb.
Тип Документи
bibl.com.ua > Інформатика > Документи
ОДЕСЬКА НАЦІОНАЛЬНА АКАДЕМІЯ ХАРЧОВИХ ТЕХНОЛОГІЙ

Навчально-науковий інститут холоду, кріотехнологій та екоенергетики

Ім. Мартиновського В.С.

Кафедра інформаційних технологій

САМОСТІЙНА РОБОТА

за курсом «Основи програмування та алгоритми мови»

тема «Модульне програмування»

студента гр. № 313а

Левіна Д.М.

Одеса, 2012

Для створення програми розв’язання складної задачі виконується декомпозиція цієї задачі на підзадачі, підзадачі на ще менші підзадачі і так далі, до легко програмувальних елементарних підзадач.

Декомпозиція виконується завдяки декільком засобам. Для великих задач – це модулі, для елементарних підзадач - це найчастіше підпрограми (процедури та функції).

Модуль – це програмна одиниця, розташована в окремому файлі , текст якої компілюється незалежно.

Підпрограма – це іменована частина програми, що виконує певну логічно завершену дію (частина загального завдання) і може бути викликана з будь-якого місця програми, де це не заборонено синтаксисом

Структура модуля

Модуль складається із заголовка, інтерфейсної, реалізаційної, ініціалізаційної та завершальної частин. Синтаксис модуля наведено нижче.

Unit ім’я_файлу;

// Глобальні директиви

interface // Відкритий інтерфейс модуля

uses імена модулів, які використовуються при оголошеннях

Const інтерфейсі константи

Type інтерфейсні типи

var інтерфейсні змінні

Заголовки процедур/функцій (із зазначенням параметрів)

Implementation // реалізація модуля

uses імена модулів, які використовуються при реалізації

Const внутрішні константи

Type внутрішні типи

var внутрішні змінні

Label внутрішні мітки

Заголовки (можна без зазначення параметрів) і тіла процедур/функцій

Initialization // не обов’язковий розділ ініціалізації

// Оператори, які виконуються один раз при звертанні до модуля

Finalization // не обов’язковий розділ завершення коду

// Оператори які виконуються при будь-якім завершенні роботи модуля :

// Нормальному або аварійному

end.

Розділ interface являє собою зовнішній інтерфейс модуля. Тому модулі, що підключаються у ньому, оголошені типи, константи, змінні, функції та процедури, які оголошені, доступні зовнішнім модулям, що звертаються до даного модуля.

Розділ implementation являє собою реалізацію модуля. Все модулі, оголошені типи, константи, змінні доступні тільки в межах даного модуля. Тут повинні бути реалізації всіх оголошених у розділі interface функцій і процедур, а також можуть бути реалізації будь-яких додаткових, не оголошених раніше функцій і процедур.

Самостійна робот

Лабораторна робота №9

5. Ввести з клавіатури одновимірний масив A(m) та D(k). Масиви складаються з цілих елементів. Кількість елементів в масивах вибрати самостійно, але урахувати, що m<>k, та m,k<=15/.

А) Обчислити середнє арифметичне додатніх елементів масиву

Б) Переписати всі елементи першого масиву, але кратні 3 в перший додатній масив, а всіі елементи другого масиву, які кратні 4 в другий додатній масив.

// Модуль в якому описуються константи та типии
unit Unit_Type;
{$mode objfpc}{$H+}
interface
const P=100;

type mass=array [1..P] of integer;

implementation
end.

// Модуль в якому реалiзованi дії з массивами
unit Unit_Massiv;
{$mode objfpc}{$H+}
interface
uses Unit_Type;
procedure EnterMassiv(L:string;N:byte; var MASS:mass);

procedure VivodMassiva(L:string; N:byte; M:mass);

function SA(N:integer; M:mass):real;

procedure NewMassiv(K,N:integer; M:mass; var N1:byte; var M1:mass);

implementation
procedure EnterMassiv(L:string;N:byte; var MASS:mass);

var

i:byte;

begin

for i:=1 to N do

begin

if i=1 then writeln('Enter elements massiv ',L,' :');

write(i,')');

read(MASS[i]);

end;

end;
procedure VivodMassiva(L:string; N:byte; M:mass);

var i:byte;

begin

for i:=1 to N do

write(L,'[',i,']=',M[i],'; ');

writeln(' ');

end;
function SA(N:integer; M:mass):real;

var sum:integer;

i,d:byte;

begin

d:=0;

sum:=0;

for i:=1 to N do

begin

if (M[i]>0) then begin sum:=sum+M[i]; d:=d+1 end;

end;

if d=0 then SA:=0 else SA:=sum/d;

end;
procedure NewMassiv(K,N:integer; M:mass; var N1:byte; var M1:mass);

var i:byte;
begin

N1:=0;

for i:=1 to N do

begin

if (M[i] mod K)=0 then begin N1:=N1+1 ; M1[N1]:=M[i] end;

end;

end;
end.

// Основна програма
program Project_Globals;
{$mode objfpc}{$H+}
uses

SysUtils,

Unit_Type in 'Unit_Type.pas',

Unit_Massiv in 'Unit_Massiv.pas';

{$R *.res}
var _a,_d,_a1,_d1:byte;

A,D,A1,D1:mass;

begin
repeat

writeln('Enter max amount massiv A(a) and D(d):');

writeln('Condition : a<>d, 0<(a,d)<=15');

readln(_a,_d);

until (_a<>_d) and (_a<=15) and (_d<=15) and (_a>0) and (_d>0);

//

EnterMassiv('A',_a,A);

EnterMassiv('D',_d,D);

NewMassiv(3,_a,A,_a1,A1);

NewMassiv(4,_d,D,_d1,D1);

//

if SA(_a,A)=0 then

writeln('Elementov >0 v A net!')

else writeln('SA(A)=',SA(_a,A):7:2);

if SA(_d,D)=0 then

writeln('Elementov >0 v D net!')

else writeln('SA(D)=',SA(_d,D):7:2);

//

if _a1=0 then

writeln('V mass A net elementov kratnih 3')

else

begin

writeln('Mass A1 (kratnie 3) :');

VivodMassiva('A1',_a1,A1);

end;

if _d1=0 then

writeln('V mass D net elementov kratnih 4')

else

begin

writeln('Mass D1 (kratnie 4) :');

VivodMassiva('D1',_d1,D1);

end;

readln; readln

end.

Схожі:

29. Опис та використання підпрограм
Реалізація базових алгоритмічних структур процедурною мовою програмування. Опис процедур та функцій процедурною мовою програмування....
Програма курсу програмування на мов і С++
Курс націлений на отримання знань і практичних навиків програмування на мовах C і C + + в рамках процедурно-орієнтованого програмування....
Основні методології (стилі, парадигми) програмування. Поняття програми....
Дів розробки програм Граді Буча “О’єктно-орієнтоване програмування (ООП) – це методологія програмування, яка заснована на представленні...
2. Дробово-лінійне програмування Постановка задачі дробово-лінійного...
Дослідження операцій”, “Економетрія”, “Моделювання економіки”, “Економічна кібернетика” а також дисциплін циклу загальноекономічної...
Курс програмування на С #
Зусилля, які ви витратите на вивчення С #, будуть винагороджені, так як Сі Шарп був розроблений в якості основної мови програмування,...
ПОРЯДОК проведення відкритої Всеукраїнської студентської олімпіади з програмування
Першості світу) з програмування АСМ-ICPC (Association for Computing Machinery International Collegiate Programming Contest), яка...
27. Процедурні мови програмування
Процедурні мови програмування. Характеристика процедурних мов програмування. Алфавіт. Основні поняття мови: числа, рядки, ідентифікатори,...
Історія мов програмування
ФОРТРАН, для бухгалтерії – переважно мова КОБОЛ. Проте для системних робіт використовувалася мова програмування низького рівня –...
Лекція Р Тема: Мова програмування PASCAL
Мета: Ознайомити з мовою програмування PASCAL, розглянути основні структурні елементи, стандартні функції
30. Об’єктно-орієнтоване та візуальне програмування
Об’єктна модель системи об’єктно-орієнтованого візуального програмування: поняття класу, властивостей класу, методів класу та їх...
Додайте кнопку на своєму сайті:
Портал навчання


При копіюванні матеріалу обов'язкове зазначення активного посилання © 2013
звернутися до адміністрації
bibl.com.ua
Головна сторінка