русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Стандартты функциялар.


Дата добавления: 2015-09-15; просмотров: 6243; Нарушение авторских прав


Стандартты функциялар жиі кездесетін математикалық және басқа да функцияларды есептеу үшін қолданылады. Паскаль тіліндегі кестеде бірқатар стандартты функциялар төмендегі 1.1-кестеде келтірілген.

 

1.1-кесте.

Стандартты функциялардың жазылуы

 

Паскальдағы жазылуы Математикалық жазылуы Аргументтің типі Функцияның типі
abs(x) sqr(x) sіn(x) cos(x) exp(x) ln(x) sqrt(x) arctan(x) frac(x) іnt(x) pі |x| sіnx cosx lnx arctgx санның бөлшегі cанның бүтіні 3,14159 real не іnteger real не іnteger real не іnteger real real real real real real real real   real не іnteger real не іnteger real не іnteger real real real real real real real real
trunc(x) round(x) cанның бүтіні санды дөңгелектеу real real   іnteger іnteger  
pred(x)   succ(x) алдыңғы элементтің мәнін табу келесі элементтің мәнін табу real не іnteger   real не іnteger  
ord(x) саналатын тип мәнінің реттік нөмірін анықтау саналатын тип Іnteger
chr(x) реттік нөмірі арқылы символды анықтау іnteger ( 0 .. 255) Сhar
odd(x) санның тақ екенін анықтау Іnteger Boolean

 

Арифметикалық өрнектер.Өрнектердің есептелу барысында амалдардың орындалу реті жақшалардың көмегімен өзгертіледі. Қарапайым жағдайда өрнек тек айнымалылардан, тұрақтылардан немесе функциялардан тұруы мүмкін. Турбо Паскаль іске қосылғаннан кейін CTRL+F4 пернелерінің көмегімен сандық өрнек мәнін тікелей есептеуге болады. Терілген өрнек пен оның нәтижесі қосымша терезеде көрінеді.



Өрнектердің немесе функциялардың дұрыс жазылмауы бағдарламалау барысында қателіктер туғызуы мүмкін. Сондықтан бағдарламалауда өрнектер, функциялар жоғарыдағы 1.1- кестеге сәйкес жазылуы тиіс. Кейбір өрнектердің жазылу мысалы 1.2 - кестеде келтірілген.

 

1.2- кесте.

 

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

 

Өрнектер Паскальда жазылуы
(a+b)/(a-b)
exp(x+1)
exp(b*ln(a))
(a+b)/(x*y)
exp(ln(x)/3)
exp(ln(a)*exp((x+1)*ln(b)))

 

Сызықтық алгоритмді бағдарламалау.

Сызықтық бағдарлама деп реті бойынша белгілі бір тәртіппен орындалатын бағдарламаны айтады. Сызықтық бағдарламаны құру үшін мынадай операторлар қолданылады:

Read, Write, меншіктеу операторы - :=.

Read(ағылшынның “оқу” деген сөзінен алынған) бағдарламаға айнымалылардың мәнін енгізу үшін қолданылады (енгізу операторы). Айнымалы мәндерін енгізу Enter пернесі арқылы жүреді.

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

Айнымалыға мәндерді және амалдарды меншіктеу үшін меншіктеу операторы :=қолданылады. Меншіктеу операторы сол жақтағы айнымалы оң жақтағы мәнді өзіне меншіктейді.

Бағдарлама ішінде қосымша ескертулерді, түсініктемелерді орналастыруға болады. Ол үшін апостроф (‘ ‘) қолданылады. Апострофқа жазылған мәтіндер бағдарламаның орындалуына ешқандай әсер етпейді.

Жұмысты орындау үлгісі

 

Үш санның қосындысын табатын бағдарлама құру керек.

Program esep1;

Var a,b,c,y:integer;

Begin

Read (a,b,c);

y:=a+b+c;

Write (y);

End.

1.1-сурет. Сызықтық бағдарлама мәтіні

 

Бағдарламаны жіберу үшін Ctrl+F9 батырмаларын басу қажет. Ашылған терезеде a,b,c мәндерін енгізіледі.

 

 

1.2 - сурет. Мәндерді енгізу терезесі

 

Нәтижені қарау үшін Alt+F5 батырмаларын басу керек.

 

 

1.3-сурет. Нәтижені тексеру

Alt+F5 батырмаларын баспау үшін бос Readlnоператорын жазу керек.

Lnжұрнағы курсорды жаңа жолдан бастайды.

Жеке нұсқалар бойынша тапсырмалар

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

1. , X=0.31

2. , X=0.31

3. , X=-2.1, Y=1.4

4. , X=1.5

5. , X=5.67

6. , X=7.83, Y=1.65

7. , X=-7.65, Y=3.4

8. , x=0.43, y=1.61, z=6.1

9. 1+ , X=0.15, Y=4.3

10. Y+ , X=3.34, Y=4.39

11. , X=8.43, Y=4.31

12. Lnln , X=0.331

13. , X=-9.1, Y=3.2

14. Ln , X=0.625

15. , X=1.1, Y=-3.4, Z=5.3

16. , X=0.15, Y=4.14, z=3.63

