Ффсо пгу 18. 2/05 Қазақстан Республикасы Білім және ғылым министрлігі



бет1/3
Дата16.06.2016
өлшемі0.55 Mb.
#138820
  1   2   3







ФФСО ПГУ 7.18.2/05



Қазақстан Республикасы Білім және ғылым министрлігі
С. Торайғыров атындағы Павлодар мемлекеттік университеті
Физика, математика және ақпараттық технологиялар факультеті
Информатика және ақпараттық жүйелер кафедрасы

"АЛГОРИТМДЕНДІРУ ЖӘНЕ ПРОГРАММАЛАУ"


пәні бойынша зертханалық жұмыстарды орындауға арналған әдістемелік нұсқаулар
Павлодар








ФФСО ПГУ 7.18.2/05





БЕКІТЕМІН

ФМж/еАТ факультетінің деканы

___________ С.К.Тлеукенов

200 __ ж. «___»____________
Құрастырушы: Аға оқытушы Нұрғазина Б.Қ.

Информатика және ақпараттық жүйелер кафедрасы

050716 - «Приборлар жасау» мамандығының студенттері үшін

"Алгоритмдендіру және программалау"

пәні бойынша зертханалық жұмыстарға әдістемелік нұсқаулар

Кафедра мәжілісінде бекітілді, 200__ж. «___»____________ Хаттама №_____.


Кафедра меңгерушісі _________________________ Нұрбекова Ж.Қ.

Факультеттің әдістемелік кеңесінде құпталды,


200__ж. «___»____________ Хаттама №_____.

ӘК төрайымы _________________________ А.Т.Кишубаева


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

2. Студенттердің алгоритмдік ойлау дағдыларын қалыптасытру.

3. Өз бетімен оқып-үйренуге, талдауға, бағдарлама бойынша нәтижені анықтауға үйрету.

4. Есепке алгоритмдер мен бағдарламалар құру, олардың тиімділерін таңдау және нәтижелерге талдау жасау әдістерін меңгерту.


Зертханалық жұмыстардың тәртібі:

1. Жұмыстың теориялық бөлігімен танысады.

2. Берілген есептің алгоритмімен танысады.

3. Бағдарлама тексін қарап, оның құрылымына талдау жасайды. Ондағы командалардың пайдаланылуын негіздейді.

4. Алгоритмнің орындалу тәртібін ауызша түсіндіреді.

5. Қандай да бір мәндермен, бағдарламаның орындалу протоколын толтырып, нәтижелерді компьютерсіз анықтайды. Пайдаланылатын мәндер бағдарламадағы барлық жағдайларды қамту қажет.

6. Бағдарламаны компьютерде орындап, 5-пунктте анықталған нәтижелердің дұрыстығын тексереді.
Тақырып 2. ЭЕМ-да есептерді шығарудың кезеңдері
1 зертханалық жұмыс. .Алгоритмдерді сипаттау (ұсыну) құралдары мен тілдері.



Паскаль ортасы. Бағдарламаның құрылымы.

Мақсаты: Рascal-дың жұмыс ортасымен танысу, негізгі дағдыларын қалыптастыру.
Теориялық бөлім

1.Паскаль тiлiн жұмысқа қосу. Жұмыс столындағы Паскальға сәйкес жарлық жұмысқа қосылады.

2. Менюмен жұмыс. F10 клавишасы менюдi жұмысқа қосады. Меню жұмысқа қосылған соң, ерекше түске боялады. Команданы жұмысқа қосуды тездетуге болады. Ол үшiн меню жолындағы белгiленген әрiпке сәйкес клавиша басылады. Alt клавишасы мен белгiленген әрiптi басса, оған сәйкес команда iске қосылады. Менюден шығу үшiн Ecs клавишасы басылады.

Меню пункттеріне сипаттама

1. File

Open-кеңейтілуі .pas файлды ашады.

New-жаңа терезе ашады.

Save (F2)-файлды өз атымен сол орнына сақтайды.

Save as-файлды басқа атпен, басқа каталогқа жазуға болады.

Change dir- ағымдағы (жұмыс істеп отырған) каталогты өзгертуге мүмкіндік береді.

Print-ағымдағы терезедегі ақпаратты принтерге шығарады.

Printer Setup-принтер орнату.

DOS shell- DOS режиміне шығады. ехіt командасымен Паскаль ортасына оралады.

