|
Постановка задачи
Организовать ввод и вывод данных заданных типов, снабдив распечатки соответствующими заголовками.
Содержание отчета
1. Постановка задачи.
2. Текст программы и результаты ее выполнения.
3. Выводы.
Методические указания
1. При вводе с терминала числа и символы можно набрать как на одной строке, так и на различных строках. При этом следует помнить, что ввод со следующей строки осуществляется в том случае, если предыдущим оператором является READLN. В интерактивном режиме приняты соглашения о вводе и выводе, отличные от соглашений, действующих для пакетного режима.
2. Переменной логического типа можно присвоить значение либо в разделе констант, либо в операторе присваивания. Вводить значения переменных логического типа нельзя.
3. При работе в диалоговом (интерактивном) режиме следует перед операторами ввода использовать оператор вывода на экран приглашения-подсказки о том, что наступило время ввода информации и какой именно информации. Например: WRTTELN (‘ВВЕДИ ЦЕЛЫЕ ЧИСЛА K, L, M’). Выводить данные следует двумя способами: в стандартной форме и с указанием ширины поля вывода, при этом выводимую информацию необходимо снабдить заголовками.
Пример программы
Исходные данные: K= - 73, L=12, M=21425, X= -4192.21, Y=21.345, Sl=’*’, S2=’V’, S3=’F’.
Задача №1
1. Организация ввода/вывода. Изучение стандартных типов данных
Организовать ввод и вывод данных заданных типов, снабдив распечатки соответствующими заголовками.
Варианты задания
Целые числа | Вещественные числа | Символы | Вывести значение булевской переменной | ||||||
Формат | Формат | ||||||||
Номер варианта | Количество | Стандартный | Ширина поля | Количество | Стандартный | Количество | Количество знаков после точки | Количество символов | |
+ | 5. | + | TRUE | ||||||
+ | + | FALSE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
б | + | + | TRUE | ||||||
+ | + | TRUE | |||||||
+ | + | FALSE | |||||||
+ | + | FALSE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | FALSE | |||||||
+ | 5. | + | TRUE | ||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | FALSE | |||||||
+ | + | FALSE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | FALSE | |||||||
+ | 5. | + | TRUE | ||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | TRUE | |||||||
+ | + | FALSE | |||||||
+ | + | FALSE | |||||||
+ | + | TRUE |
• Замечание: «+»означает, что требуется вывод в стандартном формате.
Зертханалық жұмыс № 1
Жұмыстың тақырыбы: Қарапайым консоль қосымшаны құрастыру
Жұмыстың мақсаты: Object Pascal тілінің операторларымен танысып, қарапайым консоль қосымшаны құрастыру.
Орындалу уақыты: 2 сағат.
1 Зертханалық жұмыстың жүру тәртібі:
1.1 Зертхана жұмысының тақырыбына сәйкес теориялық материалдарды меңгеру
1.2 Төменде келтірілген бақылау сұрақтарына жауап беру:
1. Компилятор деген не?
2. Компилятор директивасы деген не?
3. Деректердің қандай типтерін бағдарламада колдандыңыз?
4. Есепті шығару үрдісі деген не?
5. Алгоритм деген не?
6. Консоль қосымшада графикалық интерфейс болады ма?
7. Консоль қосымша файлының кеңейтілуі қандай?
8. Енгізу, шығару операторлары туралы түсінік.
9. Қалқымалы нүктелі сандар.
10. Нүктесі белгіленген сандар ерекшеліктері.
Тапсырма
Берілген айнымалыларды ескеріп, есептік формула нәтижесін анықтау керек. Есептің алгоритмі блок-схема түрінде ұсынылады:
Кесте 1 А тобы
вар.№ | Есептік формула | Айныма лылар | вар.№ | Есептік формула | Айныма лылар |
5 | |||||
В тобы: Кесте 2
вар.№ | Есептік формула | Айнымалылар |
5 | ||
Мысал
Мысал 2.1. арифметикалық өрнекті есептеу керек, егер айнымалылар а =0,11 және х =-0,05 болса.
Есептің шешуі: 1. Алгоритм -қойылған есептің шешіміне жеткізетін әрекеттер тізбегі. Кез-келген есепті шешу, бағдарламаны құрастыру, алдымен есептің алгоритмін талдауды қажет етеді. Есептің шығару алгоритмінің графикалық сипаты - блок-схеманы құрастыру қажет (Сурет -1).
2. Есептің қойылымына байланысты а, х және y айнымалыларын (нақты айнымалар-real) жариялап, енгізу, шығару операторларын қолданып консоль қосымша жазу керек. Консоль қосымша даярлау терезесі 2-суретте көрсетілген.
3. File®Save All арқылы программаны сақтап (Pr_1 -бағдарлама атауы, сурет-2), F9 функционалды клавишасын, немесе саймандар панелінен батырмасын, сол сияқты мәзірден Run ®Run таңдаңыз. Консоль қосымшаның орындалу DOS терезесі ашылып, есептің нәтижесін ұсынады.
Зертханалық жұмыс № 2
Жұмыстың тақырыбы: Delphi ортасымен танысып, сызықты бағдарлама құрастыру.
Жұмыс мақсаты: Delphi ортасындағы Standard парағының Label, Edit, Button, Memo компоненттерімен танысу, оларды бағдарламада қолдану.
Орындалу уақыты: 4 сағат.
Тапсырма
1.1. Зертхана жұмысының тақырыбына сәйкес теориялық материалдарды меңгеру.
1.2. Төмендегі бақылау сұрақтарына жауап беру:
1. Delphi ортасындағы бағдарлама құрылымы неше бөліктерден құрастырылған?
2. Компонент қасиеттері деген не?
3. Label компонентінің қандай қасиеттерін қолдандыңыз?
4. Form компонентінің қандай қасиеттерін қолдандыңыз?
5. Edit, Button, Memo компоненттерінің қандай қасиеттерін қолдандыңыз?
6. Оқиға деген не, бағдарламада қандай оқиғаларды қолдандыңыз?
7. Компонент әдісі деген не?
8. Delphi ортасының басты терезелерін, олардың ерекшеліктерін атап айтыңыз.
9. Қандай функционалдық батырма немесе команда арқылы Объектілер инспекторының терезесін экранға шығаруға болады?
10. Бағдарламаны тек компиляциялау үшін тізбеліктің қайсы командасы немесе функционалды батырма қолданылады?
11. Қандай батырма бағдарламаны қадам бойынша орындауға арналған?
12. Project текстінен тұратын файлдың кеңейтілуі қандай?
13. Модульді іске асыру бөлімі қандай сөзбен басталады?
14. Модульдің орындалу бөлімі қандай сөзбен басталады?
15. Тұрақтылардың дұрыс сипаттамаларын көрсет:
а) const min:=0;
b) const min=0,5;
c) const min:=0.5, max=10;
d) const min: integer=0;
e) const min, max: integer=0;
Вариант бойынша ұсынылған тапсырмалар 1-ші зертхана жұмысының 1, 2-ші кестелерінде келтірілген. Есепті шағару үшін Delphi ортасының негізгі құндылығы - компоненттер палитрасының мүмкіндігін қолдану, яғни есепті шығару алдында Standard парағының Label, Edit, Button, Memo компоненттерімен танысып болған соң ғана оларды бағдарламада қолдану.
Мысал
Мысал 2.1 Есептің шарты: егер айнымалылар а=2,3 және b=4 болса арифметикалық өрнегін есептеу қажет.
Есептің шешуі: 1. Есеп шартына сәйкес өрнекті шешудің алгоритмін блок-схема түрінде бейнелейміз. Алгоритм сипаты бойынша бағдарлама - сызықты (сурет-3).
2.Delphi ортасындағы компоненттер палитрасының Standard парағынан үш Label, екі Edit, екі Button компоненттерін формаға орналастырып, осы компоненттердің қасиеттерін тағайындаймыз (сурет-5 және 3-ші, 4-ші кестелерге назар аударыңыз). Form1 компоненті үшін BorderStyle – форманың пішінін, Width – форманың енін; Height - биіктігін айқындау керек. Label компоненттері үшін Caption, Left, Top қасиеттерін тағайындап, екі командалық батырмалар Button – ға Caption арқылы атқаратын міндеттерін сипаттаймыз. Edit өрісіайнымалыларды енгізуге арналған, сондықтан Text қасиетінің жолы бос болғаны дұрыс. Осы мақсатта Delphi-дің объектілер инспекторының терезесі (Object Inspector) арқылы Properties парағының мүмкіндігін қолданған жөн болады. 7-ші суретте Button1 компонентінің қасиеттерін тағайындау және оның оқиғасын таңдау сәті бейнеленген. Осы амалды басқа да компоненттердің қасиеттерін тағайындауға қолдану керек.
Form1 компонентінің қасиеттері Кесте-3
Компонент | Қасиеттері | Шамасы |
Form1 | BorderStyle | bsSizeable |
Caption | Лабораторная_работа№2 | |
Width | ||
Height |
Label, Edit, Button компоненттерінің қасиеттері Кесте-4
Компонент | Caption | Text | Left | Top |
Label1 | a | |||
Label2 | b | |||
Label3 | - | |||
Edit1 | - | |||
Edit2 | - | |||
Button1 | Вычислить | |||
Button2 | Очистить |
3. Есептің шартына сәйкес өрнекті есептеу үшін Button1 компонентінің OnClick оқиғасын шақырамыз: үрдістің атауы компонент пен оқиға атауларынан құрастырылған: Button1+Click=Button1Click
procedure TForm1.Button1Click(Sender: TObject);
4. Процедура операторларының алдында айнымалыларды жариялау қажет, есептің шартында келтірілгендей b - бүтін шама, a - нақты сан, яғни нәтиже y – те нақты тип болғаны: var b:integer; a,y:real;
5.a:=StrToFloat(Edit1.Text); /Edit1 өрісіне нақты сан ұсыну
b:=StrToInt(Edit2.Text); /Edit2 өрісіне бүтін сан ұсыну
6. Жазылу ережелерін ескеріп өрнекті бейнелеу:
y:= exp(b*ln(a))+sqrt(sqr(a)+sqr(b))-3*abs(b);
7. Есептің нәтижесін Label3 компонентінде ұсыну үшін оның Caption қасиетін қолдану керек: Label3.Caption:='Результат вычисления y='+FloattostrF(y,ffFixed,5,2);
8. F12 функицоналдық батырма немесе тақшадан арқылы кодтар редакторының терезесінен формаға ауысу керек.
9. Енді Button2 батырмасының оқиғасын өңдеу үрдісі:
procedure TForm1.Button2Click(Sender: TObject);
10. Edit компоненттерінің өрісіндегі шамаларды жаңарту, өзгерту Clear әдісі арқылы іске асады:
Edit1.Clear; Edit2.Clear;
11. 8-ші пункті қайталау
12. File®Save Project As басты тізбеліктің командасы арқылы жобаны сақтау барсында Delphi ортасы екі рет сұхбат терезесін ұсынады: Save Unit As – модульді сақтау; Save Project As – жобаны сақтау. Екі терезеге де Имя файла жолына аттарын енгізу керек.
13. F9 функционалдық немесе тақшадан батырмасы арқылы компиляция жүргізу.
1. 14. Edit1, Edit2 өрістеріне айнымалылар шамасын енгізіп есептің нәтижесін алу (сурет-5).
Мысал 2.2 Жоғарыдағы келтірілген мысал тәрізді арифметикалық өрнектің нәтижесін,егер а=23,6 және b=4 болса, Memo компонентін қолданып қарастыру қажет.
Есептің шешуі: 1. Есептің шығару алгоритмін анықтап, форманы даярлау, компоненттерін орналастырып, олардың қасиеттерін тағайындау, айнымалыларды жариялау алдыңғы қарастырылған есеп тәрізді болады. Айырмашылығы есептің нәтижесін Memo1 компонентінде ұсыну.
Memo компоненті TMemo -класының компоненттерi әжептәуiр үлкен мәтiндi енгiзуге, өзгертуге және бейнелеуге арналған. Мәтiн TStrings класының Lines қасиетiнде сақталынады.
Есептің нәтижесін шығару мақсатында Memo1 компонентінің Lines қасиеті қолданылады:
Memo1.Lines.Add('Результат вычисления:');
Memo1.Lines.Add('y='+FloattostrF(y,ffGeneral,7,3));
Осы қарастырылған есептер негізінде мынандай қорытынды жасауға болады: Бағдаралама кодының терезесі форма терезесімен тығыз байланыста болады, яғни бұл терезе бағдарламаның “мінезін” айқындаса, форма терезесі жобаның сыртқы бейнесін ұсынады.
Зертханалық жұмыс № 3
Жұмыстың тақырыбы: Delphi ортасында тармақты құрылымды бағдарлама құрастыру.
Жұмыс мақсаты: Шартты оператормен танысып, Delphi ортасындағы Standard парағының компоненттерін бағдарламада қолдану.
Бірінші бөлім.
Орындалу уақыты: 2 сағат.
1 Зертханалық жұмыстың жүру тәртібі:
1.3 Зертхана жұмысының тақырыбына сәйкес теориялық материалдарды меңгеру
1.4 Төменде келтірілген бақылау сұрақтарына жауап беру қажет:
1. Тілдің алфавиті:
а) әріптер, сандар, оналтылық сандар, арнайы таңбалар, түйінді сөздер;
b) әріптер, сандар, оналтылық сандар, арнайы таңбалар, түйінді сөздер және стандарт директивалар;
c) әріптер, сандар, арнайы таңбалар, түйінді сөздер және стандарт директивалар;
d) әріптер, сандар, оналтылық сандар, түйінді сөздер;
e) әріптер, сандар, арнайы таңбалар, жүйелік тұрақтылар және стандарт директивалар
2. Дұрыс құрылған идентификаторларды көрсет:
a)X_Y_1_2; b) My Programm; c) FD*H; d) 10??Name; e) 1DY
3. Төменде келтірілген қайсы сөз бағдарламада жаңа түрді сипаттауға арналған:
a)VAR; b) LABEL; c) TYPE; d) CONST; e) FOR
6. BYTE түріндегі айнымалыға сәйкес шамалар:
a) таңбалы бүтіндер; b) 0 … 255; c) 0… 65535; d) false немесе true; e) латын таңбалары
7. Егер X және Y айнымалылары бүтін шама болса, онда төмендегі қайсы өрнектердің нәтижесі бүтін болмайды:
a) X mod Y + 5 dіv 3; b) (X=Y) or (X=0); c) X*Y - X + Y; d) X mod Y + 2*73;
e) sqr(X)+ 2*X
8. not a and (b<>c) or (d=e dіv f) өрнегіндегі әрекеттердің орындалу реті:
a) not, <>, =, dіv, or, and; b) not, and, <>, or, =, dіv; c) not, and, or, <>,=, dіv;
d)өрнекте қате бар; e) <>, dіv, =, not, and, or
9. Егер X және Y нақты түрдегі айнымалылар болса, онда төмендегі қайсы өрнектердің нәтижесі нақты болмайды:
a) SQR(X) + Y * SІN(ABS(X)); b) EXP(X) * LN(Y)/PІ – 3; c) X + Y/3.14
d)(X <> Y) OR ODD(23); e)ABS(Y) + SQR(4)
10. "X [2,5] және [-1,1] кесінділерінің сыртында" деген өрнекке қайсы шарт сәйкес:
a)(X>=2) and (X<=5) or ABS(X)<1; b)((X>1) and (X<-1)) or ((X<2) and (X<5));
c)ABS(x)>1 and (x<2) and (x<5); d)((X<-1) or (X>1)) and ((X<2) or (X>5));
e) ((X>2) and (x<5)) or ((X>-1) and (x<1))
11. Төмендегі қайсы өрнектің нәтижесі FALSE болады:
a) t and (p=0) егер t=true, p=2; b) (x*y <> 0) and (y > x) егер x=1, y=2;
c) a or (not b) егер a=true, b=false; d) not odd(4);
e) (x=2) or (y=0) егер x=2, y=3
12. Төмендегі қайсы өрнектің нәтижесі TRUE болады:
a) k dіv 5 = k mod 3 егер k=8; b) not b or (x > y) егер b=true, x=1, y=2;
c) odd(4) and (x=0) егер x=0; d) t and (p=2) егер t=true, p=2;
e) (x<y) or (y=0) егер x=2, y=3
13. Шартты оператордың қате құрылымын көрсетіңіз
a) ІF.<шартты тексеру> GOTO N1; b)ІF <шартты тексеру> THEN оператор1 ELSE оператор2;
c) ІF <шартты тексеру> THEN ELSE оператор2;
d)ІF <1шартты тексеру> оператор1 ELSE ІF <2шартты тексеру> THEN оператор2;
e) ІF <шартты тексеру> THEN оператор1;
Тапсырма
А тобы Кесте 5
Вариант № | Есептік формула | Шарт | Айнымалылардың анықталу аймағы және адымы | Вариант № | Есептік формула | Шарт | Айнымалылардың анықталу аймағы және адымы | Кіріс деректері |
1<=t<=2 t<1 t>2 | tÎ[0;3]; ∆t=0,15; | x<2,8 2,8<=x<6 x>=6 | xÎ[0;7]; ∆x=0,15 | a=2,6; b=-0,39 | ||||
x<1,3 x=1,3 x>1,3 | xÎ[0;2]; Dx=0,2 | x>1 x<=1 | xÎ[0;2]; Dx=0,1 | a=0,9 | ||||
x<1,2 x=1,2 x.1,2 | xÎ[1;2]; Dx=0,05 | i<4 4<=i<=6 i>6 | iÎ[0;12]; Di=1 | a=2,1;b=1,8;c=-20,5 | ||||
x<1,4 x=1,4 x.1,4 | xÎ[0,7;2];Dx=0,1 | ((i2+1)/n)>0 ((i2+1)/n)<0 | iÎ[1;10]; Di=1 | a=0,3; n=10 | ||||
x<1 x=1 x>2 | xÎ[0,5;3]; Dx=0,2 | t<0,1 t=0,1 t>0,1 | tÎ[-1;1]; Dt=0,2 | a=2,5; b=0,4 | ||||
x>a x=a x<a | xÎ[1;5]; Dx=0,5 | x>3,5 x<=3,5 | xÎ[2;5]; Dx=0,2 | - | ||||
bx<1 bx=1 bx>1 | xÎ[0,1;1];Dx=0,1 | x>a x=a x<a | xÎ[1;5]; Dx=0,25 | a=2,5 | ||||
x>2,5 x<=2,5 | xÎ[2;5]; Dx=0,25 | x>a x=a x<a | xÎ[0;5]; Dx=0,25 | a=3,2 | ||||
x>1 x<=1 | xÎ[0,5;2]; Dx=0,1 | x>a x=a x<a | xÎ[0;3]; Dx=0,2 | a=2,2 | ||||
x<0,5 x=0,5 x>0,5 | xÎ[0,2;2]; Dx=0,1 | x<0,5 x=0,5 x>0,5 | xÎ[0;2]; Dx=0,05 | t=2,5 |
B тобы Кесте 6
Вариант № | Есептік формула | Шарт | Айнымалылардың анықталу аймағы және адымы | Вариант № | Есептік формула | Шарт | Айнымалылардың анықталу аймағы және адымы | Кіріс деректері |
3<t<=5 t<3 t=3 | tÎ[0;10]; Dt=0,2 | 3<t<=5 t<3 t=3 | tÎ[2;12]; Dt=0,2 | a=1,5 | ||||
1<x<=1,5 x<1,5 x=0 | xÎ[0;5]; Dx=0,1 | 1<x<=1,5 x<1,5 x=0 | xÎ[0;5]; Dx=0,1 | - | ||||
x<1 x=1 x>1 | xÎ[0;3]; Dx=0,1 | x<1 x=1 x>1 | xÎ[0;8]; Dx=0,25 | y=12 | ||||
0<x<=0,5 0,5<x<1 x>=1 | xÎ[0;3]; Dx=0,1 | 0<x<=0,5 0,5<x<1 x>=1 | xÎ[0;8]; Dx=0,2 | y=11,2 | ||||
1. | 2. x=0 3. x>0 4. x<0 | xÎ[0;3]; Dx=0,1 5. | 6. 15 | 7. | 8. 1<=x<=2 9. x<1 10. x>2 | xÎ[0;3]; Dx=0,1 | 11. a=2,67; b=9,31; | |
12. | 13. 0<x<2 14. x<=0 15. x>=2 | 16. xÎ[0;8]; Dx=0,2 | 17. 16 | 18. | 19. x=2,2; 20. x<5,8; 21. басқа жағдай | xÎ[0;8]; Dx=0,2 | 22. a=2,67;b=9,31; | |
23. | 24. 0<x<=0,14 25. x<=0 26. x>0,14 | 27. xÎ[0;3]; Dx=0,1 | 28. 17 | 29. | 30. x<2,12 31. x=2,1 32. x>2,12 | xÎ[0;6]; Dx=0,1 | 33. a=8,43; b=9,38; | |
34. | 35. 0<x<2 36. x<=0 37. x>=2 | 38. xÎ[0;2]; Dx=0,01 | 39. 18 | 40. | 41. x<=2 42. 2<x<14 43. x>=14 | xÎ[0;14] Dx=0,5 | 44. a=6,33; b=8,44; | |
45. | 46. x<5 47. x>5 48. x=5 | 49. xÎ[0;6]; Dx=0,1 | 50. 19 | 51. | 52. 0<=x<=2 53. x>2 54. x<0 | xÎ[0;3]; Dx=0,1 | a=6,83; b=4,52; | |
55. | 56. 1<=x<=2 57. 2<x<5 58. x>5 | 59. xÎ[1;9]; Dx=0,25 | 60. 20 | 61. | 62. x=2 63. x<2 64. x>2 | xÎ[1;6]; Dx=0,2 | a=4,56; b=9,44; |
Мысал
Мысал 2.1. Combobox компонентін қолдана отырып, аптаның күніне, телефонмен сөйлесу ұзақтығына байланысты төлемақыны есептеу қажет. Демалыс және сенбі күндерінде төлемақы үшін 20% шегерімдер бар.
Есептің шешуі: 1. Есеп шығару алгоритмін анықтап, форманы даярлау қажет. Форманың қасиеттерін тағайындап, оған төрт Label компонентін, екі Edit, Button компоненттерін және Combobox компонентін орналастыру керек.
2. ComboBox - компоненті ашылмалы тiзiмнен таңдау мүмкіндігін береді. Есептің қойылымына назар аударсақ, апта күндеріне байланысты төлем ақы да өзгереді, яғни ашылмалы тізімнен таңдаған қолайлы болады. Объектілер инспекторының терезесінен Items қасиетін таңдап, оң жағындағы батырма арқылы Srting List Editor терезесін ашып, оған апта күндерінің тізімін жазу керек (сурет-12). Суреттен жол санын және күндер тізімін көруге болады.
3. Төлем ақы шамасы сөйлесу ұзақтығына, ара қашықтығына және апта күніне байланысты. Демек, төлемақыға шегерім болу үшін сенбі және жексенбі күндері болуы шарт. Есепті шешуге шартты оператор қолданылады.
4. Button1 компонентін екі рет шертіп, оқиғаны өңдейтін үрдісті шақырып, y,s,t айнымалыларды нақты типті шама деп жариялау қажет. Сонымен қатар, s,t шамаларын Edit1, Edit2 өрісіне енгізу үшін - типтерді түрлендіру функцияларын, қолдану қажет.
5. Шартты оператордың синтаксисін, есептің қойылымындағы шартты ескеріп, төменде келтірілген жолдарды жазамыз:
if (combobox1.Text='понедельник') then y:=(s*t);
if (combobox1.Text='вторник') then y:=(s*t);
if (combobox1.Text='среда') then y:=(s*t);
if (combobox1.Text='четверг') then y:=(s*t);
if (combobox1.Text='пятница') then y:=(s*t);
if (combobox1.Text='суббота') then y:=(s*t-round(s*t)/5);
if (combobox1.Text='воскресенье') then y:=(s*t-round(s*t)/5);
6. Есептің нәтижесін Label4 компонентінде ұсынамыз:
Label4.Caption:='Всего:'+floattostrF(y,ffGeneral,7,4) + ’тенге’;
Мысал 2.2 Есептің шарты: [0,5] диапазонындағы х шамасына байланысты z функциясын есепте.
Есептің шешуі: I-ші әдіс. Бұл әдісте < іf логикалық өрнек then Операторлар 1 else Операторлар 2 >шартты операторын және Form, Label, Edit, Memo, Button компоненттерін қолданамыз.
if x<1 then z:=sin(x) else
if (x>1) and (x<2) then z:=cos(x) else
if X>2 then z:=cos(x)/2;
есептің нәтижесі: (сурет-16 б).
II-ші әдіс. Бұл әдісте ListBox компонентін және < case n of> (таңдау)операторын қолданамыз.
Алдыңғы әдістен ерекшелігі формада ListBox1 компоненті бар. Бұл компонент Windows үшiн стандартты таңдау тiзiмi болып табылады. Бұл арқылы қолданушы бiр немесе бiрнеше таңдау элементтерiн қабылдауына болады. Мұнда тiзiм, жолдар, бейнелер де бола алады. Бұл есепте z функциясы х аргументінің шамасына тәуелді (бағдарламадан үзінді):
case listbox1.ItemIndex of
0: z:=sin(x);
1: z:=cos(x);
2: z:=cos(x)/2;
мұндағы ItemIndex - компонентқасиеті, ол фокустағы элементтің индексі болады. Индекс нөмірі 0-ден басталады, яғни 0, 1, 2 – компонент тізіміндегі шарттарға сәйкес.
Зертханалық жұмыс № 4
Жұмыстың тақырыбы: Delphi ортасында циклды құрылымды бағдарлама құрастыру.
Жұмыс мақсаты: Қайталау операторларымен танысып, Delphi ортасындағы Standard парағының компоненттерін бағдарламада қолдану.
Орындалу уақыты: 4 сағат.
1 Зертханалық жұмыстың жүру тәртібі:
1.5 Зертхана жұмысының тақырыбына сәйкес теориялық материалдарды меңгеру
1.6 Төменде келтірілген бақылау сұрақтарына жауап беру қажет:
1. Қайталау операторларының атқаратын қызметі.
2. Цикл-әзір қашан қолданыста болады?
3. Цикл-әзірдің форматы.
4. Цикл-дейін қашан қолданыста болады, орындалуы.
5. Параметрлі цикл, орындалу ерекшелігі.
6. F айнымалысы қандай нәтижеге ие болады:
а) I:=1; F:=2; WHILE I<6 I:=I+1; F:=F*I;
b) I:=1; F:=2; WHILE I<6 DO BEGIN I:=I+1; F:=F*1 END;
7. S айнымалысын анықта:
а) S:=0; I:=1; repeat S:=S+I; I:=I-1 until i<=1;
b) S:=1; n:=1; for i:=2 to n do S:=S+i;
8. Қайталау операторының денесі қанша рет орындалады, егер:
k:=0;for i:=1 to k+3 do k:=k+1;
9. S айнымалысын анықта
S:=0; i:=0; WHILE i<5 DO i:=i+1; S:=S+1/i;
10. S айнымалысын анықта
S:=0; i:=1; WHILE i>1 DO BEGIN S:=S+1/i; i:=i-1 END;
Тапсырма
1. А тобының тапсырмасы: 3-ші зертхана жұмысында келтірілген есептік формуланы ескере отыра функцияның шамасын анықта. Есептің блок-схемасын құрастырып, енгізілуге тиісті айнымалының диапазонын ескеріп бағдарлама құрастыр.
- а) – алдын-ала шартталған цикл; b) – соңынан шартталған цикл
В тобының тапсырмасы үшін а)және b) орындалуы керек.
Кесте 7
№ вар. | ||||||||||
Қайталау операторының түрі | a | b | a | b | a | b | b | a | a | b |
№ вар. | ||||||||||
Қайталау операторының түрі | a | b | a | b | a | b | b | a | a | b |
Мысалдар
Мысал 2.1. [0,7] диапазонында анықталатын х шамасын ескеріп, s функциясының шамасын анықтау қажет:a=2.6, b=-0.39, dx=0.6.
Есептің шешуі:
Бірінші әдіс: 1. Есептің қойылымына байланысты блок-схема даярлау қажет (сурет-18).1-ші блок: есептің басы;
2-ші блок: кіріс деректерін енгізу, мұнда: xn -айнымалының бастапқы және xk -айнымалының соңғы мәндері, бұл шамалар есептің қойылымы бойынша [0,7] диапазонында болады; dx - x-тің өсу адымы;
3-ші блок: x шамасын бастапқы мәніне меншіктейміз, демек xn =x, ал ол 0- ге тең болғаны (2-ші блокты қара);
4,5 және 6-шы блоктарда x айнымалысының нақты шамасына, қойылған шарттарға байланысты s функциясы анықталады;
7-ші блок: анықталған s функциясының шамасын ұсыну;
8-ші блок: есептің қойылымына байланысты x өсу адымы dx арқылы анықталу аймағы 0 -ден 7 аралығында ағымдағы шамасы арқылы s функциясын есептеуі керек, сондықтан x айнымалысының мәні өсімше шамасына тәуелді өзгереді;
9-шы блок: x соңғы мәні xk – ға дейін функцияны есептеуді қайталап отырады: егер x- тің ағымдағы шамасы xk –дан кіші болса (соңына жетпесе) қайталау операторы есептеуді жалғастырады да цикл денесінің ішінде қалады, ал xk – ға жеткенде есептеу тоқталады да циклдан шығады;
10-шы блок: есептің соңы.
2. Формаға қажетті компоненттерді орналастырып (сурет-19), олардың қасиеттерін тағайындау қажет. Суретте көрсетілгендей бес Label, бес Edit, бір Memo, үш Button компоненттері керек. Есептің нәтижесін Memo компонентінің өрісіне шығару қолайлы, себебі есептің қойылымында келтірілгендей s функциясы айнымалы x-тің шамасына тәуелді және оның [0;7] диапазонында есептеледі. Edit компоненттерінің өрісіне кіріс деректерін енгізу керек.
3. 18-ші суреттегі блок-схема цикл-дейін немесе соңынан шартталған Repeat …untіl қайталау операторының алгоритмін сипаттайды.
4. Командалық батырма Button1 – дің OnClick оқиғасы арқылы есептеу үрдісін іске асырамыз, ол үшін алдымен кіріс және шығыс деректерін жариялау керек: a,b,dx және анықталатын функция s нақты тип. Edit компоненттерінің өрістеріне кіріс деректерін енгізу мақсатында типтерді түрлендіру функцияларын қолдану қажет.
5. x-ке бастапқы шамасын меншіктеу: x:=xn;
6. Цикл-дейін қайталау операторы:
Repeat
if x<2.8 then begin i:=1; s:=(a+b)/(exp(x)+cos(x)); end;
if (x>=2.8) and (x<=6) then begin i:=2; s:=(a+b)/(x+1); end;
if x>=6 then begin i:=3; s:=exp(x)+sin(x); end;
x-тің әрбір есептелген шамасын Memo1 өрісіне шығару. үшін:
7. Айнымалы x –тің ағымдағы шамасы алдында айтылғандай dx шамасына тәуелді, яғни x:=x+dx;
8. Анықталған x- ті циклдың аяқталу шартында тексеру қажет: until x>xk;
Алгоритмде сипатталғандай, егер шарт орындалса цикл денесінің ішіндегі операторлар функцияны есептеуді тоқтатады.
10. Button2 компонентінің OnClick оқиғасының үрдісін өңдеу керек. Қосымшадағы бұл батырма кіріс деректерін жаңартуға, өзгертуге мүмкіндік береді. Edit компоненттерінің өрісін жаңарту үшін Clear әдісін қолдану қажет:
...
Дата добавления: 2015-11-14; просмотров: 123 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
УЧЕБНИКИ и УЧЕБНЫЕ ПОСОБИЯ | | | edit1.Clear;end; |