17. , X=-5.25, Y=2.13

18. sin , X=9.3,Y=11.65, z=1.35

19. , X=4.26, Y=3.31

20. , X=5.61

21. , X=0.01, Y=2.45

22. , a=0.7, b=6.1, x=5.7

23. , X=9.91, Y=0.75, Z=2.63

24. Ln ln , X=4.71

25. 2 , a=4, b=-3, x=2.4, y=3.8

 

Бақылау сұрақтары

 

1. Алгоритм дегенiмiз не?

2. Алгоритм құрылымына қарай нешеге бөлінеді?

3. Паскаль тілінде қандай стандартты функциялар бар?

4. Паскаль тiлiндегi бағдарламаның бөлімдері қандай?

5. Блок-схема дегенiмiз не, оған қандай геометриялық фигуралар қолданылады?

6. Вegіn және end түйінді сөздерінің аралығында не орналасады?

7. Оператор деп нені айтамыз?

8. Меншiктеу операторы, оның жалпы жазылуы қандай?

9. Берiлгендер мәнiн енгiзу операторы қандай?

10. Мәлiметтердi экранға шығару операторы қандай?

11. Сандық өрнекті тікелей есептеу қалай жүзеге асады?

12. Сандық өрнектің есептелу нәтижесін қалай көруге болады?

 

 

№2- зертханалық жұмыс

 

ТАРМАҚТАЛҒАН ҚҰРЫЛЫМДЫ АЛГОРИТМДІ БАҒДАРЛАМАЛАУ

 

Жұмыстың мақсаты:тармақталған құрылымды алгоритмдерді бағдарламалауды оқып-үйрену, IF-THEN-ELSE операторлары танысу

 

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

 

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

Есепті шешуде барлық уақытта сызықтық алгоритм түрінде өрнектеуге болмайды. Кейбір есептерді шешу кезінде бұл тәртіпті өзгертуге тура келеді. Осы мақсатпен басқаруды беру операторлары If, Then, Else, Goto операторлары қоладанылады.

If– шартты өту операторы. Егер шарт орындалса, онда Then операторынан кейін тұрған әрекет орындалады, ал шарт орындалмаса Else операторынан кейін тұрған әрекет орындалады. Оның жалпы жазылу түрі:

If шарт Then 1-әрекет Else 2-әрекет;

If – егер; Then – онда ; Else – әйтпесе;

Шартты өту операторының екі түрі бар: толымды шарт және толымсыз шарт.

 

2.1-сурет. Толымды және толымсыз тармақталу

 

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

Басқару операторлары бағдарлама қатарларының орындалу реттілігін өзгертеді. Олар шартты (тексеру), таңдау және цикл операторларына жіктеледі. Шартты оператор "Иә" немесе "Жоқ" деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Егер оның нәтижесі ақиқат, яғни құптарлық болса (Иә), онда бір бағдарламалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда (Жоқ), бағдарламаның басқа бір тармағы жүзеге асырылады. Мұнда есептің шартына байланысты тармақталу алгоритм-дерінің "Таңдау" не "Аттап өту" мүмкіндіктерінің бірі орындалуы тиіс. Бұл операторлардыңдың жазылу түрі:

IF <шарт> THEN <оператор1> ELSE <оператор2>;

ЕГЕР <шарт> ОНДА <оператор1> ӘЙТПЕСЕ <оператор2>;

Шарт операторы келесі алгоритммен жұмыс жасайды. Бастапқыда <шарт> өрнегі орындалады. Егер нәтиже TRUE (ШЫНДЫҚ) болса, онда <оператор1>орындалады, ал <оператор2> қарастырылмайды. Егер нәтиже FALSE (ЖАЛҒАН) болса, онда керісінше <оператор1>қарастырылмайды, ал <оператор2> орындалады. Егер ELSE сөзінен басталатын шартты операторының бөлігі болмаса, онда басқару тез арада шартты оператордан кейінгі операторға беріледі.

Таңдау командасы. CASE операторы.Паскаль таңдау командасы қызметші сөзінен аяқталатын CASE M OF операторы арқылы беріледі де, END оперторынан соң нүктелі үтір қойылады. Мұндағы CASE(жағдай)- қызметші сөз; m real типінен басқа кез келген скалярлық типке берілген айнымалы (не өрнек). Оны сұрыптаушы деп атайды. OF бойынша деген мағынаны білдіретін қызметші сөз. (яғни CASE M сұрыптаушы бойынша таңдау операторы) m айнымалысының мәні жадыға осы оператордың орындалуынан бұрын енгізілуі тиіс. CASE операторының жазылу мысалы:

CASE M OF

1: Y:= 3*X+5;

2: Y:=X*X-6;

3:Y:=4*X;

END;

мұндағы m-integer, не 1..3 шектеулі типті айнымалы; 1,2,3- өздерінен кейінгі қос нүктеден соң жазулы операторды сұраптаушы тұрақтылар. Бағдарламаның орындалу кезінде алдымен m айнымалысының мәні жадыға ендіріліп, ол осы тұрақтылармен салыстырылады. Егер мән олардың бірімен тең болып шықса, онда осы тұрақтыға сәйкес оператор орындалады да case операторын орындау аяқталады. Егер m-ң мәні сұраптаушы тұрақтылардың ешқайсысымен тең болып шықпаса, case операторы орындамай тастап кетіледі. Оны компьютердің хабарлауы үшін case операторын аяқтайтын end-тің алдына else writeln операторын енгізіп қойған жөн.

 

