ПРОГРАММАЛАРДЫ ӨҢДЕУ ЖӘНЕ ТЕСТІЛЕУ ӘДІСТЕРІ

Берілген өрнектің мәніне тәуелді бір немесе бірнеше оператор орындалатын жағдайда таңдау операторы пайдаланылады. Таңдау операторы алгоритмдік тілдегі таңдау командасына ұқсағанымен бірге, аз өзгешелігі бар. Алгоритмдік тілде таңдау шарт бойынша орындалса, Паскаль тілінде тұрақтылар бойынша іске асырылады. Жазылу түрі: Таңдау CASE өрнек ОF CASE -жағдай жағдай 1-шарт: 1-серия 1-тұрақты: 1-оператор; OF -солар, жағдай 2-шарт: 2-серия 2-тұрақты: 2-оператор; төмендегілер. жағдай n-шарт: n-серия n-тұрақты: n-оператор бітті END. Таңдау операторы былай орындалады: өрнектің мәні берілген тұрақтының қайсысына тең болса, оған сәйкес оператор орындалады да, басқару таңдау операторының соңындағы операторға беріледі. Егер өрнектің мәні тұрақтылардың ешқайсысымен тең болмаса да, басқару таңдау операторынан кейінгі операторға беріледі. Өрнектің мәні және тұрақтылар әрқашанда бүтін сан, тұрақты типі мен өрнек типі бірдей болу керек. [1] Мысалы: CASE K+1 ОҒ 5: у:=sqr(x); 11: у:=sqrt(x); 4: z:=у*(а-b); 7: write(а,b) END. Мысал: Апта күндерінің нөмірі бойынша аттарын анықтауға программа құрыңдар. (*——————-! апта күндері !————————*) Ргоgram АРТА (input, output); Vаr N: ; (*аптадағы күн нөмірі*) Веgіn Writeln (‘күн нөмірін енгіз:’); Read(n) Case n of 1:WRITELN(‘дүйсенбі’); 2:WRITELN(‘сейсенбі’); 3:WRITELN(‘сәрсенбі’); 4:WRITELN(‘бейсенбі’); 5:WRITELN(‘жұма’); 6:WRITELN(‘сенбі’); 7:WRITELN (‘жексенбі’) END Экранда: күн нөмірін енгіз: 5 жұма 114 Мысал. Кез келген жыл мерзімін енгізіп, сол жылдың шығыс календары (қазақша жыл санау) бойынша қай жануардың атына сәйкес келетінін анықтайтын программа құрайық. [2] Program jil Vаг g : іnteger; Begin Write (‘жыл мөлшерін енгіз:’) Read1n(g); Write(g:4,’жыл’); CASE n (g mod 12) OF 0:WRITE (‘мешін’); 1:WRITE(‘тауық’); 2:WRITE(‘ит’); 3:WRITE(‘доңыз’); 4:WRITE(‘тышқан’); 5:WRITE(‘сиыр’); 6:WRITE(‘барыс’); 7:WRITE(‘қоян’); 8:WTRITE(ұлу’); 9:WRITE(‘жылан’); 10:WRITE(‘жылқы’); 11:WRITE(‘қой’); END; WRITELN(‘жыл болды’); ЦИКЛДІК АЛГОРИТМДЕР Есептерді шешу барысында біртипті әрекеттерді көп рет қайталау қажеттілігі жиі кездеседі. Бұл әрекеттерді анықтайтын параметрлердің мәндері әртүрлі болады. Осындай әрекеттерді жүзеге асыратын алгоритмдер циклдік, ал әрекеттердің көп рет қайталанатын бірізділігі (циклдің денесі) циклдер деп аталады. Циклдерді пайдалану ықшам программалар көмегімен есептеулердің үлкен көлемдерін орындауға мүмкіндік береді. Алдын-ала берілген және белгісіз сандар қайталауларымен циклдер ажыратылады. Қайталану саны белгісіз циклдер Циклді қанша рет қайталау керек екені алдын-ала белгісіз болады, бірақ бір шарт орынды болып тұрғанда ол орындалуға тиіс. [3] 1- мысал.1,2,3,…,15 сандар квадраттарының кестесін құру. Шешуі: Егер Х цикл айнымалысының басқарушысын (параметрді) алғашқы мәнінен — 1-ден ақырғы мәніне — 15-ке дейін, формуласын пайдаланып қадаммен (2) өзгертіп отырса, сандар квадраттары кестесін құруға болады. Кестенің бірінші жолын құру үшін мынандай әрекеттерді орындау қажет: 1. Х-ке алғашқы мән беру: Х:=1 2. Y-ті анықтау: 3. Пайда болған нәтижені шығару. Алгоритмнің одан арғы құрылуы үшін қайталанатын әрекеттерді ерекшелеу және егер сондай әрекеттер бар болса, оларды орындау үшін цикл ұйымдастыру қажет. Берілген есепте қайталанатын әрекеттерге мыналар жатады: 1. Формуласы бойынша есептеу . 2. Нәтижені шығару. 3. Параметрдің келесі мәнін анықтау. Егер алғашқы мәні X=1 болса, Х-тің алғашқы мәнін қадам шамасына өзгерте отырып, Х-тің келесі мәндерін меншіктеу командасы арқылы алуға болады:X:=X+2 115 Бұл цикл ақырсыз деп аталады және елеулі кемшілігі бар — ол аяқтала алмайды, өйткені циклдің аяқталу шарты берілмеген. ЭЕМ-де алгоритм орындаудағы мұндай қате циклдің аяқталмай қалуы деп аталады. Егер Х 15-тен үлкейіп кетсе, циклді аяқтау керек, Х-15 болса — цикл орындалуы керек. Алгоритмнің блок-схемасы суретте көрсетілген: Осылайша циклдің дұрыс ұйымдастырылуы үшін мыналар қажет: 1. Параметрдің алғашқы мәнін беру. Циклдің аяқталу шартын тексеру. 2. Циклдің жаңадан қайталануы алдында параметрді өзгерту. Алгоритмдік тіл: алг квадраттар кестесі (нәт.бүтін) басы бүтін Х X:=1 әзірше 15 цб шығару X,Y X:=X+2 цс соңы Программа: REM квадраттар кестесі DIM X,Y AS INTEGER X=1 DO WHILE 15 Y=X^2 PRINT X,Y X=X+2 LOOP Қызмет етуші сөздер арасында — цб (цикл басы) және цс (цикл соңы) — көрсетілген командалар сериясы (цикл денесі) берілген шарт сақталмай қанша рет орындалуы қажет болса, сонша рет орындалады. Егер шарт басынан бастап орындалмаса, серия бір ретте орындалмайды. Циклдік алгоритмдер бойынша Бейсик тілінде программалар құрастыру өте жауапты жұмыс, өйткені цикл ұйымдастыру ережелерінің біреуі бұзылуы түсінуге де, жөндеуге де болмайтын шатасып біткен программалардың пайда болуына әкеледі. Көбіне мұндай программлардың логикалық қателері болады. Ең жиі кездесетін қателер: 1. Циклдің аяқталуын тексеру шарты жоқ. Айтып кеткеніміздей, бұл циклдің аяқталмай қалуына әкеледі. 2. Циклдің жаңадан қайталануы алдында параметрді өзгертетін команда жоқ. Бұл жағдай да циклдің аяқталмай қалуына әкеледі, бірақ алдыңғы қатеден өзгешелігі — квадраттар кестесі шексіз басыла беретіндігінде, бұл жағдайда кестеде тек X=1 ғана Y-тің мәндерінің есептеулері болады. 3. Параметрдің алғашқы мәнін (Х =1) қоятын команда қалып кеткен. Келесі жолды орындағанда, Х-ке мән берілмегендіктен, ЭЕМ Х айнымалысына нөл жазады, яғни X=0 командасын орындайды. ЭЕМ экранында қате нәтиже — 0,2,4,…14 сандар квадраттарының кестесі пайда болады. [4] 2-мысал. 1,3,5,…,15 сандар квадраттарының көбейтіндісін анықтайтын программаны Бейсик тілінде құрастырыңыз. Қайталану саны белгілі циклдер Параметрлі қайталау командасы циклдік құрылымның алгоритмдерін көрнекілеу жазуға мүмкіндік береді. Іске асыру пішіндері: 116 Цикл параметрі — Х айнымалысы, ол жүйелі түрде Х қадамына сәйкес мәнін өзгертіп отырады. Параметрлі қайталау командасының орындалу механизмі қайталау командасына ұқсайды (әзірше циклі). Параметрлі қайталау командасын (үшін циклінің) қайталау командасының орнына пайдалану алгоритм жазуын оңайлатуға мүмкіндік береді. [5] 3-мысал. 1,3,5…15 сандар квадраттары кестесін құру. Шешуі: Параметрінің алғашқы мәні Хбасы =1 Хсоңы =15 ақырғы мәні, қадам мәні Хқад=2. алг квадраттар кестесі (нәт,бүтін) басы бүтін Х Х үшін 1-ден 15 қадамға дейін цб Y:=X2 ; шығару Х,У цс соңы REM Квадраттар кестесі DIM X,Y AS INTEGER FOR X=1 TO 15 STEP 2 Y=X^2: X,Y NEXT X END Алдымен FOR операторы параметрдің алғашқы, ақырғы мәндерін және қадамын белгілейді. Содан кейін параметрдің көрсетілген алғашқы мәні үшін цикл денесі орындалады. Әрі қарай NEXT алдымен параметрді қадам шамасына өзгертіп, цикл аяқталу шартын тексереді. Егер параметрдің ағымдағы мәні ақырғы мәнінен басым болмаса, онда NEXT есептеу процесін FOR операторлық жолға, кері жағдайда — NEXT операторынан кейінгі жолға аударады. Қайталау саны белгісіз циклден өзгешелігі — бұл циклде тек қадам шамасына ғана өзгере алады, яғни Х=Х+Хқад. 4-мысал: 1,3,5,…,15 сандар квадраттарының қосындысын есептейтін алгоритм және программа құрастыру. Шешуі: Алг квадраттар қосындысы (нәт,бүтін S ) Басы бүтін Х,У S:=0 Х үшін 1-ден бастап 15-ке дейінгі қад Цб Y:=X2 S:=S+Y Цс Шығару S Соңы. REM квадраттар қосындысы DIM S,Y,X AS INTEGER S=0 FOR X=1 TO 15 STEP 2 Y=X^2 S=S+Y NEXT X PRINT «S=»;S END.

Читайте также:  ФИЗИКАЛЫҚ­ ГЕОГРАФИЯЛЫҚ ФАКТОРЛАР

Оставить комментарий