Всё для Учёбы — студенческий файлообменник
1 монета
docx

Студенческий документ № 020578 из ГЭИ

П?н:Тілдер ж?не программалау технологиялары (теория)

Алгоритм, программа, ??делетін информация т?сініктерін сипатта?ыз. Программаларды ??деу технологиясын ж?не оларды алгоритмдік тілдерде іске асыруды т?сіндірі?із. Алгоритм т?сiнiгi - информатикада?ы орталы? т?сiнiктердi? бiрi болып табылады. Алгоритм с?зi, негiзiнде, т?сiл, рецепт ж?не т.б. с?здердi? синонимi болып табылады. Б?л ма?ынада ?зiнi? коэффициенттерiмен берiлген квадрат те?деудi? т?бiрiн табу алгоритмi, немесе натурал санды ?арапайым к?бейткiштерге жiктеу алгоритмi, т.с.с. туралы айту?а болады. Б?л алгоритмдердi? негiзiнде, сандармен берiлген ?арапайым математикалы? операциялар жатыр. М?ндай алгоритмдердi санды? деп атайды. К?бiнесе санды? емес алгоритмдердi де ?арастырылады. Мысалы, бастап?ы м?лiметтер мен н?тижелер ретiнде - тексттер, формулалар ж?не т.б. символдар тiзбегi болуы м?мкiн, ал операциялар ретiнде: б?лу, к?бейту ж?не т.с.с. операциялар емес, керiсiнше бiр ?атарды екiншiсiне жат?ызу, кейбiр кестелерде бiр символдарды екiншiсiне алмастыру операциялар ?арастырылады. Геометрияны? мектептiк курсында циркуль мен сыз?ышты? к?мегiмен т?рлi есептердi? шешуi ?арастырылады. Б?л есептерде т?сiлдi немесе бас?аша айт?анда бастап?ы м?лiметтер бойынша фигураны т?р?ызу алгоритмiн к?рсету ?ажет. Б?л т?рде бастап?ы м?лiметтер мен н?тиже ретiнде н?ктелер, сызы?тар, ше?берлер жиынты?ы болады, ал операциялар ретiнде - тiке сызы?тар мен ше?берлердi бейнелеу болады.

Сонымен, к?зделген ма?сат?а жетуге ба?ыттал?ан ?дiстi? н?с?аулар т?рiндегi толы? ж?не д?л сипаттамасын алгоритм деуге болады.

?сiресе к?зiргi кезде техника, экономика, ?ылыми зерттеулерде компьютердi ?олдану м?мкiндiгiнi? ар?асында, алгоритмдер ?лкен ?ызы?ушылы? тудырып отыр, ?йткенi к?зiргi ?о?амда?ы адам ?ызметiнi? ?р т?рлi салаларында ЭЕМ-нi? соншалы? жедел е?гiзiлуi, оны? бесаспапты?ы, т?рлi информацияны арнайы бiр ма?сат?а с?йкес ??дей алу ?абiлетi себепшi болып отыр. ЭЕМ ж?мыс iстеу барысында тек программа т?рiнде жазыл?ан н?с?ауларды орындайды, ал программаны? ?зi де арнайы кодтар ар?ылы жазыл?ан алгоритм болып табылады. Тиiстi белгiлеулер ж?йесiн программалау тiлi деп атайды. Д?лiрек айтса?, программалау тiлi - б?л алгоритмдi компьютер ?шiн ?олайлы т?рде беретiн ??ралдар мен ережелердi? жиынты?ы.

?рбiр алгоритм - б?л ?рекеттер тiзбегi, оларды? орындалу барысында алгоритм орындаушысы бастап?ы шамалардан iзделiнетiн ?орытынды н?тижеге жету ережелерi к?рсетiледi. М?ндай ?рекеттер тiзбегiн алгоритмдiк процесс деп, ал ?рбiр ?рекет оны? ?адамы деп аталынады.

Кез келген есептi шешу - берiлгендерi бойынша ?орытынды н?тиженi табуды талап етедi, я?ни алгоритм бастап?ы м?лiметтердi н?тижеге т?рлендiретiн ?рекеттерiнi? ж?не оларды? орындалу кезектiлiгiнi? сипаттамасы деп айту?а болады. Есептi шешудi? алгоритмiн ??ру - оны кезекпен орындалатын ?адамдар?а б?лудi бiлдiредi. М?селенi шешу процесiн сипаттайтын ?рекеттердi? д?л келтiрiлген кезектiлiгi - алгоритм болып табылады.

ЭЕМ процессорына арнал?ан алгоритмдердi ??ру кезiнде, оларды? орындалуы ?ажеттi ?асиеттерге ?келетiн бiр?атар талаптарды ескеру ?ажет:

Бастап?ы берiлгендердi енгiзу н?с?ауы бар болуы.

?орытынды н?тижелердi баспа?а шы?ару н?с?ауы бар болуы.

Аны?тылы? - алгоритм, кез келген н?с?аулармен ж?не оларды? орындалу реттiлiгiн ?алай болса солай тісiнудi болдырмайтындай бiр ма?ыналы болуы тиiс.

?дептiлiк - алгоритм есептi? д?рыс шешiмiн беруi керек.

Н?тижелiлiк - алгоритм ?амтитын процесс, мiндеттi т?рде белгiлi-бiр ?адамдардансо? н?тиженi? алынуына немесе есептi шешудi? м?мкiн еместiгi туралы хабар?а ?келуi керек.

К?п м?ндерге бiрдейлiгi -?рт?рлi бастап?ы м?лiметтермен бiр типтес есептердi бiр алгоритм негiзiнде ж?зеге асыру?а болады.

?здiктiлiк - алгоритм аны?та?ан есептеуiш процестi жекелеген кезе?дерге, ?арапайым операциялар?а б?луге болады.

Информацияны ??деудi? алгоритмiн турлi жолдармен ??ру м?мкiн. Оларды? iшiнде негiзгiсi болып: алгоритмдi ауызша сипаттау, графиктiк т?сiл ж?не арнайы алгоритмдiк тiлде бейнелеу табылады. Алгоритмдердi ауызша жазу т?сiлi дегенiмiз - берiлген информацияны ??деудi? кезектi кезе?дерiн сипаттау н?с?аулары к?нделiктi пайдаланатын с?здермен, таби?и тiлде ?алай болса солай сипаттауымен берiледi ж?не е?, аз формалдан?ан болып табылады. Б?л алгоритмдердi? к?п м?ндi тісiнiлетiн н?с?аулары болуы м?мкiн, сонды?тан информацияны ??деуде оларды ?олану тиiмсiз болады. Алгоритмдердi сипаттауды? графикалы? т?сiлi жо?ары д?режелi к?рнекiлiгiмен ерекшеленедi. Схема деп алгоритмдi к?рнекi графиктiк бейнелеуi аталады, Б?л кезде алгоритмнi? жекелеген ?рекеттерi (н?с?аулары) ?рт?рлi геометриялы? фигураларды? к?мегiмен бейнеленедi, ал кезендер (?рекеттердi? орындалу кезектiлiгi) арасында?ы байланыс, осы фигураларды бiрiктiретiн ба?ытта?ыштар к?мегiмен к?рсетiледi.

Схема алгоритмнi? ??рылымын к?рнектi кескiндеуiне м?мкiндiк бередi. Дербес жа?дайда, алгоритмдi Б?л т?рiнде бейнелеуде циклдiк ??рылымдарды? ?йымдастыруын жа?сы к?руге болады ( цикл -дегенiмiз - ол бiр?атар ?ректтердi? тiзбегi, оларды? со??ысы орындар?аннан кейiн, тiзбек басына ?айта оралу жузеге асырылады), схемада олар алгоритмнi? туйы? б?лiктерi турiнде к?рсетiледi. Схемалар ?детте алгоритмнi? аралы? варианттарын бейнелеу ?шiн падаланылады. ЭЕМ - орындаушы?а арнал?ан алгоритмнi? т?пкiлiктi варианты - алгоритмдiк тiлде жазыл?ан болуы керек.

Алгоритмнi? графикалы? к?рiнiсi информацияны ??деудегi ?рекеттердi? кезегiн бейнелейдi ж?не т?рлi геометриялы? фигуралар т?рiндегi МЕСТ-те бекiтiлген символдардан ??ралады (1 сурет).

Не??рлым жиi ?олданатылатын шы?ыр-символдары:

1

Орындау?а жiберу, то?тату, алгоритмнi? басы мен со?ын бiлдiретiн шы?ыр ж?не де к?мекшi программаларда кiру немесе шы?у;

2 Процесс - меншiктеу немесе арифметикалы? есептеудi бiлдiретiн шы?ыр;

3

??жат - шы?ару, натиженi баспа?а немесе экран?а шы?ару ?рекетiн белгiлейдi;

4

Е?гiзу - берiлгендердi? м?ндерiн е?гiзудi белгiлейдi;

5

Шешiм - логикалы? шартты тексеретiн шы?ыр (шартты? орындалуына байланысты алгоритмнi? орындалу ба?ыты та?далынады);

6 Байланыстырушы - блок-схеманы? сызы?тары б?лiнгенде ?олданылады;

7 Басынан белгiлi процес - к?мекшi программа бойынша немесе стандартты программа бойынша есептеудi белгiлейдi;

Алдын ала келiсiм бойынша шы?ыр-символдарды? белгiлi бiр т?ра?ты м?нi бар ж?не олар т?рлi ?рекеттер-дi? орындалуын белгiлейдi. Б?л символдар бiр-бiрiмен ба?дарша ар?ылы ?осылады (а?ынны? ба?ыты) ж?не де бiр ?рекеттен келесi ?рекетке к?шу ба?ытын к?рсетедi. Мысалы, ромб т?рiндегi символды белгiлi бiр шартты? орындалуын тексеруге немесе шамаларды салыстыру ?шiн пайдалану?а болады, ал т?ртб?рыш т?рiндегi символ барлы? турдегi есептеу операцияларын бiлдiредi дейiк.

