Бағдарламалау тілдері. Модуль ұғымына шолу


Қазақстан Республикасының Білім және ғылым Министрлігі

РМҚК «Рымбек Байсеитов атындағы Семей қаржы-экономикалық колледжі»

Циклдық комиссия

КУРСТЫҚ ЖҰМЫС

Пәні :

Тақырыбы :

Дайындаған:

II\III қысқ. курс оқушысы

Тобы

Жетекшісі:

2009-2010 оқу жылы

Курс жұмысына рецензия

Тіркеу номері №

Оқушының аты-жөні

Курсы

Бөлім

Мамандығы пәнінен курс жұмысы

Курс жұмысының тақырыбы

Рецензиялаушы

1. Жұмыстың жетістіктерін талдау:

(мазмұнының тақырыбына сай келуі, ұсынылған әдебиеттердің, нормативтік материалдардыың пайдалану деңгейі, қаржы жүйесі органдарының жүйесі жұмыс тәжірибиесін есепке алу, мазмұндаудың логикасы мен деңгейі, әрбір сұрқтың ашуының сапасы, т. б. оңды жақтары)

2. Жұмыстың кемшіліктерін талдау: (тақырыптың ашылмаған немесе жеткілікті түлде толық айтылмаған мәселелерін атап өту, қателер тізімі, басқада кемшіліктерді көрсету)

3. Әдістемелік нұсқаулар мен кеңестер: (жекелеген обьектілерді, норматитік актілерді т. б. оқу керектігін айту, көрсетілген кемшіліктерді жоюға арнелған кеңестер, жұмысты қорғауға дайындық бойынша нұсқаулар беру, қандай мәселелерге назар аудару керек деген сияқты т. б. )

4. Қорытындылаңдар: (Жұмыстың қорытынды бағасы, жұмыс мазмұнының жазбаша жұмыстарға қойылатын талаптарға сай келуі, қысқаша қорытынды)

Рецнзиялаған оқытушы:

Мазмұны:

Кіріспе

I . Модуль ұғымына шолу

1. 1. Модуль ұғымы

1. 2. Модульдің құрылымы

1. 3. Модульдің элементтері

II. Бағдарламалау тілдері

2. 1. Бағдарлама алгоритмі

2. 2. Бағдарламаны тесттілеу

3. Мысалдар

Қорытынды

Қолданылған әдебиеттер тізімі

Қосымшалар

Кіріспе

Borland Pascal үлкен саннан құралған тұрақтыларға, мәліметтер типіне, айнымалыларға, процедураларға және функцияларға қатынауды қамтамасыз етеалады. Олардың ішіндегі кейбіреулері Borland Pascal үшін ерекше, ал кейбіреулері Windows немесе Dos орталары үшін қолданбалы есептерді программалауда ерекше. Олардың саны өте көп, дегенмен, өз программаңызда олардың бәрін бір мезетте аз қолданасыз. Сондықтан олар модульдер деп аталатын өзара байланысты топтарға бөлінген. Бұл жағдайда тек программаға қажетті модульдерді қолдануға болады.

1. Модуль ұғымына шолу

1. 1. Модуль ұғымы

Программалық модуль (Unit) тұрақтылар, мәліметтер типі, айнымалылар, процедуралар және функциялар жиынтығы болып табылады. Әр модуль Паскальдағы жекеленген программаға ұқсас: сіз программаңызды орындаңға жіберместен бұрын, оның шақырылатын және қажетті инициализацияны жүзеге асыратын негізгі денесі болуы мүмкін.

Қысқаша айтқанда модуль, программаға қоюға болатын және программаны жеке компилиаланатын бөлшектерге бөлуге болатын, сипаттамалар кітапханасы болып табылады.

1. 2. Модульдің құрылымы

Модуль құрамына кіретін, процедуралар және функциялар, мәліметтер типін және айнымалылар арасындағы тәсілдер жиынтығын қамтамасыз етеді. Бірақ та бұл тәсілдерді нақтылы жүзеге асыру интерфейс және жүзеге асыру (реализация) . Егер программа модуьді пайдаланса, модульдің барлық сипттамалары бұл программаға, оның өзінде анықталғандай ашық болады. Модуль құрылымы программа құрылымына ұқсас.

Модульдің ішіндегі барлық сипаттамалар бір-бірімен байланысты. Мысалығы, Strings модулі нөлдік белгімен аяқталатын жолдарды өңдейтін ішкі программаларға қажетті сипаттамалардан тұрады.

