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

Автор работы: Пользователь скрыл имя, 22 Ноября 2012 в 20:30, реферат

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

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

Файлы: 1 файл

реферат (2).doc

— 880.00 Кб (Скачать файл)

   30 REM CD

   40 INPUT C,D

   50 REM Z

   60 Z=(FNY(C)-FNY(D))/FNY(C+D)^3

   70 PRINT “Z=”; Z

   80 END

    60-операторда көрсетілген FNY функциясының аргументтері шын аргументтер деп аталады. Олар 20-оператордағы формальды аргументтердің орындарына қойылатын нақты сандық мәндерді береді. Пайдаланушы анықтайтын, яғни стандартты емес функцияларды программалауда пайдаланғанда ескерілуге тиісті бір қатар ерекшеліктерді атап өтейік.

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

                           .

                                               .

                                               .

    20 DEF FNC (X,Y)=SQR (X^2+Y^2)

                           .

                                               .

                                               .

   50 DEF FND(X)=SIN (X)/X

                           .

                                               .

                                               .

   80 LET Z=Y+B*3

                           .

                                               .

                                               .

   

   FNC жєне FND функцияларын анықтаудағы х  аргументі өзара байланысты емес  тәуелсіз шамалар. Компьютерде  оларға оперативті жадтың әр  түрлі ұялары бөлінеді. Дәл осы  сияқты 20-оператордағы у формальды  аргументінің программаның 80-операторындағы у айнымалысына ешқандай қатысы жоқ. Мыналар шын аргументтер бола алады: тұрақтылар, айнымалылар (жай және индексті), өрнектер. Орындалатын оператордың формуласында шын аргументті стандартты емес функцияның аты оперант ретінде кездескен кезде ғана стандартты емес функцияны пайдалану орындалады. Функцияны пайдалануда алдымен барлық шын аргументтердің мәндері есептеледі, одан әрі олар функцияның анықтамасындағы формальды аргументтердің сәйкес орындарына қойылады және функция анықтамасының оң жағына жазылған өрнектің мәні есептеледі. Осы мән функциясының мәні болып табылады.

    Пайдаланушының  анықтайтын функциясы бүтін, нақты  немесе символдық бола алады.  Функцияның атынан соң % символы  тұрса, онда ол бүтін деп,  ал $ символы тұрса, онда ол символдық деп аталады. Бүтін санды функцияның мәні бүтін саны болып табылады, ал символдық функцияның мәні символдар қатары болады. Егер % және $ таңбалары жоқ болса, онда функция нақты функция болады, яғни нәтижесі нақты сан болады.

    Мына  төменде пайдаланушының анықтайтын функциясын пайдаланудың мысалдары келтірілген:

    20 DEF FNA % (X,Y,R%)=X*K% +Y*10*K%

    20 DEF DNB% (A$,L)=SWG (A$,I,L)+”A”

    20 DEF FNC (X)=SIN (X) /X

    М±нда:

    • FNA% функциясының мәні бүтін сан;
    • FNB$ функциясының мәні символдар қатары;
    • FNC функциясының мәні нақты сан болады.

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

   20 DEF FNB (X)=2*X/SQR (X)

   30 PRINT FNB (5,2)

орындалуының  нәтижесінде экранға аргументтерде  қате кеткендігі туралы хабар шығады. DEF операторы орындалмайтын оператор, сондықтан да барлық DEF операторларын басқа да орындалмайтын операторлармен бірге программаның басына орналастыруға болады. Ол тек программалық режімде ғана пайдаланылады:

Мысалдар келтірейік:

  • 20 DEF FNA (X)=АВS (SIN(X)

                                               .

                                               .

                                               .

      50 DEF FNB (X,Y)=FNA (X)+(CJS(Y)^2-1

    55 X=2.5

    60 Z=FNB (4.7124,3.I4I6)*EXP (X)

    70 PRINT Z

                                               .

                                               .

                                               .

    Бұл программа үзіндісі орындалғанда мына төмендегідей нәтиже алынады:

Z=(| sin 4.7124| + cos2 3.1416-1).e2.5= 12.1825

  • Программада мына:

  және 

екі функцияны  анықтау керек және олардың мәні х=5 мәнінде есептелсін.

   10 DEF FNY (x) =LOG (x+SQP(x^2+1)

   20 DEF FNY =B^2 (((X-A)^2+B^2

   30 A=2: B=3

   40 X=5

   50 Y=FNY (X): F=FNF (X)

   60 PRINT X,Y,F

   70 END

    Бұл программада 30-қатарда А және В-ның мәндері анықталған, олай болмаған жағдайда f(x) функциясының мәні есептелінбейді. 40-қатарда х-тың мәні, ал 50-қатарда у және F-тің мәндері есептеледі.

 

 

 

 

 

 

Массивтер және оларды өңдеу.

Массив ұғымы

 

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

    Массивтің әрбір элементіне соңынан индексі келетін массивтің аты меншіктеледі. Сондыќтан да массив элементтерін индексті айырмалар деп те атайды.

    Ұйымдастыру тәсілдері бойынша BASIC тілінде бір өлшемді екі өлшемді және көп өлшемді массивтер пайдаланылады. Бір өлшемді массивтің элементі массивтегі элементтің реттік нөмірін анықтайтын бір индекспен көрсетіледі. Мысалы:

  • А2) –А массивінің екінші элементі;
  • В1(3) –массивінің үшінші элементі;
  • С(N)-C массивінің N-ші элементі дегенді білдіреді.

Осылайша, индекстер массивінің атынан соң жақша ішіне орналасады.

    Енді  екі өлшемді массивке алып  келетін мынадай есепті қарастырайық.

    Айталық, 11-мөлтек ауданда тұратын тұрғындар  саны және бір тұрғынға бөлінетін  шаршы метр жер жөнінде деректерді  өңдеу керек болсын. Өңдеу және  кейбір сұрақтарға жауап алу мақсатында компьютерге деректерді енгізуді былай ұйымдастыруға болады. Мысалы, бір үйде қанша адам тұрады және 22 үй 3-пәтерде тұратын тұрғындарды кезекке қоюға бола ма? т.с.с. сұрақтарға жауап беру керек болсын.

    Бұл  есепті шешуде екі өлшемді  массивті пайдалану ыңғайлы. Біз бірінші айнымалы ретінде үйдің нөмірін, екінші айнымалы ретінде пәтер нөмірін пайдаланамыз. Егер ол құрылып қойылған болса, онда біздің сұрақтарымыздың жауабы ретінде А[22,3] мәні баспаға шығарылады. Мұнда алғашқы индекс үй нөмірін, екіншісі пәтер нөмірін білдіреді. Ал егер А[22,3]=4 мәнін меншіктесе, онда бұл үйде 4 адам тұратын болғаны.

    Екі  өлшемді массивке математикада  матрица, алгоритмдік тілде төртбұрышты  кесте мысал бола алады.

    Сонымен,  екі өлшемді массивтердің элементтері екі индекспен көрсетіледі, оның біріншісі қатардың нөмірін, ал екіншісі бағанның нөмірін анықтайды, екеуінің қиылысында массивтің сәйкес элементі орналасқан болады. Мысалы, А(0,0) екі өлшемді А массивінің нөлдік қатары мен нөлдік бағанына орналасқан элемент; В3(2,3) екі өлшемді В3 массивінің екінші қатары мен үшінші бағанына орналасқан элемент екендігін білдіреді. Екі өлшемді массивтерде индекстер үтірмен бөлінеді. BASIC тілінде индекстер нөлден бастап нөмірленеді.

    

 

 

DIM операторы

 

    Егер  индексті өрнек ретінде формула пайдаланатын болса, онда оның мәні есептеліп болғаннан соң бүтін санға дөңгелектенеді. Егер программада массив пайдаланылатын болса, онда олар алдын ала сипатталған болуы тиіс. Бұл компьютерге массивтің құрылымы және өлшемі туралы информация берілуі керек деген сөз. Осы информацияны қабылдау арқылы компьютер өзінің жадында массив элементтерін орналастыру үшін қажетті орын қалдырады. Массивтерді сипаттау үшін DIM (dimension-өлшемділік) операторы қолданылады.

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

    k DIM m1(m1-ң шек.), m2(m2-ң шек.),…, mN(mN-шек)

мұнда k-қатар нөмірі; DIM-оператордың аты; m1, m2,…, mN-массивтің аттары; m1-шек., m2-шек., mN-шек.,…, mN-шек. - m1, m2,…, mN-ге сәйкес массивтің шекаралары. Мұнда массивтің тек жоғарғы шекаралары көрсетілген, өйткені төменгі шекаралары 1-ге тең деп қабылданады.

    Егер  массив бір өлшемді болса, “m  шек.” сол массивтің элементтер  санын бүтін сан ретінде көрсететін  болады.

    Мысалы, мына оператор 10 DIM С(5), D(1,2) С массивінің С(0), С(1), С(2), С(3), С(4) элементтерден тұратын бір өлшемді массив екендігін және D массивінің

          D(0,0)         D(0,1)          D(0,2)

          D(1,0)         D(1,1)          D(1,2)

элементтерден  тұратын, екі қатары және үш бағаны бар екі өлшемді массив екендігін білдіреді.

    DIM операторы массивке сілтеме жасамастан бұрын программаның басында орналасқаны жөн.

    Индекстің ең кіші мәні нөл, ең үлкен мәні DIM операторында хабарланған мәннен асып кетпеуі керек. Егер индекстің мәні бұл шекарадан асып кетсе, онда программаны орындауда қателік кеткендігі жөнінде хабар экранға шығады. Бір өлшемді массивті цикл ішінде FOR және NEXT операторларын қолданып өңдеген ыңғайлы.

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

    DIM операторында массивтің атынан соң дөңгелек жақша ішінде массив өлшемінің көрсеткіші ретінде мәндері алдын ала анықталған, ендірілген немесе есептелген тұраќты (бүтін типі), әйтпесе айнымалының аты (арифметикалық өрнек) пайдаланылуы мүмкін. Мысалы,

    10 INPUT K,L,M

    20 DIM D(K), E(L), F(L+M)

                                             .

                                               .

                                               .

    Бұл жағдайда D массивіне жадтың К+1 ұясы, Е массивіне (L+M)+1 ұясы бөлінеді.

    Программада пайдаланылатын массивтер DIM операторында тек бір рет хабарланады.

    Массивті қайталап хабарлаған жағдайда “redimensione arry” (“Массивті екінші рет хабарлау”) хабары экранға шығады. Мысалы, программаның мына төмендегі үзіндісінде:

    10 DIM А(10), В(10), С(20)

    20 DIM В(30), D(20)

                           .

                           .

                           .

    В  массиві екі рет хабарланған.

    Бірақ  массивті ERASE операторын пайдаланып қайтадан хабарлауға да болады. ERASE операторында жойылуға тиісті массивтің аты көрсетіледі. Мысалы, 15 ERASE В операторы В массивін қайта хабарлайды.

                            

                                             

 

 

   

                            

                                             

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Массивтің жеке элементтерімен орындалатын операциялар. Массивтерді ендіру – шығару

   

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

         Мысалы, мәндері 

    

А(1)

А(2)

А(3)

А(4)

А(5)

-8

3.2

4

15

18


 

Бес элементтен тұратын массив үшін А(2)=3.2 екінші элементті 8.3 санына ауыстыру операцияясы мынадай болып жазылады:

            •

            •

            •

  30 А(2)=8.3

  Мына программа  үзіндісінің

            •

            •

            •

   80 J=1

   90 I=3

100 A (4)=27

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