Жұмысты орындау үлгісі

 

Екі санның үлкенін табатын бағдарлама құру.

Program esep1;

Uses CRT;

Var a,b,max:integer;

begin

ClrScr;

readln(a,b);

If a>b Then max:=a Else max:=b;

writeln(max);

end.

Жеке нұсқалар бойынша тапсырмалар

Берілген х аргументінің мәнін f(x) функциясымен есептеу бағдарламасын құрып және алгоритмнің блок-схемасын құру керек. f(x) функциясының мәні шарт операторы көмегімен есептелінеді.

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

 

Бақылау сұрақтары

 

1. Тармақталу алгоритiмi деп нені айтады?

2. Шартсыз көшу операторы қалай жазылады?

3. Шартты көшу операторы қалай жазылады?

4. Толық тармақ дегеніміз не?

5. Қысқаша тармақ деп нені айтады?

6. Таңдау операторының жазылуы қалай?

7. Case операторын қандай жағдайда қолданған ыңғайлы?

 

 

№3 - зертханалық жұмыс

 

ЦИКЛДІК ҚҰРЫЛЫМДЫ АЛГОРИТМДІ БАҒДАРЛАМАЛАУ. ПАРАМЕТРЛІ ҚАЙТАЛАУ

Жұмыстың мақсаты:алгоритмдердің циклдік құрылымдарын бағдарламалауды үйрену, FOR операторын пайдалануда дағды қалыптастыру

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

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

 

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

Паскаль тілінде қайталану процесін үш түрлі жолмен ұйымдатыруға болады:

· параметрдің мәні бойынша қайталауды ұйымдастыру:

for…to…do…циклдық операторы;

· алдын-ала берілген шарт бойынша қайталауды ұйымдастыру:

while… do… циклдық операторы;

· соңынан берілген шарт бойынша қайталауды ұйымдастыру:

repeat… until циклдық операторы;

Соңғы екі цикл операторы көбіне қайталаудың саны белгісіз болған жағдайда пайдаланылады.

1. For…to…do…циклдік операторы.

Цикл операторлары белгілі бір операторлардың қайталанып орындалуын қамтамасыз етеді. Циклдық оператор:

FOR параметр = бастапқы мән TO соңғы мән DO

Егер қайталаудың саны белгілі болса, онда FOR, TO, DO (DOWNTO) операторлары қолданады. FOR циклдық операторы оператордың белгілі бір рет қайталанып орындалуын қамтамасыз етеді.

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

FOR операторында тұрған оператор бастапқы және соңғы мәндер диапазонындағы әр мән үшін бір рет орындалады.

2. while… do… циклдық операторы

Жалпы түрде жазылуы:

While шарт do

Begin

Цикл денесі

End.

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

Мысалы, while… do… циклдық операторын қолданып y<=m шарты жалған мән қабылдағанша y айнымалысының мәнін 3 есе арттырып отыру:

y:=1; k:=0;

while y<=m do

begin

y:=y*3;

k:=k+1;

end;

3. Repeat… until циклдық операторы

Жалпы түрде жазылуы:

Repeat

Цикл денесі

Until шарт

Мұндағы Repeat – қайтала, Until – соған дейін дегенді білдіреді. Бұл операторда да қашан логикалық өрнектің мәні ақиқат болғанша цикл денесі қайталана береді. Яғни, бұл қайталауда алдымен цикл денесі орындалады да, одан соң шарт тексеріледі. Бұл цикл операторының While…do циклдық операторынан айырмашылығы цикл денесә ең болмағанда бір рет міндетті түрде орындалады.

Мысалы, y=1+1/2+1/3+…+1/n түріндегі тізбектің 1/i>=e шартын қанағаттандыратын алғашқы n мүшесінің қосындысын табуды қарастырайық. Мұндағы 0<e<1.

readln(e);

i:=0;

y:=0;

Repeat

i:=i+1;

y:=y+1/I;

Until 1/i<e;

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

Мысалы, электрондық сағат жұмысын сипаттайтын бағдарлама фрагментін іштестірілген цикл көмегімен келесі түрде жазуға болады:

For h:=0 to 23 do

For m:=0 to 59 do

For s:=0 to 59 do

Writeln(h,’:’, m,’:’, s);

Жұмысты орындау үлгісі

-5-тен 5-ке дейінгі сандар берілген. Осы сандардың оң сандарының қосындысын табатын бағдарлама құру.

 

Program prim1;

Var х:integer;

S:real;

Begin

S:=0;

For x:=-5 to 5 do

If x>0 Then S:=s + x;

Writeln(S);

End.

