For циклдық операторы




Презентация қосу
Циклдық алгоритмде программалау

PROGRAMMING OF
CYCLIC ALGORITHMS
Purpose
Purpose: to get acquainted with cyclic
constructions

Жұмыстың мақсаты: циклдік
операторлармен танысу
Эдсгер Вибе Дихстра
1969 жылы әйгілі голландиялық бағдарламашы
Эдсгер Вибе Дихстра кез-келген логикалық есепті
шешудің алгоритмін тек құрылымдардан,
тармақталудан және циклден құруға болатындығын
дәлелдеді. Олар негізгі алгоритмдік құрылымдар деп
аталады.

In 1969, the famous Dutch computer scientist Edsger
Wiebe Dijkstra proved that an algorithm for solving any
logical problem can only be made up of the following,
branching, and loop structures. They are called basic
algorithmic struct.
Мысалы
Кейбір алгоритмдерде бірдей әрекеттер тізбегін бірнеше рет қайталау
қажет болуы мүмкін. Мысалы, кітап оқу алгоритмін қарастырайық.
Кітапты оқу үшін алдымен оны ашу керек, содан кейін кітап аяқталғанша
екі бетті оқып, келесі бетке көшіп отыру керек. Оқуды аяқтағаннан кейін
кітапты жабу керек. Осы сияқты алгоритмдер циклдік деп аталады.
Олардың құрамында циклдар бар. Цикл-бұл бірнеше рет қайталанатын
әрекеттер тізбегі болып табылатын алгоритмдік сызба. Циклдердің үш
түрі бар: жұмысты жалғастырудың белгілі бір шарты бар цикл, оны
алғышарттары бар цикл деп те атайды; жұмысты аяқтаудың белгілі бір
шарты бар циклдар, сондай-ақ параметрі бар циклдар.
In some algorithms, you may need to repeat the same sequence of actions several times. Consider, for
example, the algorithm for reading a book. In order to read a book, you must first open it, and then, until the
book is finished, you need to read two pages and turn the page. After you finish reading, close the book.
Algorithms such as the one described are called cyclic algorithms. They contain loops. A loop is an algorithmic
construction that represents a sequence of actions that are repeated many times. There are three types of
cycles: a cycle with a specified condition for continuing work, which is also called a cycle with a precondition;
cycles with a specified condition for ending work or with a post-condition, and cycles with a parameter.
Циклдық алгоритм
Циклдің табиғатта, адам өміріндегі маңызы үлкен.
Табиғат та, адам өмірі белгілі бір циклден тұрады. Цикл -
тұрақты қайталанып тұратын оқиғалар жиынтығы.
Мысалы, жыл мезгілдері, күн, апта, ай − бұлардың бәрі
табиғатта қайталанып тұратын циклдер. Цикл-дердің түрі
көп. Оларға экономикалық, тарихи, программалау,
математикалық, тіршілік циклдері және т.б. жатады.
Программалауда циклдік алгоритмдердің маңызы зор.
Олардың көмегімен табиғатта кездесетін барлық цикл
түрлерінің алгоритмін құрастырып, компьютерде
модельдеуге болады.
Бірнеше рет қайталанып
орындалатын белгілі бір іс-
әрекеттерді сипаттайтын
алгоритмдер тобын циклдік
алгоритмдер деп атайды.
Cyclic algorithm
The cycle is of great importance in nature, in human life.
Both nature and human life consist of a certain cycle. A loop
is a set of events that are constantly repeated. For example,
seasons, days, weeks, months − all these are cycles that are
repeated in the bigat. There are many types of cycles. These
include economic, historical, programming, mathematical,
life cycles, and so on. Cyclic algorithms are of great
importance in programming. With their help, you can create
an algorithm for all types of cycles found in nature and
simulate them on a computer.
A group of algorithms that
describe certain actions
performed repeatedly is
called cyclic algorithms.
Циклдық операторларының түрлері
Циклдік алгоритмдерді пайдалануда программалау
тілінің операторы түрінде оны қысқаша жазу мүмкіндігі
болады. Циклдік алгоритмдерді программалау тіліне
аударатын арнайы операторлар бар. Циклдік операторлар
қолдану түріне қарай екі түрге жіктеледі (сурет).
For циклдық операторы
Егер алгоритмді құру кезінде қайталану саны алдын ала белгілі
процесті ұйымдастыру қажет болса, онда параметрлі цикл
операторы қолданылады. Мұндай операторға for операторы
жатады. Python-да for операторы белгілі бір есептеуде көрсетілген
мәнге жеткенге дейін жұмыс істейді. Параметрлі цикл жұмысын
ұйымдастыру үшін for операторын range () функциясымен бірге
қолдану керек.

