Алгоритмдер және оның қасиеттері

Автор: Пользователь скрыл имя, 26 Февраля 2013 в 18:26, лекция

Описание работы

Егер сіз берілген есепті шешу үшін қандай да бір программалау тілінде программа жазғыңыз келсе, онда алдымен есепті шешудің алгоритмін құруыңыз керек. Алгоритм – математикадағы ең бір іргелі ұғымдардың бірі. Алгоритм сөзі ІХ ғасырда өмір сүрген, адамдардың квадрат теңдеулерді жүйелей құрып оны шеше білуге үйреткен ұлы математик Әл- Хорезмидің атының латынша жазылуы algorithmi сөзінен алынған. Осылайша алгоритм ұғымы математикада ертеден қолданыла бастағанымен, математикалық теорианың объектісі ретінде кейбір проблемаларды зерттеуге байланысты ХХ ғасырдың 30-шы жылдарында зерттеле бастады.

Работа содержит 1 файл

Алгоритм және оның қасиеттері2.doc

— 702.50 Кб (Скачать)

              10 LET  А=5

              20 LET B=3

              30 LET C=-2

              40 LET D=B^2-4*A*C

              50 LET K= «Дискриминантты есептеу»

              60 PRINT"D=;K=;K

BASIC тіліндегі "=" меншіктеу таңбасы мен кәдімгі математикадағы теңдік таңбасының арасында үлкен айырмашылық бар. Мысалы, математикалық жазуда мына Х=X+1 өрнегі дұрыс емес, ал BASIC тіліндегі 30 LET Х=X+1 жазылуы дұрыс және мынадай мағына береді:

  • жадтың Х атты ұясынан айнымалының мәні алынады;
  • бұл алынған мән бірімен қосылады да Х+1- ге жаңа мән жасалады;
  • осы пайда болған Х+1 мәні Х атты жады ұясына ондағы алғашқы мәнді өшіріп өзі орналасады.

Мысалы,

              10 LET X=5

              20 LET X=4

         30 LET X=X+Y

программа үзіндісіндегі 30-қатардағы LET операторы орындалғанда Х айнымалысы 9-санын меншіктейді яғни жадтың Х аты ұясында алғашқы 5санының орнына 99саны пайда болады.

BASIC тілінің көптеген түрлерінде оператордың орны LET сөзін қалдырып кетуге де болады. Мысалы, жоңғарыда келтірілген программа үзіндісі былай жазылады.

              10 LET X=5

              20 LET X=4

         30 LET X=X+Y

 

 

 

 

 

Информацияны енгізу және

баспаға шығару операторлары

   

    Компьютерде қандай да  бір деректерді өңдеу үшін, ол  деректер алдын-ала компьютердің  жадына ендіріліп қойылуы тиіс. Компьютерге деректерді сыртқы  құрылғылардан да енгізуге болады. Бұл деректер инфомацияның сыртқы  тасымалдаушыларында мысалы, магниттік дискіде сақталады. Сыртқы тасымалдаушылардан деректерді қажет болғанда компьютерге енгізу үшін, программаға арнайы ендіру операторларын қосады.

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

   BASIC тілі компьютермен диалог режімінде жұмыс істеуге мүмкіндік беретін өте қолайлы тіл. Мұнда барлық деректер компьютерге ендіру құрылғысынан келіп түседі. Бұл жағдайда деректің әрбір қатары пернетақта арқылы теріліп, экранда көрінеді. Келесі қатарды теру үшін, пернетақтадағы (ЕП) пернесін басу керек.

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

 

 

 

 

 

 

 

Енгізу операторы

 

    Енгізу құрылғысынан  деректерді енгізу үшін, INPUT (енгізу) операторы қолданылады.

    Оператордың жазылу пішімі: к INPUT р1,р2,...,рп

    Мұнда к-қатар нөмірі; INPUT–оператордың аты; р1, р2,..., рп – үтірмен ажыратылып жазылған аинымалылар тізімі.

     Бұл оператор былайша  орындалады. Программаны орындау  барысында, компьютер INPUT операторын  кездестіре сала, экранға сұрақ  белгісін шығарады. Компьютер өз  жұмысын уақытша үзеді, осы  үзіліс кезінде пайдаланушы пернетақтадан айнымалының мәндерін үтірлермен ажырата отырып, теріп шығады да, <ЕП> пернесін басады. Сонда ендірілген мәндердің ішіндегі бірінші мән, ендіру ооператорының тізіміндегі бірінші айнымалыға, екінші мән тізімдегі екінші айнымалыға т.с.с. меншіктелген болады. Бірақ енгізілген мәндерді пернетақтадан терген кезде, олардың саны және типі айнымалылар тізімінде көрсетілген айнымалылардың саны мен типіне дәл келуін қадағалау керек. Егер оларды артығымен терсеңіз, онда артық сандар есепке алынбайды.

    Ал егер ендірілген  мәндердің саны жеткіліксіз болса,  онда компьютер тағы да сұрақ  белгісін шығарып, жеткіліксіз  мәндердің енгізілуін  күтеді.

    Барлық деректер дұрыс  және түгелімен ендіріліп болғанан  кейін, компьютер INPUT операторынан  кейінгі келесі операторы  орындауға көшеді. Мысалы, программаның орындалуының белгілі бір кезінде компьютер жадына мынадай мәндерді енгізу  керек болсын: 1.2,-0.004,  2-ші, мектеп және де бұл мәндер Х,Ү,Z$ K$ айнымалыларына меншіктелсін. Осы аталған әрекеттердің орындалуы үшін мына төмендегі программа үзіндісі жұмысқа қосылсын:

    

 

        .

        .

        .