Сонымен қатар іщкі программалар сияқты, модульдер де стандартты және стандартты емес немесе қолданушының модулі, яғни, програмалаушылар өздері құрастыратын бола алады. Стандартты және стандартты емес модульдер құрылымы бірдей болғандықтан, олардың сипатталуы бірдей ережеде құрылған.

Модульдер программаға оның атын uses компилятор нұсқауында сипаттаудың көмегімен қосылады. Мысалы, былай сипатталғанда:

Uses Dos, Crt;

Аталған модульдердің құрамындағы барлық ішкі программалар, айнымалылар, типтер және тұрақтыларды программада қолдануға болады.

Модульдердің аттары оларды хабарлағанда үтірмен бөлінеді, ал соңғы модульден кейін үтірлі нүкте қойылады

System модулі барлық құралдар үшін, төменгі деңгейлі ішкі программаларды жүзеге асырады, мысалы: енгізу-шығу, жолдық айнымалылармен жұмыс, ауыспалы нүктемен жасалынатын операциялар және жадыны динамикалық бөлу.

System модулі Borland Pascal-дың барлық стандартты және құрылған процедураларынан және функцияларынан тұрады.

Стандартты Паскальдің бөлігі болмайтын және басқа модульдерде орналаспаған Borland Pascal-дың кез-келегн ішкі программасы System модулінің құрамында орналасқан.

System модулі программаға автоматты қосылады (үнсіз келісім бойынша) және оны Uses операторында көрсету қажетті емес.

Стандартты емес модульдерді пайдалану программаларды стандарттау мен құрылымдылығының деңгейін жоғарылатады, бұл программаларды өңдеуді жылдамдатады, олардың түсініктілігін және жетілдірудің қарапаймдылығын қамтамасыз етеді.

Мұндай кітапханада, мысалға, жиі пайдаланылатын массивтерді (енгізу процедуралары, матрицаларды шығару, массивтерді сорттау және т. б. ) өңдегендегі операцияларды сипаттағандай, бөлек программаға көп көңілді тек берліген есепке тән сұрақтарды шешуге бөледі, сондықтан стандартты және стандартты емес модульдерде іске асырылмайды.

Бұл тек программаны өңдеу уақытын қысқартып қана қоймай, оның көлемін де азайтады. Жоғарыда айтылғанда, программалар арнайы сегментте орналасады, оның көлемі компьютердің оперативті жадысын құрайтын басқа сегменттер сияқты 64 Кбайттан аса алмайд.

Әрине, бұл үшін оны үлкейтуге қажеттілік туады. Бұл мақсатқа жетуде модульдер бағаланбайтын қызмет көрсетеді.

Әр модуль бөлек сегментте орналасады, сондықтан модульдеррі және программалары бар барлық сегменттердің қосындысы, компьютердің оперативті жадысының көлемін ғана шектелген (640 Кбайт) .

Осындай алғы сөзден кейін, оқушының стандартты емес модульдерді пайдалануда пайдасы жайлы ешқандай күмәні жоқ екеніне сенімдіміз.

Оларды өңдеудің өнеріне үйренуде жеңе алмайтын алдымен модуьдің құрылымымен, оның бөлімдерінің міндеттімен және өңдеу технологиясымен танысайық.

1. 3. Модульдің элементтері

Модуль (unit) келесі бөліктерден тұрады:

  • аты немесе тақырыбы (мысалы, unit Мy_Мodyl) ;
  • интерфейс немесе хабарламалар бөлімі (Interfase) ;
  • орындаушы бөлігі немесе іске асыру бөлімі (Implementation) ;

Бұнда көрсетілген модуль бөлімдерінің тізбегі міндетті болып табылады, дегенмен осы бөлімді құрайтын блоктар (немес тек денелері) жарым-жартылай немесе толығымен болмауы мүмкін (бұрынғыдай осындай элементтерді сипаттағанда тік жақшалар пайдаланылады) .

Модуль интерфейсі

Interface {бұл бөлімнің Uses-тен басқа барлық объектілері, мәліметтер сегментінде орналасады}

[Uses … {Берілген модуль пайдаланатын, модульдердің ататры түгенделеді}]

[Cons … {Осы модуль қосқан программаға немесе басқа модульдерге, рұқсат етілуі тиіс тұрақтылар сипатталады}]

[Var … {Программада көрінетін немесе басқа модульдерде қолданатын айнымалылар сипатталады}]

[Procedure…{Формальды параметрлер сипаттамасымен толық процедураның атауы келтіріледі}]

