Циклды ұйымдастыру және матрицаны өңдеу

Автор работы: Пользователь скрыл имя, 23 Декабря 2011 в 06:17, курсовая работа

Описание

Қазақстан Республикасындағы білімді ақпараттандыру жүйесі ары қарай дамыту процесін оқып үйренудің ақпараттық ресурсы болып табылатын оқытуға арналған программалық құралдарды дайындамай жүзеге асыруы мүмкін емес. Олардың атқаратын қызметтерінің ауқымы кең, мысалы, бақылайтын және тест жүргізетін программалар, компьютерлік ойындар, ақпараттық жүйелер, оқыту орталары, электрондық оқулықтар және мультимедиалық программалар.

Работа состоит из  1 файл

Курсовой Боранова 3-курс.doc

— 755.50 Кб (Скачать документ)

   Program EYOB; {Екі санның ең үлкен ортақ  бөлгішін табу}

        Var n,x,m,e,y:integer;

   Begin

        Write(‘m,n sandarin engizinder:’);

         Readln(m,n);

         x:=m; y:=n;

         Repeat

                  if x>y then x:=x-y else y:=y-x;

         UNTIL x=y;

        e:=x;

          Writeln(‘En ulken ortak bolgish=’,e);

   End.

   Нәтижесі:

   m,n sandarin engizinder: 87 54

   En ulken ortak bolgish= 3

    3-мысал. Кез келген бүтін п үшін п! есептейтін программа құру керек.

1-нұсқа. мұндағы п алдымен 1-ге тең болып, сонан соң әрбір қайталау кезінде ол бірге өсіп отырады.

Алгоритмдік тілде Паскаль тілінде
алг  факториал1 (бүт п,і, нақ р)

алг п,і

нәт р

басы

р:=1

i:=0

әзірше  i<n

цб

i:=i+1

p:=p*i

цс

шығару  р

соңы

program factorial1; {факториал есептеу}

  var n,i:integer; p:real;

begin

     write(‘n санын енгізіңдер:’); {бүтін n санын енгізу}

     readln(n);

     p:=1; i:=0; {p-ағымдағы факториал мәні}

while i<n do {i-қайталау саны}

     begin

          i:=i+1; p:=p*i;

     end;

  writeln(‘n!=’,p:3:2);

end.

Нәтижесі: n санын енгізіңдер: 3

n!=6.00

  2-нұсқа. Бұл нұсқада n! мәні n мәнін біртіндеп кеміту арқылы орындалады, яғни n!=n(n-1)(n-2)…3*2*1.

   Program factorial2;

   Var n:integer; p:real;

    begin

            Writeln(‘n sanin engizinder:’);

          readln(n);

           p:=1;

       repeat

                p:=p*n; n:=n-1

       until n=0;

            writeln(‘n!=’,p);

   end.

Нәтижесі: n санын енгізіңдер: 4

   n!=24.00

 
 

   2.4  FOR операторы

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

     Оператор FOR сөзінен басталатын оның тақырыбынан және цикл тұлғасынан тұрады да, синтаксистік диаграммасы 5-суреттегідей болып кескінделеді.

                               5-сурет.  For операторының  диаграммасы

     Диаграммаға сәйкес оның жазылуы екі түрде болады:

     For <айнымалы>:=<S1> to <S2> do < оператор>;

     For < айнымалы >:=<S1> downto <S2> do < оператор >;

мұндағы S1 және  S2-цикл параметрінің алғашқы және соңғы мәндерін айқындайтын өрнектер; for…do-цикл тақырыбын анықтайтын түйінді сөздер; < оператор>-цикл тұлғасы.

     FOR- үшін, TO- дейін, DO- орындау деген мағынаны беретін түйінді сөздер. Паскаль тіліне цикл параметрі міндетті түрде бүтін немесе реттелген типтегі айнымалы болуы қажет. Параметрдің өзгеру қадамына байланысты операторда TO немесе DOWNTO(DOWN-төмен, TO-дейін, DOWNTO-кері қарай) түйінді сөздер пайдаланылады. Егер қадам +1-ге тең болса, онда операторда TO, ал қадам -1-ге тең болса, онда  DOWNTO сөзі қолданылады. Параметрдің бастапқы және соңғы мәндері бүтін сан түрінде немесе өсуі, кемуі бойынша реттелетін болуы тиіс, әйтпесе оларды бүтін мән беретін арифметикалық өрнек түрінде жазуға да болады.

       FOR операторының орындалуы блок-схемасы түрінде 6-суретте бейнеленген.                    

        Цикл тұлғасы (блок-схемадағы <оператор>) жай немесе құрама оператор болуы мүмкін. FOR операторының жұмысы цикл параметрінің алғашқы мәнінен соңғы мәніне дейінгі аралықты бірлік қадаммен қайталап өтпей тоқталмайды.   6-сурет. For операторының болк-   

                                                                                                схемасы

      Цикл тақырыбы:

  • басқару айнымалысының (цикл параметрі) өзгеру диапазонын және цикл ішіндегі операторлардың қайталану санын;
  • цикл параметрінің өзгеру бағытын (өсуі- to, кемуі- downto) анықтайды. 

     Мысалы:

For k:=1 to 100 do Read (M[k]);                     {жиын элементтерін оқу};

For k:=10 downto 1 do Write (M[k]);             { жиын элементтерін жазу};

     FOR операторы алғаш орындалардан бұрын S1 және S2 өрнектерді есептеледі де, цикл параметрі  S1 меншіктеледі, яғни  <цикл параметрі>:=S1 операторы жүзеге асырылады.

     Осыдан кейін цикл ішінде келесі  әрекеттер орындалады:

  1. ‘’Цикл параметрі‘’>S2 шарты тексеріледі (S1<S2 болғанда) немесе  ‘’цикл параметрі‘’ S2 шарты тексеріледі (S1>S2 үшін).
  2. Егер шарт жалған болса, онда FOR циклі ішіндегі операторлар орындалады. Ал, егер шарт орындалса, яғни ол ақиқат болса, онда цикл тұлғасы орындалмай, FOR операторынан кейін тұрған жол атқарыла бастайды.
  3. Басқару айнымалысының мәні 1-ге өседі (To) немесе 1-ге кемиді (downto) де, әрі қарай FOR операторы қайталанып орындала береді.
  4. Цикл орынадалуы барыcында оның параметрінің мәнін өзгертуге болмайды (мысалы, меншіктеу операторы көмегімен).
  5. Егер цикл көшу операторы көмегімен тоқтатылмаса, онда цикл аяқталған соң, басқару параметрінің мәні анықталмаған болып саналады.

      FOR операторы параметрінің мәндеріне байланысты, циклдің қайталану санын былай анықтауға болады.

    Оператор      S1<S2 S1=S2      S1>S2
FOR …  TO …

FOR …  Downto …

S2-S1+1рет

орындалмайды

1 рет

1 рет

Орындалмайды

 S1-S2+1рет

                                    

   

 
 

Мысалдар:

      Оператор            Нәтижесі
For i:=1 to 6 do

For i:=6 downto 1 do

For C:=’a‘  to ‘e’ do

For C:=’e’  downto ‘a’ do

Write (i:2); 1 2 3 4 5 6

Write (i:2); 6 5 4 3 2 1

Write (C:2); a b c d e

Write (C:2); e d c b a

  

 
 
 
 
 

  4-мысал. 1-ден 100-ге дейінгі натурал сандардың қосындысын табу керек:

Program symma;

var i,s:integer;

  begin

       s:=0;

       for i:=1 to 100 do s:=s+i;

   writeln(‘ kosindi=’, s:6);

End.

Нәтижесі:

kosindi=5050

 
 

2.5  Күрделі циклдер

      Егер бір цикл тұлғасында басқа циклдік құрылым бар болса, онда олар қабатталған циклдер деп аталады. Құрамында басқа цикл кіретін цикл сыртқы болып саналады да, сыртқы цикл тұлғасына кіретін цикл ішкі болып есептеледі.

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

      Күрделі циклдер қарапайым While, repeat, for циклдері сияқты құрыла береді, бірақ қабатталған циклдер құру кезінде мына ережені ұстау қажет: ішкі циклдің барлық операторлары сыртқы циклдің ішінде орналасуы тиіс.

     Күрделі циклдің құрамын төмендегі  көбейту кестесін жасау мысалынан көруге болады. Бұл мысалда for операторын пайдаланыланып, 2-ден 9-ға дейінгі көбейту кестесі бір бағанға шығады.

5-мысал. Program Kobeity;

Var I,j:byte;

  Begin

      For i:=2 to 9 do

         Begin

                For j:=1 to 10 do

                    Writeln(i,’x’,j,’=’,i*j);

               Writeln

         End;

  End.

Нәтижесі:

2x1=2

2x2=4

2x3=6

2x4=8

2x5=10

2x6=12

2x7=14

2x8=16

2x9=18

2x10=20

3x1=3

3x2=6

3x3=9

3x4=12

3x5=15

3x6=18

3x7=21

3x8=24

3x9=27

3x10=30

4x1=4

4x2=8

4x3=12

4x4=16

4x5=20

4x6=24

4x7=28

4x8=32

4x9=36

4x10=40

5x1=5

5x2=10

5x3=15

5x4=20

5x5=25

5x6=30

5x7=35

5x8=40

5x9=45

5x10=50

6x1=6

6x2=12

6x3=18

6x4=24

6x5=30

6x6=36

6x7=42

6x8=48

6x9=54

6x10=60

7x1=7

7x2=14

7x3=21

7x4=28

7x5=35

7x6=42

7x7=49

7x8=56

7x9=63

7x10=70

8x1=8

8x2=16

8x3=24

8x4=32

8x5=40

8x6=48

8x7=56

8x8=64

8x9=72

8x10=80

9x1=9

9x2=18

9x3=27

9x4=36

9x5=45

9x6=54

9x7=63

9x8=72

9x9=81

9x10=90

Информация о работе Циклды ұйымдастыру және матрицаны өңдеу