100 INPUT X,Y,Z$,K$

120 LET A=X+Y

125 LET В=K+Z

       .

       .

       .

          Компьютер осы программаның 100-қатарындағы INPUT операторын кездестіргеннен кейін, экранға сұрақ белгісін шығарады да, пайдаланушы пернетақтадан тиісті мәндерді енгізгенше күтіп тұтады. Пайдаланушы жоғарғыда айтылған? 1.5,-0.4 Е-2, "2-ші", "мектеп" мәндерін теріп, <ЕП> пернесін басады, осыдан кейін Х,Ү,Z$,K$ айнымалыларына осы мәндер меншіктеледі.

 

 

 

Баспаға шығару операторы

 

    Компьютердің оперативтік  жадынан, деректерді магниттік  дискілерге, баспаға шығару құрылғыларына  және экранға шығаруға болады. Деректерді баспаға шығару үшін PRINT операторы қолданылады.

     Оператордың жазылу пішімі:

                           к PRINT <шығарылатын тізімдер>

Мұнда к-қатар нөмірі; PRINT оператордың  аты; <шығарылатын тізімдер> - бірінен-бірі үтірмен немесе нүктелі үтірмен ажыратылып шығарылатын элементтердің тізімі.

     Баспаға шығарылатын элементтерге мыналарды жатқызуға болады:

    • сандар;
    • айнымалылар;
    • өрнектер;
    • мәтіндер;
    • ТАВ(Х) функциясы.

     PRINT операторы былай орындалады. Егер қандай да бір сандарды баспаға

шығару керек болса, онда оларды жай ғана шығарылатын тізімге  қосып қою керек. Тізімге айнымалылардың да аттарын  көрсетуге болады. Айтарлық, мына PRINT 24,Х,А,5 операторын орындау кезінде Х және А айнымалылардың 7 және 8 мәндеріне ие болсын . Сонда PRINT операторы орындалғаннан кейін, экранға 24,7,-8,5 сандары шығады. Шығарылған тізімде өрнектер мен функциялар да кездесуі мүмкін . Бұл жағдайда алдымен олардың мәндері есептеледі, одан кейін сол мәндер экранға шығады.

    Экранға орыс алфавитінің  әріптерімен жазылғани кез келген  мәтіндерді де шығаруға болады. Мәтіндер экранға шығу үшін PRINT операторынан кейін тырнақшаға алынып жазылады.Мысалы,

          10 LETX=EXP(1)

          20 PRINT"X=";X

               .

               .

               .

 

программа үзіндісі  орындалғанда экранда Х = 2.71828 мәтіні шығады.

     Экранда шығарылатын деректердің орналасуы әр түрлі компьютерде түрліше болады. Егер әрбір шығарылатын санға 15 орын бөлінген болса, онда қатардың ең үлкен ұзындығына қарай экрандағы қатарға 4-5 санды сыйғызуға болады.

      Айтарлық, қатарда  60- тан кем емес орын бар  болсын. Онда оны 15 орыннан ұратын төрт аумаққа бөлуге болады. Әрбір аумаққа оның басынан бастап орналасатын бір санды жазуға болады. Ол үшін тізім элементтерін үтірмен ажыратып жазуымыз керек.

Мысалы, ΡRINT A, B, SQR (A^2+B^2) операторының орындалуы үш санды төмендегідей тәртіпен баспаға шығарады:

 

А – ның мәні                  В – ның мәні                         А+В 


