Циклдер


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

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

        Сабақты Qbasic бағдарламалау тілін оқып-үйрену барысында қарастырған циклдің түрлері мен анықтамасынан бастауға болады (оқулықтағы 2.6. тақырыпты қара).

             Қайталау саны белгілі                                                  Қайталау саны белгісіз          

             болған жағдайда                                                          болған жағдайда

                for I=Iбаст  to Iсоңғы  [Step Iқадам]                         While  шарт

                   цикл денесі                                                             цикл денесі

                      Next I                                                                      Wend

               Алдын ала шарт                                                          Келесі шарт

              бойынша қайталау                                               бойынша қайталау

             Do[While/Until условие]                                                   Do

               цикл денесі                                                                   цикл денесі

                  Loop                                                                 Loop[While/Untilшарт]

Ары қарай келесі мысалды шешуді ұсынуға болады.

 

1-мысал. Қазына бойынша түсетін пайданы есептеу бағдарламасын жазу. Бағдарлама жай және күрделі пайыздарды есептеуді қамтамасыз етуі қажет. Жай пайыздар салымының аяғында есептелінеді, ал  күрделі салымдар –  ай сайын есептеледі, және бастапқы қазынаның бастапқы санына қосылып отырады және келесі айда пайызы жаңа күнмен есептелінеді. Пішім ұсынылған түрі суретте келтірілген.

Код:

‘Есептеу батырмасын шерту

Private Sub Command1_Click ()

Dim sum As Single                               жинақ соммасы

          Dim pr As Single                                  пайыздық көрсеткіші

          Dim srok As Integer                              жинақ мерзімі

          Dim dohod As Single                            ‘жинақ бойынша түсетін пайда

          Dim buf As Single                                

          Dim  i As  Integer                                 циклдің айнымалысы         

  ‘алынған бастапқы деректер

sum=Val (Text1.Text)

srok=Val (Text2.Text)

pr= Val (Text3.Text)

   If Option1.Value=True Then

Жай пайыздарға қосқыш таңдалынды

dohod=sum*(pr/100)*(srok/12)

Else

‘Күрделі пайыздарға қосқыш таңдалынады

buf=sum

For i=1 To srok

   buf=buf+buf*(pr/100)

‘уақыт соңында барлық жинақ buf-ге жазылады

dohod= buf –sum

 Next i

End If

sum=sum+dohod

Label4.Caption= “Пайда:”+Str(dohod)+Chr(13)+ 'уақыт соңында барлық жинақ:+Str(sum)

End Sub


‘Жай пайыздарға қосқыш таңдалынады

Private Sub Option1_Click()

         Label2.Caption= “Срок (дней):

         Label4.Caption= “ ”

End Sub

 

‘Күрделі пайыздарға қосқыш таңдалынады

Private Sub Option1_Click()

Label2.Caption= “Мерзім (ай):

Label4.Caption= “ ”

End Sub

2-мысал.  Шарлар  үшбұрыш пішімінде  былай бірінші қатарда бір шар,  екіншіде екеу, үшіншіде –үшеу және т.б. етіп орналасқан. Егер N шар бар болса, онда, қанша қатар тұрғызуға болады? Бағдарлама құрыңдар. Пішімнің және бағдарламаның түрі мен үлгісі төменде көрсетілген.

Dim n As Long, p As Long, k As Long

Private Sub Command1_Click ()

n=Val(Text1.Text)

p=0

k=0

Do While p<n

k=k=+1

p=p+k

Loop

Text2.Text=Str(k)

End Sub

 

Private Sub Command2_Click ()

If MsgBox(“Қайта есептегін келе ме?”,4+32+0, “ ” )=6 Then

Text1.Text= “ ”

Text2.Text= “ ”

Text1.SetFocus

Else: End

End If

End Sub