Сонымен, алгоритмнi? келесi ?асиеттерiн атап кетуду ж?н санаймыз:

Есептi? шешу жолын бiр ма?ыналы т?рде аны?тау;

М?мкiндiгiнше есептi? ?рт?рлi варианттарын шы?ару?а жа?дай ту?ызу;

?олданылу барысында белгiлi бiр за?дылы? бойынша есептеу н?тижесiне мiндеттi т?рде жеткiзу.

?арастырыл?ан есепте бастап?ы берiлгендер - квадрат те?деудi? a, b, c -коэффициенттерi, ал н?тижелiк х1 мен х2 болып саналады, сонды?тан Б?л мысалды? алгоритмнде кiрiс шамалар ретiнде a, b, c-параметрлерiнi? м?ндерi ж?не де шы?ыс параметрлерi болып х1 мен х2 м?ндерi алынады.

а)

Б)

с)

...

Сурет. ?адамды? толы? тал?ылау ?дiсiн пайдаланып ??растыр?ан алгоритм

Тендеудi? коэффициенттерi на?ты сандар ж?не де б?рi де 0-ге те? емес деп аламыз.

Сонымен, Б?л есептi? алгоритмi ал?ашында а) суретiнде к?рсетiлгендей болып ??рылады, келесi ?адамында "квадрат те?деуiн шешу" блогыны? ?рекетi б) суретiнде к?рсетiлгендей та?ы да ?ш ?рекетке б?лiнедi, олар - a,b,c бастап?ы м?ндерiн е?гiзу; x1, ж?не x2 аны?тайтын формула; ж?не x1, мен x2 м?ндерiн баспа?а беру. Келесi ?адамда талдауды одан ?рi жал?астырып с) суретiнде к?рсетiлген алгоритмге келуге болады. Б?л жерде "x1, ж?не x2 аны?тайтын формула" блогыны? ?рекетi келесi н?с?ауларды? орындалуына келтiредi - дискриминантты есептеп, кейiннен оны? м?нiне байланысты, егерде d>0 болса те?деудi? екi тібiрi, егерде d

#include

main() (2)

{ int x, y, zl, z2; clrscr ();

printf("caндap:x,y=?");

scanf("%d%d",&x,&y);

z1=x % y; z2=x/ y;

рrіnt?("калды?=%d\n", z1);

printf("б?лiндi=%d", z2);

getch (); return 0;

} Ескерту. Бірнеше айнымалыларды бірден енгізу ?ажет болса, scanf() операторында формат спецификаторларын жо?арыда?ы сия?ты ретімен толы? енгізіп ?ою керек.

?атыс операциясы. Логикалы? операциялар

?атыс операциясы салыстыру ?шін шарт т?рінде жазылатын операция. Си, C++ тілдерінде алты ?атыс операциясы, ?ш логикалы? операция бар.

?атыс операциялары:

Тендікті тексеру ( = = ) Те? еместікті тексеру ( ! = ) Кіші ( )

?лкен не Те? ( >= )

Ескерту. Те?дікті тексеру ж?не баска операциялар шартты тексеруге арнал?ан i? операторында пайдаланылады. (== ж?не = операциялары бірдей емес).

Логикалык операциялар - ж?не, немесе, жо? шарттары т?рінде жазылады. Жазылу т?рлері:

&& - ж?не (and), | | - немесе (or), ! - терістеу (not).

Мысалдар:

i? (k>50 && j = = 24)

i?(k5) ?атыс ж?не логикалы? операцияларды? н?тижелері ?деттегідей екеу а?: а?и?ат (true) не жал?ан (?alse). Н?тиже а?и?ат болса, м?ні=1 деп, жал?ан болса, м?ні=0 деп белгіленеді.

Ескерту. Логикалы? операциялар да i?, ?or сия?ты баскарушы операторларда пайдаланылады. Та?ы бір ескеретін жайт: келесіде Си тілі деп жазылса, Си ж?не C++ тілдері деп т?сіну керек. Егер ол тек Си тіліне ?атысты болса, арнайы ескертіледі.

Берілген екі айнымалыны? м?ндері т?рлі бол?анда ?ана мэні шын болатын бол?ызбайтын ж?не (XOR) логикалы? операциясы Си тіліне енгізілмеген.

Меншіктеу операциясы

Меншіктеу операторы ?рнек м?нін айнымалы?а меншіктеу операциясыны? со?ына ; та?басын ?оюдан т?рады. Меншіктеу операциясы ?деттегідей тендік (=) та?басымен белгіленеді. Айнымалы Ivalue (адрестік шама) деп аталады. Мысалы, y=3*x+5; операторында?ы y айнымалысы - Ivalue.

Си тілінде ?осарлы меншіктеу операциясы да бар. Мысалы, y = x = a*b+5; операторында алдымен a*b+5 ?рнегіні? м?ні x айнымалысына меншіктеледі, ал ол y айнымалысына меншіктеледі.

Си тіліне ?осымша меншіктеу операциялары да енгізілген:

+=, -=, *= ж?не %=

Олар - айнымалы м?ніне +, -, * не % операциясы ?осыл?ан ?рнекті бастап?ы Айнымалы?а меншіктеу операциялары. М?ндай операцияларды пайдалану т?сілі т?менде к?рсетілген. Бірдей операциялар:

m += 10 ж?не m=m+10

m -= 10 ж?не m=m-10

m *= 10 ж?не m=m*10

m %=10 ж?не m=m%10

М?нда?ы m+=10 командасы m айнымалысыны? м?нін 10-?а ?сіруді білдіреді, ал m=m+10 командасы о? жакта?ы m-ні? м?нін орнына койып, ж?не о?ан 10-ды ?осып, н?тижені m айнымалысына меншіктеуді білдіреді. Оларды? ерекшеліктері жо?, тек бірінші т?рде жазыл?ан команда екінші т?рде жазыл?ан командадан тезірек орындалады.

Биттік операциялар

Процедуралы? тілдерде жад ?яшы?тары мен байттар бойынша ж?мыс істеу м?мкін екені белгілі. Си тілінде тек байтты? ?яшы?тармен емес, оларды? биттік разрядтарын ?згерту операциялары да бар:

>, &, I, ^ ж?не ~ .

Разрядтты? операциялар б?тін типті шамаларды? биттік шамаларын ??деуге анал?ан:

берілген санны? екілік ж?йеде жазылуы. Мысалы, х=11012 (=1310) санын 3 битке сол?а жылжыту керек болсын:

int x = 11012

int y = x > - о??а жылжыту операциясы: м?н >> биттер саны

Операция н?тижесінде берілген екілік м?нні? сол жа?ына операцияда к?рсетілген биттер санындай 0-дер енгізіліп ?ойылады (сан кішірейеді).

Мысалы: int x = 110002 ; (= 2420) int y = x " 3

?шін н?тиже: y = 112 (= 310) .

Ескерту. x >> 3 операциясы x м?нін 810 - ге б?лумен, x > операциясыны? н?тижесінде ?алды? алынып тасталады.

& - биттік ж?не (AND) операциясы. Ол екі екілік м?ндерді? с?йкес 1-лік биттеріні? орнына 1 ?ойып шы?ады, ?ал?ан разрядтарды 0-мен алмастырады. Мысалы, a & b б?тін саны ?шін ол т?менде к?рсетілген:

a= 100101102 b = 000100102 a & b = 000100102

I - биттік немесе (OR) операциясы. Ол екі екілік м?ндерді? с?йкес разрядты? биттеріні? біреуі не екеуі де 1-ге те? болса, 1-мен алмастырады:

Мысалы:

a = 100101102

b = 000100102

a & b = 100101102

~ - биттік жо? (NOT) операциясы. Ол санны? 1-лік разрядын 0-мен, 0-дік разрядын 1-мен алмастырып шы?ады.

Мысал: х = 000000112 ~х=111111002 C++ тілінде биттік XOR (бол?ызбайтын ж?не)операциясы да бар. Операция л символымен белгіленеді. Ол да екі б?тін сан ар?ылы жа?а сан алады. Орындалу т?рі: екі санны? тек біріні? с?йкес разряды 1-ге те? болса, ол 1-мен алмастырылады, ал с?йкес бірдей 1-лік ж?не 0-дік разрядтар 0 - мен алмастырылады.

Мысал:

a = 100101102 b = 010101002 a^b = 110000102 Разрядты? операцияларды? а?и?атты? кестелері т?менде к?рсетілген (1.5-1.8 кестелер).

1.5-кесте

Бірінші бит Ж?не Екінші бит Н?тиже 1 & 1 1 0 & 1 0 1 & 0 0 0 & 0 0

1.6-кесте

Бірінші бит НЕМЕСЕ Екінші бит Н?тиже 1 | 1 1 0 | 1 1 1 | 0 1 0 | 0 0

1.7-кесте

Терістеу Бит Н?тиже ~ 1 0 ~ 0 1 1.8-кесте

Бірінші бит XOR Екінші бит Н?тиже 1 XOR 1 0 0 XOR 1 1 1 XOR 0 1 0 XOR 0 0 ?детте, биттік операцияларды операциялы? ж?йемен ж?мыс істейтін мама?дар пайдаланады.

Программада биттік операцияларды онды? ж?йеде берілген сандар?а пайдалану?а да болады.

Мысал. x = 18 саны ?шін yl= x >> 2 ж?не y2= x

# include main() (3)

{ int x, yl, y2; clrscr();

printf"x=?");

scanf("%d",&x);

yl=x>>2; y2 = x" 2;

printf("yl=%d y2=%d", yl,y2);

getch (); return 0;

Н?тиже: yl=4 y2=72

Тапсырма. 1. Шы??ан н?тижелерді? д?рысты?ын екілік санау ж?йесі?де тексеру керек.

2. x=18 ж?не y=24 ?шін z1 = x&y, z2= x I y м?ндерін аны?тау программасын ??рып, шы??ан н?тижелерді? орындалу д?рысты?ын екілік ж?йеде тексеру керек.

3. x=1210 санын терістеп, шы??ан н?тижені екілік ж?йеге т?рлендіру керек.

?! шарт операциясы

?! шарт операциясы - ?ш операндтан т?ратын жал?ыз операция. Оны? жазылу синтаксисі:

? : Б?л операцияда алдымен ?рнек 1 - ді? м?ні (а?икат не жал?ан екендігі) аны?талады. Егер ол н?л (жал?ан) болмаса, онда ?рнек 2-ні? м?ні н?тиже т?рінде ?абылданады. Егер ?рнек 1-ді? м?ні жал?ан (0) болса. Онда ?рнек З-ті? м?ні есептеледі де, оны? м?ні операция н?тижесі ?шін алынады. Операцияны орындау ?шін алдымен оны кез келген айнымалыга меншіктеп алу керек.

Сонымен, операцияны орындау кезінде со??ы екі ?рнекті? біріні? ?ана м?ні н?тижеленеді.

Мысалы, max=(x>y) ? x : y ?рнегі ?шін x>y болса, max айнымалысына х-ті? м?ні, ал x

# include