1 орыннан           16орыннан  31 орыннан             46 орыннан 

 

    Сандарды тұрақты нүктелі  пішінде және жылжымалы нүктелі  пішінде баспаға шығаруға болады: Бұл  олардың шамаларымен түріне және компьютерге байланысты болады. Өйткені әртүрлі компьютерлер деректердің әртүрлі пішімдерімен амалдар орындайды, олай болса соған сәйкес сандарды жазып көрсету аралықтары да түрліше болады. Егерде шығарылатын тізімдегі элементтер саны 4-тен көп болса, онда лағашқы төртеуі 1-қатарда қалған төртеуі 2-қатарда т.с.с орналасады. Сонымен, аумақтың сол жақ шетнен бастап орналасатын болады. Сандарды баспаға шығаруға аумақтағы бірінші орын санның таңбасына бөлінеді. Егер санның таңбасы «+» болса онда ол орынды бос орын баспаға шығады.

    Мысалы PRINT 15,26,34,45,50,62,70,83,30,98 операторының орындаллуы нәтижесінде  сандар төмендегідей реттілікпен  экранға шығады:

              15 26 34 45

              50 62 70 83

              90 98

    Осылайша, бөлгіш ретінде  үтірді пайдалану, әр уақытта  кезектегі санды келесі аумаққа  шығарады. Алдыңғы қатардағы барлық  аумақтар толып қалса, келесі  қатардан бастап сандарды аумақтарға  орналастырады. PRINT операторының шығару тізімінде бөлгіш ретінде нүктелі үтірді пайдалансақ, онда сандарды бұданда жиі (тығыз) етіп баспаға шығаруға болады. Бұл жағдайда келесі сан аумаққа емес, бір бос орыннан кейін баспаға шығады. Мысалы, PRINT 1; 2; - 3; -4; 5; 6; 7; 8; 9; 10; операторының орындалуы нәтижесінде сандар мынадай реттпен экранға шығады: 1 2 -3 -4 5 6 7 8 9 10.

    Егер алдыңғы қатарда  тізімнің кезектегі элементін  баспаға шығару 

үшін  орын жетпейтін болса, онда ол келесі қатардың басынан бастап баспаға шығарылады.

    Программа мәтіннің де бірнеше баспаға шығару операторы PRINT бола алады. Бұл жағдайда кезектегі баспаға шығару операторы жаңа қатардың басынан бастап баспаға шығару операторының тізімінде аяқталған бөлгішке (үтір, нүктелі үтір немесе таңбаның жоқ болуы) тәуелді болады:

 

 

 

 

 

 

 

 

 

 

Айнымалыларға мән беру операторы.

DATA операторы

 

    Айнымалыларға мән беруді DATA READ, RECTORE  операторларының көмегімен  жүзеге асды.

    DATA  операторлары бұл  оператордың LET операторын өзгешелігі  мұнда айнымалыларға мән беру  мәліметтер блогын пайдалануға негізделген. Айнымалыларға мән беру меншіктеу осы блокпен сандарды не символдық тұрақтыларды оқу жолымен орындалады. Бұл бағдарламаны орындар алдында ЭЕМ зердесінде қалыптастыратын реттелген сандық информацияларды бастапқы бағдарламада DATA операторы арқылы беріледі.

    Оператордың жазылу үлгісі:

k DATA C1,C2…Cn

Мұнда k-қатар нөмірі, DATA-оператордың аты, C1,C2…Cn- үтірлермен бөлінген тұрақтылар.

    Мысал:

10 DATA-1;0;86;0. 3Е-5 бұл оператор бойынша  бағдарламаны орындар алдында  бір саны бірінші 0.86 саны екінші 5 және 0,310 саны DATA операторы орындалуын операторы тобына жатады және бағдарламаның кез-келген жеріне құрылған бағдарлама бойынша ЭЕМ-де есеп шығару екі кезеңнен тұрады.

1. Бағдарламаның операторын ЭЕМ-ге түсінікті үлгіге түрлендіру. Бұл кезеңде DATA операторы арқылы берілген мәліметтер блогы қалыптасады.

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

Мысалы,

     5 DATA 2,- 1,0

               . . .

   20 DATA 0,3 -71,12

            . . .

  100 DATA 10, 12

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

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

 

READ операторы

 

    READ операторы – деректер блогынан мәндерді іріктеп алуы операторлар болып табылады.

Операторыдң жазылу пішімі:

    k READ v1,v2,vN

Мұндағы k-қатар нөмері, READ-оператордың  аты, v1,v2,vN- айнымалылардың аты.

    Бұл оператор арқылы  программаның орындалуы кезінде  деректер блогын сандық информация  іріктемеліп алынып айнымалыларға  меншіктеледі.

    Мысалы, мынадай программа  үзіндісі берілсін

        10 DATA 6,-10 1.2, 100

        20 READ X,Y,Z

               .

               .

               .

        50 READ A

               .

               .

               .

20 қатардағы оператордың орындалуы кезінде х айнымалысына 10-мәнді A,Z айнымалысына 1,2-мәні меншіктеледі, бұдан соң деректер блогында пайдаланылған тек бір ғана 100 саны қалады. Ол ақырында READ-операторы орындалғанда іріктелініп алынуы мүмкін. Мысалы, 50-қатардағы READ-операторы орындалғанда сол қалған 100 саны А-айнымалысына меншіктеледі іріктелініп алуға ғана рұқсат етеді. Мысалы, деректер блогын бірден үшінші санды алынған деректер блогынан санды алуға әрекет жасау қате есептеледі. Интерпретаторы «?» таңбасымен баспаға шығарады және программаның орындалуы тоқтатылады. Айнымалылардың бастапқы мәндерін қалыптастыру үшін READ-операторын пайдалану ыңғайлы. Бұл оператордың жалпы санын үнемдейді.

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

Информация о работе Алгоритмдер және оның қасиеттері