Алгоритм. Алгоритм қасиеттері

Автор: Пользователь скрыл имя, 06 Января 2012 в 21:54, реферат

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

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

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

алгоритм касиеттери.doc

— 1.14 Мб (Скачать)

     Енді  әр құрылымның анықтамасын келтіреміз.

     «Ілесу» алгоритмі деп бірнеше әрекеттер  тізбегін айтады; оған айнымалыны енгізу, айнымалының мәнін есептеу және есептеу нәтижесін шығару жатады.

     «Тармақталу»  алгоритмінде есептің шешімі қойылған шартқа байланысты болса, онда әрекеттер  тізбегінің таңдауы ұйымдастырылады.

     «Таңдау»  алгоритмінде көп сериялы тармақталу командасы пайда болады.

     «Қайталану» алгоритмі (циклдық) деп кейбір әрекеттердің қойылған шартқа байланысты бірнеше  рет қайталануын айтады.

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

     Алгоритмге  енгізілетін түрлі сериялық командалардың  әр сериясының бір блок деп қарастырып, оларды S1, S2, ... арқылы белгілеп алайық. «Ілесу» құрылымы – ретімен орындалатын  блоктар: 
 
 

       
 

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

      «Ілесу» алгоритмнің блок-схемасын көрсетейік.  
 

 

Сурет 1. Ретімен  орындалатын блоктар 
 
 
 
 

     Алгоритмді  жазу ережесі төмендегідей болады: 
 
 

    алг <алгоритмнің аталуы>

            басы

   шамаларды енгізу

                  есептеу жүргізу

                  нәтижесін шығару

            соңы 
 

      Сызықты структуралы алгоритмді Паскаль тілінде құрылған программа түрінде келесі мысалда қарастырамыз.  

      Program Hello;  

          const vopros=’Атыңыз кім?’;

          var name:string;

      begin

         writeln(vopros);

         readln(name);

         writeln(‘Hello,’,name,’!’);

         readln

      end. 
 

      Программаның  бірінші жолында аталуы көрсетіледі (Hello). Программаның аты резервтелінген program сөзінен басталады.Әр жолдың соңында үтірлі нүкте қойылады. Келесі жолда қолданылатын деректер: мәні ’Атыңыз кім?’ деген мәтіндік тұрақты және символдық типті name айнымалысы. Программада қолданылатын деректер ең басында айтылып кетеді. Айнымалылар бөлімі резервіленген var сөзінен басталады.  

      Const <тұрақтының аты>=<тұрақтының  мәні>; 

      Var <айнымалы аты>,…,<айнымалы аты>:<типтің аталуы>; 

      Программаның  басталуын begin сөзі білдіреді. Программаның денесінде 2 команда орындалады. Біріншісі writeln мониторға ’Атыңыз кім?’ сөйлемін шығарады. Келесі readln  командасы пернетақтадан ақпараттың енгізілуін күтеді.

      Келтірілген программа сызықты программа  деп аталады, өйткені мұнда тек  енгізу мен шығару амалдары орындалады. Бұндай программаларда тек Read немесе Readln ақпаратты енгізу операторлары, меншіктеу операторлары және Write немесе Writeln нәтижені шығару операторлары пайдаланады.

      Программаны теріп болғаннан кейін компиляция жасалады Ctrl + F9 пернелерінің басылуымен немеесе мәзірдегі Run/Run командалары. Одан ары (егер қателер болмаса) программа орындалады, оның нәтижесін көру үшін Alt + F5 пенелерін басады. Нәтижесінде қара мониторда келесі мәтін пайда болады: 

      Атыңыз кім?

      Меңзер  жаңа жолдың басына тұрып, Сіздің пернетақтадан атыңызды енгізгенін күтеді, (мысалы Қайрат), Enter басып, экранда:

      Қайрат

      Hello, Қайрат!

      Енді Enter пернесін басып Сіз рограммалау  ортасына қайтасыз. 
 

      Басқарушы базалық структуралар. «Тармақталу» базалық структурасы  

      «Тармақталу» алгоритмда міндетті түрде шарт қойылады. Шарт – тексеру нәтижесінде «иә» (ақиқат) немесе «жоқ» (жалған) логикалық мәндерін қабылдайтын логикалық өрнек (пікір). Мысалы, “x<1”, “x>5”, “x+2=x”, “5+3=8” сияқты ой-пікірлер. Мұндағы 5+3=8 – шын пікір, x+2=x – жалған пікір. Осы сияқты, x-тің бір мәні үшін x>5 шарты сақталса, шартты тексеру «ақиқат» деп, сақталмаса «жалған» деп нәтижеленеді.

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

     егер Р  егер Р

                                
 

           онда S1      онда S

           әйтпесе S2     бітті

     бітті  
 

      «Тармақтың» толық түрі   «Тармақтың» қысқа түрі 
 
 

     Енді  осы түрлерін блок-схемада көрсетейік. 
 

       
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

     Алгоритмдік тілде шарттың да екі түрі бар: 

  1. жай шарт >, >=, =, <=, <> қатынас таңбаларының бірімен біріктірілген екі өрнек (логикалық өрнек). Мысалы, x>3, x=4, sqrt(x)<=0.001 – жай шарттар.
 
  1. құрама  шарттар – және, немесе, емес қызметші сөздері арқылы біріктірілген екі не одан көп жай шарттар. Мысалы, (x>0) және (у>0),  (x>0) немесе (х<4), емес (x>2) және (х<=4). Құрама шарт ретінде әйтпесе шарты да жиі пайдаланады.
 

     Паскаль программалау тілінде тармақ құрылымды  программаны ұйымдастыру үшін өту, шартты және таңдау операторлары пайдаланады.  

     ▲ Өту операторының жазылу ережесі:

     Goto n, мұнда  n – таңбаша.

     Өту операторының көмегімен басқару n таңбашамен белгіленген операторға жүктеледі. Ары қарай операторлар ретімен  орындалады.

      

 

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

     if <шарт> then <оператор1> else <оператор2>;      - тармақтың толық түрі

     немесе

     if <шарт> then <оператор1>;   - тармақтың қысқаша түрі 
 

     Мысал 1. функцияның мәнін анықтайтын программа құрыңыз. b-y=0 шартын тексеруді қарастырыңыз. 
 

      Program Func;

            label 2,4;

            var b,y,z:real;

         begin

            readln(b,y);

            if b-y=0 then goto 2;

            z:=ln(b-y)/sqrt(b-y);

            goto 4;

          2:z:=0.0;

          4:write(z)

        end. 
 

      Мысал 2. Тармақты пайдаланатын программаны  ұсынамыз. 
 

      Program Dialog;

            const vopros=’Атыңыз кім?’;

                  otvet1=’Сіз жассыз!’;

                  otvet2=’Сіз жассыз және таланттысыз!’;

                  otvet3=’Сіз ақылдысыз және әдемісіз!’;

                  otvet4=’Сіз өмірді көргенсіз!’;

            var name:string;

                   age:byte; 

         begin

            writeln(vopros);

            readln(name);

            writeln(‘Hello’,name,’!’);

            writeln(‘Жасыңыз нешеде?’);

            readln(age);

            if age <15 then writeln(otvet1)

               else if age<20 then writeln(otvet2)

                else if age<30 then writeln(otvet3)

                 else writeln(otvet4)

      end.

      «Таңдау»  базалық структурасы.

                                

     Көп сериялы (екі сериядан артық) тармақталу командасын таңдау командасы деп  атайды. Бұндай «Таңдау» алгоритмінде командалар тізіміне әйтпесе нұсқауын енгізбеуде мүмкін. ЭЕМ таңдау командасында сақтаған шартқа сәйкес блокты орындайды да, құрылымнан тыс берілген кезекті команданы орындауға кіріседі. «Таңдау» структурасында таңдау, жағдай, әйтпесе, бітті қызметші сөздер қолданылады. 
 

     таңдау

           жағдай S1

           жағдай  S2

           .......................

           жағдай Sn

           әйтпесе S(n+1)

     бітті 
 
 
 

         «Таңдау» командасының құрылымы 
 

     Енді  «таңдау» құрылымның блок-схемасын қарастырамыз. 
 

 
 
 

      ▲ Паскаль алгоритмдік тілінде программа құру кезінде таңдау операторының жазылу үлгісі:  
 

      Case <селектор> of

      <жағдай1>:<оператор 1>;

      <жағдай2>:<оператор 2>;

      

      <жағдай n>:<оператор n>

      else <else бөлімінің операторы>

      end; 
 

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

      Program Dialog 1;

            const vopros=’Атыңыз кім?’;

                  otvet1=’Сіз жассыз!’;

                  otvet2=’Сіз жассыз және таланттысыз!’;

                  otvet3=’Сіз ақылдысыз және әдемісіз!’;

                  otvet4=’Сіз өмір көргенсіз!’;

            var name:string;

                   age:byte;

       

        begin

            writeln(vopros);

            readln(name);

            writeln(‘Hello’,name,’!’);

            writeln(‘Жасыңыз нешеде?’);

            readln(age);

            case age of

            0..14: writeln(otvet1);

Информация о работе Алгоритм. Алгоритм қасиеттері