Бағдарламада х параметр мәні -5-тен 5-ке дейінгі сандарды қарастырады. Осы аралықтағы оң сандардың қосындысын тауып, баспаға шығарады. Қосындыны тапқан уақытта қандай санды 0-ге қосса да, сол санның өзі шығады. Сондықтан S-тің бастапқы мәнін S=0 деп аламыз. Осыдан кейін x>0 шарты тексеріледі. Егер шарт қанағаттандырса, S=s + x амалы орындалады. Бұл формула бойынша орындалу былай жүреді:

S1=s + x1=0+1=1

S2=s1 + x2=1+2=3

S3=s2 + x3=3+3=6

S4=s3 + x4=6+4=10

S5=s4 + x5=10+5=15

Жауабы 15-ке тең болады.

Жеке нұсқалар бойынша тапсырмалар

Төменде берілген есептерді FOR операторын қолданып бағдарлама құру керек.

 

1.

2.

3.

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.

14.

15.

16.

17.

18. S=

 

Бақылау сұрақтары

1. Қайталанбалы алгоритм дегеніміз не?

2. “Цикл-әзiр” қалай орындалада?

3. “Цикл –дейiн” қалай орындалады?

4. Алдын ала шартты тексеру операторы қандай?

5. Repeat операторының жалпы жазылуы және орындалуы қалай?

6. Параметрлi қайталану операторының жазылуы және орындалуы қандай?

7. Циклдiң денесi деп ненеі айтамыз?

8. Күрделi циклдер деп нені айтады?

 

№ 4 - зертханалық жұмыс

 

ШАРТТЫ АЛДЫН-АЛА ТЕКСЕРУ АРҚЫЛЫ ЦИКЛДІК ҚҰРЫЛЫМДЫ АЛГОРИТМДЕРДІ БАҒДАРЛАМАЛАУ

Жұмыстың мақсаты:алгоритмдердің циклдік құрылымдарын бағдарламалауды үйрену, WHILE DOоператорларын бағдарламада пайдалануда дағды қалыптастыру

 

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

 

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

 

Алдын-ала берiлген шартты тексеру арқылы циклдi ұйымдастыруға WHILE операторы қолданылады. WHILE операторын циклдiң қайталану саны белгiсiз болғанда пайдаланған ыңғайлы. Қайталанушы процесс қойылған шартты тексеру арқылы жүзеге асады. Яғни, шарт ақиқат болса цикл қайталанады да, шарт жалған болса циклдан шығу орындалады. WHILE оператор екi бөлiктен тұрады: циклдiң тақырыбынан және циклдiң денесiнен. Жалпы жазылуы:

WHILE <шарт> Do

<циклдiң денесi>;

мұндағы, қызметшi сөздердiң қазақша мағынасы: WHILE – “әзiр”, DO – “орында”. Ал, шарт – логикалық өрнек түрiнде жазылады. Берiлген шартқа тәуелдi бiрнеше рет қайталанып орындалатын операторды – циклдiң денесi деп атаймыз.

WHILE операторында, әрбiр қайталанудың алдында берiлген шарт тексерiледi. Шарт ақиқат болса цикл денесi орындалады. Егер, шарт орындалмаса, цикл денесi де бiрде-бiр рет орындалмайды.

Егер, цикл денесi екi немесе екiден де көп операторлардан тұрса, оларды операторлар жақшасының iшiне жазамыз.

 

WHILE <шарт> DO

BEGIN

<циклдiң денесi>;

END;

Орындалу ережесі: Begin және Еnd сөздерінің арасында жазылған операторлар шарт ақиқат болғанда орындалады. Шарт жалған болса орындалмайды. Егер алғаш рет тексерілгенде шарт жалған болса, онда операторлар бір рет те орындалмайды.

Жұмысты орындау үлгісі

1) y=x2 функцияның мәнiн есептеу, мұндағы х=1,2,3,4,5,6. Бағдарламаның нәтижесiнде х аргументiнiң мәнi мен сәйкес функцияның мәнi кесте түрiнде шығады. Х-тiң өзгеру қадамы 1-ге тең.

 

Program esep1;

var y,x:integer;

begin

x:=1; {х- тiң бастапқы мәнiн меншiктеу}

while x<=6 do {цикл тәуелдi болатын шарт}

begin

y:=sqr(x); {х-тiң мәнi бойынша у-тi есептеу}

writeln (‘x=’,x,’_i_y=’,y); {х және у экранға шығару}

x:=x+1; {х-тiң өзгеру қадамы}

end;

end.

 

WHILE операторында бағдарламалаушы циклдiң өзгеру қадамын өзi тағайындап отырады.

2) 1-ден 50 дейiнгi жұп сандардың қосындысын есептеу қажет болсын. Яғни, S=2+4+6+…+20. Циклдiң өзгеру қадамы 2 болуы керек.

 

Program esep2;

uses crt;

var s,x:integer;

begin

x:=2; s:=0; {х, s бастапқы мәнiн меншiктеу}

while x<=20 do {цикл тәуелдi болатын шарт}

begin

s:=s+x; {х-тiң мәнi бойынша у-тi есептеу}

x:=x+2; {х-тiң өзгеру қадамы 2-ге тең}

end;

writeln (‘s=’,s) { қосындыны экранға шығару}

end.

 

Жеке нұсқалар бойынша тапсырмалар