Exit (Alt-X)-Паскальмен жұмысты аяқтайды. Файлды сақтау қажет.

Терезелермен жұмыс iстеу. Терезе дегенiмiз - бiздiң барлық iс-әрекетiмiздi жүзеге асыратын экранның бөлiгi. Оның размерiн өзгертуге, орнын ауыстыруға, ашуға, жабуға болады. Паскаль ортасында бiрнеше терезенi қатар ашуға, әрбiреуiмен жеке жұмыс жасауға, олардың арасында информация алмастыруға болады. Жұмыс iстеп отырған терезе белсендi (активтi) деп аталады. Белсендi терезе қос рамкалы және онда жабу кнопкасы, масштабтау кнопкасы, терезенi жылжыту кнопкасы, терезенiң өлшемiн өзгерту бұрышы болады.

Меню- WINDOW

Tile-терезелерді ретпен орналастыру.

Cascade-терезелерді каскадпен орналастыру.

Close all-барлық терезелерді жабу.

Size/Move-терезенің өлшемін өзгерту (Shift+стрелкалар).

Zoom-терезені үлкейту немесе кішірейту.

Next - терезелерді ретпен қарау.

Close (Alt + F3)-белсенді терезені жабу.

Previous- терезелерді кері ретпен қарау.

List-барлық ашық терезелер тізімін көрсетеді.

Alt + № - № номерлi терезеге өту. Alt клавишасы мен керек терезенiң номерi қатар басылады.

Alt + F5 - Window/ User Screen - Бағдарламаны орындау нәтижесi бар пайдаланушы терезесі шығады

Тапсырма.

1.Паскальді жұмысқа қос.

2. Паскаль ортасында 5 терезе ашып, әрбіреуін сәйкесінше tereze1, tereze2, tereze3, tereze4, tereze5 деген атпен сақта.

3. Терезелерді ретпен орналастыр.

4. Терезелерді каскадпен орналастыр да, мына ақпаратты тер.

1-терезеге: {фамилияң мен атыңды}

2-терезеге: program p_orta;

const k=100;

3-терезеге: label m1,m2;

Begin clrscr; writeln(‘Salem!’); writeln(‘ Men Pascalmyn!’);

end.

4-терезеге: uses crt;



Осы ақпараттарды терген соң, әрбір терезені сақта.

5. Терезелерді ретімен, одан соң кері ретпен қарап, жазылған ақпаратты тексер.

6. 2-терезеге өтіп, мына жазуды қосып, сақта.

type kun=1..31;

7. Барлық ашық терезелердің тізімін шығар. 4-терезеге өтіп, мына жазуды қосып, сақта.

var k:kun; a:byte;

8. 1 және 2-терезелер экранға қатар сиятындай етіп, өлшемдерін өзгерт.

2. Меню-EDIT

Undo (Alt+BkSp)- алдыңғы әрекетті жояды.

Redo – Undoдағы әрекетті қайтарады.

Cut (Shift+Del) –белгіленген фрагментті жойып, буферге алады.

Copy (Ctrl+Ins) - белгіленген фрагментті буферге көшіреді.

Paste (Shift+Ins) – буфердегі фрагментті курсордың орнына қояды.

Clear (Ctrl+Del) – фрагментті жояды.

Show Clipboard- буфердегі ақпаратты көрсетеді.



Тапсырма.

9. 1,2,3,4 терезелердегі ақпараттарды ретімен 5-терезеге біріктіріп, мына тексті құрастыр.

{фамилияң мен атың}

program p_orta;

const k=100;

label m1,m2;

begin

clrscr;


writeln(‘Salem!’); writeln(‘ Men Pascalmyn!’);

end.


uses crt;

Тексті сол атымен сақта.


3.Меню- SEARCH-текст фрагментін және қате табылған орынды іздейді.

4. Меню-RUN

RUN (Ctrl+F9)– бағдарламаны орындайды.



5. Меню- COMPILE

Compile – белсенді терезедегі файлды компиляциялайды.

Make – негізгі бағдарламаға кіретін модульдер қайтадан компиляцияланадыда, орындалушы файлға біріктіріледі.

Build –алдыңғы пунктке ұқсайды.

Distination memory –орындалушы файл қайда орналасады, дискіде ме, әлде жадыда ма?

Primary file –компиляциялау қай файлдан басталатынын көрсетеді.



6. TOOLS – бағдарламаны жұмысқа қосу

