Егер цикл деқайталану саны белгілі болса,программада“Үшін” циклін пайдаланған дұрыс.Бейсиктебұл құрылымныңтүзілісі:
FORk=k0TOKn[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
FORk=1TON
R=R*k
NEXT k
PRINTn; ” !=”;R
Бұл программада к=1командасыныңкіргізілмегенікөрініптұр,ал FORоператорындабірінші болып пайдаланылады.
Ескерту. FORk=k0TOKnSTEP 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
PRINTSTRING $(38, “-”)
PRINT “|”; TAB(2)“k”;TAB(4)“|”;TAB(10)“x”;TAB(20) “|”;TAB (26) “y”; TAB (38) “|”;
PRINT STRING $(38, “_”)
FORk=1TON
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
PRINTSTRING $ (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 айнымалыларын енгізу:
FORk=1TON
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. Цикл ішінде цикл
Бейсикте цикл ішінде циклдің жазылу түрі.
FORK=K0TOKn
FORJ=J0 TOJn
S
NEXTj:NEXTK
Мұндағы j – ішкі цикл параметрі, К – сыртқы цикл параметрі, NEXT J: NEXTK операторын NEXT j, kтүрінде жазу да мүмкін (бірінші параметр ішкі цикл параметрі болуы тиіс)
Мысалы: Көбейту кестесін есептеп, көбейту нәтижелерін экранға шығару керек.
REM кесте
FORK=1TO10
FORj=1TO10
A=K*J
PRINTUSING “###”; A;
NEXTj
NEXTK
Программадағы сыртқы цикл параметрі бірінші мәнді қабылдаған кезде (К=1 кезінде) ішкі цикл параметрі кезекпен 1,2,3,4,5,6,7,8,9,10 мәндерін қабылдап шығады да,
A=K*J
PRINTUSING “###”; A;
жолдарының орындалу нәтижесі болатын мәндерді (1,2,3,4,5,6,7,8,9,10 сандарын) бір жол бойында экранда көрсетеді.
PRINTUSING “###”; A;
жолының соңына нүктелі үтір символы сол үшін қойылған.
PRINTенгізілген жолдың орындалу нәтижесінде курсор экранның бір жолын бос тастап кетіп, онан соңғы жол басына орналасады. Бұдан әрі ішкі цикл к=2 үшін орындала бастайды.т.с.с
Программаның орындалу нәтижесінің матрица түрінде экранда көріну түрі мынадай:
Кестенің әр бағанында көрінген сандардың соңғы цифрлары әр баған бойында жазылуы, ол PRINT USING операторының әрекеті (операторѓа әр сан үш орындық цифрлар тізбегінен тұратын етіп шығару енгізілген. Орындар оң жақтан бастап есептеледі). |