Кестеде берілген тапсырмаларды WHILE DOоператорларын қолданып бағдарлама құру керек

 

 

4.1- кесте.

 

Орындалатын тапсырмалар нұсқалары

 

Нұсқалар Өрнектер Нұсқалар Өрнектер

Бақылау сұрақтары

1. Цикл денесі деп нені айтамыз?

2. WHILE операторын қандай жағдайда қолдану ыңғайлы?

3. Циклдің өзгеру қадамы деген не?

4. Құрама оператор деген не?

5. Циклдің қандай түрлері бар?

6. Шарт ақиқат болса қандай өзгеріс болады?

7. Шарт жалған болса қандай өзгеріс болады?

8. Цикл денесi екi немесе екiден де көп операторлардан тұрса қалай жазылады?

9. WHILE опреаторының жалпы жазылуын көрсетіңіз.

 

№ 5 - зертханалық жұмыс

 

КЕЛЕСI ШАРТ БОЙЫНША ЦИКЛДІК ҚҰРЫЛЫМДЫ АЛГОРИТМДЕРДІ БАҒДАРЛАМАЛАУ

Жұмыстың мақсаты:алгоритмдердің циклдік құрылымдарын бағдарламалауды үйрену, REPEAT - UNTIL операторларын бағдарламада пайдалануда дағды қалыптастыру

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

 

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

 

Циклдiк процесстердi ұйымдастыруда REPEAT операторы циклдiң қайталану саны белгiлi болғанда қолданылады. REPEAT оператордының жалпы жазылуы:

REPEAT

<циклдiң денесi>;

UNTIL <шарт>;

мұндағы, қызметшi сөздер repeat – қайтала, until – соған дейiн деген мағынада қолданылады. Циклдiң денесi – қайталанып орындалатын бiр немесе бiрнеше операторлардан тұрады. Цикл денесiн құрайтын операторлар санына шектеу қойылмайды. Шартты тексеру логикалық өрнек арқылы жүргiзiледi.

REPEAT операторы алгоритмдiк тiлдегi “дейiн” цикл командасына ұқсас. “Әзiр” цикл командасынан “дейiн” циклiнiң айырмашылығы: қойылған шартқа тәуелсiз бiрiншi цикл денесi орындалады. Содан кейiн, шарт тексерiледi. Демек, шарт ақиқат болмаса цикл денесi кемiнде бiр рет орындалады.

Цикл денесін әрбір қайталау алдында <шарт> тексеріледі. Егер <шарт> TRUE (ақиқат) болған жағдайда <цикл денесі> орындалады және цикл қайталанады. Егер <шарт> алғаш тексерілгенде FALSE (жалған) болса, онда <цикл денесі> біррет те орындалмастан бағдарлама цикл соңына шығады.

REPEAT

<циклдің денесі>

UNTIL <шарт>;

ҚАЙТАЛАУ <циклдің денесі> ДЕЙІН <шарт>;

мұнда <циклдің денесі> ең болмағанда бір рет орындалып, одан кейін <шарт> қойылады, егер мәні FALSE (жалған) болса, онда <цикл денесі> қайталанады, ал кері жағдайда цикл өз жұмысын тоқтатады.

"Кейін" циклының "дейін" циклынан айрмашылығы:

· өрнекті тексеру цикл денесінің соңында орындалғандықтан циклдегі операторлар ең болмаса бір рет орындалады. While циклында өрнектің мәні жалған болса, онда оның денесі бірден өткізіліп жіберіледі.

· Repeat циклы өрнек жалған мәнін қабылдағанша орындала береді.

· Repeat циклында құрамдас оператор емес, жай операторлар тобы пайдаланылуы мүмкін. Бұл циклды пайдаланған кезде While циклындағыдай Begin және Еnd сөздері қолданылмайды.

Жұмысты орындау үлгісі

Келесі алгоритмді іске асыратын бағдарламаны құру керек. Қосындыны есептеуді берілген e = 10-6 дәлдігімен есептеу бағдарламасын құрыңыз. Егер қосындының модулі дәлдіктен кіші болған жағдайда талап етілетін дәлдікке жеттік деп есептеңіз.

 

 

1) Program prsum;

var x, s : real; k : integer;

begin

writeln(‘ x және e енгізу’);

read(x, e);

s:=0; k:=1;

repeat

s:=s+(sqr(x)+1)/(sqr(sqr(k))+k*sqrt(abs(sqr(x)*x+1))+1);

k:=k+1;

until abs(ak) < e;

writeln(‘s = ’, s:7:3)

end.

 

2) Пернетақтадан 100-ге дейінгі сандардың қосындысын табатын бағдарлама құру.

Program esep5;

Uses CRT;

Var N, Sum:byte;

Begin

ClrScr;

S:=0;

repeat

Writeln(‘санды енгіз’);

Readln(N);

s:=s+N;

until s>100;

Writeln(‘қосынды=’, s)

Readln;

End.

Жеке нұсқалар бойынша тапсырмалар

5.1-кесте.

 

REPEAT - UNTIL операторларын қолданып орындалатын тапсырмалар

 

1) 12)
2) 13)
3) 14)
4) 15)
5) 16)
6) 17)
7) 18)
8) 19)
9) 20)
10) 21)
11) 22)
23) 27)
24) 28)
25) 29)
26) 30)

 