7. OPTIONS –Паскаль ортасына қажетті каталогтардың жолы көрсетіледі.
Бағдарламаны компиляциялау. Бағдарламаны компиляциялау үшiн Alt+F9 клавишалары қатар басылады. Егер текст дұрыс болса, ол жөнiнде хабарлама шығады: Compile Successful: Pres any key

Жұмысты жалғастыру үшiн, кез келген клавишаны басу керек.



Бағдарламаны орындау. Бағдарламаны орындау үшiн, Ctrl+F9 клавишасы басылады, немесе менюден /Run/ Run енгiзiледi.
Тапсырма. 5-терезедегі бағдарламаны орында. Қате туралы хабарлама шықса, төмендегі құрылым бойынша бағдарламаны түзет. Uses бөлімін орнына келтір.

Паскаль тiлiндегi программаның құрылымы

program < идентификатор >; - программаның аты

uses < идентификатор >; - библиотекалық модульдер тiзiмi

label . . . белгілерді сипаттау.

const . . . тұрақтыларды сипаттау.

type . . . типтердi сипаттау.

var . . . айнымалыларды сипаттау.

begin


операторлар программа денесi

еnd.


Бағдарламаны орындап, пайдаланушы терезесінен нәтижені қара.

Орындалушы (кеңейтiлуi .exe) файл жасау. Паскаль тiлiндегi бағдарлама тексiн сақтағанда стандартты .pas деген кеңейтiлу (расширение) берiледi. Бағдарламаны орындалушы файл ретiнде сақтау үшiн, оған .exe кеңейтiлуi берiлу керек. Ол үшiн:

а) жадыға сақтау үшiн: Меню / Compile / Destination / Memory

б) дискiге сақтау үшiн: Меню/Соmpile/Destination/Disk

Memory немесе Disk Enter арқылы таңдалады.

Memory мен Disk-нiң бiреуi таңдап алынған соң, Меню /Compile/ Make енгiзiледi немесе Ғ9 басылады. Орындалушы файл жасалады. Каталогтағы файлдар тiзiмiнде кеңейтiлуi .exe файлы пайда болады.

Тапсырма. Орындалушы (кеңейтiлуi .exe) файл жаса. Каталогты ашып, файлдың жасалғандығын тексер.
6. Жұмысты аяқта.

2 зертханалық жұмыс. Алгоритмдердің базалық құрылымын жасау әдістері.


Математикалық функциялардың Паскаль тілінде жазылуы

Мақсаты: Қарапайым және күрделі математикалық өрнектердің Паскаль тілінде жазылуын меңгеру .
Теориялық бөлім

Математикалық өрнектi Паскаль тiлiнде жазу ережелерi:

1.Өрнек бiр жолға тiзбектей жазылады, сондықтан амалдардың орындалу тәртiбiнiң бұзылмауын ескеру керек.

2. Жоғары және төменгi индекстер ереже бойынша жазылады.

3. Функцияның аргументi жақша iшiне алынады.

4. Тригонометриялық функциялардың аргументi градуспен емес, радиан түрiнде (x*PI/180) жазылады.

5. Ашылған және жабылған жақшалар саны тең болады.

6. Математикалық өрнекте дөңгелек жақшалар ғана жазылады.



Дәреженi есептеудiң стандарттық функциясы жоқ. Бiрақ, оны стандарттық функциялар арқылы былайша өрнектеп жазуға болады:

ах: = ехр(х* ln(а)), ( егер а>0 болса ғана).

Сол сияқты, tg(x) = sin(x) / cos(x);



Математикада

Паскальда

Нәтиженiң типi

|x|

abs(x)

бүтiн, нақты

x2

sqr(x)

бүтiн, нақты

x

sqrt(x)

нақты

sinx

sin(x)

нақты

cosx

cos(x)

нақты

arctg(x)

arctan(x)

нақты

eх

exp(x)

нақты

lnx

ln(x)

нақты

lgx

ln(10)/ln(x)

нақты

п=3,141592..

Pi

нақты

Жұмыс технологиясы.

1.Паскаль терезесін ашып, мына жолдарды теріңіз.

Program ornek;

uses crt;

var x,y,z,a:real;

begin


clrscr;

x:=


y:=

z:=


writeln(‘z=’,z);

readln;


end.

1 жаттығу

x=5; y=3 мәндерінде өрнегінің мәнін есептеу.

