Файл қосу
Цикл операторлары
|ҚАЗАҚСТАН РЕСПУБЛИКАСЫНЫҢ БІЛІМ ЖӘНЕ ҒЫЛЫМ МИНИСТРЛІГІ | |СЕМЕЙ ҚАЛАСЫНЫҢ ШӘКӘРІМ АТЫНДАҒЫ МЕМЛЕКЕТТІК УНИВЕРСИТЕТІ | |3 деңгейлі СМК құжаты |ОӘК |ПОӘК | | | |042-18-12.1.5/03-2013 | |"Алгоритмдер, деректер құрылымы |Баспа №1 | | |және программалау" пәнінің |18.09.2013ж | | |Оқу жұмыс программасы | | | "Алгоритмдер, деректер құрылымы және программалау" Пәнінің оқу-әдістемелік кешені 5В070300 - «Ақпараттық жүйелер» мамандығының студенттеріне арналған ОҚУ - ӘДІСТЕМЕЛІК МАТЕРИАЛДАР Семей 2013 Мазмұны | |Глоссарий | | |Дәрістер | | |Тәжірибелік және зертханалық сабақтар | | |Студенттің өздік жұмысы | 1. глоссарий Осы ОӘМ келесі терминдер қолданылған: Алгоритм – арнайы іс-әрекеттің белгілі бір кезекпен орналасқан тәртібі. Ол алгоритмді атқарушы ЭЕМ-ге жұмыс тәртібін түсіндіретін ережелер мен нұсқаулар тізбегінен тұрады. Сонымен, алға қойылған мақсатқа жету үшін немесе берілген есепті шешу барысында орындаушыға біртіндеп қандай әрекеттер жасау керектігін түсінікті әрі дәл көрсететін нұсқау алгоритм деп аталады Цикл қайталап орындалатын есептеу процесінің белгілі бір бөліктерін атайды Қызметші сөз деп – Паскаль тілінде белгілі бір міндет атқаратын сөзді айтамыз. Қызметші сөздер program, var, begin, end болады. Атау – қандай да бір объектіні белгілеу үшін қолданады. Паскаль тілінде атаудың екі түрі бар, олар: стандартты және ЭЕМ-ді қолданушы енгізетін атау. Стандартты атау – ол стандартты объектілерді белгілеу үшін тілдің өзіне бекітілген атау болады. Стандартты атауларға input, output атаулары да жатады. Тілдің символы дегеніміз – кез келген мәтінді құруда қолданылатын элементар таңбалар. Осындай символдар жиынтығы тілдің алфавиті деп аталады. Идентификатор – міндетті түрде әріптен басталатын сандар мен әріптердің тізбегі. Массив дегеніміз – бір атаумен белгіленіп бір өлшеммен өлшенетін айнымалылардың реттелген тізбегі. Массив элементтерінің барлығы да бір типте болуы тиіс. Тұрақты деп программаның орындалу барысында мәндері өзгеріссіз қалатын шамаларды айтады. Өрнек деп арифметикалық амалдардың таңбаларымен біріктірілген айнымалылардың, функциялардың, тұрақтылардың жиынын айтады. Бүтін типтегі мәндер. Мәндердің барлық типтерін жай және күрделі деп екіге бөлуге болады. Жай типтер дегеніміз – мәндерінің стандартты және айнымалы типтері. Стандартты мәндер типтеріне жататындар: бүтін integer, нақты real, логикалық boolean, символдық char. Күрделі тип – бұл жай типтердің әр түрлі комбинацияларынан құралады. Бүтін типтегі тұрақты дегеніміз – нүктесіз жазылған кез келген ондық сан. Бүтін тұрақты санды нақты түрле береді. Өзінің мәні ретінде бүтін типтегі тұрақтыны қабылдайтын айнымалы да бүтін типке жатады. 2. Дәрістер Дәрістік сабақтардың тезисі 1 апта Тақырып 1. Алгоритмдер Дәріс жоспары 1. Алгоритм ұғымы және оның негізгі қасиеттері. 2. Алгоритмді жазу тәсілдері және құралдары. 3. Есептеу процесінің негізгі типтері: сызықтық, тармақталу, циклдық. 4. Есептерді ЭЕМ – де шығару және дайындау этаптары. Дәрістің қысқаша тезисі І. Алгоритмдер, алгоритмнің негізгі құрамы Сабақ мақсаты Білімділік □ Студенттерге алгоритм жайлы жалпы мағлұмат беру арқылы оның мүмкіншіліктерін атап өту. □ Алгоритмдерді жазу әдістерін үйрету. □ Алгоритмдердің сызықтық, тармақталған және циклдік құрылымын атап өту. Дамытушылық □ Студенттердің алгоритм құра алатынын қадағалау және өздігінен тапсырмаларды орындауы □ Ақпаратты өңдеудің әрбір сатысын блок-схема арқылы өрнектеу, сонымен қатар алгоритмдерді бейнелеу блоктарын білу. □ Студенттердің қабілетін дамыту. Алгоритм – арнайы іс-әрекеттің белгілі бір кезекпен орналасқан тәртібі. Ол алгоритмді атқарушы ЭЕМ-ге жұмыс тәртібін түсіндіретін ережелер мен нұсқаулар тізбегінен тұрады. Сонымен, алға қойылған мақсатқа жету үшін немесе берілген есепті шешу барысында орындаушыға біртіндеп қандай әрекеттер жасау керектігін түсінікті әрі дәл көрсететін нұсқау алгоритм деп аталады. Алгоритмнің орындалу кезінде оны орындаушыға келесі жолы қандай нұсқау бойынша орындалатыны белгілі болуы қажет. Ал орындаушының жүзеге асыра алатын командалар жиыны – командалар жүйесін құрайды. Алгоритмді машинаға енгізу үшін оны белгілі бір заңдылықпен текст түрінде жазып, ЭЕМ-нің жадына кіргізу қажет. Алгоритм мен программаға байланысты ЭЕМ-нің мынадай жұмыс ерекшеліктері болады: 1) есепті шығару жолы алгоритм түрінде өрнектелуі қажет; 2) алгоритм программаға айналдырылуы тиіс; 3) программа машина жадына енгізіліп, ретімен орындалуы керек. Сонымен керекті нәтижені алу жолында ақпаратқа қолданылатын әрекеттердің орындалу ретін анықтайтын нұсқау – алгоритм болып есептеледі. Алгоритм информатика мен есептеу техникасының іргелі ұғымдарының бірі. Квадрат теңдеудің түбірін табу ережесі, үшбұрыштың ауданын есептеу жолдары алгоритмдердің мысалдары болып табылады. Сонымен, алгоритм есептерді шығару тәсілі, яғни белгілі бір нәтижеге жету үшін қолданылатын амалдардың реттелген жиыны. Алгоритмдерді ЭЕМ-де орындау үшін оларды алдын ала жазып алу керек, яғни ол белгілі бір заңдылықпен өрнектелуі тиіс. Жалпы алгоритмді өрнектеу түрлеріне: 1) табиғи тіл арқылы жазу; 2) белгілі бір терминдер – псевдокодтар арқылы жазу; 3) графика жолымен жазу; 4) алгоритмдік тілдермен ажуз жолдарын жатқызуға болады. ЭЕМ-де есеп шығару күрделі процесс болып есептеледі, ол төменгі кезеңдерден тұрады: 1. Берілген есепті математикалық түрде өрнектеу, яғни есепті мәселе ретінде қоя білу. 2. Есепті шығарудың ЭЕМ-ге ыңғайлы сандық тәсілдерін анықтау. 3. Есепті шығару жолын алгоритм түрінде бейнелеу. 4. Есепті ЭЕМ-де шығару программасын жасау және оның қателерін түзету. 5. Есепке керекті мәліметтер дайындау. 6. ЭЕМ-де есепті шығару және шыққан нәтижені іс жүзінде қолдану. ЭЕМ бір қарапайым не логикалық операцияны ғана орындай алатын етіп құрылғандықтан ақпаратты өңдеу үшін машинаға берілетін командалар (бұйрықтар) берілетін нұсқаулар тізбегінен тұруы тиіс. Мысалы: a=10.3, b=5.4 және h=6 мәндерін пайдаланып, ЭЕМ-де трапеция ауданын есептеу керек болсын (a, b – табандары, h – биіктігі). Мұндағы өңделетін ақпарат үлгісі – трапеция ауданы. Өңдеу алгоритмі: оны есептеу формуласы – B=(a+b)*h/2. Алгоритмдік тілді пайдаланатын символдар: * - көбейту таңбасы, / - бөлу таңбасы, ** - не “ – дәрежелеу таңбасы, := - меншіктеу белгісі, . – нүкте. Бұл нақты санның бөлшек бөлігін бүтін бөлігінен ажырату үшін пайдаланылады. Осы формула бойынша трапецияның ауданын есептеуге арналған қарапайым нұсқаулар тізбегін мынандай түрде жазуға болады: 1. 10.3-ті а деп, 5.4-ті b деп, 6-ны h деп белгілеу (a:=10.3; b:=5.4; h:=6); 2. a-ны b-ға қосып, r1 деп белгілеу (r1:=a+b); 3. r1-ді h-қа көбейтіп, r2 деп белгілеу (r2:=r1*h); 4. r2-ні 2-ге бөліп, B деп белгілеу (B:=r2/2). Осы сияқты жеке қадамдардан тұратын нұсқаулар тізбегі алгоритм деп аталатыны орта оқу орындарының информатика пәнінен белгілі. Жалпы алға қойылған мақсатқа жету үшін немесе берілген есепті шешу бағытында арнайы ережелер бойынша орындаушыға (адамға, не компьютерге) жинақты түрде берілген нұсқаулар тізбегі алгоритм деп аталады. Құрылған алгоритмде 3 түрлі берілгендер кездеседі: 1. бастапқы берілгендер (10.3, 5.4, 6) 2. аралық берілгендер. Жоғары алгоритмдерде олар 2-ші және 3-ші нұсқауларды орындаудан соң шыққан нәтижелер. 3. ол – 4-ші (қорытынды) нұсқауды орындаудан шыққан мән. Жалпы, берілгендер - информатикадағы негізгі ұғымдардың бірі. Өңдеу үшін дайындалып, ЭЕМ-ге ендірілетін, машинада кодталған түрде пайда болған және шығарылатын ақпараттардың бәрі де берілгендер деп аталады. ІІ. Алгоритмдерді жазу әдістері Алгоритмдерді өрнектеудің көп тараған түрі – оны график арқылы бейнелеу. Графикалық жолмен алгоритмдерді жазу үшін мемлкеттік стандарт белгіленген, онда кез келген амал белгілі бір геометриялық фигурамен өрнектеледі. Ол фигуралар немесе блоктар амалдар символы деп те аталады. Жиі қолданылатын амалдар, яғни мәліметтерді ЭЕМ-ге енгізу, формуламен есептеу, шарттардың орындалуын тексеру, нәтижені қағазға басу символдары 1.1-суретте көрсетілген. Осы суреттегі көрсетілген блоктардан алгоритм схемалары құрастырылады. Кейде алгоритмдер схемасын оның блок-схемасы деп те атайды. |Іс әрекеттің аты |Блоктың пішімі |Оның атқаратын жұмысы | |Процесс | |Математикалық өрнектерді | | | |есептеу | | | | | |Таңдау |жоқ |Есеп шығару жолын таңдау | | |иә | | | | | | |Модификация | |Цикл (қайталау) басы | | | | | | | | | |Құжат | |Нәтижені шығару, қағазға | | | |басып алу | | | | | |Енгізу, шығару | |Мәліметтерді енгізу (шығару) | | | | | | | | | |Бастау, аяқтау | |Алгоритмдерді бастау, аяқтау | | | | | | | | | |Қосалқы программа | |Қосалқы программаларға кіру | | | |және шығу | | | | | |Түсініктеме | |Схеманы, формулаларды | | | |түсіндіру | 1.1-сурет Сонымен алгоритм блоктармен немесе геометриялық көпбұрыштармен өрнектеледі. Әр блоктың ішінде орындалатын іс-әрекеттің мазмұны жазылады. Символдардың бір кіру және шығу сызықтары болуға тиіс. Мысалы, у=a+b формуласы бойынша есептеу тіктөртбұрыш арқылы кескінделетін есептеу блогы (3-блок) арқылы өрнектеледі. Ал нәтижені қағазға басу үшін көпбұрышты құжат алу блогын (4-блок) пайдаланып, оның ішіне нәтиженің атауларын жазамыз. Жоғарыда көрсетілген у=a+b формуласымен есептеу үшін a және b-ның сандық мәндерін ЭЕМ-ге енгізіп (2-блок), содан кейін қосу амалын орындап, ақарында у-ті қағазға басып шығарып, жұмысты тоқтататыз. Осы алгоритмнің схемасы 1.2- суретте көрсетілген. 1.2-сурет Мысал: Сызықтық теңдеуді шешу алгоритмінің блок-схемасын құрайық. иә жоқ иә жоқ ІІІ. Есептеу әдістерінің негізгі түрлері: сызықтық Алгоритмдер блоктардың өзара байланысуына қарай үш түрлі бірыңғай құрылымға – сызықтық, тармақтық және циклдік болып үш топқа бөлінеді. Сызықтық құрылым. Қарапайым алгоритмдік құрылым операцияның сызықтық жүру реті болып табылады. Мұндай алгоритмдік құрылымның программалық жүзеге асуын сызықтық программа деп атайық. Сызықтық алгоритм және сызықтық программа қарапайым есептерді шешуге арналған. Онда бірнеше мүмкін альтернативалардың ішінен таңдауы және қандай да бір операциялардың циклдік қайталануы қарастырылмаған. Сызықтық құрылымды алгоритм немесе қарапайым сызықтық алгоритм іс- әрекеттердің орындалу ретіне қарай тізбектеле орналасқан блоктардан тұрады. Амалдардың бұлай бірінен соң бірі реттеліп орындалу тәртібін табиғи атқарылу дейді. Мысалы: Төменде көрсетілген Z функциясының сандық мәнін есептеп шығару алгоритмін жасау керек болсын Z=ax2+b+cos(ax2+b)- (ax2+b). Бұл функцияның мәнін табу үшін алдымен жақшада тұрған (ax2+b) көпмүшелігін жеке есептеп алу қажет, себебі ол тізбек үш рет есептеліп оған машина уақытты көп кетіреді. Сонымен, қарастырылған алгоритм қарапайым сызықтық алгоритмнің (1.3-сурет) мысалы болып табылады. Мұндағы 2-блок – a, b, x мәндерін пернелерден программаға енгізу блогы, 3- блок t-ның, ал 4-блок Z функциясының мәндерін есептейді. 5-блок x айнымалысының және Z функциясының нәтижесін қағазға басып шығарады. 1.3-сурет IV. Есептеу әдістерінің негізгі түрлері: тармақталған Тармақталу алгоритмінің құрылымы қарапайым болып келеді. Мұнда арифметикалық теңсіздік (теңдік) түрінде берілген логикалық шарт тексеріледі. Егер ол орындалса, онда алгоритм бір жолмен, ал орындалмаса екінші жолмен жүзеге асырылады, яғни есепті шығару жолы тармақталып екіге бөлініп кетеді. Тармақталу алгоритмдеріне шартты тексеру блогы міндетті түрде кіреді. Паскаль тілінде тармақталудың негізгі алгоритмдік құрылымының жүзеге асыратын екі операторы бар. Олар шартты оператор және таңдау операторы. Шартты оператор «Иә» немесе «Жоқ» деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Егер оның нәтижесі ақиқат, яғни құптарлық болса, онда бір программалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда, программаның басқа бір тармағы жүзеге асырылады. Таңдау операторы (case) бірнеше операторлардың ішінен таңдау жолымен көп тарамды тармақталуды ұйымдастырады. Тармақталу берілген шартты тексеруден басталады, шарт мәндері таңдап алынған типтердің бірі болатын бүтін, символдық, логикалық өрнек түрінде жазылады. Бұл өрнек оператор орындалар кезде белгілі бір мәнге ие болуы тиіс. Сол мән оған байланысты орындалатын оператордың белгісі рөлін атқарады. Егер өрнектің есептелген мәні көрсетілген мәннің біріне сәйкес келсе, сол қатардағы оператор орындалады. 1-мысал. У функциясын төмендегі формула бойынша есептеп шығару керек. y=(x +x, егер х(0 (x2+1, егер х >0 жоқ иә 1.4-сурет Мұнда х айнымалысының таңбасына (оң, теріс) байланысты не жоғары, не төменгі формуланы таңдап алып, сол арқылы у функциясының мәнін табамыз. 2- блоктың орындалу барысында х айнымалысына белгілі бір мән беріледі де, ол мән енгізу операторлары арқылы программаға енгізілуі тиіс. Бұдан кейін енгізілген мәннің оң немесе теріс екендігі үшінші шартты тексеру блогы арқылы айқындалады. Шарттың «ақиқат» (иә) немесе «жалған» (жоқ) болуына байланысты тек 4- немесе 5-блоктардың бірі ғана орындалып, «таңдау» жүзеге асырылады. 6-блок енгізілген х айнымалысының және у функциясының сандық мәндерін экранға немесе қағазға басып шығарады. 2-мысал. ax2+bx+c=0 квадрат теңдеуін шешу алгоритмін қарастырайық. Мұнда егер дискриминант оң сан болса, онда теңдеудің нақты түбірлерін (х1, х2) табамыз. Ал, егер дискриминант теріс сан болса, онда теңдеудің комплекс түбірлерін х1,2=((i( бөлек тармақ арқылы есептеп шығарып, ( және ( сандарын қағазға, не экранға басып алуымыз қажет. Сонымен, алгоритмді құру жолын математикалық түрде төмендегіше жазуға болады: x1, 2=(-b((b2-4ac)/(2a), егер b2-4ac(0, (=-b/(2a); (=((4ac-b2)/(2a), егер b2-4ac<0. жоқ иә 1.5-сурет Бұл алгоритмде негізгі тексерілетін шарт – дискриминанттың таңбасы. Енді осы квадрат теңдеуді шешу алгоритмін схема түрінде өрнектейік (1.5-сурет). 3-мысал. Берілген а, в , с сандарының ең кішісін табу қажет болсын V. Есептеу әдістерінің негізгі түрлері: циклдік Алгоритмдік құрылымның ең маңыздысының бірі цикл болып табылады. Цикл операторлардың қайталануын көрсетеді. Мәліметтерді өңдеумен немесе есептеумен байланысты программада циклді қайталанатын іс-әрекеттерді жиі орындауға тура келеді. Математикада, экономикада көптеген есептерді шығару кезеңінде бір теңдеуді пайдаланып, ондағы айнымалының өзгеруіне байланысты оны бірнеше рет қайталап есептеуге тура келетін сәттер де жиі кездеседі. Осындай қайталап орындалатын есептеу процесінің белгілі бір бөліктерін цикл деп атайды. Осы бірнеше рет қайталанатын бөлігі бар алгоритмдер тобы циклдік алгоритмдерге жатады. Циклдер қайталану санының алдын ала белгілі және белгісіз болуына байланысты екі топқа бөлінеді. Қайталану сандары алдын ала белгілі болып келетін циклдер тобы арифметикалық цикл болып есептеледі, ал орындалу саны белгісіз циклдер – қадамдық (итерациялық) цикл болып аталады. Практикада белгілі бір айнымалының сандық мәніне байланысты орындалатын арифметикалық циклдер жиі кездеседі. Мұнда арифметикалық прогрессияға ұқсас болып келетін циклдер ең қарапайым арифметикалық цикл болып табылады. Оны басқару қайталану кезеңінде прогрессияның заңына сәйкес тұрақты шамаға өзгеріп отырған цикл параметрінің сандық мәнімен байланысты болуы тиіс. Мысалы: х өзінің ең алғашқы х0 мәнімен ең соңғы хk мәніне дейін тұрақты шамаға (dx) өзгеріп отырады. Осының нәтижесінде х мынадай мәндерді қабылдайды: х0, х0+ dx, х0+2dx, … , х0+(n+1)dx, xk, мұндағы n – циклдің қайталану саны, ол былай анықталады: иә 1.7-сурет жоқ 1.6-сурет Арифметикалық цикл үшін y=f(x) функциясының есептелу жолы алгоритм ретінде 1.6-суретте көрсетілген. Мұндағы 3-ші, 6-шы, 7-блоктар циклді ұйымдастыру үшін қажет. Олар цикл параметрінің алғашқы мәнін, өзгеру қадамын белгілеп және оның ең соңғы мәніне жеткен-жетпегенін тексереді. Ал 4- және 5-блоктар бірнеше рет қайталанып циклдің өзін құрайды. 7-блок шартты тексеру жолымен қайталану процесін ұйымдастырады. Алгоритм схемасын салуды және программаны жазуды жеңілдету үшін цикл алгоритмдері ықшамдалған түрде «модификатор» немесе «цикл басы» блогын пайдалану арқылы жазылады. Онда 1.7-суретте көрсетілген 3-ші, 6-шы, 7- блоктардың орнына «цикл басы» блогы орналасады. Ол алтыбұрыш тәрізді геометриялық фигурадан тұрады және оның міндетті түрде екі кіру және шығу сызығы болуға тиіс. Осы блокты пайдалану арқылы жоғарыда келтірілген 1.7- суретте көрсетілген түрде кескінделеді. Параметрдің алғашқы мәні оның қадамы dx оң сан болады. Керісінше, параметрдің алғашқы мәні оның соңғы мәнімен артық болса, онда қадам теріс сан болады. иә жоқ 1.8-сурет Қадамдық циклдер. Алгоритмдік құрылымның ең маңыздысының бірі цикл болып табылады. Цикл операторлардың қайталануын көрсетеді. Мәліметтерді өңдеумен немесе есептеумен байланысты программада циклді қайталанатын іс- әрекеттерді жиі орындауға тура келеді. Циклді орындаудың алдында, оның қайталану саны белгісіз болған жағдайда қадамдық циклдер пайдаланылады. Мұнда циклді жазу үшін тек қана «шартты тексеру» блогын қолдану қажет, ол циклді аяқтау үшін белгілі бір шартты тексереді. Қадамдық циклдердің схемасын сызғанда модификаторды (алтыбұрышты) қолдана алмаймыз, себебі алдын ала циклдің неше рет қайталанатыны, бізге белгісіз. 3-мысал. Z=xk/k2 функциясының мәндерін k=1, 2, 3, … және Z 0.0001-ден артық болған жағдайда есептейік, мұндағы 0(х(1. Бұл мысалда алдын ала цикл неше рет қайталанатынын айта алмаймыз, өйткені бізде тек k параметрінің алғашқы мәні мен қадамы ғана белгілі. Сонымен қатар Z функциясының 0.0001-ден артық болуы циклді қайталау шарты болып есептеледі. 1.8-суретте осы есептің алгоритм схемасы көрсетілген. 4-мысал. [pic] қатарының мүшелеріне дейінгі [pic] шексіз қатар мүшелерінің мәнін есептеуге арналған блок-схема құру керек (1.9-суретте көрсетілген). 1.9-сурет Студенттің өзін тексеру сұрақтары 1. Алгоритм дегеніміз не? 2. Алгоритмдерді жазудың қандай тәсілдері бар? 3. Алгоритмді блок – схема ретінде жазуда қандай блоктар қолданылады? 4. Алгоритмдердің қасиеттері нені білдіреді: түсініктілік, анықтылық, орындалушылық, массалылық? 5. Сызықтық алгоритм деген не? 6. Тармақталған алгоритм деген не? 7. Циклдық алгоритм деген не? 8. Компьютерде есептерді шешу этаптары?. Әдебиеттер: (2) бет. 5-19 2 апта Тақырып 2. Программалау тілдері Сабақ жоспары |1 |Тілдің жалпы суреттемесі | | |2 |Алфавит, сөздер, синтаксис, тілдің негізгі элементтері. | | | |Константалар, айнымалылар | | |3 |Программаның жалпы құрылымы. Мәліметтер түрлері | | |4 |Стандартты айнымалыларды суреттеу | | |5 |Студенттердің өздік жұмысы (СРС) | | Сабақ мақсаты Білімділік □ Студенттерге программалау тілі жайлы жалпы мағлұмат беру арқылы программа элементтерімен таныстыру □ Тілдің негізгі ұғымдары алфавит, сөздер, синтаксис, өрнектер және мәндер типтері, константалар, айнымалылар туралы мағлұмат беру Дамытушылық □ Студенттердің өрнектерді Паскаль тілінде құра алатынын қадағалау және өздігінен тапсырмаларды орындауы □ Логикалық өрнектің нәтижесін анықтай алатынын қадағалау □ Студенттердің қабілетін дамыту. І. Тілдің жалпы суреттемесі Алгоритмдерді ЭЕМ-ге түсінікті текст ретінде жазуға арналған қарапайым жасанды тіл программалау тілі болады, оны командалар тілі немесе кодтар (арнайы таңбалау) тілі дейді. ЭЕМ тек өз ана тілінде, яғни машиналық тілде жазылған программаларды ғана орындай алады. Алайда, машина тілінде программа жазу өте күрделі жұмыс, өйткені ол тек екілік (он алтылық) жүйедегі кодтардан тұрады және әр машинада әр түрлі машиналық тіл қолданылады. Программа жазуды жеңілдету үшін математикалық формулаларды кеңінен қолданатын, ағылшын тілінің негізінде жасалған алгоритмдік тілдер Бейсик, Фортран, Паскаль, СИ т.б. кеңінен қолданылады. Алгоритмдік немесе программалау тілі – жазу ережелері қарапайым жасанды тіл. Оның машина тілдерінен айырмашылығы – табиғи ағылшын тілі негізге алынып, кең тараған математикалық таңбалармен толықтырылып жасалған. Сондықтан алгоритмдік тілдерде программа жасау адамдарға әрі жеңіл, әрі ыңғайлы болып келеді. Алгоритмдік тілдер автоматты түрде ЭЕМ-нің көмегімен аудармашы программалар арқылы машиналық тілге көшіріледі. Алгоритмдік тілді машина тіліне тікелей аударатын үлкен программаларды жеңілдете отырып, ЭЕМ-де есеп шығару процесін оңайлатады, алайда онда есеп шығару уақыты көбейеді. Алгоритмдік тілдер машинаға және мәселеге бағытталған болып екіге бөлінеді. Машинаға бағытталған тілдердің машина тілінен айырмашылығы, олар ЭЕМ-нің ерекшеліктерін есепке ала отырып әріптерді де пайдаланады. Қазіргі кезде машинаға бағытталған тілдерде тек маман программалаушылар ғана жұмыс істейді. Оларға – автокод, макроассемблер, ассемблер тәрізді тілдер жатады. Мәселеге бағытталған тілдер шығарылатын есептердің ерекшеліктерін еске ала отырып, есептің математикада жазылу тіліне жақындастырылады. Бұларға – Бейсик, Фортран, Паскаль, СИ тағы сол сияқты тілдер жатады. Негізінде ЭЕМ-де кез келген программалау тілінде жазылған есеп машина тіліне аударылып барып орындалады. Есептің орындалу кезеңдерін төмендегі суретте көрсетілген схема түрінде кескіндеуге болады. Қазіргі кезде үш жүзге жуық алгоритмдік тілдер тараған. Олардың әрқайсысы белгілі бір мақсаттарда қолданылады. Мысалы, Фортран ғылыми- техникалық (инженерлік) есептерді шешу үшін, ПЛ/1 экономикада қолдану үшін, Паскаль - өндірісте, оқуда, ал Бейсик - дербес компьютерлерде диалог режимінде жұмыс істеуге қолданылады. Электрондық есептегіш машиналар – алуан түрлі есептерді шешуге арналған ақпараттарды өңдеудің жоғары өнімді құралы. Алайда ЭЕМ – бар болғаны адам құрастырған жарлықтарды тез және дәл орындайтын автомат. Мұндай жарлықтарды дайындау, яғни есептерді шешудің барлық жолын біле тұра жобалау – есептегіш машинаны пайланумен байланысты әрекетінің ажырамас бөлігі. Жетілдірілген есептегіш машиналар есептеу программаларының зердесін сақтайды, сонда адамға тек программаны құрастырып және машина зердесіне орналастыру ғана қалады, ал барлық қалғанын – тікелей есеп шешуді – машина автоматты түрде, яғни адамның араласуынсыз жүзеге асырады. Бұл жағдайда машина программалы есептегіш техникаға айналады да, онда есепті шешу процесі тікелей программаны құрастыруға байланысты болады. Демек, есептегіш машинаға арналған программа негізінде берілген есепті шешу алгоритмі, яғни нәтижеге жеткізуші әрекеттер тізбегінен тұратын дәл жарлықтар құрайды. Алгоритм программаға қарағанда өте жалпы ұғым, ал программа берілген есептегіш машинаға түсінікті тілде жазылған алгоритм. Бұдан программалы басқарылатын техника көмегімен есептерді шешу процесінің негізгі бөлігі - осы есепті шешу алгоритмдерді дайындау екендігі көрінеді. Есепті шешу алгоритмі айқындалғанда, ол еш қиындықсыз программалау тілінде беріледі. Басқа сөзбен айтқанда, программалы басқарылатын есептегіш машинада есепті шығарудағы негізгі процесс – алгоритмдеу, яғни алгоритмдік жарлықтарды белгілі бір ережеге сәйкес қарастырып жазу. Алгоритм құру мәселесі алгоритм жазуға қандай тілді пайдаланатынымызға байланысты болатындығы бұрын айтылғандардан көруге болады. Жалпы айтқанда, тіл – кейбір мағлұматтарды өрнектеу және жеткізу құралы. Осы мағынада адамдардың қатынасу тілі, математика тілі, автоматтар мен адамдардың қатынасу тілі туралы айтуға болады. Автоматтар өзара қатынастың ерекше тілдердің бар екендігі туралы да айтуға болады. Жоғарыда атап көрсетілгендей, алгоритмдерді жазу үшін пайдаланатын тілдің сипаты орындаушының мүмкіндіктеріне байланысты. Орындаушылардың мүмкіндігі тіл құралдарының бірнеше деңгейін анықтайды деп те айтуға болады. 3 апта ІІ. Алфавит, сөздер, синтаксис, тілдің негізгі элементтері Тілдің алфавиті программаның элементтерін құруда қолдануға болатын символдар жиынынан тұрады. Оған әріптер, сандар және арнайы белгілер кіреді. а) Әріптер ретінде латын алфавитінің 26 әрпі ғана қолданылады. Ұлттық әріптер (қазақ, орыс, араб, т.с.с.) тек апострофқа – жоғарғы үтірге алынған сөз тіркестері немесе жүйелі жақшаға алынған түсініктеме ретінде ғана кездеседі. ә) Сандар: 0, 1, 2, … , 9 тәрізді сан таңбалары. Арнайы белгілерге төмендегі символдар жатады: б) Арифметикалық амалдардың белгілері: +, -, *, /, DIV (бөліндінің бүтін бөлігін табу), MOD (бөлген кездегі қалдықты табу). Мысалы, 10 div 3 амалының нәтижесі 1, 10 mod 3 – нәтижесі 3; в) Айыру белгілері: _ (бос орын), (, ., :, ;, (,), (,(, {,}; г) Қатынас таңбалары: <, >, = және осылардан құралған күрделі қатынас таңбалары <= (( таңбасының орнына), >= ((), <> ((); е) Басқа да белгілер: ^ (дәрежелеу белгісі), # (нөмір белгісі), $ (ақша белгісі), _ (астын сызу белгісі). Әрбір символдың өзінің реттік нөміріне сәйкес белгіленген коды болады, ол мемлекеттік стандарт түрінде бекітілген. Әр елдің стандарттары негізінде американдық кодтар стандарты жатады, компьютерде жұмыс істеу кезеңінде оларды да білу керек. Мысалы: 0 – 48 А – 65 а – 97 1 – 49 В – 66 b – 98 … … … 9 – 57 Z – 90 z – 122 Сөз. Тілдің жекелеме таңбаларының бірігуінен, белгілі бір мағынасы бар сөз құралады. Атқаратын қызметіне қарай қызметші сөз және атаулар болып екіге бөлінеді. Қызметші сөз деп – Паскаль тілінде белгілі бір міндет атқаратын сөзді айтамыз. Қызметші сөздер program, var, begin, end болады. Атау – қандай да бір объектіні белгілеу үшін қолданады. Паскаль тілінде атаудың екі түрі бар, олар: стандартты және ЭЕМ-ді қолданушы енгізетін атау. Стандартты атау – ол стандартты объектілерді белгілеу үшін тілдің өзіне бекітілген атау болады. Стандартты атауларға input, output атаулары да жатады. Тілдің символы дегеніміз – кез келген мәтінді құруда қолданылатын элементар таңбалар. Осындай символдар жиынтығы тілдің алфавиті деп аталады. 2.1 Константалар, айнымалылар Мәндер элементтері. Паскаль тілінде негізгі мәндер элементтеріне тұрақтылар және айнымалылар жатады. Айнымалылар. Программаның орындалу барысында өзінің қабылдайтын мәндерін өзгертіп отыруы мүмкін. Программада кездесетін кез келген айнымалы айнымалылар бөлігінде сипатталуы керек. Сипаттау var қызметші сөзімен басталып, мынадай формада жазылады: Var <айнымалы атауы>:<типі>; Тұрақтылар программаның орындалу барысында мәні өзгермейді, ол нақты өз мәнімен берілуі немесе оған қандай да бір атау берілуі мүмкін. Программада тұрақтылар өзінің нақты мәнімен немесе қандай да бір атаумен берілуі мүмкін. Егер тұрақты қандай да бір атаумен берілген болса, онда ол міндетті түрде тұрақтылар бөлігінде сипатталуы керек. Сипаттау const қызметші сөзімен басталып, мынадай формада жазылады: Const <тұрақты атауы>=<мән>; Бір бөлікте бірнеше тұрақтыны сипаттауға рұқсат етіледі. TP айнымалылардың негізгі типін мына түрде көрсетуге болады: 1. Қарапайым типтер: 1. Шектелген 2. Скалярлы 1. Аудару 2. Стандартты 1. Бүтін 2. Заттық 3. Логикалық 4. Символдық 2. Күрделі типтер: 1. Жазулар 2. Массивтер 3. Көпмүшелер 4. Символдар жолдары 5. Файлдар ІІІ. Программаның жалпы құрылымы. Мәліметтер түрлері Паскаль тілі блокты құрылымнан тұрады, яғни программа жеке блоктардан құралған. Әрбір блок мәлімет өңдеудің тәуелсіз бір жеке бөлігін көрсетеді. Жалпы блок оның тақырыбынан, сонан соң сипаттамалық және операторлық бөліктерінен тұрады. Блоктың тақырыбын әркім өз қалауынша қояды, бірақ ол сол блоктың ішкі мазмұнына байланысты болуы тиіс. Блок программа, процедура немесе функцияны көрсетуі мүмкін. Программа тақырыбы PROGRAM деген сөзден, программаның атынан және жай жақшаға алынған параметрлердің тізімінен тұрады. Сипаттама беру бөлігі программада кездесетін барлық мәліметтерді хабарлауға және соларды сипаттауға арналған. Бұл сипаттау бөлігі Паскальдағы объектердің түрлеріне сәйкес бірнеше тараулардан тұрады: белгілер, тұрақтылар, мәліметтер типі, айнымалылар, функциялар және процедуралар. Бұл тараулардың бәрінің болуы міндетті емес, сондықтан кейде бір-екі тараудың немесе бүкіл блоктың сипаттамалық бөлігінің жоқ та болуы ықтимал. Программаның операторлық бөлігі берілген алгоритмді жүзеге асырады және ол бекітілген BEGIN түйінді сөзімен басталып, END түйінді сөзімен аяқталады. Оларды операторлық жақшалар деп те атайды. Тілдің қарапайым құрылымына сан, идентификатор, константа, айнымалылар, функция және өрнек ұғымдары кіреді. Программаға негізгі амалдардың орындалуына керекті мәліметтердің сандық, логикалық немесе символдық мәндік шамалары болады. Олармен жұмыс істеу қолайлы болуы үшін бұл шамалардың мәндерінің өзі емес, оның белгілеу атаулары – идентификаторлар қолданылады. Бұл атаулар әр түрлі мәндерді қабылдауы мүмкін, сондықтан оның типі деген ұғым енгізіледі. Программадағы мәліметтердің мәндері Паскаль тіліндегі келісімді мәліметтердің бір түріне жатуы тиіс. Мәліметтердің әрбір түрі тек өзіне ғана сәйкес келетін операциялар жиынын орындата алады. Кез келген тұрақты, айнымалы, функция немесе өрнек өзіне тән бір түрмен ғана сипатталады. Программалардың жұмыс істеуі үшін мәлімет типтері қарапайым құрылымды- скалярлық және күрделі құрылымды-структуралық шамалар болып екіге бөлінеді. Скалярлық мәліметтердің әрқайсысының 4 түрі бар, олар: бүтін – INTEGER, нақты – REAL, логикалық – BOOLEAN, символдық – CHAR, ал структуралық типтер де массивтер – ARRAY, жазбалар – RECORD, жиындар – SET және файлдар – FILE түрлеріне бөлінеді. Идентификаторлар (атау) тұрақтыларды, айнымалыларды, олардың түрлерін, функцияларды, программаларды, процедураларды, файлдарды т.б. программа объектілерін белгілеу үшін қолданылады. Идентификатор – міндетті түрде әріптен басталатын сандар мен әріптердің тізбегі. Атаудың ұзындығы 8 символмен шектелуі тиіс. Айнымалылар деп программаның орындалу барысында әр түрлі мәндерді қабылдай алатын шамаларды айтады. Олар идентификаторлармен белгіленіп, әрбір уақытта белгілі бір мәнге ие болады. Массив дегеніміз – бір атаумен белгіленіп бір өлшеммен өлшенетін айнымалылардың реттелген тізбегі. Массив элементтерінің барлығы да бір типте болуы тиіс. Тұрақты деп программаның орындалу барысында мәндері өзгеріссіз қалатын шамаларды айтады. Тұрақтыға өзіміз программаның орындалу барысында бірден сандық мән берсек те, сипаттау бөлімінде идентификатор түрінде белгілеп алып мән берсек те болады. Өрнек деп арифметикалық амалдардың таңбаларымен біріктірілген айнымалылардың, функциялардың, тұрақтылардың жиынын айтады. Өрнектердің есептелу барысында амалдардың орындалу реті жақшалардың көмегімен өзгертіледі. Қарапайым жағдайда өрнек тек айнымалылардан, тұрақтылардан немесе функциялардан тұруы мүмкін. Программаның тақырыбынан кейін сипаттау бөлігі жазылып, онда көрсетілген ретіне қарай белгілер, тұрақтылар, типтер, айнымалылар сипатталады, одан кейін процедуралар, функциялар келтіріліп, ең соңында операторлар бөлігі тұрады. Программаның мәтінін теру және түзету Программаның мәтінін теру және түзету интегралданған ортаның кіріктірілген мәтіндік редакторының құрылғыларымен орындалады. Edit менюінде мәтінді түзетудің бірнеше функциялары орындалады : |Undo (Alt+BkSp) |Алдыңғы тмена предыдущего действия | |Redo |восстановление предыдущего действия | |Cut (Shift+Del) |Белгіленген фрагментті буферге алу | |Copy (Ctrl+Ins) |Белгіленген фрагментті буферге көшіру | |Paste (Shift+Ins) |Белгіленген фрагментті буферден қою | |Clear (Ctrl+del) |Белгіленген фрагментті жою | |Show Clipboard |Алмастыру буферін қарау | Меню командаларымен байланыспаған арнайы пернелер комбинациясы: |Ctrl+Y |Жолды жою | |Ctrl+N |Жол қою | |Ctrl+Home |Экран басына өту | |Ctrl+End |Экран соңына өту | |Ctrl+PgUp |Файл басына өту | |Ctrl+PgDn |Файл сонына өту | |Shift+ клавиши управления курсором |Блокты ерекшелеу | 2. File менюінің кейбір командалары |New |Жаңа программа құру | |Open (F3) |Программаның файлын ашу | |Save (F2) |Редактордың екпінді терезесінде орналасқан| | |файлды сақтау | |Save as… |Редактордың екпінді терезесінде орналасқан| | |файлды жаңа атпен сақтау | |Change dir… |Ағымдағы каталогты өзгерту | |Exit (Alt+X) |TP ортасынан шығу | 3. Window менюінің кейбір командалары |List (Alt+0) |Ашылған терезелердің тізімін көрсету | |Close (Alt+F3) |Екпінді терезені жабу | |Previous (Shift+F6) |Алдыңғы ашылған терезеге өту | |Next (F6) |Келесі ашылған терезеге өту | |Zoom (F5) |Екпінді терезені толық экран көлемінде ашу| | |немесе қалпына келтіру | Тексеру сұрақтары 2 апта 1. Программалау тілі деген не? 2. Машиналық тіл деген не? 3. Төменгі деңгейдегі программалау тілі деген не? Мысал келтіріңіз. 4. Жоғары деңгейдегі программалау тілі деген не? Мысал келтіріңіз. 5. Программа деген не? 6. Трансляция деген не? 7. Транслятор деген не? 8. Компилятор деген не? 9. Интерпретатор деген не? 10. Қандай файлдар ИСП TP үшін негізгі болып табылады? 11. ИСП TP – да файлдармен қандай негізгі операциялар орындау қажет: жаңа файл құру, сақтау, ашу? 12. ИСП TP – да файлдармен қандай негізгі операциялар орындау қажет: жабу, орын ауыстыру, екпінді терезені ауыстыру, көлемін өзгерту? 13. Қалай программаны орындауға жібереміз, нәтижені қарау? 3 апта 1. Какие символы входят в алфавит языка TP? 2. Что такое идентификатор? Какие существуют правила формирования идентификаторов? 3. Айнымалылар дегеніміз не? 4. Тұрақтылар дегеніміз не? 5. Деректер типі деген не? 6. TP тілінде қандай стандартты типтері бар? Әдебиет: (1) бет. 29-56 Тақырып 3. Программалау тілінің операторлары және сызықты құрылым алгоритмдерін программалау Дәріс сұрақтары: 1. Өрнек және операциялар орындалу реті. 2. Операциялар және қарапайым скаляр типтерге өрнек. 3. Арифметикалық операциялар, логикалық операциялар, қатынас операциялары, логикалық деректерге жасалатын операциялар. 4. Стандарттық функциялар. 5. Программа құрылымы. IV. Стандартты айнымалыларды суреттеу 4.1 Мәндердің стандартты типтері Бүтін типтегі мәндер. Мәндердің барлық типтерін жай және күрделі деп екіге бөлуге болады. Жай типтер дегеніміз – мәндерінің стандартты және айнымалы типтері. Стандартты мәндер типтеріне жататындар: бүтін integer, нақты real, логикалық boolean, символдық char. Күрделі тип – бұл жай типтердің әр түрлі комбинацияларынан құралады. Бүтін типтегі тұрақты дегеніміз – нүктесіз жазылған кез келген ондық сан. Бүтін тұрақты санды нақты түрле береді. Өзінің мәні ретінде бүтін типтегі тұрақтыны қабылдайтын айнымалы да бүтін типке жатады. Нақты типтегі мәндер мен тұрақтылар. Нақты тұрақтылар нүктені пайдаланып жазылады. Паскаль тілінде бұлар екі түрде берілуі мүмкін: тиянақты және жылжымалы нүктелі түрде. Тиянақты нүктемен берілген тұрақтылар, бөлшек бөлігімен ондық сан түрінде берілуі мүмкін. Осы сияқты Паскаль тілінде де санды ондық ретпен жазуға болады. Оның жалпы жазылу түрі mEp. Мұндағы m-мантисса, E-санды ретпен жазу белгісі, p-санның реті. Жылжымалы нүктелі сандарға мысал: 6*10-5 6Е-5 0,65*106 0.65Е+6 -6,41*1012 -6.41Е12 Нақты типтегі айнымалылар (real). Өзінің мәні ретінде тиянақты нүктелі санды қабылдайтын айнымалы нақты типке жатады. Бүтін және нақты типтегі мәндер арифметикалық мәндер деп аталады. Логикалық типті мәндер. Логикалық типті мәндерді кей жағдайда математикалық логиканы құрушы ағылшын математигі Д.Бульдың есімімен булевтік деп те атайды. Паскаль тілінде екі логикалық тұрақты бар: true (ақиқат) және false (жалған). Логикалық айнымалы осы екі тұрақтының бірін қабылдап, boolean типіне тиісті болады. Логикалық мәндер шамаларды салыстыру және қандай да бір шартты тексеру кезінде көптеп қолданылады. Мәндерді салыстыруға мынадай ара қатынас операциялары пайдаланылады: <; <=; =; <>; >=; >. Логикалық мәндерге төмендегі операцияларды қолдануға болады: or – логикалық қосу; and – логикалық көбейту; not – логикалық терістеу. Логикалық типте False’W’. Жекелеме символдық тұрақтылардан сөз құрау үшін массив ұғымы қолданылады. 4.2 Өрнек Стандартты функциялар. Стандартты функцияларды жазу ережесі: 1. Функция атауы латын алфавитінің бас әрпімен жазылады. 2. Функция аргументі атауынан кейін дөңгелек жақша ішіне жазылады. 3. Функция аргументі тұрақты, айнымалы немесе арифметикалық өрнек бола алады. Бірнеше стандартты функцияларды қарастырайық: sqrt(x) – аргументінің квадрат түбірін есептейді; sqr(x) – аргументінің квадратын есептейді; sin(x) – синусын есептейді; abs(x) – х аргументінің абсолют шамасын есептейді; ord(x) – х символының кодын береді; chr(x) – х кодына сәйкес символды береді: pred(x) – х символының алдындағы символды береді; succ(x) – х символынан кейінгі символда береді. Мысалы: (1+х3)/3 математикалық түрдегі жазылуын Паскаль тіліндегі жазылуда жазыңыз: (1+х*х*х)/3; Арифметикалық өрнек. Арифметикалық өрнек – арифметикалық тұрақтылардан, айнымалылардан, функциялардан және оларға қолданылатын операциялардан тұрады. Өрнекті құрастыруда мына ережелерге сүйену керек: 1. Өрнектің барлық құрамды бөліктерін бір жолға жазу. Өрнекте жоғарғы немесе төменгі индекстер жазуға болмайды. 2. Өрнекті Паскаль тілінде жазу барысында тек қана дөңгелек жақша қолданылады. 3. Арифметикалық операцияларда екі амал таңбасын қатар жазуға болмайды. 4. Есептеу жұмысы операциялардың өздерінің үстемділігіне байланысты солдан оңға қарай орындалатынын есте ұстау керек. Егер функция аргументі өрнек болса, онда алдымен өрнек мәні есептелінеді. Мысалы: (А+В(Т1)/(Т2-2,3(х) - математикалық түрде жазылуы (А+В*Т1)/(Т2-2.3*sqrt(х)) – Паскаль тілінде жазылуы Логикалық өрнек. Логикалық өрнек логикалық мәндерден, логикалық операциялардан және қатынас операцияларынан құралады. Қатынас операцияларында арифметикалық және логикалық өрнектер, сол сияқты символдық мәндер болуы мүмкін. Логикалық өрнекте операциялар мынадай ретпен орындалады: 1. not; 2. * (көбейту), / (бөлу), div, mod, and; 3. + (қосу), - (азайту), or; 4. <; <=; =; <>; >=; >. Логикалық өрнекте дөңгелек жақшаны ғана қолдануға рұқсат етіледі. And және or логикалық операцияларының оң және сол жақтарында тұрған өрнектер дөңгелек жақшаға алынады. Мысал: A=2, B=8, C=5 болғандағы төмендегі логикалық өрнектің нәтижесін анықта: (A>3) and (B=A+6) or not (c=4) операцияларының орындалу реті: а) бірінші жақшадағы A>3 салыстыру операциясы 2>3 болғандықтан операция нәтижесі false; ә) екінші жақшада А+6 операциясы орындалып, қосынды В-мен салыстырылады, нәтиже true, себебі 8=8; б) үшінші жақшадағы С=4 салыстыру операциясының нәтижесі false, себебі 5=4; в) not(C=4) операциясы, яғни not (false), нәтиже true; г) бірінші және екінші жақша арасындағы and операциясының нәтижесі false; д) or операциясының (false or true) нәтижесі true. Сонымен логикалық өрнектің ең соңғы шығатын нәтижесі true. Паскаль тілінде дәрежелеу операциясы жоқ екеніне назар аударыңыз. Егер дәрежелеу қажет болса стандартты функцияларды қолданамыз. Мысалы: ах өрнегін – Паскаль тілінде былайша жазамыз: exp(x*ln(a)), мұндағы exp (экспонента) және ln (натурал логарифм) стандартты функциялар. Кесте 1. Арифметикалық операциялар |Операция |Амалдар |Мысал | |+ |Белгіні сақтау |+A | |- |Белгіні өзгерту |-A | |+ |Қосу |А+В | |- |Алу |А-В | |* |Көбейту |А*В | |/ |Бөлу |А/В | |div |Бүтінсанды бөлу |A div В | | | |3 div 2=1 | |mod |Бүтін санды бөлгендегі қалдық |A mod В | | | |5 mod 3=2 | Кесте 2. Логикалық операциялар |Операция |Амалдар |Мысал | |not |Керіге шығару |not A | |and |Логикалық "ЖӘНЕ" |A and В | |or |Логикалық "НЕМЕСЕ" |A or В | |xor |Бөлектеу "НЕМЕСЕ" |А хоr В | Кесте 3. Қатынас операциялары |Операция |Амалдар |Мысал | |= |Тең |А=В | |<> |Тең емес |А<>В | |< |Кіші |А<В | |> |Үлкен |А>В | |<= |Кіші немесе тең |А<=В | |>= |Үлкен немесе тең |А>=В | Кесте 4. Стандартты функциялар |Функция |Қызметі | |Abs(X) |Вычисление абсолютного значения X | |Sqr(X) |Вычисление квадрата X (Х*Х) | |Sin(X) |Вычисление синуса Х | |Cos(X) |Вычисление косинуса Х | |Arctan(X) |Вычисление арктангенса Х | |Ехр(Х) |Вычисление экспоненты Х | |Ln(X) |Вычисление натурального логарифма Х | |Sqrt(X) |Вычисление квадратного корня из Х | |Tranc(X) |Вычисление целой части Х | |Round(X) |Округление Х в сторону ближайшего целого | |Odd(X) |Определяет нечетность числа. Принимает | | |значение True, если Х - нечетное, False, | | |если Х – четное | 2. Программаның құрылымы |program имя; |Аты | |uses список_используемых_модулей; | | |label |Метка бөлімі | |const |Константа бөлімі | |type |Типтік бөлімі | |var |Айнымалылар бөлімі | |procedure, function |Процедуралар және функцилар бөлімі | |begin |Операторлар бөлімі | |оператор_1; | | |оператор_2; | | |… | | |оператор_N; | | |end. | | Тексеру сұрақтары 1. Өрнек деген не? 2. Арифметикалық өрнек деген не? 3. Логикалық өрнек деген не? 4. Бүтінсанды, заттық, символдық, логикалық типтегі берілгендермен жасалатын операциялар? 5. Стандарттық функциялар түрлері? 6. Өрнектегі есептеулар қандай ретпен орындалады? 7. Программаның құрылымы қандай? 8. Программаның бөліктері неге арналған? Әдебиет: (1) бет. 29-56 Тақырып 4. Меншіктеу операторы. Енгізі – шығару процедуралары Дәріс жоспары 1. Программалау тілінің операторлары. 2. Комментариилар. 3. айнымалыларға мәндер меншіктеу операторы. 4. Енгізу – шығару процедуралары. 5. Берілгендерді шаблон бойынша шығару. І. Сипаттау 1. Программаның сипаттау бөлігі Программаның тақырыбынан кейін сипаттау бөлігі жазылып, онда көрсетілген ретіне қарай белгілер, тұрақтылар, типтер, айнымалылар сипатталады, одан кейін процедуралар, функциялар келтіріліп, ең соңында операторлар бөлігі тұрады. Белгілерді сипаттау. Программадағы белгі оның қатарларының тізбектеле орындала бермей, бір жағдайларға байланысты кейде алға не артқа оралу керек екендігінің айғағы болып есептеледі. Сондай басқа бір жолдардан сілтеуі бар қатарларда ғана белгілер орналасады. Белгілердің сипаттамасы label (белгі, таңбалау) сөзінен басталады да, одан соң программада қолданылатын белгілер жазылады. Белгі ретінде таңбасыз бүтін сандар және идентификаторлар пайдаланылады. Мысалы: label 10, 20, st, belgi; Операторлар бөлігіндегі бір қатарға қойылған белгі келесі сөз тіркестерінен қос нүкте арқылы бөлініп жазылады. Егер программада белгі жоқ болса, олардың сипатталмайтыны да өз-өзінен түсінікті. Тұрақтыларды анықтау. Тұрақтыларды анықтау const түйінді сөзінен кейін оларды сипаттап жазудан басталады. Әрбір тұрақты сипатталған соң, нүктелі үтір қойылады. Біз қарастырып отырған Паскаль тілінде мән ретінде осыған дейін анықталған тұрақтылар мен функциялардан тұратын өрнектерді де пайдалануға болады. Мысалы: Const amin=0; amax=100; amax=2*amax; s=’B’; n=ord(‘R’)-ord(‘A’)+2; Тұрақтының типі автоматты түрде сәйкес мәннің типімен анықталады. Сәтті таңдап алынған атау программаның мағынасын түсінуді жеңілдетеді. Егер программада тұрақтының мәнін өзгерту қажет болса, оның сипаттау бөлігіндегі мәнін ғана өзгерту жеткілікті, өйткені программаның басқа бөліктерінде тұрақтының тек идентификаторы ғана жазылады. Программада тұрақтылар болмаған жағдайда оларды сипаттау бөлімі де келтірілмейді. Айнымалыларды сипаттау. Айнымалыларды сипаттау var түйінді сөзінен басталады, одан кейін типі көрсетілген айнымалылардың атауы келтіріледі. Мысалы: Var a, alfa, bl, y: real; i, k, in: integer; p, d: char; bol, men: boolean; мұндағы қос нүктеге дейінгі атаулар – сипатталатын айнымалылар идентификаторлары, соңғы сөз олардың стандартты типтері. Массивтерді мына түрде сипаттауға болады: Var v: array [0..15] og T; g: array [1..100] of real; mas: array [N..M] of char; m1: array [1..100] of integer; m2: array [1..10, 1..10] of real; мұндағы алғашқы сөз – массивтердің атауы; N, M – массивтің төменгі және жоғарғы индекстерінің мәндері, const бөлімінде анықталған тұрақтылар; Т – type бөлігінде сипатталған массивтің типі. Айнымалылар сипатталған соң, процедуралар мен функциялар жазылуы тиіс. Олардың саны бірнешеу де болуы ықтимал. 2. Программаның операторлар бөлігі Операторлар программаның ең соңғы жағындағы begin және end түйінді сөздерінің аралығында орналастырылады. Оператор дегеніміз – алгоритмді жүзеге асыру барысында орындалатын іс-әрекеттерді анықтайтын тілдің қарапайым сөйлемі. Олар жазылу ретіне қарай бірінен кейін бірі тізбектеліп орындалады. Операторлар бір-бірінен нүктелі үтір (;) арқылы бөлініп жазылады. Оқуға, түсінуге ыңғайлы болуы үшін бір қатарға көбінесе бір оператор жазылады. Қағазға программа текстін басып аларда орын үнемдеу үшін немесе экран бетіне көбірек мәлімет орналастыру кезінде бір қатарға бірнеше оператор жазуға болады. Қатарлар арасына не соңына жүйелі жақшаға алынған түсініктеме сөздер жазып отыру керек. Оларды қазақша не орысша, жалпы ұттық әріптермен жазуға рұқсат етілген. Операторлар қарарпайым және құрмалас болып екіге бөлінеді. Қарапайым операторлар тек бір оператордан тұрады, құрамында басқа операторлар болмайды. Оларға мысал ретінде меншіктеу, көшу, процедураны шақыру және бос операторларды келтіруге болады. Құрмалас операторлардың құрамына бірнеше қарапайым операторлар кіреді. Бұларға жай құрама оператордан бөлек шартты, таңдау және үш циклдік операторлар жатады. Жай құрама оператор бірнеше қарапайым операторларды біріктіріп, қосымша жақша тәріздес begin және end түйінді сөздерінің арасына орналастырудан пайда болады. Құрама оператор басқа құрмалас операторлардың құрамына енгізіліп, бір оператор тәрізді орындалады. Мысалы: begin a:=beta/5.25; c:=2*beta+sin(a); write(a:6:2, c:8:3) end; Операторлар орындайтын қызметтеріне байланысты 1.1-суретте келтірілген топтарға жіктеледі. Енді осы көрсетілген операторлардың жазылу жолдарын, олардың ерекшеліктерін қарастырамыз. 1.1-сурет ІІ. Программалау тілінің операторлары Паскаль тілінің операторларын жай және күрделі операторлар деп екі топқа бөлуге болады. Жай операторлардың ішінде ешқандай оператор болмайды. Күрделі операторлар бірнеше жай операторлар конструкциясынан құралады. 2.1 Меншіктеу операторы Меншіктеу операторы кез келген программалау тілінің негізгі операторы. Меншіктеу операторы жазылған өрнектердің мәнін есептеп, оны айнымалыға телу үшін қолданылады. Өрнек мәнінің типі айнымалының типіне міндетті түрде сәйкес келуі тиіс. Кейде нақты түрдегі айнымалыға бүтін сан мәнін меншіктеуге болады, ондайда бүтін сан нақты санға айналып кетеді. Меншіктеу операторының жазылу ережесі төмендегідей болады: <айнымалы>:=<өрнек>; мұндағы := - меншіктеу белгісі, яғни айнымалының мәні өрнектің есептелген сан мәніне тең болуы тиіс. Мысалдар: i:=i+1; x1:=(-b+sqrt(b*b-4*a*c))/(2*a); a[2,3]:=m-n; fun:=false; (fun айнымалысының типі – boolean) l:=2*pi*r; 2.2 Көшу операторы Көшу операторы қатарларының рет-ретімен орындалуын бұзып, белгісі бар операторға көшу ісін атқарады. Ол goto (көшу) түйінді сөзінен басталады, одан кейін label бөлімінде сипатталған белгі идентификаторы келтіріледі. Оның жазылу форматы GOTO _ <белгі>; Мұндағы <белгі> - белгі идентификаторы, _ - бір бос орын қалдыру белгісі. Мысалдар: goto 20; … goto n1; Жалпы құрылымдық программалау тәртібі бойынша бұл операторды қолданбауға тырысу керек. Ол программаны оқып түсіну ісін қиындатады. Goto операторын қолданған шақта оның қатарына жүйелі жақша ішіне неліктен басқа қатарға көшу қажет екендігін түсіндіріп кету керек немесе шартты тексеріп көшу операторын пайдаланған абзал. 2.3 Бос оператор Бос оператор ешқандай да әрекеттің орындалмайтынын көрсетеді, кейде goto операторы бос операторға көшу ісін атқаратын сәттер болады. Бос оператор begin, end сөздерінен немесе ешбір мәнді өзгертпейтін өрнектен тұрады. Мысалы: A:=A; 10: BEGIN END; {мұндағы 10 белгі рөлін атқарады} WHILE A <> ‘ ‘ DO; ІІІ. Енгізу-шығару процедуралары Паскаль тілінде енгізу-шығару операторлары процедура болып анықталады. Айнымалыларға сандық мәндерді беру үшін меншіктеу операторын қолданамыз. Программа айнымалының шексіз көп мәнін есептеу үшін программада read – енгізу операторы қолданылады. Программаның орындалу барысында read операторы кездесісімен машина тоқтап, қолданушыдан айнымалы мәнін енгізуді сұрайды, мән енгізілгеннен соң программаның орындалу процесі ары қарай жалғасады. Енгізу операторының жазылу формасы: read (a1, a2, … , an), мұндағы а1, а2, ... , аn енгізу ретімен мәндер қабылдайтын айнымалылар. Егер айнымалы нақты деп сипатталып, ал оның қабылдайтын мәні бүтін сан болса, онда бүтін санды да, сол сияқты нақты санды да енгізе беруге болады. Мәліметтерді енгізу барысында жаңа жолға көшіретін readln параметрсіз енгізу операторын қолдануға рұқсат етіледі. Енгізілетін айнымалылардың мәндері integer, real, char, string (сөз тіркестері) типтеріне жатуы мүмкін. Логикалық айнымалылардың мәндерін енгізуге болмайды. Егер енгізу перне арқылы жүзеге асырылмай, дискілік файл арқылы жүргізілсе, онда жақша ішінде бірінші болып файл аты жазылады. Read (FN, b1, b2, … , bn); Read (FN, b1, b2, … , bn); Readln (FN); Мұндағы FN – мәндер енгізілетін дискідегі файл аты; bi – айнымалылар идентификаторлары, файлдарда да мәндер бір қатардан немесе келесі қатардан оқыла береді, сол себепті мұнда да операторлардың үш түрі де қолданылады.Файлдағы мәліметтер бір-бірінен «бос орын» не «енгізу» пернесі арқылы бөлінуі тиіс, яғни файлға әрбір мән енгізілгеннен кейін «_», ал қатар соңына «(» таңбасы қойылады. Мәліметтерді ЭЕМ есінен дисплей экранына басып шығаруға арналған шығару операторы write. Оператордың жазылу формасы: Write (a1, a2, … , an); Нақты және бүтін сандарды экранға шығару үшін write операторында оның форматын көрсетуге болады. Нақты сандар үшін формат екі бөліктен тұрады. Бірінші бөлікте санның таңбасымен қоса есептегенде оның алатын орнының саны, екінші бөлікте бөлшек бөлігінің алатын орыны көрсетіледі. Паскаль тілінде writeln параметрсіз шығару операторын қолдануға болады. Бұл оператордан кейін келетін параметрлі шығару операторы мәліметтерді жаңа жолына шығарады. Нақыт сандар үшін оның жалпы енін, сонан соң бөлшегі алатын орынды көрсету қажет, сол себепті аралас сандарды бейнелеуде оның ені қос нүктемен бөлінген екі бүтін сан арқылы жазылады. Мысалы, С=-145.7865 болғанда WRITE(C:8:3) операторы экранға –145.786 мәнін шығарады, мүндағы жалпы орындар саны – 8, ал бөлшек үш санмен бейнеленгендіктен соңғы бір сан жазылмай қалып отыр. С айнымалысының берілген мәнін толық бейнелеу үшін WRITE(C:9:4) операторын жазу керек еді. Жалпы нақты санды экранда бейнелеу операторының жазылу түрі: WRITE(C:n:m); Мұндағы n – C мәнінің бүтін бөлігіне белгіленген орын саны; m – C мәнінің бөлшек бөлігіне белгіленген орын саны. n-нің мәні таңбаны, бүтін мен бөлшекті бөлетін нүктені және бүтін сандар орнын бөлшекке қосып көрсететіндіктен, ол n>m+3 болуы тиіс. Экранға шығаратын сандардың арасында қалдырылатын бос орындар санын да осы жолмен көрсетуге болады. Ол үшүін екі апостроф жазып, одан кейін қос нүктемен бөлінген бүтін сан арқылы қалдырылатын бос орындар санын өрнектейміз. Мысалы: WRITE(b:8:3, ‘ ‘: 4, c:12:4); Мұндағы 4 – b мен с сандарының арасындағы бос орындар саны. Мысалы: PROGRAM A(input, output); VAR x, y, z:string[10]; a, b, c: real; m, n: integer; BEGIN x:=’f’; y:=’j’; z:=’jan’; a:=23.5; b:=23.456789; m:=1444; n:=6785; WRITE(x:2, y:2, z:4, a:5:2, b:9:6, m:6, n:5:0) END. Программа тақырыбындағы жақша ішіндегі екі сөз (input, output) керекті мәліметтер пернелерден енгізілетінін, ал нәтиже экранға шығарылатынын мәлімдейді. Паскальдың стандарты бұл екі сөзді жазуды міндетті түрде талап еткенімен Паскальда оларды жазбауға рұқсат етілген, сондықтан мысалдарда бұл параметрлерді көрсетпейміз. Енгізу және шығару операторлары іс жүзінде барлық программаларда қолданылады. IV. Сызықты құрылым алгоритмдерін программалау Қарапайым алгоритмдік құрылым операцияның сызықтық жүру реті болып табылады. Мұндай алгоритмдік құрылымның программалық жүзеге асуын сызықтық программа деп атайық. Сызықтық алгоритм және сызықтық программа қарапайым есептерді шешуге арналған. Онда бірнеше мүмкін альтернативалардың ішінен таңдауы және қандай да бір операциялардың циклдік қайталануы қарастырылмаған. Мысалы: Герон формуласы бойынша а, в, с қабырғаларымен берілген үшбұрыштың ауданын есептеуге арналған программаны құру керек. [pic] мұндағы [pic] PROGRAM М 1 (input, output); VAR A, B, C, P, T, HA, HB, HC:REAL; BEGIN READ(A, B,C); P:=(A+B+C)/2; T:=2*sqrt(p*(p-A)*(p-B)*(p-C)); HA:=T/A; HB:=T/B; HC:=T/C; WRITELN(‘HA=’,HA); WRITELN(‘HB=’,HB); WRITELN(‘HC=’,HC); READLN; END. Тексеру сұрақтары 1. Оператор деген не? 2. Операторды жазу форматы? 3. айнымалыларға мәндер меншіктеу операторының жазылу форматы және оның қызметі? 4. Ақпаратты енгізу деген не? 5. Ақпаратты шығару деген не? 6. Input және Output стандарттық операторларының қызметі? 7. Мәндерді шығару процедурасын жазу форматы және оның қызметі? 8. Ақпараттың форматты шығарылуы не үшін қолданылады? Әдебиет: (1) бет. 29-61 Тақырып 5. Шартсыз және шартты көшу операторлар және тармақталған құрылым алгоритмдерін программалау Дәріс жоспары 1. Құрамды оператор. 2. Шартсыз көшу операторы. 3. Шартты көшу операторы. 4. case…of таңдау операторы. Сабақ мақсаты Білімділік □ Студенттерге шартты және таңдау операторлары жайлы жалпы мағлұмат беру. □ Шартты және таңдау операторларын жазу әдістерін көрсету. □ Тармақталған құрылым алгоритмдерін программалауды үйрету. Дамытушылық □ Студенттердің операторларды қолдана отырып программалар құра алатынын қадағалау және өздігінен тапсырмаларды орындауы □ Әрбір оператордың жазылу формасын білу. □ Студенттердің қабілетін дамыту. І. Шартты оператор Паскаль тілінде тармақталудың негізгі алгоритмдік құрылымының жүзеге асыратын екі операторы бар. Олар шартты оператор және таңдау операторы. Шартты оператор. «Иә» немесе «Жоқ» деп жауап беруге болатын белгілі бір логикалық шартты тексереді. Егер оның нәтижесі ақиқат, яғни құптарлық болса, онда бір программалық тармақ орындалады. Тексеру нәтижесі жалған болған жағдайда, программаның басқа бір тармағы жүзеге асырылады. Мұнда есептің шартына байланысты тармақталу алгоритмдерінің «Таңдау» не «Аттап өту» мүмкіндіктерінің бірі орындалуы тиіс. Бұл оператордың жазылу түрі төмендегі төрт үлгінің біріне сәйкес келуі қажет: а) If <шарт> then <1-оператор>; {шарт орындалмағанда <1-оператор>-ды аттап өту} ә) If <шарт> then <1-оператор>else <2-оператор>; {<1-оператор> және <2-оператор>-дың бірін таңдау} б) If <шарт> then {шарт орындалғанда} begin {құрмалас операторлар} <1-оператор>; {орындалып, шарт орындал-} <2-оператор> {маса, оларды аттап өту} … end; в) If <шарт> then {шарттың орындалуы немесе} begin {орындалмауына байланысты} <1-оператор>; {құрмалас операторлардың} <2-оператор>; {бірін таңдап, ал} … {екіншісін аттап өту} end else begin ; ; … end; Мұндағы if – оператордың аты (егер); then – түйінді сөз (онда); else – түйінді сөз (әйтпесе); <шарт> - логикалық өрнек; <1-оператор>,..., , ,..., - кез келген орындалатын оператор. Мысал 1: Берілген a, b, c сандарының ең кішісін табу қажет болсын. иә жоқ иә иә жоқ жоқ иә жоқ 1.1-сурет Есепті шешудің алғашқы тәсілінің блок-схемасы 1.1-суретте көрсетілген. Бұл тәсіл онша ықшам болмағанымен түсінуге ыңғайлы. Паскаль тілінің мүмкіндіктерін толық көрсету үшін осы алгоритмнің басқа жолдары да түсіндірілген. 2-блок пернелер тақтасынан кез келген үш санды енгізу жұмысын атқарады. 3-, 4- және 5-блоктар шарттарды тексере отырып, ең кіші санды анықтайды. 6-дан 9-блокқа дейін min айнымалысына ең кіші мән меншіктеледі. 10-блок нәтижені экранға шығарып, 11-блок тағы да үш сан енгізу қажет болған жағдайда, «Y» (Yes-Иә) немесе алгоритм жұмысын аяқтау үшін «N» (No- Жоқ) әріптерін енгізуді өтінеді. Келесі блок енгізілген t айнымалысының мәнін тексеріп, қажет болса алгоритмді қайта орындайды. Осы блок-схемаға сәйкес келетін программа мәтіні төменде көрсетілген: Program min (input, output); Label 10; Var a, b, c, min: real; t: char; begin 10:write(‘бос орындармен бөлінген 3 сан енгізіңіз:’); readln(a, b, c); if ac then min:=b else min:=c; writeln(‘Ең кіші сан:’, min:8:2); write(‘Тағы енгізесіз бе? («Yes»-иә, «No»-жоқ)’); readln(t); if (t=’Y’) or (t=’y’) then goto 10 end. Осы есепті шығарудың мұнан гөрі қысқалау екінші тәсілі 1.2-суретте көрсетілген Бұл схемаға сәйкес программа мәтіні төмендегідей болады: Program min (input, output); Label 10; Var a, b, c, min: real; t: integer; begin 10:write(‘a, b, c=’); readln(a, b, c); {3 санды енгізy} if a=0 y=(x +x y=(x2+1 x,y соңы [pic] [pic] [pic] a=-b/(2a) басы а, в, с енгізу d=b2-4ac d>=0 а в x1 x2 соңы басы а, в,с енгізу a<в a<с в<с min:=в min:=с min:=с min:=а min t енгізу t:=’Y’ соңы басы x0, xk, dx x=x0, xk, dx y=f(x) x, y соңы басы x0, xk, dx x=x0 x, y соңы y=f(x) x=x+dx x(xk басы х-ті енгізу k=1 k, z соңы z=xk / k2 k=k+1 z>10-4 басы х, [pic] y=1 n=1 y=yx/n y n=n+1 Y>[pic] соңы Есептің программалау тілінде жазылуы Транслятор (аудармашы) Есептің машина тілінде жазылуы Есепті шығару ОПЕРАТОРЛАР Меншіктеу операторы Енгізу-шығару операторлары Басқару операторлары Функция мен процедураны анықтау операторлары басы а, в, с [pic] P=(a+b+c)/2 ha=t/a hb=t/b hc=t/c ha, hb, hc соңы басы a, b, c енгізу a=0 а в x1 x2 соңы басы a, b, c енгізу a=0 а в x1 x2 соңы шарт 1-оператор 2-оператор … n-оператор жоқ шарт 1-оператор 2-оператор … n-оператор иә жоқ оператор 1-оператор 2-оператор … n-оператор басы /a/>eps sinx:=sinx+a n:=1 sinx соңы x:=x*pi/180 жоқ иәә x:=x; sin:=a a:=-ax2/2n(2n+1) x енгізу n:=n+1 басы a>1e-5 k:=k+1 s:=s+a k-1, s соңы s:=0 жоқ иәә k:=1; a:=1/k2 a:=1/k2 басы a<1e-4 k:=k+1 k-1, s соңы a:=1/k2 жоқ иәә s:=s+a S:=0; k:=1 басы х, [pic] y=1 n=1 y=yx/n y n=n+1 Y>[pic] соңы басы S:=0 i=1, 100, 1 S:=S+i S соңы 1.9-сурет басы x:=-4 k:=1, 41, 1 y:=(x2-2x+2)/(x2+1) x, y x:=x+0.2 cоңы басы n енгізу p:=1 i:=n, 2, -1 p:=p*i p соңы
Пәндер
- Іс жүргізу
- Автоматтандыру, Техника
- Алғашқы әскери дайындық
- Астрономия
- Ауыл шаруашылығы
- Банк ісі
- Бизнесті бағалау
- Биология
- Бухгалтерлік іс
- Валеология
- Ветеринария
- География
- Геология, Геофизика, Геодезия
- Дін
- Ет, сүт, шарап өнімдері
- Жалпы тарих
- Жер кадастрі, Жылжымайтын мүлік
- Журналистика
- Информатика
- Кеден ісі
- Маркетинг
- Математика, Геометрия
- Медицина
- Мемлекеттік басқару
- Менеджмент
- Мұнай, Газ
- Мұрағат ісі
- Мәдениеттану
- ОБЖ (Основы безопасности жизнедеятельности)
- Педагогика
- Полиграфия
- Психология
- Салық
- Саясаттану
- Сақтандыру
- Сертификаттау, стандарттау
- Социология, Демография
- Спорт
- Статистика
- Тілтану, Филология
- Тарихи тұлғалар
- Тау-кен ісі
- Транспорт
- Туризм
- Физика
- Философия
- Халықаралық қатынастар
- Химия
- Экология, Қоршаған ортаны қорғау
- Экономика
- Экономикалық география
- Электротехника
- Қазақстан тарихы
- Қаржы
- Құрылыс
- Құқық, Криминалистика
- Әдебиет
- Өнер, музыка
- Өнеркәсіп, Өндіріс
Қазақ тілінде жазылған рефераттар, курстық жұмыстар, дипломдық жұмыстар бойынша біздің қор #1 болып табылады.
Ақпарат
Қосымша
Email: info@stud.kz