for і in range (k, n,
x) <оператор немесе өрнек>;
Жазылуы.
range (k, n, x) функциясы k-дан n − 1-ге дейін x қадаммен
сандар тізімін жасайды.
Мысалы: k = 1, n = 11 және x = 2 болса, онда for і in range (1,
11, 2) цикл қатары i шамасының мәні 1-ден 10-ға дейін 1 қадаммен
өзгереді деп оқылу керек.
For циклдық операторының
қолданылуының 2 түрі бар:

1. Цикл параметрінің мәні өсуші (1-мысал).
2. Цикл параметрінің мәні кемуші (2-мысал).
Цикл жұмысын түсіну үшін қарапайым мысалдар
қарастырайық.

Жазылуы.
range (k, n, x) функциясы k-дан n − 1-ге дейін x қадаммен
сандар тізімін жасайды.
Мысалы: k = 1, n = 11 және x = 2 болса, онда for і in range (1,
11, 2) цикл қатары i шамасының мәні 1-ден 10-ға дейін 1 қадаммен
өзгереді деп оқылу керек.
1 мысал
1-ден 100-ге дейінгі сандардың қосындысын табатын
программа жаз. Мысалдың программа коды 1-суретте
берілген. Программа коды орындалғанда экранға 5050
шығады
2 мысал
2-мысал. 1-ден 10-ға дейінгі сандарды кері ретпен экранға
шығар. Мысалдың программа коды 2-суретте берілген.
Программа коды орындалғанда экранға: 10 9 8 7 6 5 4 3 2 1
сандары пайда болады.
Практикалық жұмыс
Топта N (0 < N < 10) студент бар. Әр студенттің
бойларының ұзындықтары берілген. Егер топтағы студенттің
бойы 140 см-ден қысқа болса, ол аласа бойлы студентке
жатады. Топта неше студенттің бойы аласа екенін
анықтайтын программа кодын жаз.
Есептің коды
N=int(input('Student sany='))
i=x=z=0
for i in range (1,N+1):
print(str(i),end=' ')
x=int (input('-studenttib boyi= '))
if x<140:
z+=1
print ('Alas studentter sany=',z)
Түсініктеме
• Практикалық жұмыстың программа кодына (3-сурет) түсініктеме беріп
өтейік. Берілген есептің программа кодын жазуда циклдік және
тармақталу операторларын бірге қолданамыз. Барлық оқушылардың
бойын N рет енгізу үшін енгізу операторын циклдің ішіне
орналастырып, әр цикл қадамында оқушының бойының ұзындығын х
айнымалысына оқытамыз. Одан кейінгі қадамда оқушы бойының
ұзындығын 140-пен салыстырып тексереміз. Көріп тұрғандай, цикл
денесінде бір емес, үш оператор жұмыс істейді. Үш операторды бір
циклдің ішінде пайдалану үшін for операторынан кейінгі жолдарда 4
бос орын (пробел) қою керек. Мұнда z + = 1 z-мәнін 1-ге арттыратын z
= z + 1 өрнегінің қысқа жазылу түрін көрсетеді. Цикл ішіндегі print (str
(i), end='') жолы, оқушының нөмірін енгізу керектігін көрсету үшін
қолданған. Программа жұмысының нәтижесі (4-сурет) берілген.
Шексіз цикл
Кейбір программаларда циклді басқару мүмкін болмай
қалады. Әрине, бұл программалау кезінде жіберген
қателерден туындайтын жағдай. Мұндай
циклдерді шексіз циклдер деп атайды. Шексіз цикл
кезінде программаны тоқтату үшін Ctrl + C пернелерінің
комбинациясын бір уақытта басу керек.
Бірінің ішіне екіншісін кіріктіріп пайдаланған бірнеше қарапайым
циклдерді кіріктірілген циклдер деп атайды. Кіріктірілген циклдерде ішкі
цикл сыртқысына толық ену керек. Бір-біріне кіріктірілген екі қарапайым
циклдің жазылу түрі 1-сызбада берілген. Кіріктірілген циклдерді күрделі
цикл деп те атайды.
Мысалдың коды және жауабы
While циклы
Енді циклдің екінші бір түрі шарт циклі while-
дың жұмысымен танысайық. Шарт циклі, while-
дың жұмыс істеу реті 1-сызбада берілген. Шарт
циклі whіle (әзірше) – резервтік сөзден және
цикл шарты <шарт> логикалық типтегі
өрнектен тұрады. Цикл шарты логикалық өрнек
түрінде жазылады. Логикалық өрнектің
нәтижесі бульдік типтегі нәтиже болады. Шарт
циклінің логикалық өрнегі true (ақиқат) немесе
false (жалған) мәнін ғана қабылдайды.
While циклы
Цикл ішіндегі операторлар орындалуды бастамас бұрын
цикл шартының мәні тексерiледі. Шарт ақиқат мәнін
қабылдаса, цикл өз жұмысын жалғастырады. Егер өрнектің
мәні жалған болса, онда цикл жұмысын аяқтайды. Басқа
оператор немесе өрнекті цикл ішінде орналастыру үшін while
және цикл шарты жазылғаннан кейінгі жолдарда 4 бос орын
тастап жазу қажет. Цикл ішіне орналасқан операторлар мен
өрнектер цикл шарты жалған мәнін қабылдағанша ретімен
орындала береді. Егер цикл шарты жалған болса, онда цикл
денесі орындауды бастамай-ақ өз жұмысын тоқтатады.
Мысал 3
1 мен 100 аралығындағы сандардың қосындысын табатын
программа жаз.
Бұл цикл жұмысы і
шамасының мәні 100-ден үлкен
болғанда барып тоқтайды. Цикл
шарты жалған болғанға дейін s
қосқышына і-дің мәнін қосып
отырады (2-сурет).
Мысал 3
1 мен 100 аралығындағы сандардың қосындысын табатын
программа жаз.
Бұл цикл жұмысы і
шамасының мәні 100-ден үлкен
болғанда барып тоқтайды. Цикл
шарты жалған болғанға дейін s
қосқышына і-дің мәнін қосып
отырады (2-сурет).
СONTINUE циклі
Программа орындалу барысында цикл жұмысын
басқарып отыруға, оның жұмысына араласуға тура келетін
жағдайлар көп болады. Программалау кезінде ағымдағы
цикл қадамы (итерация) жұмысын шарт қою арқылы
тоқтатып, бірден келесі цикл қадамына (итерация) өтуіңе
болады. Бұлай істеуге continue нұсқаулығы көмектеседі.
Программа орындалу барысында цикл жұмысын
басқарып отыруға, оның жұмысына араласуға
тура келетін жағдайлар көп болады.
Программалау кезінде ағымдағы цикл қадамы
(итерация) жұмысын шарт қою арқылы тоқтатып,
бірден келесі цикл қадамына (итерация) өтуіңе
болады. Бұлай істеуге continue нұсқаулығы
көмектеседі.
СONTINUE циклі
Программа орындалу барысында цикл жұмысын
басқарып отыруға, оның жұмысына араласуға тура келетін
жағдайлар көп болады. Программалау кезінде ағымдағы
цикл қадамы (итерация) жұмысын шарт қою арқылы
тоқтатып, бірден келесі цикл қадамына (итерация) өтуіңе
болады. Бұлай істеуге continue нұсқаулығы көмектеседі.
СONTINUE циклі
Программа орындалу барысында цикл жұмысын
басқарып отыруға, оның жұмысына араласуға тура келетін
жағдайлар көп болады. Программалау кезінде ағымдағы
цикл қадамы (итерация) жұмысын шарт қою арқылы
тоқтатып, бірден келесі цикл қадамына (итерация) өтуіңе
болады. Бұлай істеуге continue нұсқаулығы көмектеседі.
Мысал 5
.