2.Бағдарламадағы мына жолдарды өзгертіңіз.

x:=5;


y:=3;

z:=(sqrt(sqr(x)+2*y)+sin(15*pi/180))/(2*x)

3.Бағдарламаны жұмысқа қосып, нәтижесін қараңыз.
Сұрақтарға жауап беріңіз.

1. (sqrt(sqr(x)+2*y)+sin(15*pi/180)) өрнегі неге жақшаға алынған?

2.15*рі/180 формуласы нені білдіреді ?
2 жаттығу. өрнегінің мәнін есептеу.

4. Z:= жолына мынаны теріңіз:

Z:=abs(abs(x-100)*3/(2*x+ln (y))+2*sin(y)/cos(y))+exp(x+y)/exp(y*ln(x));

5.Бағдарламаны жұмысқа қосып, нәтижесін қараңыз.


Сұрақтар:

3. sin (y)/ cos (y) нені білдіреді?

4. exp (x+y) неге жақшаға алынған? Осы жазуды exp(x)+y деп жазуға бола ма?




3 жаттығу. өрнегінің мәнін есептеу.

Z:= жолына мынаны теріңіз:


Z:=(3*exp(5)*exp(5*ln(y))+ sqrt(sqr(cos(y)+sin(sqr (y))))/exp(2/3*ln(x+y));
Сұрақтар:

5. е5 және у5 екеуінде де дәреже көрсеткіші 5, бірақ жазылуы әр түрлі. Неге?

7 ....sin (sqr(y)))) жолдарында неге 4 рет )))) жақша қойылған?

3 зертханалық жұмыс. Алгоритмдік тілдердің негізгі конструкциялары.


Шығару, енгізу процедуралары

Мақсаты: Экранға әр түрлі хабарлама, нәтиже шығаруды және мәндерді енгізуді үйрену.

Теориялық бөлім

WRITE – айнымалының мәнiн, өрнектiң мәнiн, текстi экранға шығарады.

Жазылу форматы: write(ln) (<параметр>);

Жазылу түрлерi:

writeln (өрнек); – өрнектiң мәнiн экранға шығарады. writeln (sqr(25));

writeln(x); – x айнымалының мәнi шығады.

writeln (‘текст’) – апострофтың iшiндегi текст шығады.

writeln ( өрнек, ’текст’, айнымалылар);

writeln; – бос жол шығарады.

read(ln) – сандық мәндердi, символдарды, жолдарды клавиатурадан енгiзедi.

Жазылу форматы: read(ln)(айнымалылар тiзiмi);

Жазылу түрлерi:

readln(x) – x-тiң мәнi енгiзiледi.

readln(a,b) – a,b мәндерi бос орынмен ажыратылып енгiзiледi.

readln- енгізу клавишасы басылғанын күтеді.

Read процедурасы орындалғанда, айнымалының мәнiн енгiзу үшiн бағдарлама жұмысында кiдiрiс болады. Айнымалының мәнiн оқушы клавиатурадан енгiзедi. Егер read процедурасында айнымалылар тiзiмi көрсетiлсе, онда тiзiмдегi айнымалылардың мәндерi клавиатурадан бос орынмен ажыратылып енгiзiледi. Әрбiр read процедурасынан соң Enter клавишасы басылады.


1 жаттығу. Қадыр Мырзалиевтің «Ана тілі» тақпағының бір шумағын экранға шығару.

1. Бағдарлама тексін теріңіз

program text;

uses crt;

begin


clrscr;

Writeln; Writeln(‘Ана тілі’); Writeln;

Writeln(‘Ана тілің арың бұл,’);

Writeln(‘Ұятың боп тұр бетте.);

Writeln(‘Өзге тілдің бәрін біл,’);

Writeln(‘Өз тіліңді құрметте’); Writeln;

Writeln(‘Қ.Мырзалиев‘); Writeln;

readln;


end.

Бағдарламаны орындап, нәтижесін көріңіз. Экранда орналасуына назар аударыңыз



2. Мына жолдарға өзгерістер енгізіңіздер

Writeln (‘Ана тілі’:20);

Writeln (‘К. Мырзалиев’:30);

Бағдарламаны орындап, нәтижесін көріңіз. Қандай айырмашылық бар? 20 және 30 цифрларын өзгертіңіз. Нәтижесіне түсініктеме беріңіз.