…{Осы моудьді іске қосқан программа немесе басқа модуьдерден қол жеткізе алатын барлық басқа процедуралар мен модульдер функцияларының толық тақырыптары сипатталады}

Модульдің орындаушы бөлігі

[Uses … {Берілген орындау бөлігінде пайдаланылған және интерфейс көрсетілмеген модуьдер атауы көрсетіледу}]

[Lаbel… {Берілген модуль бөліміндегі, ішкі программаларда пайдаланылған таңбалар аттары көрсетіледі}]

[Сonst… {Берілген модуль бөліміндегі ішкі программаларда пайдаланылған және интерфейс аталмаған тұрақтылар сипатталады}]

[Var … {Берілген модуль бөліміндегі ішкі программаларда пайдаланылған және интерфейсте аталмаған айнымалылар сиптталады}]

[Procedure…{Interface-те сипатталған процедураның қысқаша немесе толық аты келтіріледі}]

{Процедура денесі}

[Function{Interface-те сипатталған функцияның қысқаша немесе толық аты келтіріледі}]

{Функция денесі}

Модульдің берілген бөлімнің ішкі программаларында пайдаланылатын және интерфейсте сипатталмаған типтер мен айнымалылар сипатталуы мүмкін, онда пайдаланылатын, жергілікті таңбалар тізімі болуы мүмкін. Implementation бөлімінде сонымен қатар, интерфейсте сипатталған процедуралар мен функциялардың жұмысына қатынасушы, бірақ өздері онда сипатталмаған іщкі программалар сипатталуы мүмкін.

Программада қосушы модуль олар ашуға болмайтын программаларға жатады (олар программада көрінбейді) .

Бұл бөлімде сипатталған модульдер, таңбалар, тұрақтылар, типтер және айнымалылар программа үшін жабық. Бұл объектілерде барлығы, соns-дан басқасы стек сегментінде орналасқан. Тұрақтылар мәні мәліметтер сегментінде болады бірақ та олар көрінбейді.

Модуль келесідей болады.

{$N+}

unit hyp_fun;

interface

type

Float = Extended;

function sinh(x: Float) : Float;

function cosh(x: Float) : Float;

function tanh(x: float) : Float;

implementation

var

t: Float;

function sinh(x: Float) : Float;

begin

t := Exp(x) ;

sinh := 0. 5*(t - 1. 0/t) ;

end;

function cosh(x: Float) : Float;

begin

t := Exp(x) ;

cosh := 0. 5*(t + 1. 0/t) ;

end;

function tanh(x: Float) : Float;

begin

t := Exp(2. 0*x) ;

tanh := (t - 1. 0) / (t + 1. 0) ;

end;

end.

II . Бағдарламалау тілдері

2. 1. Бағдарлама алгоритмі

Бағарламаның мақсаты - (-0, 1) 1, 0 дейінгі интервалында матрица элементтерін қалыптастыру.

Бағдарламаның жазылуы

PROCEDURE FORM

PROCEDURE VIVOD

PROCEDURE PR

FUNCTION MAX

Негізгі бағдарламаның модулі

unit kurp1;

interface

const n=5;

type matr=array[1. . n, 1. . n] of real;

vect=array[1. . n] of real;

procedure form(var a:matr) ;

procedure vivod (var a:matr) ;

function max(c:vect) :real;

procedure pr(a:matr; var c:vect) ;

implementation

procedure vivod (var a:matr) ;

var i, j:integer;

begin

for i:=1 to n do

begin

for j:=1 to n do

write (a[i, j] :6:2) ;

writeln;

end;

writeln;

end;

procedure form(var a:matr) ;

var i, j:integer;

begin

randomize;

for i:=1 to n do

for j:=1 to n do

a[i, j] :=random*2-1;

end;

function max( c:vect) :real;

var i:integer;

m:real;

begin

m:=-2;

for i:=1 to n do

if c[i] >m then m:=c[i] ;

max:=m

end;

procedure pr(a:matr; var c:vect) ;

var i, j:integer;

begin

c[i] :=1;

for i:=1 to n do

begin

for j:=1 to n do

c[i] :=a[j, i] *c[i] ;

writeln

end;

writeln;

end;

end.

Негізгі бағдарламасының жазылуы

program kursovik;

uses crt, kurp1;

var a:matr;

c:vect;

begin

clrscr;

window (45, 2, 75, 7) ;

writeln

writeln

writeln

window(1, 1, 80, 25) ;

writeln

window(10, 8, 80, 20) ;

writeln

writeln

writeln