Мысалдың шарты бойынша N мен M аралығында цикл
жүргізіп, цикл параметрінің жұп немесе тақ екенін тексереміз.
Цикл параметрі жұп болған жағдайда бірден цикл басына
қайтып, кейінгі цикл қадамын орындауға өтеміз. Мысалдың
программа коды 1-суретте, ал нәтижесі 2-суретте берілген.
Мысал 6
.
Break нұсқаулығы
Программалау
. кезінде цикл жұмысы мақсат етілген
нәтижеге жеткен уақытта оның жұмысын тоқтатуға
болады. Ол үшін break нұсқаулығын пайдаланамыз.
Break (үзілу) - белгілі бір қойылған шарт орындалуымен
ағымдағы цикл жұмысын бірден тоқтатып, программа
жұмысын циклден шығарып, әрі қарай жалғастыратын
цикл нұсқаулығы. Python-да break нұсқаулығы цикл
жұмысына әсер ететін сыртқы фактор пайда болған кезде
циклді бұзуға мүмкіндік
береді. Break нұсқаулығын for параметрлі циклі
мен while шарт циклінде қолдануға болады (1, 2-
сызбалар). Сызбалардан көріп тұрғандай, break-тің
программада жазылуында continue нұсқаулығынан
айырмашылығы жоқ. Тек екеуінің атақаратын қызметі екі
түрлі, бірі циклден шығаруды қамтамасыз етсе, екіншісі
циклдің белгілі бір қадамдарын орындамай өтуге
Мысал 7
.
Мысалы. Ұзындығы N (1≤N≤100) болған сандар тізбегі
берілген. Тізбектегі сандардың арасында тек біреуі нөлге тең. Нөл
саны орналасқан орынды табатын программа жаз.
Else нұсқаулығы
Еlse
. нұсқаулығы – алдыңғы екеуінен айырмашылығы
for және while циклдерінің сыртында
орналасады. Еlse нұсқаулығы цикл барлық қадамдарды
толық орындап, қалыпты жағдайда өз жұмысын
аяқтағанын немесе break арқылы бірден тоқтағанын
көрсетеді. Еlse нұсқаулығы цикл тек break-ті
пайдаланбай, өз жұмысын қалыпты аяқтағанда ғана
орындалады.
Мысал 8
Ұзындығы
. N(1≤н≤20) бүтін сандар тізбегі берілген. Осы тізбек тек
оң сандардан тұрса, онда тізбектің қосындысын немсе «Tizbekte
teris san bar» жауабы экранға шығатын программа құрастыр.
Мысал 9
range() функциясымен бірге командалар блогын
бірнеше рет қайталауға болады.
string = input(“Enter a string: “)