2 жаттығу. Жаңа терезеде мына жолдарды теріңіз

uses crt;

var x,y,a,b: byte;

begin


clrscr; {1}

readln(x); {2}

y:=10; {3}

writeln(x); {4}

writeln(x+y); {5}

readln;


end.

Орындап нәтижені қараңыз да, дәптерге жазып алыңыз



3. Мына {4} және {5} жолдарды өзгертіңіз:

Writeln (‘х=’, х);

Writeln (‘у+х=’, х+у);

Орындап нәтижені қараңыз. Қандай өзгеріс бар? Қорытынды жасаңыз.



4. Мына өзгерістерді енгізіңіз. {3} жолдан соң мына жолды теріңіз:

а:= х*у; {3а}

{4}, {5}жолдарды өзгертіңіз: writeln (x,’*’, y, ‘=’ , a); {4}

Writeln (‘x=’, x:10, ‘y=’;10, ‘a=’,:10, a:10); {5}

Орындап нәтижені қараңыз. Қандай өзгеріс бар? Қорытынды жасаңыз. {5}жолдағы : белгісі қандай қызмет атқарады?
3 жаттығу. Жаңа терезеде жазыңыз:

uses crt;

var x,y,a,b:real; s:string;

begin


clrscr; {1}

x:=100; y:=3; {2}

а:=х/у;

writeln (‘a=’;a); {3}



writeln (‘a=’:10);

writeln (‘a=’:10:5); {4}

writeln(‘a=’:10:2);

writeln(‘a=’:10:0);

writeln(‘a=’:0:5); {5}

writeln(‘a=’:0:2); {6}

writeln(‘a=’:0:0);

readln;


end.

Бағдарламаны орындап, нәтижесін қараңыз. Экранға шығудың қандай айырмашылықтары бар? Санның бөлшек бөлігіндегі цифрлар санының өзгеруі неге байланысты?



4 жаттығу. Жаңа терезеде жазыңыз:

uses crt;

var x,y,a,b:real; s:string;

begin


clrscr; {1}

readln(x,y); а:=х/у; {2}

writeln (‘x=’;x); {3}

writeln (‘y=’,y);

writeln (‘a=’,a); {4}

readln; end.

Бағдарламаны орындаңыз. Экранға курсор шығады. Бос орынмен ажыратып екі сан енгізіңіз. Экранға шыққан х пен у-тің мәндері енгізілген сандарға ие болды ма?

Бағдарламаны бірнеше рет орындап, нәтижесін жазып алыңыз.



Сұрақ: Readln қандай қызмет атқарады? Ол орындалғанда экран қандай түрде болады? Курсордың орналасуы қалай?

5 жаттығу. Диалогтық программа құру

uses crt;

var s, a, b:string; x,y,z:byte;

begin


clrscr; {1}

Writeln(‘Сәлем!’);

Write(‘Атың кім?’); Readln(s); Writeln;

Write(‘Екі сан енгіз ’); readln(x,y);

Write(‘Бір сан енгіз ’); readln(z); Writeln;

Writeln(‘Үш санның қосындысы = ’, x+y+z); Writeln;

Writeln(‘Сау бол! ’,s); Writeln;

readln; end.



Cұрақ: Write және Writeln айырмашылығы неде?
Өрнектерді бағдарламалау тілінде жазып есептеңіз.

1. p = Жауабы: 402.1339

2. k=- Жауабы: 62.10672

3. c= Жауабы: 3472.599

4. d= Жауабы: 0.0406535
Пайдаланылатын әдебиет: [4], 5-24 беттер;
4 зертханалық жұмыс Алгоритм ұғымын формальдандыру.

Тармақты алгоритмдер. Шарттық оператор
Теориялық бөлім
Белгiлi бiр шартты тексеру нәтижесiне байланысты екi түрлi iс-әрекеттiң бiреуi ғана орындалатын жағдайда шарттық оператор қолданылады. Шарттық оператордың жазылу форматы:

Толық түрi: If <шарт> then <1 оператор >

еlse <2 оператор >;

Шарттық оператор былай орындалады: Ең алдымен шарттағы логикалық өрнектiң нәтижесi анықталады. Егер нәтиже ақиқат болса <оператор1> орындалады, ал нәтиже жалған болса <оператор2> орындалады.

Қысқаша түрi: Шарттық операторда шарт орындалмаған жағдайда еш нәрсе орындау қажет болмаса, else тармағын жазбауға болады:

If <шарт> then <оператор>;
Тармақты алгоритмдердің орындалу реті блок-схемада анық көрінеді. Блок-схема дегенiмiз алгоритмдi геометриялық фигуралар арқылы бейнелеу.

Мысал: экранға екi санның үлкенiн шығару керек.

Есептi шығару алгоритмiн блок-схемамен көрнекi түрде көрсетуге болады.



program esep_1;

var x, y, z: real; х,у-берiлген айнымалылар, z-нәтиже

begin


writeln (‘2 сан енгiз’);

readln (x, y); бос орынмен 2 сан енгiземiз

if x>y then z:=x егер x >y болса, онда нәтиже х болады

еlse z:=у; әйтпесе нәтиже y болады 

writeln (z); readln;

end.


Бағдарламаның орындалу барысында 5 және 7 сандарын енгiземiз. Айнымалы х-ке 5, у-ке 7 меншiктеледi (х:=5,y:=7). 5>7 шарты орындалмайды, нәтижесi жалған, сондықтан else –ден кейiнгi оператор орындалады, ол оператор нәтижеге у-тi меншіктейді. Одан соң z-тің мәнi экранға шығарылады. Экранға 7 жазылады.
Мысал: Енгiзiлген санның [-5;5] аралығында жататындығын анықтау.

Енгiзетiн санды х деп белгiлеймiз, типi – real. Егер х саны үшiн х>-5 және х<5 шарттары бiр уақытта орындалатын болса, онда х саны [-5;5] аралығына тиiстi болады

program aralyk;

var x: integer;

begin

writeln (‘х санын енгiз’); readln (x);



if (x>-5) and (x<5)

then writeln (‘аралықта жатады’)

еlse writeln (‘аралықта жатпайды’);

readln;


end.

Тапсырма: Енгізілген сан терiс болса, оның таңбасын қарама-қарсыға ауыстыр. Есептi шешу үшiн мына шарттық операторды қолдан. If x<0 then x:=-x;
Пайдаланылатын әдебиет: [2], 14-25 беттер; [1], 91-98 беттер;
Қабаттасқан шарттық оператор. Кейбiр есептердi шешу кезiнде, бiрнеше варианттарды қарастыруға тура келедi. Бұл жағдайда, бiрнеше шарттық операторлар қолданылады, яғни then, else қызметшi сөздерiнен кейiн, жаңа шарттық оператор жазылады.

Мысал: Бүтiн а, b,с сандары берiлген. Егер аbс болса, барлық сандарды өз квадратымен ауыстыр, егер а>b>с болса, әрбiр санды үшеуiнiң iшiндегi ең үлкенiмен, басқа жағдайда, әрбiр санның таңбасын өзгерт.

Есептiң берiлгенi бойынша: егер а b с болса, онда a:=a2, b:=b2, c:=c2;

егер а> b >с, онда с:=а, b:=а;

басқа жағдайда, a:=-а, b:=-b, c:=-с;

program esep_3;

var


a , b , c : integer ;

begin


writeln (‘a, b ,с сандарын енгiз’); readln (a , b , c );

if (a<=b) and (b<=c) then

begin

a:=sqr(a); b:=sqr(b); c:=sqr(c);



end

else


if (a>b) and (b>c) then

begin c:=a; b:=a; end

else begin a:=-a; b:=-b; c:=-c; end ;

writeln (a:5,b:5,c:5); readln;

end.

Есептi шешудiң блок-схемасы төмендегiдей болады.








Тапсырма: Жоғарыдағы мысалдағы шарттық операторды былай өзгертсек:

if (a<=b) and (b<=c) then

begin

a:=sqr(a); b:=sqr(b); c:=sqr(c);



if (a>b) and (b>c) then

begin a:=c; b:=c; end;

else begin a:=-a; b:=-b; c:=-c; end ;

end.


бағдарламаның орындалуы қалай өзгередi? Есептiң берiлгенi қалай болады. Блок-схемасын сыз.

5 зертханалық жұмыс. Программаларды жобалау әдістері,декомпозиция. Таңдау командасы


Мақсаты: Таңдау операторының жазылуы мен пайдаланылуын меңгеру.
Теориялық бөлім
Егер алгоритмде бiрнеше жағдайдың бiреуiн пайдалану қажет болса, онда таңдау операторы қолданылады. Таңдау case операторымен программаланады. If операторы екi жағдайдың бiреуiн орындайды, ал case операторы бiрнеше жағдайдың бiреуiн таңдайды. Жағдайлар таңдау айнымалысының мәнiне байланысты таңдалады.