writeln

writeln

window(1, 1, 80, 25) ;

gotoxy(10, 24) ;

writeln('Жалғастыру үшін пробел басыңыз') ;

clrscr;

form(a) ;

writeln('Қалыптасқан матрица) ;

vivod(a) ;

pr(a, c) ;

writeln('Максималды өнімділігі =', max(c) :6:4) ;

readln;

end.

Бағдарламаның блок-сызбасы 1 қосымшада берілген.

2. 2. Бағдарламаны тесттілеу

Қалыптасқан матрица

-0. 68 0. 22 0. 58 -0. 62 -0. 14

0. 25 -0. 11 -0. 90 0. 41 -0. 57

0. 24 -0. 69 -0. 84 0. 28 0. 71

-0. 46 -0. 26 0. 16 0. 49 -0. 73

0. 60 0. 17 0. 28 -0. 77 -0. 61

1 жолы =0. 0112

2 жолы =-0. 0007

3 жолы =0. 0187

4 жолы =0. 0264

5 жолы =0. 0243

Максималды өнімі =0. 0264


3. Мысалдар

func1 модулінің мысалы

{$N+}

unit func1;

interface

type

float = Extended;

const

Infinity = 1. 0E+4932;

function Tan(x : float) : float;

function ArcSin(x : float) : float;

function ArcCos(x : float) : float;

function Degrees_to_Radians(Degrees : float) : float;

function Radians_to_Degrees(Radians : float) : float;

function Sinh(x : float) : float;

function Cosh(x : float) : float;

function Tanh(x : float) : float;

function Log10(x : float) : float;

function Power(x, Exponent : float) : float;

implementation

const

Radians_Per_Degree = Pi / 180;

Degrees_Per_Radian = 180 / Pi;

Ln10 = 2. 3025850930;

MaxValue = 88. 029619;

function Tan(x : float) : Float;

var

Consine, Tangent : float;

begin

Consine := Cos(x) ;

if Cosine := 0. 0 then

if Sin(x) >=0 then

Tan := Infinity

else

Tan := -Infinity

else

begin

Tangent := Sin(x) / Cosine;

if Tangent > Infinity then

Tan := Infinity

else

if Tangent < -Infinity then

Tan := -Infinity

else

Tan := Tangent;

end;

end;

function ArcSin(x : float) : float;

begin

if Abs(x) = 1. 0 then

ArcSin := Pi / 2. 0

else

ArcSin := ArcTan(x / Sqrt(1 - x * x) ) ;

end;

function ArcCos(x : float) : float;

var

Result : float;

begin

if x = 0. 0 then

ArcCos := Pi / 2. 0

else

begin

Result := ArcTan(sqrt(1 - x * x) / x) ;

if x < 0. 0 then

ArcCos := Result + Pi

else

ArcCos := Result;

end;

end;

function Degrees_to_Radians(Degrees : float) : float;

begin

Degrees_to_Radians := Degrees * Radians_Per_Degree;

end;

function Radians_to_Degrees(Radians : float) : float;

begin

Radians_to_Degrees := Radians * Degrees_Per_Radian;

end;

function Sinh(x : float) : float;

var

t : float;

begin

if x > MaxValue then

Sinh := Ifinity

else

if x < -MaxValue then

Sinh := -Infinity

else

begin

t := Exp(x) ;

Sinh := 0. 5 * (t - 1 / t) ;

... жалғасы

Сіз бұл жұмысты біздің қосымшамыз арқылы толығымен тегін көре аласыз.
Ұқсас жұмыстар
Linux операциялық жүйесінің функциялары
Бағдарламалау тілдерінің түрлері
СИ тіліндегі файлдар және мәтіндік файлдар
«Бағдаршам»бағдарламасын құру.
СИ тіліндегі функциялар
СИ бағдарламалау тілі және жобалануы
СИ бағдарламалау тілі және жобалануы туралы
С\С++ программалау тілдерінің тарихына қысқаша шолу
Си тілінің пайда болу тарихы мен мүмкіндіктері
Нысандарды қарау терезесі
Пәндер



Реферат Курстық жұмыс Диплом Материал Диссертация Практика Презентация Сабақ жоспары Мақал-мәтелдер 1‑10 бет 11‑20 бет 21‑30 бет 31‑60 бет 61+ бет Негізгі Бет саны Қосымша Іздеу Ештеңе табылмады :( Соңғы қаралған жұмыстар Қаралған жұмыстар табылмады Тапсырыс Антиплагиат Қаралған жұмыстар kz