main() (4) {

floatmax, x, y; clrscr ();

printf ("x, y=?");

scanf("%?%?', &x, &y);

max = (x>y) ? x : y;

printf ("max=%f', max);

getch (); return 0;

}

Н?тиже: x,y=? 13.2 5.7

max=13.200000

Ескерту. Жо?ар?ы та?ырыптарда Си ж?не C++ тілдерінде т?рлі операцияларды пайдалану?а болатыны к?рсетілді. Математикалы? операцияларды? орындалу басымдылы?ы белгілі, ал бас?а кейбір операцияларды? басымдылы? реті мынадай:

1. () - функцияны ша?ыру,

2. ++, - -,

3. > , 4. Логикалы? операциялар,

5. Жай меншіктеу: = , + -, - = ж?не т.б.

??рылымды?, модульдік ж?не объектіге ба?ыттал?ан программалау концепциясынт?сіндірі?із.

ХХ ?асырды? 60-70 жж. пайда бол?ан ??рылымды? к?з?арас (ба?ыт) ба?дарламалы? жабды?ты ??руды? барлы? кезе?деріні? орындалуын ?амти отырып, ?сыныл?ан технологиялы? т?сілдер жиынты?ын аны?тайды. ??рылымды? ба?ытты? негізінде к?рделі ж?йелерді кейіннен кішігірім к?мекші ба?дарламалар т?рінде пайдалану ма?сатында декомпозициялау (б?ліктерге б?лу) жатады. Декомпозицияны? бас?а да принциптері пайда бол?анды?тан (объектілі, логикалы?, т.б.) атал?ан т?сіл процедуралы? декомпозиция атауын алды.

??рылымды? к?з?арас есепті ?арапайым ??рылымды ішкі есептер иерархиясы т?рінде сипаттауды талап етті. Енді жобалау "жо?арыдан-т?менге" принципі бойынша орындала бастады ж?не жалпы идеяны орындай отырып, к?мекші ба?дарламаларды? интерфейстерін дамыта бастады. Сонымен бір мезгілде алгоритмдерді? ??рылымдарына шектеулер енгізілді, оларды сипаттауды? формальді модельдері ?сынылды, сондай-а? алгоритмдерді жобалауды? арнайы ?дісі - ?адамды? детализациялау ?дісі ендірілді.

??рылымды? ба?дарламалау принциптері процедуралы? ба?дарламалау тілдеріні? негізін ?алады. ?детте олар бас?аруды? негізгі ??рылымды? операторларынан ??ралады. ??рылымды? ба?дарламалаумен бір мезгілде бас?а да композициялар?а негізделген к?птеген тілдер д?ниеге келді, біра? оларды? негізгі к?пшілігі б?секеге т?теп бере алмады.

??ралатын ба?дарламалы? жабды?ты? к?рделілігі мен ?лшемдеріні? ?суі ??рылымды? м?ліметтерді? дамуын талап етті. Осыны? н?тижесі ретінде тілдерде пайдаланушы аны?тайтын м?ліметтер типі пайда болды. Онымен бір мезгілде сырт?ы м?ліметтермен ж?мыс істеу барысында т?рліше ?ателіктерді? шы?уын кеміту ?шін ондай м?ліметтермен байланысу м?мкіндіктерін шектеу ?рекеттері к?шейді. Н?тижесінде модульдік ба?дарламалау деп аталатын ба?ыт пайда болды ж?не ?ар?ынды дами бастады.

Модульдік ба?дарламалау ?андай да бір сырт?ы м?ліметтерді жеке компиляциялайтын модульдерде ?олданушы ішкі ба?дарламалар топтарын ажырату?а негізделген. Мысалы, графикалы? ресурстар модулі (GRAPH), баспа?а шы?арушы ішкі ба?дарламалар модулі (PRINTER).

Модульдік ба?дарламалау ??рылымы

Модульдік ба?дарламалауды ?олдану БЖ-ты бірнеше ба?дарламалаушыны? дайындауын ?лде?айда же?ілдетті. Енді оларды? ?р?айсысы бас?аларына т?уелсіз ?з модульдерін ??ра алды. Модульдер арасында?ы байланыс атал?ан технологияны ?олдану барысында арнайы интерфейс ар?ылы іске асырылды. Модульдерді бас?а БЖ-да ?згеріссіз ?олдану?а, с?йтіп ба?дарламалаушыларды? е?бек ?німділігін арттыру?а м?мкіндігі пайда болды. М?ндай технологияны Pascal, C++, Ada, Modula сия?ты тілдер ?олданады.

??рылымды? к?з?арас модульдік ба?дарламалаумен бірге к?лемі 100000 оператордан аспайтын ?лде?айда сенімді ба?дарламалар алу?а м?мкіндік берді. Модульдік ба?дарламалауды? кемшілігі - к?мекші ба?дарламаны ша?ыру кезіндегі интерфейстік ?ателер тек ?ана ба?дарламаны? орындалуы барысында аны?талады. Модульдер жеке компиляциялан?анды?тан, м?ндай ?ателерді б?рын аны?тау м?мкін емес. Ба?дарламаны? к?лемін арттыр?ан кезде, ?детте модульаралы? интерфейстерді? к?рделілігі де артады, с?йтіп, белгілі бір уа?ыттан бастап ба?дарламаны? жекелеген б?ліктеріні? ?зара ?серлесуін ?ада?алап отыру іс-ж?зінде м?мкін болмай ?алады. Сонды?тан, ?лкен к?лемді БЖ дайындау ?шін объектілі к?з?арасты пайдалану ?ол?а алынды.

Си тілі бірте-бірте дамытылып, ?азіргі кезде пайдаланылып келе жаткан, 1983 жылы д?ние ж?зі елдері басшылы?ка ал?ан ANSI C н?с?асы да жары??а шы?ты (ANSI - стандарттарды? Америкалы? ?лтты? институты). ANSI C тіліні? т?рлі н?с?аларына енгізілген стандартты кітапханалар да бар. Тілді? кемшілігі де жо? емес, ол ж?йелік ж?не ?олданбалы программаларды дайындау?а бейім, біра? айнымалылар?а р??сат етілмеген ?ол жеткізу механизмін ?амтамасыз етпейді ж?не ??рылатын класты бас?а класты? ішкі класы (м?рагер) ретінде жариялау м?мкін емес. М?ндай объектілі - ба?дарлы программалау (ОБП) тілдеріне енетін ерекшеліктерді ескеріп, Borland International Inc фирмасы C тіліні? дамытыл?ан жа?а Turbo C (Турбо Си) н?с?асын 1980 жылдарды? басында жары??а шы?арды. Кейіннен Turbo C++ 2.0, Turbo C++ 3.0 ж?не оларды? ке?ейтілген Borland C++ н?с?алары да пайда болды: Borland C++ 2.0, Borland C++ 3.0, Borland C++ 3.1, Borland C++ 4.0 ж?не т.б.

Оларды? MS DOS, Windows операциялы? ж?йелерінде ж?мыс істеу м?мкіндіктері жеткілікті.

C++ тілі де процедуралы? тіл, біра? онда ОБП тіліні? ерекшеліктері ке? т?рде ?арастырыл?ан. ОБП тілінде ?олданылатын негізгі ?йымдар: класс, объект, о?и?а, ?асиеттер мен ?дістер. Б?л ??ымдар:

объект - ??рылымы класс типі ар?ылы сипатталатын айнымалы;

о?и?а - объект жа?дайыны? ?згеруі; ?асиеттер - объект сипаттамалары (параметрлері); ?діс - класс элементтерін іздейтін команда не процедура, функция.

класс - пайдаланушы аны?тайтын тип. Тип ?асиеттер мен ?дістерді бірге ?осып сипаттайды. Программада осы класты? жеке даналары дайындалады. ОБП-да класс ?шін м?рагерлік, инкапсуляция ж?не полиморфизм принциптері енгізілген. М?рагерлік - программада негізгі класс типіні? туынды иерархиялы? класта са?талуы, т.б.

Тілде жадпен ж?мыс істеуге арнал?ан арнайы конструктор, деструктор функциялары да бар. Конструктор класс типті айнымалы ?шін жадтан арнайы орын б?леді, деструктор б?лінген жадты тазалайды.

Мысал ?шін фигуралы? объектілерді ?арастырайы?. М?нда?ы класс - геометриялы? фигуралар типі. Класс жазы? ж?не ке?істіктегі у фигуралар болып екі ішкі клас?а б?лінеді (C тілінде оларды м?рагер типтер деп атайды). Жазы? фигуралар класы т?белері бар (мысалы, ?шб?рыш, т?ртб?рыш) ж?не т?белерсіз (мысалы, ше?бер, эллипс) болып екі ішкі класка б?лінеді (олар иерархиялы? м?рагер типтер).

О?и?а - фигурамен ж?мыс жа?дайы.

Объектіні? ?асиеттері: боялу т?сі, ?зынды?ы, ені ж?не т.с.с. ОБП тілінде негізгі кластар программа т?рінде дайындал?ан со?, олар арнайы кітапханалы? (каталогты?) файлдарда са?талып ?ойылады. М?рагерлік класты пайдаланып программа ??руда негізгі клас?а арнайы сілтеме орнатып, программалау процесін к?п же?ілдетуге болады (себебі, ол Турбо Паскальда sin() функциясына арнал?ан кітапханалы? файлды пайдалану сия?ты ж?мыс істейді).

Бейсик, Паскаль, Си сия?ты д?ст?рлi программалау тiлдерiнде к?рделi, ?лкен программаларды дайындауды? кемшiлiгi - ол ?шiн программалаушылар тобыны? к?п к?ш ж?мсауы ?ажет болатын. Программалауды же?iлдету ?шiн 80 - жылдары жа?а объект, класс (оbject, class) ??ымдары енгiзiлiп, объектiлi - ба?дарлы программалау (ОБП) т?сiлi негiзге алынды. ОБП - Турбо Паскальда ?олданылатын процедуралы? ж?не ??рылымды? программалауды? ж?не модуль ??руды? дамытыл?ан т?рi. Ол берiлгендердi белгiлi бiр абстракциялы? де?гейде к?рсетiп, модульдiк программалауды пайдаланады. Мысалы, Visual Basic программалау ж?йесi объектiлi программалау негiзiнде визуальды т?рде ??рыл?ан. Паскальды? ОБП т?сiлiн пайдаланып ??рыл?ан жа?а н?с?асы Object Pascal (Объектiлi Паскаль) деп аталады. Delphi осы тiлдi? негiзiнде дайындал?ан. Объектiлi программалауды? ы??айсызды?ы - онда д?ст?рлi программалау т?сiлдерiн пайдалана бермейдi, бiра? онда?ы к?п ?иынды?тар арнайы т?сiлдердi пайдалану ар?ылы тез шешiлген.

ОБП тiлiнi? д?ст?рлi программалау тiлдерiнен ?згешiлiгi - типте ?рiстерге ?оса, ?асиеттер ж?не ?дiстер де сипатталады:

?рiстер - Турбо Паскальда?ы жазу (record) типiнi? ?рiстерi сия?ты;

?асиеттер - объект сипаттамалары;

?дiстер - класты? ?рiстерi мен ?асиеттерiн ??дейтiн процедуралар мен функциялар.

Kласс - жо?арыда к?рсетiлген ??рылымды (?рiстер, ?асиеттер ж?не ?дiстерден т?ратын) тип. Я?ни, класс ?деттегi Паскаль типiнi? ке?ейтiлген т?рi. Класс типi ар?ылы сипаттал?ан айнымалы объект (нысан) деп аталады.

Ж?йе объект ?шiн жадты? динамикалы? облысынан арнайы орын ?алдырады. Я?ни, шын м?нiнде, объект жай айнымалы емес, ол - жадты? динамикалы? облысыны? кездейсо? адресiн са?тайтын к?рсеткiш. Бiра? программада о?ан Турбо Паскальда пайданылатын к?рсеткiш белгiсi ( ^ ) енгiзiлмей жазылады.

Объект ??рыл?ан кезде автоматты т?рде конструктор (constructor) деп аталатын ?дiс ша?ырылып, ол объектiнi динамикалы? облыста орналастырады, динамикалы? жадтан объектiнi арнайы деструктор (destructor) ?дiсi жояды.

Сонымен, ОБП - да пайдаланылатын объект с?зiнi? екi ма?ынасы бар: айнымалы (абстрактты, дерексiз объект) ж?не на?ты объект (мысалы, формада орнатыл?ан компонент, геометриялы? дене, т.с.с.). Delphi - де бiрiншi объект на?ты класс данасын аны?тайды.

Клас?а иерархиялы? (ба?ынышты, жо?арыдан т?мен) кластарды? енуi де м?мкiн. Мысалы, геометриялы? фигуралар класы жазы? фигуралар ж?не ке?iстiк фигуралары болатын екi iшкi класты? фигуралар?а б?лiнедi. Ал жазы? фигуралар класы т?белерi бар (?шб?рыш, к?пб?рыш) ж?не т?белерсiз (ше?бер, эллипс) болып екi iшкi клас?а б?лiнедi. Объектiлi программалауда барлы? кластар иерархиялы? т?рде негiзгi TObject класынан тарайды (TObject ? TPersistent ? TComponent ? ...). ?детте негiзгi класты аталы?, ба?ыны??ы кластарды туынды не с?билiк кластар деп атайды (TObject - барлы? кластарды? ар?ы атасы, TComponent - барлы? иерархиялы? компоненттердi? жо?ар?ысы (компонент деп TComponent класыны? м?рагерi болатын класс данасын атайды)). ?р ?рпа? ?зiнi? аталы? класыны? м?мкiндiктерiн (?рiстерiнi?, ?асиеттерiнi?, ?дiстерiнi? сипаттамаларын) ?абылдайды. Мысалы, TObject класыны? Create (бастап?ы м?н меншiктеу (инициалдау)) ?дiсi барлы? туынды кластар?а тиiстi (TObject класында конструктор Create деп аталады). ?р ?рпа? ?зiне ?осымша жа?а м?мкiндiктер (сипаттамалар) ?осып, келесi ?рпа?тар?а беруi м?мкiн.

Delphi-де класс атауын T ?рпiнен бастау келiсiлген. Форма?а енгiзiлген компонент данасы санды? индекс ?осыл?ан класс атауын алады.

Туынды класты? сипатталу т?рi:

type =class ();

end; var : ;

м?нда?ы класс м?шелерi - ?рiстер, ?асиеттер ж?не ?дiстер.

Мысалы,

type TForm1 = class (TForm)

Button1 : TButton;

Label1 : TLabel;

Procedure Button1Click ( Sender : TObject);

end; var Form1 : TForm1;

TForm1 = class (TForm) жазуы TForm класыны? ?лгiсiмен ??рылатын жа?а (туынды) TForm1 класын аны?тайды. Form1 : TForm1 жолында?ы Form1 айнымалысы - класс данасы

Программаны дайындау барысында Delphi модульдi? Interface б?лiмiне форма?а енгiзiлген компоненттер мен о?и?асы та?дал?ан ?дiстердi сипаттауды автоматты т?рде енгiзедi, ?дiстердi iске асыру н?с?аулары модульдi? implementation б?лiмiне ?олдан жазылады.

Жалпы, Delphi - де класс деп ?зiне ??сас даналарды дайындау ?шiн ?лгi т?рiнде алынатын, толы? т?рде дайындал?ан программа ?зiндiсiн де атайды. Программалаушы б?рын дайындал?ан класс данасыны? к?шiрмесiн т?рлi программалар?а енгiзiп, программалауды ж?не оны? к?лемiн к?п же?iлдетуiне болады.

Delphi ??рамына ж?здеген дайын кластар енгiзiлген. ?р компонент ?ата? т?рде тек бiр клас?а ?ана тиiстi. Мысалы,

Delphi - де форма (TForm) компонентi - Forma класына тиiстi, осы типтi айнымалы (Form1) - класс объектiсi. Класс б?лiгi ретiнде сипатталып, ?ажет болса, модульдi? Implementation (iске асыру) б?лiгiнде жазылатын с?йкес процедура - ?дiс. Мысалы, procedure TForm1.Button1Click - ?дiс.

Форма iшiне орналастырыл?ан TEdit компонентiнi? Edit1 данасын (объектiсiн) екi рет шерткен кезде пайда болатын о?и?аны ??деуiш ?дiсiне (процедурасына) мысал:

procedure TForm1.Edit1Click(Sender : TObject);

begin Edit1.Text := 'Сiз редакциялау ?рiсiн екi рет шерттi?iз';

end; Программаны iске ?осу командасы берiлген со? компилятор автоматты т?рде негiзгi модульге енгiзiлген т?мендегi екi ?дiстi орындайды:

Application.CreateForm(TForm1, Form1);

Application.Run;

Б?ларды? бiрiншiсi жадта Form1 объектiсiн ??рады (объектiнi инициалдайды), екiншiсi Application объектiсiне ?осымшаны? негiзгi формасын iске ?осу?а н?с?ау бередi (Run). Жо?арыда жазыл?ан процедураны? орындалу н?тижесiнде форманы? Edit1 ?рiсiне оны? Text ?асиетiне меншiктелген м?тiн жазылады.

Ескерту. Белгiсiз жа?дайда программада ?асиет орнату командасын иерархиялы? т?рде жазу ?ажет, мысалы:

Form1.Button1.FontSize:=14;

М?нда?ы иерархияны? бiрiншi объектiсi - форма (Form1), екiншi объект - формада орнатыл?ан Button1 т?ймесi, ?шiншi объект - т?йменi? шрифт ?асиетi; команда - форманы? Button1 объектiсiне енгiзiлген FontSize (шрифт ?лшемi) айнымалысына 14 м?нiн меншiктеу. Я?ни, объектiлер арасына ?ойылатын н?кте с?йкес иерархиялы? объектiге сiлтеме.

М?рагерлiк. Инкапсуляция. Полиморфизм

ОБП - да класс ?шiн м?рагерлiк, инкапсуляция ж?не полиморфизм принциптерi енгiзiлген.

М?рагерлiк - программада негiзгi класс типiнi? туынды иерархиялы? кластарда да са?талуы. Мысалы, автомобиль же?iл ж?не ж?к машинасы болып б?лiнедi. Оларды? ж?мыс iстеу жа?дайына байланысты, сипаттамаларына орта? ж?не б?лек ?рiстер, ?асиеттер мен ?дiстер енгiзiлуi м?мкiн. Бiра?, ?р ?айсысына жеке - жеке типтi толы? аны?тау ?немдi емес. Бiрiнi? типiн аталы? етiп ?абылдап, екiншiсiне ?осымша ?асиеттердi енгiзу жеткiлiктi. Delphi - дi? барлы? кластары TОbject класына мрагер.

Инкапсуляция (iшiнде, бiрт?тас) - класс ?рiстерiн, ?асиеттерiн ж?не ?дiстерiн бiрiктiрiп, бiрт?тас т?рiнде ?арастыру м?мкiндiгi. Инкапсуляция класты программаны? ?ал?ан б?лiктерiнен б?лiп алып, на?ты есептi шешу ?шiн пайдалану?а м?мкiндiк ту?ызатын принцип. Мысалы, TForm класы ?з бойында Windows - терезенi дайындау ?шiн барлы? ?ажеттiлердi iшiнде са?тайды (?зiнде инкапсулдайды).

Полиморфизм (к?п т?рлiлiк) - м?рагер кластарды? аталы? клас?а енгiзiлген ?дiс атауы бойынша бас?а ?асиеттер енгiзiлген ??сас есептi шешуiне болатынды?ы, я?ни т?рлi кластарда ?р т?рлi ?рекеттердi орындайтын ?дiстерге бiрдей атау беру м?мкiндiгi.

Программалау ж?не компиляциялауды т?сіндірі?із .

Жо?ары д?режелі тілде программа ??растыру, ?рине, ы??айлы. М?тінді редакторда терді?, командаларды есепті шешу алгоритміне с?йкес жазды? - болды. Біра? программаны? бастап?ы м?тіні - олі толы? жараімды программа емес, б?л тек ж?мыс?а "?осу?а" м?мкін емес арнайы командаларды? (программалау тілі операторларыны?) жиынты?ы, ?йткені оларды процессор орындай алмайды. Сонды?тан программалауды? кез-келген тілінде жазыл?ан программаларды алдымен процессор тіліне аударады, я?ни машиналы? код?а айналдырады.

?рт?рлі программалау тілдеріні? арасында айтарлы?тай елеулі айырмашылы?тарды? болуына ?арамастан оларды? барлы?ында негізгі операцияларды ж?зеге асыруды? ??сас ??ралдары бар. Б?дан бас?а ?рт?рлі программалау тілдерін пайдалан?анда ж?мыс істеу ?иынды?ыны? т?рліше болатында?ына ?арамастан кез келген программаны жасауда кез келген типтегі программалау тілін пайдалану?а болады.

Б?л тілдерді? ?р?айсысына то?талмай-а?, осы тілдерді машина тіліне аударушы трансляторларды? ж?мысына то?талайы?. Машина тілінен ?згеше программалау тілінде ??рыл?ан программа компьютерде орындалу ?шін жарамды т?рде, я?ни машина тіліне т?рлендіруі тиіс. М?ндай т?рлендіру трансляциялау немесе аудар?ыштар деп аталады.

Аудар?ыш - б?л арнайы программа бастап?ы м?тіндерді автоматты т?рде ж?мыс істейтін программалар?а айналдырады. Аудар?ыштарды? екі т?рі бар: компиляторлар ж?не интерпретаторлар.

Компилятор бастап?ы кодты машиналы??а айналдырады. Н?тижесінде аталмыш объектілі модуль пайда болады. Ол машиналы? кодта жазыл?ан, біра? ол да ?лі ж?мыс істей алмайды-о?ан программист ?олдан?ан стандартты? процедураларды ?осу керек. Б?л процедуралар программалар тіліне ?оса тіркелген кітапханалардан та?далады.

Процедураларды кітапханалардан та?дау ж?не оларды объектілі код?а ?осу операциясын арнайы программа - ??растырушы (байланыстар редакторы) орындайды. Содан кейін ?ана ж?мыс істейтін программа пайда болады, оны ж?мыс коды немесе ат?арылушы код деп атайды.

Транслятор ар?ылы ??деліп алын?ан программа тікелей компьютерде орындалады немесе оны бас?а транцляторды? ??деуіне тура келеді. Трансляциялау мен программаны? орындалуы уа?ыт жа?ынан б?лінген болады. Интерпретатордан бас?а трансляторларда алдымен барлы? программа трансляцияланады содан кейін орындалады. Осы режімде ж?мыс істейтін трансляторлар компиляциялаушы типті трансляторлар деп аталады. Егер м?ндай трансляторды? ендірілетін тілі процедуралы-ба?дарлан?ан тіл болса, онда транслятор компилятор деп аталады.

Трансляциялау кезе?імен орындау кезе?дері уа?ыт бойынша ы?ысып ауысып келіп отыратын транслятор интерпретатор деп аталады.

Машина тілінде немесе ж?ктелуші тілде ?сыныл?ан программа транслятор ж?мысыны? н?тижесі болып табылады.

Трансляторды? ж?мысын т?рт кезе?ге б?луге болады:

* лексикалы? талдау. М?ны? негізгі ат?аратын ?ызыметі программаны? бастап?ы м?тінін одан ?рі ?арай ??деу ?шін е? ы?шамды ж?не ы??айлы етіп ?сыну. Осылауша алын?ан м?тін трансляторды? синтаксистік талдаушы деп аталатын келесі б?ліміне бастап?ы деректер ретінде беріледі;

* синтаксистік талдау. Б?л кез?де бастап?ы м?тінді синтаксистік тал?ылау ж?ргізіледі, я?ни с?йлемдерді? типтерін тану ж?не программаны? ??рылымын ай?ындау, сонымен бірге синтаксистік ?ателіктерді ай?ындаушы синтаксистік ба?ылау;

* объктік программаны жасау. Б?л кезе?де шын тілді? баламалы с?йлемдеріні? м?ні зерттеліп, симантикалы? талдау жасалады;

* объктік программаны безендіру ж?не беру. Б?л транслятор ж?мысыны? со??ы ?орытынды кезе?і. Объктік программаны кітапхана?а жазу?а, баспа?а шы?ару?а болады. Пайдаланушыны? н?с?ауы бойынша транслятор ендіретін ?осымша информацияны? белгілі бір б?лігі ?ана баспа?а беріледі.

Шы?арылатын есепті? сипатына ж?не пайдаланушыларды? категориясына байланысты трансляторлар?а ?рт?рлі талаптар ?ойылады. Мысалы, берілген программалау тілін игергісі келетін жа?адан бастаушылар?а трансляторды? е? ма?ызды сипаттамасы диагностикалы? хабарларыны? толы? ?рі ?арапайым болуы болып табылады. Егер компьютерде сплыстырмалы т?рде ал?анда к?п уа?ыт есептеуді ?ажет етпейтін к?птеген майда есептер шы?арылатын болса, онда сол есептерді шы?ару ?шін алын?ан программаны? сапасына айтарлы?тай м?н берілмейді. Трансляторды? ж?мыс істеу жылдамды?ы ?лкен рол ат?арады.

?за? есептелетін к?рлелі есептер ?шін талап етілетін машиналы? уа?ытты ж?не программаны? орындалуы ?шін ?ажетті жадты? к?лемін ескере отырып трансляторды? жаса?ан программаны? ?тымдылы?ы е? ма?ызды рол ат?арады. М?ндай ?тымды программалар алу трансляциялау алгоритмдерін к?рделендіре т?суді талап етеді, ол трансляторды к?рделендіре т?суге ж?не оны? ж?мыс істеу уа?ытын арттыру?а алып келеді. Осы?ан байланысты программалау ж?йесіні? ?зінде тіптен бір программалау тілі ?шін де бірнеше ?рт?рлі трансляторлар ?арастырылады, ал пайдаланушы ?зіне е? керекті трансяторларды та?дап алады.

Трансляциялауды? жалпы схемасы мына т?мендегі суретте к?рсетілген.

Ендірілетін - - - - - - - - Т?мендегі немесе

тіл жо?ары де?гейлі

тілдегі программа

- - - - - - - - - Ал?аш?ы модульді

т?рлендіру

Шы?арылатын -- - - - Машина тіліндегі

тіл. немесе т?менгі

де?гейлі тілдегі

программа.

Сонымен бастап?ы модульді машина тілдегі немесе т?менгі де?гейлі тілдегі объектік программа?а т?рлендіретін программаны трансляциялау деп атайды.

Ендірілетін тілге, трансляциялау кезе?деріні? ?ту ретіне ж?не программа операторларыны? орындалуына байланысты трансляторды? мынадай т?рлері болады:

ассамблер;

компилятор;

интерпретатор.

Компиляторлар программалауды? барлы? танымал тілдері, соны? ішінде Бейсик ?шін де ??рыл?ан.

Компилятордан бас?а интерпрекаторлар да ?олданылады. Б?л м?тінді алдын-ала емес, программаны? тікелей ж?мысы барысында ??дейтін аудар?ыштар. Интерпретатор дегеніміз бастап?ы файлдан командаларды о?ып процессор тіліне "жол-ж?некей" (тікелей программаны? ж?мысы барысында) аударатын программа-делдал.

Программалау тілдеріні? к?пшілігі ?шін (б?ріне деуге болмас) компиляторлар да, интерпретаторлар да жасал?ан. Программалау тіліні? бір стандартын ?олдан?ан сайын программаны? интерпретатор бас?аруымен орындалуыны? н?тижесі мен компилятормен жасал?ан ат?арылушы файлды іске ?осу н?тижесі толы? с?йкес келеді.

Жо?ары де?гейлі тілді? трансляторы трансляциялау кезе?деріні? ?ту реттілігіне ж?не программа операторыны? орындалуына байланысты интерпретатор немесе компилятор деп аталады. Интерпретатор ?рбір жеке операторды трансляцияла?ан со?, оны? тікелей тез орындалуын ?амтамасыз етеді, я?ни трансляция кезе?і мен орындалу кезе?і кезекпен ?айталанады. Программаны интерпретациялау схемасы мына суретте к?рсетілген.

Интерпретатор

Жо?ар?ы де?гейлі

тілдегі программа

Компилятор программаны? барлы? операторларын трансляциялайды, ал программаны? орындалуы жалпы ал?анда оны? ?атынасуынсыз ?теді, я?ни жеке операторларды трансляциялау кезе?дері тікелей бірінен со? бірі ?теді ж?не программаны? орындалуынан толы? о?шаулан?ан болады. Программаны компиляциялауды? ?ыс?артыл?ан схемасы мына суретте к?рсетілген.

Компилятор

Объектік модуль

немесе т?менгі

де?гейлі тілдегі

программа

Жо?ар?ы де?гейлі тілдерді? к?пшілігі ?шін комбиляторлар жасал?ан. Интерпретаторлар жасал?ан тілдерді? мысалына BASIC ж?не FOCAL тілдерін атау?а болады. Компьютерлерді? программалау ж?йесінде комбиляторды? екі т?рі бар. Бірінші т?рдегі комбиляторлар бастап?ы модульді машина тіліндегі объектік программа?а т?рлендіреді, я?ни объектік модульді ассемблар тіліндегі объектік программа?а т?рлендіреді. Екінші т?рдегі комбилятор ?алыптастыр?ан осы программадан объектік модульді алу ?шін ?осымша ассемблерді пайдалану ?ажет болады.

Деректерді? негізгі (стандартты-скалярлы) типтерін, жадта сипатталуын, м?ндер аралы?ын аны?та?ыз. Деректерді? ??рылымды? типі - жазу: сипаттамалары, ?олдану т?сілдерін т?сіндірі?із. Программада айнымалы атаулары пайдаланудан б?рын блок ішінде сипатталып ?ойылады (блок - бір н?тижені алу?а арнал?ан командалар тізбегі, оны функция деп те атайды). Ол фигуралы? жа?шалар ішінде жазылады.

Сипаттауда пайдаланылатын негізгі типтер:

Int б?тін;

Char символ;

Float бір ece ?зынды?ты на?ты сан;

Double екі ece ?зынды?ты на?ты сан;

Void бос, м?ні болмайтын.

Char типі бутін типті айнымалыны сипаттау ушін де пайдаланылады, себебі: ж?йеде кез келген символ ?шін оны? ASCII коды алынады да, символды код?а айналдыруды компилятор автоматты т?рде орындайды.

Си тіліні? ANSI стандартында пайдаланылатын негізгі типтерді? дамытыл?ан т?рлері де бар:

signed - та?балы;

unsigned - та?басыз;

long - ?зын;

short - ?ыс?а.

Оларды? жазылу т?рі, биттік ?лшемдері ж?не ?згеру аралы?тары 1.1-кестеде к?рсетілген. Кестеге енгізілген, ?атар жазыл?ан ?ос н?кте (..) белгісі аралы?ты білдіреді. Ерекшелік: айнымалыларды сипаттауда кестеде к?рінген ?згеру аралы?тары бірдей айнымалыларды? орнына екіншісін ала беруге де болады.

Компьютер жадында б?тін сан ?шін екі байтты? (16 бит) орын б?лінеді. Оны? ал?аш?ы биті санны? та?басын аны?тайды. Егер сан о? болса, ал?аш?ы бит 0-ге те? деп, теріс болса, 1 деп жазылады ж?не теріс сан ?шін жад?а оны? кері коды енгізіледі (кері код: барлы? 0-дерді 1-мен, ал 1-лерді 0-мен алмастыратын екілік код).

1.1-кесте

Тип Биттік ?лшем М?мкін аралы? Char 8 -128 .. 127 unsigned char 8 0 .. 255 signed char 8 -128 .. 127 Int 16 -32768 .. 32767 unsigned int 16 0 .. 65535 signed int 16 -32768 .. 32767 Short int 16 -32768 .. 32767 unsigned short int 16 0 .. 65535 signed short int 16 -32768 .. 32767 long int 32 -2147483648 .. 2147483648 unsigned long int 32 0 .. 4294967295 Float 32 3.4E-38 .. 3.4E+38 double 64 1.7E-308 .. 1.7E+308 long double 80 3.4E-4932 .. 3.4E+4932

Программада айнымалыларды? жариялану (сипатталу) т?рі (eгep айнымалылар к?п болса, араларына ?тір ?ойылып жазылады): тип айнымалы1, айнымалы2, ...

Мысалдар:

int x, y, z;

float radius, uzind;

char s; Айнымалыны м?нін к?рсетіп сипаттау да м?мкін:

int x=47; float y=24. 35; char s [5] = 'Ахмет';

Сипаттаманы? со?ына ?ойыл?ан н?ктелі ?тір (;) символы - осы сипаттаманы? аякталу белгісі. Айнымалы сипаттал?ан кезде компилятор жадтан ол сиятын орын б?ліп ?ояды.

Жалпы, программада айнымалыларды сипаттау ма?ызды р?л ат?арады. Оларды глобальды не жергілікті т?рде екі жерде сипаттау м?мкін:

1) Программа?а енгізілетін негізгі main() функциясы блогыны? алдында. Ол программаны? кез келген жерінде пайдаланыла алады. М?ндай айнымалыны глобальды (global) айнымалы деп атайды ( main() - функциясы ж?нінде т?сінік 1.5-та?ырыпта берілген).

2) Блок ішінде, мысалы, main() функциясы блогыны? басында. Оларды осы блокта ?ана пайдалану?а болады. М?ндай айнымалылар жергілікті (local) айнымалылар делінеді.