Жазылу форматы:

case <таңдау айнымалысы> of

<1-тiзiм (мән)>:<оператор 1;>

<2-тiзiм (мән)>:<оператор 2;>

:<оператор n;>

[else <оператор>]



end;

Case операторының орындалу тәртiбi:

Алдымен <таңдау айнымалысының> мәнi анықталады. Анықталған мән қай тiзiмге жатса, сол тiзiмге сәйкес келетiн оператор орындалады да, басқа операторлар орындалмай, case операторы жұмысын аяқтайды.

Егер <таңдау айнымалысының> мәнi тiзiмнiң ешбiреуiне жатпаса, онда else-де көрсетiлген <оператор> орындалады. Еlse болмаса, case операторы жұмысын аяқтайды.

Case операторын пайдалану ережелерi:

1. Таңдау айнымалысы мен тiзiмдегi мәндер бiр типтi болу керек.



  1. Еlse тармағының болуы мiндеттi емес, кей жағдайда жазбауға да болады, егер else тармағы жазылса, алдыңғы оператордан соң (;) қойылады.

3. Мәндер тiзiмiнде үтiрмен ажыратылған жеке мәндердi немесе бастапқы және соңғы мәндерi “..” ажыратылған диапазонды көрсетуге болады.

4. <Операторда> “;”-мен ажыратылған бiрнеше операторды жазуға болады.

5. Таңдау айнымалысы литерлiк, бульдiк және пайдаланушының типтерiнде болады.

Ескерту: String, real типтегi айнымалылар таңдау айнымалысы бола алмайды!
Мысал: Арифметикалық төрт амалды (+,-,*, / ) орындайтын калькуляторды бейнелейтiн бағдарлама.

program calk;

var

x, y, r: real; amal, a : char;



begin

repeat

write (‘x = ‘ ) ; readln (x) ;

write (‘y = ‘ ) ; readln (y) ;

writeln (‘операция +,–,*,/’ ) ;

readln (amal ) ;

case amal of

‘+’ : rezult : = x + y ;

‘– ‘ : rezult : = x-y ;

‘*’ : rezult : = x*y ;

‘ / ‘: rezult : = x/y ;

else writeln (‘қате белгi’) ;



end;

writeln (x, amal,y,’=’, r );

write (‘жалғастырасың ба Y/N ‘ ) ;

readln (a ) ;



until (a =’ N’) or (a =’n’) ;

end.
Пайдаланылатын айнымалылар: х , y - берiлген сандар; r - нәтиже; amal айнымалысы 1 символдық типтi, бұл айнымалыда арифметикалық операцияның белгiсi сақталады. a айнымалысында бағдарламаның аяқталу белгiсi сақталады, типi-символдық; N немесе n клавишасы басылғанда бағдарлама жұмысын аяқтайды.

Бағдарламаның орындалу барысында х,у мәндерi клавиатурадан енгiзiледi. Одан соң мына жолдармен

writeln (‘операция +,–,*,/’ ) ;

readln (amal ) ;

операцияның белгiсi amal айнымалысына енгiзiледi. Case операторы amal айнымалысының мәнi бойынша, арифметикалық операцияны орындайды. Мысалы, егер amal айнымалының мәнi “ * “ болса, онда r :=x*y операторы орындалады. Егер amal мәнi ешбiр белгi болмаса, else-ден кейiнгi жол орындалады да, экранға “қате белгi” деген хабарлама шығады. (Repeat, until операторлары туралы алдағы тақырыптарда түсiнiк берiледi).


Пайдаланушының типтерi. Айнымалының қабылдайтын мәндерi алдын ала белгiлi жағдайда, пайдаланушы стандарттық емес өз типтерiн жасауына болады.

Паскаль тiлiнде пайдаланушы жасаған типтi сипаттау үшiн type резервтелген сөзi қолданылады.

Жазылу форматы:

type

<типтiң аты> = <тип мәнi>;

Пайдаланушы жасайтын типтер екi түрлi болады. Олар: санақтық (перечисляемый) және аралықтық (интервальный) типтер.

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



Достарыңызбен бөлісу:
  1   2   3




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет