“Үшін” циклы. FOR, NEXT операторлары. Цикл ішінде цикл

Егер цикл де  қайталану саны белгілі болса,  программада  “Үшін” циклон пайдаланған дұрыс.  Бейсикте  бұл құрылымның  жүрілісі:

FOR  k=k0  TO  Kn  [STEP H]

S

NEXT<[цикл параметрі]>

FOR-  цикл басының операторы,  не цикл  тақырыбы деп.,NEXT-цикл соңы операторы деп., К-цикл параметрі,  цикл санауыш,  не басқарушы  айнымалы деп те аталады;  K0  мен  Kn-параметрдің ,  бастапқы және соңғы мәндері. (FOR-үшін, NEXT-келесі,  n-қадам ұзындығы,  s-цикл денесі)

Цикл денесі басқарушы айнымалының мәні К0-ден бастап Kn-нен асқанға дейін қайталанып орындала береді. Құрылымда көрсетілгендей , FOR  операторының құрамында   TO  (дейін)  және  STEP  (қадам)  қызметші сөздері бар.  Егер n=1  болса,  STEP H  қызметші сөзін  праграммада тастап кету де мүмкін, NEXT операторында да  цикл параметрін жазбауға болады,  ол жазылған кезде басқарушы айнымалы атымен бірдей болуы тиіс. Цикл санауыш Бейсикте рұқсат етілген кез-келген идентификатор бола алады.  K0,  Kn,  n-бүтін, бөлшекте, теріс сандар немесе  арифметикалық  өрнек түрінде берілуіде  мүмкін.

Өткен тақырыптағы  факториалды  есептейтін  программаның  FOR-NEXT  операторын  пайдаланып құрылған түрі:

  1. REM Факториал
  2. INPUT”n=”; N& R=1
  3. FOR k>1  TO  N
  4. k=k*k
  5. NEXT
  6. PRINT “ ”n” 1=”; R
  • END

Бұл программаның 20-жолына к=1  командасының  кіргізілмегені  көрініп  тұр,  ал FOR  операторында  бірінші жолы пайдаланылады.

Ескерту. FOR  k=k0  TO  Kn  STEP H циклінде  K0>Kп , n>0  болса,  цикл орындалмай,  тастап кетіледі,  сондай-ақ   k0<Kn  және  n<0 болса да.

Мысалы   y=ln(1+x)/(x^2+1) функциясын   [0; 1]  кесіндісінде  c.2  қадам бойынша  кестелеу керек.

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

  • REM кестелеу
  • INPUT “a, b, n=”;  A, B, N
  • H=(B-A)/N
  • PRINT STRING $  (38, “-”)
  • PRINT “k”;  TAB  (4)  “/”;  TAB  (10)  “x”;  TAB  (20) “/”;  TAB (26) “4”; TAB (38) “/”;
  • PRINT STRING $ (38, “-”)
  • FOR k=1  TO  N
  • X=A+K*H
  • Y= LOG (1+X)/(S^2+1)
  • PRINT “K”;  TAB (4) “/”; TAB (10) X:TAB (20) “/”; TAB (22) Y:TAB (38) “/”;
  • PRINT STRING $ (38, “-”)

Rub

?-0,  1,5

  К        х       Y
    0       .0         0
    1       .2      .175309
     …      …       …
      5       10       .346573

Программада:

20: a,b,n- мәндерін ендіру (а=0, в=1, n=5, n-[a,b] кесіндісін тең бөліктерге бөлу саны); 30: h мәнін есептеу (егер 20- жолға n-нің орнына h енгізілсе 30- жолдағы меншіктеу командасын N=INT((B-A)/h)  түрінде жазу керек. 40-60 кесте басындағы екі кесіндіні сызып, аралығына k,x,y айнымалыларын енгізу: 70-110: цикл х=в-ға дейін (b=a+n*h) y функциясының мәндерін n қадаммен жай дәлдік бойынша есептеу, кестеге сызу (100 жол) 120: кестенің төменгі сызығын сызу.

Цикл ішінде цикл

Бейсикте цикл ішінде циклдің жазылу түрі.

FOR  K=K0  TO  Kn

FOR  J=J0     TO  Jn

S

NEHT  j:  NEHT  K

Мұндағы j – ішкі цикл параметрі, К – сыртқы цикл параметрі, NEHT J: NEHT  K операторын N=x,j,k  түрінде жазу да мүмкін       (бірінші параметр ішкі цикл параметрі болуы тиіс)

Мысалы:   Көбейту кестесін есептеп , көбейту нәтижелерін экранға шығару керек.

10  REM   кесте

  • FOR K=1  TO  10
  • FOR j=1  TO  10
  • A=K*J

50   PRINT  USING   “###”; A:

  • NEHT j
  • PRINT K
  • NEHT K

Программадағы сыртқы цикл параметрі бірінші мәнді қабылдаған кезде (К=1 кезінде) ішкі цикл параметрі кезектен 1,2,3,4,5,6,7,8,9,10 мәндерін қабылдап шығады да , 50- Жол 40- жолдың орындалу нәтижесі болатын мәндерді (1,2,3,4,5,6,7,8,9,10 сандарын) бір жол бойында экранда көрсетеді. 50- жол соңына нүктелі үтір символы сол үшін қойылған.  70- жолдың орындалу нәтижесінде курсор экранның бір жолын бос тастап кетіп, онан соңғы жол басына орналасады. Бұдан әрі ішкі цикл к=2 үшін орындала бастайды.т.с.с

Программаның орындалу нәтижесінің матрица түрінде экранда көріну түрі мынадай:

1   2   3   4   5   6   7   8   9   10

2   4   6   8   10   12   14   16   18   20

  • •     •     •     •     •     •    •    •     •    •
  • 20 30  40  50  60  70  80  90  100

Кестенің әр бағанында көрінген сандардың соңғы цифрлары әр баған бойында жазылуы, ол PRINT USING операторының әрекеті (оператора әр сан үш орындық цифрлар тізбегімен тұратын атіп шығару енгізілген орындар оң жақтан бастап есептеледі)

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

Правка→Редактирование→Новая сув

Subvoutine →процедура-акыл.

Диалогтың терезеде процедура атын енгіземіз. Атына типті білдіретін символды тіркеп жазудың қажеті жоқ.

SUB процедура аты

END  SUB

Мысалы:  Тік бұрышты үшбұрыштың гипотенузасын есептейтін процедура құру керек.Катеттер берілген.

SUB  Gipotenusa  (A,B)

C= SAR (A^2+B^2)

PRINT  C

END  SUB

Процедураны негізгі программаның кез-келген жерінде шақыру үшін төмендегі екі тәсілдің бірін пайдаланамыз.

  • CFLL GIPOTENUSA  (a,B)
  • GIPOTENUSA A,B

ҮСҮ табу процедурасы.

SUB  ҮСҮ (A,B,C)  DECLARE  SUB  GIPO  TENUSA  (A,B)

IF  A>B  THEN DECLARE  SUB  ҮСҮ (A,B,C)

X=A  INPUT  A,B,C,D,E

ELSE  GIPOTENUSA  A,B

L=B  CALL  ҮСҮ  (C,D,E)

END  IF

IF  x>c  THEN

X=X

ELSE

X=C

END  If

PRINT  X

END  SUB

«Baribar.kz-тің» Telegram-каналына жазыламыз!