Бақылау сұрақтары

1. Цикл денесін құрайтын операторларға шектеу қойыла ма?

2. REPEAT операторын қандай жағдайда қолдану ыңғайлы?

3. Циклдің өзгеру қадамы деген не?

4. REPEAT UNTILоператорларын неліктен жұп оператор деп атайды?

5.Циклдің қандай түрлері бар?

6. Шарт TRUE болса қандай өзгеріс болады?

7. Шарт FALSE болса қандай өзгеріс болады?

№ 6 – зертханалық жұмыс

 

БІР ӨЛШЕМДІ МАССИВТЕРМЕН ЖҰМЫСТЫ ҰЙЫМДАСТЫРУ

Жұмыстың мақсаты:бір өлшемді массивтермен жұмыс істеуде дағды қалыптастыру, массив индекстерін дұрыс қолдана отырып бағдарламалауды үйрену

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

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

ЭЕМ-нiң көмегiмен шешiлетiн есептердiң көбiсi ақпараттың үлкен көлемдерiн өңдеумен байланысты. Есептерді шешу кезінде осындай үлкен көлемдегі бір типтегі мәліметтерді (айнымалыларды) енгізуге және де осы мәліметтермен әртүрлі амалдар орындауға тура келеді. Сондықтан да бір амалды бірнеше рет қайталамас үшін және есептерді шешуді жеңілдету үшін айнымалыларды бір атауға біріктіруге болады.

Алгоритмдік тілде белгілі тәртіп бойынша орналасқан айнымалы шамалардың біріктірілген жиынтығын массив деп атайды. Ал, массивті құрайтын айнымалы шамаларды массивтің элементтері деп атайды. Массивпен жұмыс жасау үшін оның әр элементінің мәні белгілі болуы тиіс. Массивтегі әр элемент номерін элементтің индексі деп атайды. Массивтің аты болады, атты латын алфавитіндегі A-дан Z-ке дейін әріптермен белгілейді. Паскаль тілінде массивтің индексі массив атынан кейін тік жақшаға [ ] алынып жазылады.

Мысалы А(10) нақты сандық бір өлшемді массив, мынадай элементтерден тұрады делік.

-2.1, 0, 1, 10, -3, 6, 1.1, 1.6, -9,5 бұл сандарды өз еркімізше таңдап алдық, бірақ олардың жазылу реті осы түрде берілсе әрқайсысының өз нөмері яғни индексі болады.

А[1] = -2.1

А[6] = 6

А[10] = 5

Массивтің екі түрі бар:

1) бір өлшемді (сызықтық)

2) екі өлшемді (матрица)

Бір өлшемді массивтер

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

Паскаль тілінде массивті сипаттау үшін ARRAY қызметші сөзі қолданылады. Массивтерді жана тип ретінде, типтерді сипаттау бөлімінде төмендегідей етіп сипаттаймыз.

TYPE <массив аты>=ARRAY [1..N] oF <массив элементтерінің аты>;

мұндағы: N- массив элементтерінің жалпы саны бұл бір өлшемді массив болғандағы жағдай. Осыдан кейін массив айнымалылар бөлімінде, яғни VAR бөлімінде сипатталады.

VAR A: ARRAY [1..N] OF REAL;

Төменде массивтерді енгізу және шығару процедуралары көрсетілген.

 

FOR I:=1 TO N DO READ(A[I]);

мұнда N – тұрақты, массив элементтерінің санын білдіреді. (N– бағдарламаның CONST тұрақтылар бөлімінде сипатталады). Массивттерді шығару келесі түрде жүзеге асады:

 

FOR I:=1 TO N DO WRITE(A[I]);

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

Бағдарламаны жібергенде экранда курсор пайда болады. Осы жерде массивтің элементтерін Enter пернесі арқылы енгізіледі. Соңғы элементті енгізгеннен кейін экранға массивтің енгізілген элементтері мен элементтердің қосындысы шығады.

CRT модулінің бірнеше процедуралары мен функциялары бар:

Random – функциясы 0-ден 1-ге дейінгі аралықтағы кездейсоқ сандар.

Randomize – процедурасы кездейсоқ сандар генераторының қорын өзгертеді.

Жұмысты орындау үлгісі

7 элементтен тұратын бір өлшемді В массиві берілген. Осы массивтің элементтерін енгізетін және элементтерінің қосындысын табатын бағдарлама құру. Нәтижесінде экранға массивтің элементтері және элементтерінің қосындысы шығуы керек.

Program prim1;

Var I:integer;

S:real;

B:array[1..7] of real; {массивті сипаттау бөлімі}

Begin

For i:=1 to 7 do

Readln(b[i]); {массивті енгізу}

S:=0;

For i:=1 to 7 do

begin

S:=s+b[i]; {массив элементтерінің қосындысын есептеу}

Writeln(b[i]); {массивті шығару}

End;

Writeln;

Writeln(‘s=’,s); {қосындыны шығару}

Readln;

End.

Жеке нұсқалар бойынша тапсырмалар

 

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

 