for i in range(4):
print(string)

Сізге командалар блогының неше рет қайталану қажеттілігі
белгілі болса, “for” циклін пайдалану жөн. Бірақ, кейде нақты
сан белгілі емес болса, “while” циклін қолдануға болады.
Мысалы:
answer = input("Will you study well?
")
while answer != "yes":
answer = input("yes or no? ")
print(“Cool!”)
Тапсырмалар

1. 1-ден 10-ға дейінгі бүтін сандардың
квадраттарын, кубын табыңыз. (WHILE)
2. 1 – 5 дейінгі сандардың қосындысын табу (FOR)
3. 5! Табудың программасын құрыңыз (FOR)
4. Көбейту кестесін шығарудың программасын
құрыңыз (FOR)
5. 1 ден 5 дейінгі сандарды кері ретпен экранға
шығарыңыз.
Тапсырмалар
.
Бірінші күні спортшы x километр жүгірді , содан кейін күн
сайын жүгірісті алдыңғы мәннен 10% -ға
арттырды. Берілген у саны үшін спортшы кем
дегенде y километр жүгіретін күннің санын анықтаңыз .

Берілген бүтін N үшін өсу ретімен N-ден аспайтын натурал
сандардың барлық квадраттарын басып шығарыңыз.
Бақылау сұрақтары:

1. Цикл дегеніміз не?
2. Циклдық операторлар түрлері?
3. break операторы қандай қызмет
атқарады?
4. Continue операторы қай жағдайда
орындалады?
5. Орнатылған деректер типтері қандай
болады?

Ұқсас жұмыстар
Циклдық алгоритмдерді орындайтын программа құру
Қайталау операторы Nersta.blogspot.com
ЦИКЛ ДЕНЕСІ
Қайталау операторы. Циклдік операторлар
Тексеру және таңдау операторлары. Циклдық программалауға арналған командалар туралы ақпарат
Қайталау саны берілген циклды программалау
Цикл операторлары
Функциялар мен процедуралар
Көшу операторы
Циклдік алгоритмді программалау
Пәндер