“Үшін” циклі. Цикл ішінде цикл

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

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  операторын  пайдаланып құрылған түрі:

REM  Факториал

INPUT ”n=”; N:  R=1

FOR  k=1  TO  N

R=R*k

NEXT k

PRINT  n; ” !=”;  R

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

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

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

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

REM  кестелеу

INPUT  “a, b, n=”;  A, B, N

H=(B-A)/N

PRINT  STRING $  (38, “-”)

PRINT “|”; TAB(2)  “k”;  TAB  (4)  “|”;  TAB  (10)  “x”;  TAB  (20) “|”;  TAB (26) “y”; TAB (38) “|”;

PRINT STRING $  (38, “_”)

FOR  k=1  TO  N

X=A+K*H

Y= LOG (1+X)/(S^2+1)

PRINT  “|”; TAB(2) K;  TAB (4) “|”; TAB (10) X; TAB (20) “|”; TAB (22) Y:TAB (38) “|”;

NEXT k

PRINT  STRING $ (38, “-”)

Run

-0, 1, 5

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

a,b,n- мәндерін ендіру (а=0, в=1, n=5, n-[a,b] кесіндісін тең бөліктерге бөлу саны);  H мәнін есептеу

PRINT “|”; TAB(2)  “k”;  TAB  (4)  “|”;  TAB  (10)  “x”;  TAB  (20) “|”;  TAB (26) “y”; TAB (38) “|”;

PRINT STRING $  (38, “_”)  жолдары кесте басындағы екі кесіндіні сызып, аралығына k, x, y айнымалыларын енгізу:

FOR  k=1  TO  N

X=A+K*H

Y= LOG (1+X)/(S^2+1)

PRINT  “|”; TAB(2) K;  TAB (4) “|”; TAB (10) X; TAB (20) “|”; TAB (22) Y:TAB (38) “|”;

NEXT k

х=в-ға дейін (b=a+n*h) y функциясының мәндерін n қадаммен жай дәлдік бойынша есептеу, кестеге енгізу.

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

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

FOR  K=K0  TO  Kn

FOR  J=J0     TO  Jn

S

NEXT  j:  NEXT  K

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

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

REM   кесте

FOR  K=1  TO  10

FOR  j=1  TO  10

A=K*J

PRINT  USING   “###”; A;

NEXT  j

PRINT

NEXT  K

Программадағы сыртқы цикл параметрі бірінші мәнді қабылдаған кезде (К=1 кезінде) ішкі цикл параметрі кезекпен 1,2,3,4,5,6,7,8,9,10 мәндерін қабылдап шығады да,

A=K*J

PRINT  USING   “###”; A;

жолдарының орындалу нәтижесі болатын мәндерді (1,2,3,4,5,6,7,8,9,10 сандарын) бір жол бойында экранда көрсетеді.

PRINT  USING   “###”; A;

жолының соңына нүктелі үтір символы сол үшін қойылған.

PRINT  енгізілген жолдың орындалу нәтижесінде курсор экранның бір жолын бос тастап кетіп, онан соңғы жол басына орналасады. Бұдан әрі ішкі цикл к=2 үшін орындала бастайды.т.с.с

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

Кестенің әр бағанында көрінген сандардың соңғы цифрлары әр баған бойында жазылуы, ол PRINT USING операторының әрекеті (операторѓа әр сан үш орындық цифрлар тізбегінен тұратын етіп шығару енгізілген. Орындар оң жақтан бастап есептеледі).
«Baribar.kz-тің» Telegram-каналына жазыламыз!