1. А(10) бір өлшемді массиві берілген. Бірінші нөлдік элементтің алдындағы оң элементтердің қосындысы мен санын табу керек.

2. А(6) массивінің тақ элементтерінің қосындысын есептеңіз.

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

4. С(12) массивінің ең бірінші теріс элементін табыңыз.

5. А(10) бір өлшемді массиві берілген. Массивтің ең кіші және ең үлкен элементтерінің арасында орналасқан оң элементтерінің қосындысын және санын табу керек.

6. В(10) массиві элементтерінің арифметикалық ортасын есептеңіз.

7. Егерде А(10) бір өлшемді массивінде В массивіне тең элемент болса, онда х айнымалысына реті бойынша осындай 1-ші элементтің алдындағы барлық оң жұп элементтерінің қосындысына тең мәнді меншіктеу керек, әйтпесе х-қа 0-ді меншіктеу керек.

8. Егерде А(10) массивінде соңғы элементтің квадратына тең элемент бар болса, онда осы элементтең кейінгі барлық элементтерді квадраттау керек, егер жоқ болса онда массивті өзгеріссіз шығару керек.

9. А(10) бір өлшемді массиві берілген. Массивтің ең үлкен элементін тауып, одан кейінгі элементтерді кему реті бойынша орналастыру керек.

10. Берілген екі бір өлшемді массив бойынша алғашқысы 1-ші массивтің элементінен соңында 2-ші массивтің элементтерінен тұратын үшінші массивті құру керек.

11. Берілген екі бір өлшемді массивтен максималді саннан тұратын үшінші массивті құру керек.

12. В(20) массивінің 8-ге еселі элементтерінің көбейтіндісін есептеңіз.

13. В(20) және С(30) массив элементтерінен А(50) реттелген массивін құру керек. В(20) және С(30) массивтері алдын-ала реттелген.

14. А(10) бір өлшемді массиві берілген. Жұп позицияда орналасқан теріс элементтер санын және тақ позицияда орналасқан оң элементтердің қосындысын табу керек.

15. А(50) бір өлшемді массиві берілген. Массивтің әрбір 5-ші элементін 5-ші дәрежеге шығару керек.

16. D(15) массивінің оң элементтерін 1-мен, теріс элементтерін 0-мен ауыстырыңыз.

17. А(10) массивінің ең бірінші теріс элементін квадраттаңыз.

18. А(20) массивінің барлық элементтерін 4-ке арттырыңыз.

19. В(15) массивінің барлық элементтерін 5-ке кемітіңіз.

20. А(20) бір өлшемді массиві берілген. Массивтің ең кіші элементін табу керек, осы ең кіші элементке дейінгі орналасқан элементтерді түсу реті бойынша орналастыру керек.

21.А(30) бір өлшемді массиві берілген. Егер массив элементтері арасында қандайда бір М санына тең болатын элемент бар болса, онда Х айнымалысына осы элементке дейін орналасқан ноль емес элементтердің көбейтіндісін меншіктеу керек, кері жағдайда Х айнымалысына 0-ді меншіктеу керек.

22.А(20) бір өлшемді массиві берілген. Массивтің элементтерінің арасында бірінші ноль элементі кездескенге дейінгі элементтердің қосындысы мен оң элементтерінің санын табу керек.

23.А(10) бір өлшемді массиві берілген. Массивтің элементтерінің арасында бірінші ноль элементі кездескеннен кейінгі элементтердің қосындысы мен тақ оң элементтердің санын табу керек.

24.А(20) бір өлшемді массиві берілген. Массив элементтерінің арасында рет-ретімен орналасқан жұп оң элементтерінің ең үлкен санын табу керек.

25. А(20) массивінің 4-ке еселі элементтер санын табыңыз.

26.В(10) массиві элементтерінің геометриялық ортасын есептеңіз.

27.В(15) массивінің ең үлкен және ең кіші элементтерінің реттік номерін табыңыз.

28.С(5) массивінің жұп номерлі элементтерінің қосындысын табыңыз.

29.D(5) массивінің оң элементтерінің ішіндегі ең кішісін табыңыз.

30.D(10) массивінің ең бірінші элементі мен ең соңғы элементінің орындарын ауыстыр.

31.D(20) массивінің 5-ке еселі элементтерінің көбейтіндісін табыңыз.

32.В(10) массивінің жұп элементтерін 2 еселеңіз.

33.С(5) массивінің алғашқы оң элементтеріне кейінгі теріс элементтер санын табыңыз.

34.С(20) массивінің элементтерінің геометриялық ортасын табыңыз.

 

Бақылау сұрақтары

1. Массив дегенiмiз не, массивтiн қандай түрлерi бар?

2. Turbo Pascal бағдарламалау тiлiнде массивтi қалай ұйымдастыруға болады?

3. Бағдарламалауда массивтердi енгізу шығару қалай орындалады?

4 .Массивтердi сипаттаудын қандай ерекшелiктерi бар?

5. Массив типiне қандай типтердi қолдануға болады?

6. Массив элементтерiн қалай енгiзуге болады?

7. Массив элементтерiн қалай баспаға шығаруға болады?

8. Массивке тұрақтыларды қолдануға бола ма?