Айнымалы оператор аргументі болуы да м?мкін.

Аргумент (параметр) осы оператор ?шін жергілікті айнымалы. Аргументке м?н меншіктеу процесі осы айнымалыны инициалдау деп аталады. М?н меншіктелетін айнымалыны формальды айнымалы деп, о?ан м?н меншіктелген кезде на?ты айнымалы деп атайды.

Ескерту. Глобальды немесе жергілікті айнымалылар?а бірдей атау беруге болмайды.

Деректерді? к?рделі (??рылымды?) типтерін т?сіндірі?із: массив, к?п ?лшемді массив, к?рсеткішті массив, динамикалы? массив. Массив - бір типті м?ндерден т?ратын деректер (берілгендер). Массив бір ?лшемді (сызы?ты?) не к?п ?лшемді болуы м?мкін. Массив элементтері фигуралы? жа?шалар ішінде жазылады.

Бір ?лшемдік массивте алдымен атауы жазылып, онан со? квадрат жа?шалар ішінде элементтер саны к?рсетіледі, ал элементтер н?мірлері 0-ден бастап есептеледі. Н?мірлер массив индекстері делінеді. Мысалы, a[6]={ 6, 5.3, 12, 4.7, 9, 1 } массивіні? элементтері: a[0]=6, a[1]=5.3, .... , a[5]=1, массив индекстері: 0, 1, 2, ..., 5. Элементтер жадта ?атар орналас?ан ?яшы?тар?а енгізіледі.

