Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
AEP_LEKTsII.doc
Скачиваний:
90
Добавлен:
28.03.2015
Размер:
1.27 Mб
Скачать

Модуль 2 Алгоритмдік тілдерде программалаудың арнайы мәселелері

5 Тақырып Программадағы басқару құрылымдар

8 лекция Алгоритмдік тіл операторларының классификациясы. Меншіктеу операторы. Басқару операторлары. Деректерді енгізу-шығаруды ұйымдастыру. Программаның құрылымы. Алгоритм сұлбасынан программаға өту.

8.1 Алгоритмдік тілдің операторлары.

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

Ажыратады:

  • атомарлы операторлар, олардың ешқандай бір бөлігі жеке өзіндік оператор болып табылмайды;

  • құрылымды операторлар, басқа операторларды жаңа, іріленген операторға біріктіреді.

Меншіктеу, цикл, шарт, енгізу-шығару, басқару және басқа операторлар пайдаланылады.

8.2 Меншіктеу операторы. Ол айнымалының ағымдағы мәнін өрнек арқылы анықталатын жаңа мәнмен алмастырады немесе мәні функция арқылы қайтарылатын өрнекті анықтайды.

Меншіктеу оператордың түрі: айнымалы:= өрнек

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

Процедураның операторы процедураның идентификаторы арқылы белгіленген процедураны белсендіруді анықтайды. Егер процедураның сәйкес сипатталуы формальды параметрлер тізімін қамтитын болса, онда процедураның операторы оған сәйкес фактілі параметрлер тізімін қамтуы тиіс (тізімі сипатталуда келтірілген параметрлер формальды параметрлер, ал процедураны шақыру оператораторында параметрлер фактілі параметрлер болып табылады). Шақыру барысында фактілі параметрлер формальды параметрлерге беріледі.

8.3 Басқару операторлары. Құрама және бос операторлар

Өту goto операторы басқаруды осы операторда көрсетілген таңбасы бар операторға беруді жүзеге асырады. Өту операторын қолданғанда келесі ережелерді сақтау керек:

  • өту операторында көрсетілген таңба өту операторы орналасқан сол блокта немесе модульде орналасуы тиіс. Басқа сөзбен айтқанда, процедура немесе функциядан сыртқа немесе олардың ішіне өту рұқсат етілмейді;

  • сырттан құрылымды оператордың ішіне өту (яғни кірістірудің тереңдеу деңгейіне өту) болжамдауға болмайтын эффекттерге әкелуі мүмкін, бырақ, компилятор қате туралы хабарламайды.

Мысалы, for циклы операторының тұлғасының ішіне өтуге болмайды.

Программалаудың жақсы стилі goto операторын мүмкіндігінше аз қолдануды талап етеді.

Шартсыз өту goto операторы келесі формаға ие: goto таңба;

Ол программаның орындалуын таңба арқылы белгіленген операторға өткізеді.

Таңба идентификатор немесе таңбасыз бүтін болып табылады. Операторды таңбамен белгілеу үшін оператордың алдына таңбаны көрсетіп одан кейін қос нүкте қою керек:

label1: оператор;

Таңбалар label қызметші сөзді пайдалану арқылы таңбалар бөлімінде сипатталынуы тиіс, мысалы:

label 1,2,3;

Мысалы, келесі программаның орындалу нәтижесінде

label 1,2;

begin

i:=5;

2: if i<0 then goto 1;

write(i); Dec(i);

goto 2; 1:

end.

54321 саны шығарылады.

Таңба өзі сипатталған блокта операторды белгілеуі тиіс. Бір таңба бірнеше операторларды белгілей алмайды.

goto операторын пайдаланудың негізгі нұсқалары үшін Паскаль тілінде арнай операторлар бар: break – циклдан кейінгі операторға өту; exit - процедураның соңғы операторынан кейінгі операторға өту; continue – цикл тұлғасындағы соңғы операторынан кейінгі операторға өту.

Программада goto операторын орынды пайдаланудың жалғыз мысалы – бір-біріне салынған бірнеше циклдардың ішінен бір мезгілде шығу. Мысалы, екіөлшемді массивте k элементін іздеу барысында:

found:=False;

for i:=1 to 10 do

for j:=1 to 10 do

if a[i,j]=k then

begin

found:=True;

goto c1;

end;

c1: writeln(found);

Құрама және бос операторлар. Құрама оператор бірнеше операторларды бір операторға біріктіру үшін арналған. Оның түрі:

begin

операторлар

end

Операторлар бір-бірінен ";" символ арқылы ажыратылады. Операторларды қоршайтын begin және end қызметші сөздері операторлық жақшалар деп аталады.

Мысалы:

s:=0; p:=1;

for i:=1 to 10 do

begin

p:=p*i;

s:=s+p

end

end-тің алдында да ";" қоюға болады. Бұл жағдайда end-тің алдындағы соңғы оператор ешқандай амалдарды орындамайтын бос оператор болып табылады деп санайды.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]