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

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

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

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

Файлы: 1 файл

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

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

  

  • INPUT “Массивтің өлшемін ендір K=’’; K
  • DIM A(K)

30  FORI=1 T O K

40  INPUT A(1)

50 NEXT I

60  S=0

70 FORI=1 T O K

80  S=S+A(1)

90  NEXT I

   100  PRINT  ’’S = ’’; S

   110  END

Мұнда, 60 – оператор  S қосындының бастапқы мәнін нөлге айналдырады, ал оны есептеу 70-90 – операторлардың тұратын циклде жүзеге асырылады.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Массив элементтерінің көбейтітдісін есептеу

 

А массив элементтерін мына түрде:

     К

P=∏  А(I)

    I=1

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

Көбейтіндінің ақтық мәні P=P x  A (I) формуласы бойынша есептелетін дербес көбейтінділерді K-рет еселіп жинаудан соң анықталады.

    P көбейтіндісінің алғашқы мәні ретінде Р=1 тандап алу керек, өткені ол нәтижесінің сандақ мәніне әсерін тигізбейді. Бұдан соң бірінші қадамда Р=P*A (1)=1*A(1),екінші кадамға P=P*A(2)=A(1)*A(2), үінші қадамға Р=P*A(3)=A(1)*А(2)*А(3), ең соңында К-қадамда Р=P*A(1)*А(2)*...*А(К-1)*А(К) есептеледі.

     Бұл алгоритмді жүзеге асырушы программа үзіндісі мына төменде келтірілген:

  •      
  •  
  •    

60 Р=1

70 FOR I=1 TO K

80 P=P*A(I)

90 NTXT I

100 PRINT "P=";P

110 END

 

Берілген шартты қанағаттандыратын массив

элементтерін санын анықтау

 

     К элементтен тұратын А массивінің қанша элементі берілген шартты қанағаттандыратындығын анықтау талап етілсін.

      Нақты болу үшін бұл шарттың түрі А(1)>L болсын.

      Берілген шартты қанағаттандыратын массив элементтерінің санын есепке алу үшін N айнымалысын ендірейік. N-нің мәнін есепке алуды А массивінің әрбір элементіне ретімен қатынас жасау және А(I)>L шартының орындалуын тексеру кезінде жүзеге асыруға болады. Шарт орындалған жағыдайда N-нің мәнін бір бірлікке арттыру керек, яғни N=N+1-ді есептеуге массивтің келесі элементін (егер массив аяқталмаған болса) талдауға өтеміз.Бұл шарт орындалмаған жағыдайда массивтің келесі элементіне қатынас жасауды ұйымдастыруға өте керек.

       Массив элементтерін талдаудың бұл процедурасын блок-схема  түріне көрсетуге болады.

     


 

    Бұл  процедураның А массивтің ендіру  және хабарлау операторлары жоқ  мына программа жүзеге асырылады.

          60 N=O

          70 FOR I=1 TO K

          80 IF A(I)>L THEN N=N+1

          90 NEXT I

          100 PRINT "N="; N

          110 END

Бірнеше белгілі массивтер бойынша 

жаңа  массив алу

 

    Алгоритмнің  бұл түрін жүзеге асыру үшін  өлшемдерді бірдей А(I) және В(I), (I=1,2,...,К) массивтер бойынша С(I), (I=1,2,....,К) массивтің элементтерін алуға арналған қарапайым есепті қарастырамыз. С(I) массивінің элементтері мына формуламен анықталады: С (I)=A(I)+B(I)

    Есепті  шешу алгоритмі А(I)және В(I) массивтерінің       элементтерін I бойынша 1-ден К-ға дейін өзгеретін цикл арқылы алып, барлық С(I)=A(I)+B(I) массивін есептеуге келіп тіреледі. Сонда бұл есепті шешетін программаның түрі мынадай болады:

 

10 INPUT"K=";K

20 DIM A(K),B(K),C(K)

30 FOR I=1 TO K

40 INPUT A(I),B(I)

50 NEXT I

60 FOR I=1 TO K

70 C(I)=A(I)+B(I)

80 PRINT C (I)

90 NEXT I

100 END

 

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

60-тан 90-ға дейінгі операторлар С массивінің элементтерін ретімен монитрр экранына шығаруды ұйымдастырады.