Массивтер инициалданып сипатталуы да м?мкін. Мысалы,

/* Бір ?лшемді массив */ float ms[10]={ 2, 1, 3.5, 9.7, 5, 6 12, 15, 3.9, 8 };

/* Екі ?лшемді массив */ int a[3][3]={ 5, 3, 6, 2, 7 ,8, l,4,7};

не int a[3][3]={5,3,6,2,7,8, 1,4,7}

1-мысал. Б?тін сандардан т?ратын сызы?ты? массивті? е? кіші элементін табу керек.

#include

#include #define M 8

main() (17)

{ int ms[M]={ 5, 7, 4, 3, 8, 12, 16, 6 }

int k,j1, s1;

clrscr(); s1=ms[0]; j1=0;

for(k=l;k #include

#define MAX 10

int main (void) (18)

{ int a[10]={ 6, 3, 9, a, 5, 12, 4, 10, 35, 7 }

int k,j,ss; clrscr(); for(k=0; ka[j] )

{ ss=a[k]; a[k]=a[j]; a[j]=ss; } } /* for j цикліні? со?ы */

} /* for k цикліні? со?ы */

for (k=0; k #include

#define MAX 3

main() (19)

{

int a[3][3] = {2,3,-1, 3,4, 2, 1,-3,4}

int b[3][3] = { 1, 0, 1, 0, 1, 0, 1, -3, 4 }

int k, j, c[3][3]; clrscr();

for(k=0; k

#include #define MAX 3

main() (20)

{ int a[3][3] = { 2, 3, -1, 3, 4, 2, 1, -3, 4 };

int b[3][3] = { 1,0, 1,0, 1,0, 1, -3,4 };

int k, i,j, c[3][3];

clrscr(); for(k=0; k

# include # include (1)

void blokl(void)

puts("Уpa! ");

return; /* негізгі программа?а ?айту */

void blok2(void)

int x, y;

printf("x=?"); scanf("%d\n", &x);

y = 2*(x+7); printf("y=%d", y);

return; /* негізгі программа?а ?айту */

}

main () {

char sl[25]; clrscr();

puts("c?йлем: s1-?"); gets(sl);

printf("s1=%s\n", s1);

blokl(); /* blok l-ді ша?ыру */

blok2(); /* blок 2-ні шакыру */

getch(); return 0;

} // Н?тиже: sl-?

Мен студентпін

Ура! x=? 5 y=24

Блоктар со?ына енгізілген return; операторы бас?аруды main() функциясына ?айтарады да, функцияны ша?ыру операторыны? орнына осы функция орындап шы?атын н?тижелік м?н жазылады. Программада ша?ырыл?ан функциялар та?ырыптары void blok(void) сия?ты т?рде жазыл?ан. М?нда?ы void аргументі ша?ыру функциясында жіберілетін аргументтер жо? екенін білдіреді, функция алдына енгізілген void типі ша?ырыл?ан блокта есептелетін м?ндерді? алдын ала типі к?рсетілмегенін білдіреді. Б?л кезде ?ажетті тип блок ішінде жергілікті айнымалы т?рінде сипатталады (жергілікті айнымалылар блоктан шы?у кезінде жойылып кетеді. Я?ни, м?ндай блокты пайдалану жолы Турбо Паскальда?ы параметрсіз процедураны пайдалану т?сілі сия?ты).

Ескерту. (1)-программаны мынадай ??рылымды? т?рде жазу?а да болады:

{ Препроцессор н?скаулары }

blokl(); blok2();

main() (252) { функция денесі; }

blokl() { блок денесі; return; }

blok2()

{ блок денесі; return; }

Ескерту. ??рылым?а енгізілген денелерді? орнына (1) - программада жазыл?ан денелерді кірістіру керек.

Объектілерге (идентификаторлар?а) ?ойылатын негізгі талаптарды аны?та?ыз. Идентификатор - айнымалы, тип, функция ж?не ен-та?ба атаулары. ?детте, айнымалы атауы латын алфавитіні? кіші ?ріптерімен жазылады. Атау?а астын сызу белгісін ?осып пайдалану?а да болады, мысалы: kv_tendeu. Си, C++ тілдерінде идентификатор ?шін саны 8-ден аспайтын мазм?нды символдар тізбегін алу жеткілікті.

Деректерді? ??рылымды? типтері - файл (текстік, типтік ж?не типсіз) ??ымын сипатта?ыз.

C++ тілінде байттар жиынты?ы не дискіге жазыл?ан т?рлі ??рылымдардан т?ратын бір м?лімет файл деп аталады. Мысалы, файл:

1001 М?діходжаев С?лтан 1985 ?аза?

1002 Н?рлан?ызы Маржан 1987 каза?

1003 Н?р?али?ызы М?лика 1988 ?аза?

(М?ндай файл кез келген n жолдан т?руы да м?мкін). Тізімдік файлды? ?p жолында (??рылымда) бір студент ж?нінде м?лімет берілген, оны жазба не файл элементі деп атайды. Файл элементі санды? ж?не символды? типті бес м?ннен (?рістен) т?р.

Жалпы, Си, Си++ тілдерінде файлдар тек байттар а?ыны ретінде ?арастырыл?ан, сонды?тан элементтерді? жазба т?рінде ??рылуы міндетті емес.

Файл дискіде 1-8 символдан т?руы м?мкін жеке атау бойынша са?талады, атауды? толы?тырмасын .dat, .txt деп белгілеу не толы?тырманы енгізбей кету де м?мкін.

Файлмен ж?ргізілуі м?мкін ж?мыстар:

- дискіге тиеп, са?тау;

- экран?а шы?ару не принтер ар?ылы ?а?аз?а басу;

- файл?а жа?а элементтер ?осу не бір, не бірнеше элементін алып тастау ж?не т.б.

Файлмен тізбекті ену ж?не еркін (тікелей, кездейсо?) ену т?сілдері бойынша ж?мыс істеу м?мкін.

C++ тілінде енгізу ж?не шы?ару т?сілдері ?иыныра?, олар символдар тас?ыны (а?ыны, поток) бойынша орындалады. Мысалы, double типті -5.27 санын файл?а жазу, шы?ару ?шін 8 байтты? ?яшы? пайдаланбай, б?лек байттардан т?ратын -, 5, . , 2 ж?не 7 символдары а?ын бойынша ретімен ?згеріссіз енгізіліп, шы?арылады (?згеріссіз дегеніміз - ол ?шін функцияларды ?згертуді? ?ажеті жо?ты?ы).

Файлмен ж?мыс істеу файл к?рсеткіші ар?ылы орындалады. Ол файлды? атауын, т?р?ан орнын, а?ынды пайдалану т?сілін де аны?тайды. Файл к?рсеткіші - стандартты stdio.h файлында аны?тал?ан ??рылымды? FILE типіне н?с?ама. Ол ар?ылы файлды дискіге тиеу (ж?ктеу), оны дискіден машинаны? жадына енгізу ?р элементті? басынан бастап ретімен ж?ргізіледі.

C++ - те р??сат етілген файлды? объектілерді fout, fin ар?ылы белгілесек, файлмен ж?мыс істеу программасында пайдаланатын функциялы? операторлар мен командалар:

1. #include // препроцессор н?с?ауы

2. ofstream fout; // жазу ?шін файл объектісін жариялау

3. ifstream fin; // о?у ?шін файл объектісін жариялау

4. fout. open (Файл аты, ios :: in) // Файл ??ру

5. fin. open (Файл аты, ios :: out) // Файлды о?у

6. fout. close() // ??рыл?ан файлды жабу

7. fin. close() // О?ыл?ан файлды жабу

( Ескерту. fout, fin белгілеулерін кез келген бас?а т?рде алу?а да болады, мысалы: fp, xx).

М?нда?ы Файл аты - файл?а берілетін атау; ios :: in, ios :: out - ?ол жеткізу м?мкін режімдер (4.1-кесте):

?ол жеткізу режімдері (4.1- кесте)

Режім Пайдалануы ios :: out Жазу ?шін файлды ашу. ios :: in Оку ?шін файлды ашу. ios :: арр Элемент ?осу ?шін файлды ашу. Ios :: binary Файлды екілік ж?йеде ашу. ios :: ate Файлды ашып, к?рсеткішті со?ына орналастыру. ios :: trunc Файл ішіндегісін алып тастау. ios :: nocreate Файл жо? болса, ашу операциясын орындамау.

C++ тілінде а?ындар мен буферлерді іске ?осу ?иыныра?, біра? файл кодына iostream.h стандартты файлы ?осыл?ан кезде оларды бас?ару?а арнал?ан кластар да іске ?осылады: streambu?, ios_base, ostream жэне fstream ( класс - аны?тал?ан тип).

streambuf - буферді б?лу, буферді толтыру ?дістерін, буфер ішіндегісіне ?ол жеткізу т?рлерін ж?не буферді тазалауды орындау ?шін жадты бас?арады.

ios_base - а?ынны? жалпы ?асиеттерін (о?у ?шін ашы?ты?ын, м?ліметтерді? екілік не м?тіндік типті болуын) ай?ындайды да, к?рсеткішті streambuf объектісіне ?осады. О?ан т?рлі форматтау т?ра?тылары да енгізілген.

ios класы ios_base класына негізделген, ostream ж?не fstream кластары - ios класыны? туы?дылары. Олар с?йкес шы?ару ж?не енгізу кластарыны? м?рагерлері. Файл?а жазу ostream класыны? > операциясы ар?ылы орындалады. Программа?а iostream (ios) класыны? кітапханасы ?осыл?ан кезде автоматты т?рде программада а?ымды? объектілер ??рылады. Оларды? негізгілері: cin, cout, cerr, clog.

cerr, clog объектілері (айнымалылары) программада кеткен ?атені ай?ындап, экран?а шы?арады.

cin, cout операторлары

cout - iostream класында?ы ауыстырып тиеу объектісі (информацияны экран?а шы?ару операторы). Жазылу т?рі: cout

main() (33)

{ cout > айнымалы; (айнымалы м?ні - м?лімет не сан). Ол пернета?nадан пайдаланушыны? м?ліметтерді д?рыс енгізуін талап етеді. Мысалы, м?лімет м?тін болса, тек бір с?зден ?ана т?руы тиіс, егер ол бірнеше с?зден т?рса, енгізуде get операторын пайдалан?ан ж?н. Жалпы, cout ж?не cin - форматтал?ан шы?ару, енгізу операторлары, я?ни олар форматты? %d, %s сия?ты символдарды енгізуді ?ажет етпей, ?здері жоспарлайды. Я?ни, олар printf, scanf операторларын пайдаланбай, программа жазуды о?айлатады.

Тізбекті ену файлы

Басынан бастап элементтері бойынша ретімен ??рыл?ан файлды тізбекті ену файлы деп атайды. C++ тілінде к?лемі ?лкен емес файлды бірден енгізуге болады.

Ескерту. ??рылатын файл атауын .dat не .txt ке?ейтілуімен берген ж?н, мысалы, tizim.dat (атауды ке?ейтілусіз беруге де болады).

Мысал. C++ тілінде 4.2-та?ырыпта берілген тізімді тізбекті ену файлы т?рінде дискіге жазу керек.

Программаны мынадай т?рде ??ру?а болады:

#include #include

#include // енгізбеу де м?мкін

#include ofsream fout;

main() (34)

{char atau[8]; clrscr();

puts ("Файл аты-? "); gets (atau);

fout.open (atau, ios :: out);

fout > операциясы ??рыл?ан файлды берілген атау бойынша буферге енгізеді).

2. Программа жа?а файл ??руды с?ра?ан кезде б?рыннан ??рыл?ан файл атын енгізуге болмайды, б?л кезде ??рулы файл жойылып кетеді.

3. Жеке сандардан не жо?арыда?ы сия?ты, т?тас ?арастырыл?ан жолдардан файл ??ру ы?шамды.

Тізбекті ену файлын о?ып, экран?а шы?ару программасы:

#include #include

#include #include

ifstream fin;

main() (35)

{ char atau[8]; char in_char; clrscr();

cout > atau;

fin.open (atau, ios :: in);

while ( fin.get ( in_char ))

cout файлында аны?тал?ан тип. К?рсеткішті на?ты файлмен байланыстыру мынадай оператор ар?ылы орындалады:

fopen ( "Файл?а жол", "?ол жеткізу типі");

Си тілінде файл?а жол ?шін а?ымды? каталогта пайдаланатын файл идентификаторын не файлды? толы? атын енгізуге болады, ?ол жеткізу типі ?шін "wt" не "w" параметрі енгізіледі (Б?л - жазу ?шін файлды ашу параметрі). Файл атын енгізуде ?ате кетсе, оператор к?рсеткішті бос файл?а (NULL) ?айтарып береді. Б?л операторды пайдалану кезінде жа?а файл ??ру ?шін б?рын?ы printf(), scanf() операторлары пайдаланылады. Со??ысы ?р жазба элементін ретімен буферге енгізеді де, арнайы fprintf() операторы файл элементтерін ретмен дискіге жазып шы?ады. Мысалы,

fp = fopen ("faiIl.dat", "wt");

операторыны? орындалу кезінде faiIl.dat атаулы файл fp к?рсеткішіні? к?мегімен жазу?а ашылады.

Жо?ар?ы операторды Турбо Си++ тілінде де пайдалану?а болады, мысалы, (ЗЗ)-программаны? Турбо Си++ тілінде ??рылуыны? жалпы т?рі:

#include #include

void main() (36)

{ int shifr, tjli, k; char fam[15], ati[15], ulti[6];

char atau[8]; clrscr();

FILE * out; /* fp=out */

printf("atau-?"); scanf("%s", &atau);

if ((out=fopen(atau,"wt")) = = NULL)

{ printf("?aтe"); getch(); return; }

for (k=l; k #include

#include

ofsream fout;

main() (37)

{ char atau[8]; clrscr();

puts ("Со?ына жазу ?осатын файл аты-? "); gets (atau);

fout.open (atau, ios :: app);

fout #include

#define M 8 main() (17)

{

int ms[M]={ 5, 7, 4, 3, 8, 12, 16, 6 }

int k,j1, s1;

clrscr(); s1=ms[0]; j1=0;

for(k=l;k

#include #define MAX 10

int main (void) (18)

{ int a[10]={ 6, 3, 9, a, 5, 12, 4, 10, 35, 7 }

int k,j,ss; clrscr(); for(k=0; ka[j] )

{ ss=a[k]; a[k]=a[j]; a[j]=ss; } } /* for j цикліні? со?ы */

} /* for k цикліні? со?ы */

for (k=0; k #include

main()

{ float x,y; clrscr();

printf("x=?"); scanf("%f ", &x);

if (x2 ) y=2*x+l;

else i? (x>=0 && x=0, y>=0, x2 + y2 =-l

#include #include

main()

float x, y; int ml, ul, rl; clrscr();

ml:

puts("H?ктe координаттары: x, y-?");

printf("x, y=?"); scanf("%f %f ",&x, &y);

if ((x>=0 && y>=0 && x*x+y*y=-l))

{ printf("H?ктe облыста жатады");

goto ul; } else printf("H?ктe облыста жатпайды");

ul: printf ("Жал?астыру керек пе-?");

printf ("И? ?шін енгізу-10, Жо?- баска сан енгізу);

scanf ("%d", &r1);

if (rl = = 10) goto m1; else

printf ("Ж?мыc со?ы. ENTER пернесін басы?ыз");

getch(); return 0;

}

Программа?а енгізілген puts операторы printf операторы сия?ты орындалады, біра? ерекшелігі: ол тек м?тін шы?аруда пайдаланылады ж?не енгізілген м?тінді шы?арып бол?ан со? курсорды жа?а жолды? басына орналастырып ?ояды.

З-мысал. Функция м?нін есептеу керек:

#include

#include

main()

int x, y; clrscr();

printf("x=?"); scanf("%d", &x);

i?(x=2 && x5) y=3*x-l;

j: printf("y=%d", y);

getch(); return 0;

} switch операторы. Ента?ба.

C ж?не C++ тілдерінде тарма?талу тобынан т?ратын ж?не ента?бамен белгіленген деректерді? (берілгендерді?) бірін тандау ?шін switch операторы, с?рыптаушы ?шін case операторы пайдаланылады (switch - ауыстырып ?ос?ыш, case жа?дай). Switch операторыны? жазылу ?лгісі:

switch (?рнек)

{ case : операторлар;

break; case : операторлар;

break; ..........

case : операторлар;

break; default: операторлар;

} М?нда?ы т?ра?тылар - ента?балар (k=l, 2, ..., N). Ента?ба - оператор алдында жазылатын (оператор жолын белгілейтін) б?тін сан, символ не символдар тізбегінен т?ратын атау. Ента?ба со?ына ?ос н?кте (:) ?ойылып жазылады. Мысалдар (м??да?ы ента?балар: 10, 'C'):

case 10: m=3;

case 'C': printf("Уpa!");

Ента?ба?а ?ту ?шін switch (?рнек) операторы пайдаланылады; м?нда?ы ?рнек - м?ні ай?ындалатын айнымалы не математикалы? ?рнек.

switch операторыны? орындалуы ?деттегідей алгоритмдік тілдердегі сия?ты: алдымен switch кілттік с?зінен со? жа?шалар ішінде жазыл?ан ?рнек м?ні есептеледі не айнымалы м?ні о?ылады. Ол ента?балар енгізілген с?рыптаушылармен салыстырылады да, ж?йе бас?аруды ента?ба м?ніне с?йкес келетін оператор?а (операторлар блогына) ?ткізеді. Егер о?ылган м?н бірде-бір ента?ба?а те? болмаса, баскару default (жо? бол?анда) кілттік с?зінен со? жазылган оператор?а беріледі.

?лгіде ?р case операторынан кейінгі жолда break (то?тату) операторы енгізілген. Ол с?йкес case операторы орындал?ан со?, оны то?татады да, ж?йе бас?аруды switch операторынан со? жазыл?ан программаны? келесі операторына ?ткізеді.

1-мысал. Адам аттарынан т?ратын латын ?ріптерімен жазыл?ан тізім берілген: Erjan, Jamila, Marjan, Sultan, Marat. Ал?аш?ы бас ?ріптері бірдей болатын аттарды аны?тау керек.

#include

#include main()

char ch; int ml; clrscr();

ml : printf("JIaтыншa бас ?ріп енгізі?із-?");

ch=getchar(); /* getchar() - а?ымды? келесі символды о?у операторы */

if(ch='A' && ch='Z');

switch (ch) case 'E' : printf("Erjan\n"); break;

case 'J' : printf("Jamila\n"); break;

case 'M' : printf("Marat, Marjan\n"); break;

case 'S' : printf ("Sultan\n"); break;

default : printf ("Енгізілген 1-бас ?ріптік атау жо?"); " : goto ml;

} getch(); return 0;

З-мысал. ?шб?рыш, трапеция не д??гелек ауданыны? формуласын шы?аратын аны?тамалы? программа ??ру керек.

#include

#include main()

int m; clrscr();

printf("l. ?шб?рыш ауданы \n"");

printf("2. Трапеция ауданы \n"");

printf("3. Д??гелек ауданы \n"");

printf("4. Шы?у \n"");

scanf("%d", &m);

switch(m)

{ case 1 : printf(("\n ?шб?рыш ауд.: s=a*h/2");

printf(("\n а-табаны, ћ-биіктігі");

break; case 2 : printf(("\n Трапец. ауд.: s=(a+b)*h/2");

printf(("\n a, b-табандары, ћ-биіктігі");

break; case 3 : printf(("\n Д??г. ауд.: s=pi * r *r");

printf(("\n pi=3.14159, г-радиус"); break;

case 4 : goto exit;

}

exit; getch(); return 0;

} Та?айындау операторын мысал ар?ылы т?сіндірі?із.

Шартсыз ?ту операторынмысал ар?ылы т?сіндірі?із.

Шартты (тарма?талу) операторын мысал ар?ылы т?сіндірі?із.

Та?дау операторын мысал ар?ылы т?сіндірі?із.

Параметрлі циклдік операторын ("?шін" циклы)мысал ар?ылы т?сіндірі?із.

Шарты алдында?ы ?айталану операторын ("?зірше" циклы) мысал ар?ылы т?сіндірі?із.

Шарты со?ында?ы ?айталану операторын ("Дейін" циклы)мысал ар?ылы т?сіндірі?із.

Енгізу-шы?ару операторларынмысал ар?ылы т?сіндірі?із.

Кітапханалы? модульдерді т?сіндірі?із: инициалдау, пайдалану.

System.tpu модуліні? негізгі функциялары мен процедураларынсипатта?ыз.

Crt.tpu модуліні? негізгі функциялары мен процедураларынсипатта?ыз.

1. Пайдаланушы модульдері мен модуль конструкторын?олдануды т?сіндірі?із.

49

Показать полностью… https://vk.com/doc167593314_437455731
189 Кб, 24 апреля 2016 в 8:39 - Россия, Москва, ГЭИ, 2016 г., docx
Рекомендуемые документы в приложении