9. Массивтiн мәндерiнiң өзгеруiн қадам бойынша қалай тексеруге болады?

 

 

№7 - зертханалық жұмыс

ЕКІ ӨЛШЕМДІ МАССИВТЕРМЕН ЖҰМЫСТЫ ҰЙЫМДАСТЫРУ

 

Жұмыстың мақсаты:екі өлшемді массивтермен жұмыс істеуде дағды қалыптастыру, массив индекстерін дұрыс қолдана отырып бағдарламалауды үйрену

Жұмыстың орындалу тәртібі

1. Теориялық мәліметтермен танысу.

2. Жеке нұсқадағы тапсырмаларды орындау.

3. Бақылау сұрақтарына жауап беру.

4. Орындаған жұмыс туралы жазбаша есеп беру.

 

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

Екі өлшемді массивтің бір өлшемді массивтен айырмашылығы айнымалылар қатар және бағана бойынша орналасады. Екі өлшемді массивтерде жол мен бағананың қиылысуында орналасқан әрбір элементтің орны сол жол мен бағана нөмірімен анықталады. Сондықтан екі өлшемді массивті сипаттау үшін екі индекс қолданылады. Екі индекстің арасы үтір арқылы бөлініп жазылады.

Екі өлшемді массивті сипаттаудың жалпы жазылу түрі:

Массивтің аты: аrray[1..n,1..m] of массив элементтерінің типі; Мұндағы, n - массивтің қатар саны, m - массивтің бағана саны. Екi өлшемдi массивтi VARбөлiмiнде сипаттаудың жалпы түрi:

VAR массив атауы : ARRAY [а1..аn,b1..bn] OF элемент типі;

Екi өлшемдi массивтi TYPE бөлiмiнде сипаттаудың жалпы түрi:

TYPE массив типінің атауы = ARRAY [а1..аn, b1..bn] OF элемент типі;

Массивтің айнымалылар бөлімінде сипатталуын келесі түрде жазылады:

VAR массив атауы : массив типінің атауы;

мұндағы, а1..аn, b1..bn – екi өлшемдi массивтiн көлемi, а1 және аn – массив қатарының алғашқы және соңғы мәнi, b1 және bn – массив бағанының алғашқы және соңғы мәнi. Екі өлшемді массивтерді енгізу және шығару төмендегідей орындалады. A[N,N] массивін енгізу, мұнда N- тұрақты деп қарастырайық.

for i:=1 to n do

for j:=1 to n do

read (a[i,j]);

{ a[n,n] массивін шығару }

for i:=1 to n do

Begin

for j:=1 to n do

write (a[i,j]:4);

writeln;

end.

Жұмысты орындау үлгісі

1) A(2,3) массиві берілген. Осы массивтің элементтерін енгізетін және теріс элементтерін 1-ге айналдыратын бағдарлама құру. Нәтижесінде экранға нәтижеге шыққан массив шығуы керек.

 

Program prim1;

Var i,j:integer;

A:array[1..2,1..3] of real;

Begin

for i:=1 to 2 do

begin

for j:=1 to 3 do

Readln(a[i,j]);

end;

for i:=1 to 2 do

begin

for j:=1 to 3 do

begin

If a[i,j]<0 Then a[i,j]:=1;

Writeln(a[i,j]);

end;

end;

Readln;

End.

Мұндағы, i-сыртқы цикл, j-ішкі цикл болып саналады. for i:=1 to 2 do, for j:=1 to 3 do операторларынан кейін операторлық жақшаны ашылу себебі, бұл оператордан кейінгі орындалатын амалдар сыртқы циклға бағынышты (осы циклдың ішінде орындалады). Егер де циклдық оператордан кейін бірнеше амалдар орындалса, онда ол амалдар операторлық жақшаларға алынып жазылады және олар циклдың денесі болып табылады.

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

 

 

7.1-сурет. Элементтерді енгізу

 

 

7.2-сурет. Бағдарлама нәтижесі

 

Элементтерді енгізуге түсініктеме жазу үшін:

For i:=1 to 2 do

begin

For j:=1 to 3 do

Begin

write („massiv elem-n engiz=‟)

Readln(a[i,j]);

end;

end;

 

7.3-сурет. Элементтерді енгізу

 

 

7.4-сурет. Бағдарлама нәтижесі

 

2) Квадрат массив берілген (қатар және бағана саны тең). Осы массивтің әрбір бағанасында орналасқан элементтерінің қосындысын табатын және осы қосындыны К бір өлшемді массивінің элементтері ретінде алатын бағдарлама құру. Нәтижесінде, берілген массив элементтері қатар және бағана бойынша орналасып шығуы және К массиві шығуы керек.

 

Program prim2;

Var i,j:integer;

S:real;

d:array[1..3,1..3] of real;

k:array[1..3] of real;

Begin

For i:=1 to 3 do

begin

For j:=1 to 3 do

Readln(d[i,j]);

end;

For j:=1 to 3 do

Begin

S:=0;

For i:=



<== предыдущая лекция | следующая лекция ==>
Тема заняття: _______________________________________________________________ | FILEOUT:FILE OF INTEGER


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.076 сек.