80-операторды массивті есептейтін циклге қосу С массивін баспаға шығаруға арналған арнайы циклді ұйымдастырудан құтқарады.

 

 

 

 

Массив элементтерін терістеу

  

     К элементтен тұратын А массив элементерінің жазылу ретін керісінше ауыстыру қажет.

        Бұл  есепті шешу үшін бастапқы массив элементтерінң  бірін транзит ретінде сақтаушы қосымша айнымалыны ендіру талап етіледі. Бұл айнымалыны G әріпімен таңбалайық.

       Алдымен бірінші және К – элементтердің орындарын өзара алмастыру керек. Ол үшін А (І) элементінің мәнін G(С=А(І)) айнымалысына, содан соң К – элементінің мәнін А(І)=А(К) бірінші элементке, одан кейін бірінші элементтің мәнін G айнымалысынан К- элементке А(К) =G меншіктейміз. Массивтің ортасына жеткенше А(І) және А(К-І+1) элементтердің қалған жұптарымен дәл осыған ұқсас әрекеттер жасаймыз. Алмастырылуға тиісті соңғы элементтер, егер К жұп сан болса А (К/2) және А(К /2), ал егер К жұп сан болса, онда А ([K/2]) және A([K/2]+2) болады. [K/2] операциясы К/2 бөліндінің нәтижесінен бүтін санды алуды бейнелейді. BASIC тілінде бұл үшін INT функциясын пайдалануға болады.

        Осылайша, программада әрқайсында  массив элементтерін терістейтін  [K/2] қадамнан тұратын цикл ұйымдастыру керек.

        Мына төмендегі программа жоғарыда  айтылғандарды жүзеге асырады. 

    

         10 INPUT «К=»;К

         20 DIM A (K)

         30 FOR I=1 TO K

         40 INPUT A(I)

         50 NEXT I

         60 M= INT (K/2)

         70 FOM I=1 TO M

         80 G=A(I)

         90 A(I)=A(K-I+1)

         100 A(K-I+10=G

         110 NEXT I

         120 FOR I = 1 TO K

         130 PRINT A(I)  
         140 NTXT I  
         150 END

 

Массив элементінің және онын индексінің

ең үлкенін (ең кішісін) іздеу

   

        К саннан тұратын А массивінің ең үлкен элементін және оның индексін іздеу үшін екі қосымша айнымалы ендіруге тура келеді.

  • Бірінші М массив элементінің ағымдағы ең үлкен мәнін сақтау үшін;
  • Екіншісі N ағымдағы ең үлкен мәннің индексін сақтау үшін;

  Бұл есептің шешеімі А массивінің әрбір элементін М – нің ағымдағв ең үлкен мәнімен бірінен соң бірін ретімен салыстыру арқылы табылады. Егер А (І) элементінің мәні М –нің мәнінен үлкен болса, онда М ретінде осы элементтің               

М=А(І) мәні қабылданады, ал N айнымалысы оның N=І индексінменшіктейді. Осы жоғарыда айтылған жағдайға қарама – қарсы жағдайда, яғни басқаша айтқанда әзірше    І<  К болса, онда массивтің келесі кезектегі элементін қарастыруға өту жүзеге асырылады.

        Мұнда тағы М және N бастапқы мәндерін анықтау талап етіледі.

        Егер массив элементінің бастапқы ең үлкен мәні ретін – де оның М = А(1),N=1 бірінші элементін  алсақ және онымен екінші элементтен бастап массивтің қалған элементтерін циклді түрде салыстырсақ ол өзін-өзі ақтайды.

        

       Бұ.л алгоритм мына программамен жүзеге асырылады:

   10 INPUT “K=”:K

   20 DIM A(K)

   30 FOR I= 1 TO K

   40 INPUT A(I)

   50 NTXT I

   60 M= A(1):N=1

   70 FOR I =2 TO K

   80 IF M < A(I) THEN M= A(I):N=1

   90 NTXT I

   100 PRINT “M=’:M: “N=”:N

   110 END

 

 

      Сонымен, бұл есепті шешу алгоритмінің блок – схемасы мына төменде көрсетілген.

                                                               

     М=A(1)                        



      N=1                 


 

I=2



                                                     Иә



                                                   Жоқ





                         Иә 




                                            жоқ

 

 

    Жоғарыдағы программада 60-қатар М және N айнымалыларына бастапқы мәндер меншіктейді, ал циклге (70-90 операторлар) екінші элементтен бастап А (І) массивінің әрбір элементін айнымалымен бірінен соң бірін ауыстыру жүзеге асырылады. 80 – операторда М<A(I) логикалық шарты орындалысымен (М=A(I)) массивінің 1-элементі ең үлкен элемент ретінде есте сақталынып қалады, ал N айнымалысына І-дің мәні меншіктеледі. Бұған кері жағдайда программа әзірше І<К болатын есептеуші циклді жалғастырады және І индексін арттыратын 90-операторға өтеді.

     Бұл программа бірімен бірдей бірнеше ең үлкен элементтер болған жағдайда, олардың ішінен біріншісінің N индексінің баспаға шығарады.

     Массив эхэлементтерінің ең кіші мән іздеуде программа өзінің құрылысын сақтайды, тек 80-оператордағы қатынас операциясының таңбасы «>» болып өзгереді.

 

 

Массивті реттеу

  

     К санынан тұратын А массивінің элементтерін өсу (кему) ретіне қарай орналастыру қажет болсын.

     Бұл есепті шешудің бірнеше тәсілдері бар. Бұл жерде біз солардың бірі «көпіршік тәсілін» қарастырамыз.

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

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

      Бұл есептің ерекшелігі сол массивтің өлшемі К және оның элементі А(І) (І=1,2...,К) бастапқы берілгендер болып табылады, ал нәтиже сол А массивінің өзі болады, бірақ ол реттелген болады.

     Қосымша айнымалылар ретінде мыналар пайдаланылады:

  • М – ағымдағы ең кіші элементті сақтайды;
  • N – ең кіші элементтің индексі;
  • І – реттелген массив элементінің индексі (сыртқы циклдің басқарушы айнымалысы);
  • J – ең кіші элемент ізделетін массив бөлігіндегі элементтің индексі (кіші  циклдің айнымалысы).

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

                     •

                     •

                     •

60 FOR I=1 TO K-1

70 M=A(I)

80 FOR J=I+1 TO K

90 IF A (J)<M THEN M=A (J): N=J

100 NEXT J

110 A (N)=A(I)

120 A(I)=M

130 PRINT A (I)

140 NEXT I

150 END

70-100 операторлар массивінің қалған бөлігінен ең кіші элементті іздеудің стандартты  процедурасын іске асырады, ал 110-120 операторлар кезектегі реттелмеген А(І) элементін табылған ең кіші М элементімен ауыстырады.

    А массивін кему бағытында реттеуде келтірілген программада 90-оператордағы қатынас операциясының таңбасы «>» болып өзгереді.                

 

Компьютерлік  желілер. Желілер түрлері

 

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

    Қала, облыс,  ел ішінде орналасқан желілер аймақтық деп аталады. Егер олар қайсы бір ұйымға немесе ұйымдар тобына қарасты болса, онда корпаративтік деп аталады. Мысалы, Қ.Р-ның Ұлттық банкінің желісі – Banknet, негізгі банктің компьютерлерін оның барлық филиалдарының компьютерлерімен (аудандық бөлімшелерін қосу) біріктіреді.

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

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

    Компьютердің ресурстары ақпараттық және техникалыққа бөлінеді. Ақпараттық ресурстарға программалар және деректер, ал техникалықтарға – принтер, модем, сканерлер, график сызғыштар кіреді. Ақпарат сақтау құралдары СD-ROM, ZIP, DVD сияқтылар ақпараттық ресурстарға кіреді. Олар программалар және деректері бар қапшықтар ретінде қаралады. Оларға қосылу логикалық дискіге жасалғандай жүзеге асырылады. Орналасқан компьюткрінен ғана қол жеткізуге болатын ресурстар жергілікті деп аталады. Желінің басқа компбютерлеріне де ашық компьютер ресурстары ортақ немесе желілік деп аталады. Жергілікті және ортақ ресурстар түсініктері шартты. Бұл – жергілікті ресурсты ортақ етуге болады және, керісінше ортақ ресурсқа жергілікті мәртебесін беруге болады.

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