Loops: For - Забони барномасозии C++ барои барномасозии рақобатӣ
Loops: For
For loop
Муқаддима: ғояи умумии for
Даври for вақте истифода мешавад, ки мо хоҳем як амалро якчанд маротиба такрор кунем. Ба ҷои навиштани бисёр сатрҳои монанди рамз, мо амалро як бор менависем ва ба C++ мефаҳмонем, ки такрор чӣ тавр бояд кор кунад.
Масалан, агар мо хоҳем ададҳоро аз 1 то 10 барорем, набояд даҳ сатри алоҳидаи хуруҷ нависем. Мо метавонем танҳо як давр истифода барем:
Ин чунин мебарорад: 12345678910
Ғояи асосӣ содда аст: давр як тағйирёбанда дорад, ки одатан онро i меноманд, ва ин тағйирёбанда пас аз ҳар такрор тағйир меёбад. Бо ёрии мо медонем, ки ҳоло дар кадом қадами давр қарор дорем.
i
Ғояи асосӣ: for чӣ тавр кор мекунад
Шакли умумии даври for чунин аст:
Чор қисми муҳим вуҷуд дорад:
<оғоз> даврро пеш аз оғози кораш омода мекунад.
<шарт> пеш аз ҳар такрор санҷида мешавад.
<қадам> тағйирёбандаи даврро пас аз ҳар такрор тағйир медиҳад.
<тана> — ин рамзест, ки мо мехоҳем такрор кунем.
Биёед боз ба ҳамон мисол нигарем:
Маънои ҳар як қисм чунин аст:
<оғоз> — ин i=1 аст. Мо тағйирёбандаи i-ро месозем ва онро аз 1 сар мекунем.
<шарт> — ин i≤10 аст. То даме ки ин шарт дуруст аст, давр давом мекунад.
<қадам> — ин i=i+1 аст. Пас аз ҳар такрор i ба 1 зиёд мешавад.
Мо даврро аз 1 то k иҷро мекунем. Дар ҳар қадам x-ро мебарорем.
Алгоритм:
Татбиқ:
Ин мисол муҳим аст, зеро нишон медиҳад, ки тағйирёбандаи даврро на ҳамеша мебароранд. Баъзан он танҳо идора мекунад, ки давр чанд маротиба иҷро шавад.
Мисоли 5: ҳисоби баръакс
Як адади бутуни n дода шудааст. Ададҳоро аз n то 1 бароред.
Мисол:
Таҳлил ва ҳал
Акнун ададҳо бо тартиби камшаванда мераванд. Давр бояд аз n сар шавад, то даме ки i≥1 давом кунад ва бо i=i−1 нав шавад.
Алгоритм:
Татбиқ:
for(int i = 1; i <= 10; i = i + 1){ cout << i << ' ';}
1. Оғозро як бор иҷро кун.
2. Шартро санҷ.
3. Агар шарт нодуруст бошад, даврро қатъ кун.
4. Агар шарт дуруст бошад, танаро иҷро кун.
5. Қадамро иҷро кун.
6. Ба банди 2 баргард.
i = 1 -> шарт дуруст -> барор 1
i = 2 -> шарт дуруст -> барор 2
i = 3 -> шарт дуруст -> барор 3
...
i = 10 -> шарт дуруст -> барор 10
i = 11 -> шарт нодуруст -> қатъ
i = 1 -> барор 1
i = 3 -> барор 3
i = 5 -> барор 5
i = 7 -> барор 7
i = 9 -> барор 9
i = 11 -> шарт нодуруст, қатъ
Вуруд:
5
Хуруҷ:
1 2 3 4 5
1. n-ро хон.
2. Барои i аз 1 то n:
1. i-ро барор.
Вуруд:
10
Хуруҷ:
1 3 5 7 9
1. n-ро хон.
2. Барои i аз 1 то n бо қадами 2:
1. i-ро барор.
Вуруд:
5
Хуруҷ:
15
1. n-ро хон.
2. sum = 0 гузор.
3. Барои i аз 1 то n:
1. i-ро ба sum илова кун.
4. sum-ро барор.
Вуруд:
7 4
Хуруҷ:
7 7 7 7
1. x ва k-ро хон.
2. Барои cnt аз 1 то k:
1. x-ро барор.
Вуруд:
5
Хуруҷ:
5 4 3 2 1
1. n-ро хон.
2. Барои i аз n то 1:
1. i-ро барор.
for(<оғоз>;<шарт>;<қадам>){<тана>}
for(int i = 1; i <= 10; i = i + 1){ cout << i << ' ';}
for( int i = 1; // <оғоз> i <= 10; // <шарт> i = i + 1 // <қадам>){ cout << i << ' '; // <тана>}
for(int i = 1; i <= 10; i = i + 2){ cout << i << ' ';}
for(int i = 10; i >= 1; i = i - 1){ cout << i << ' ';}
#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; for(int i = 1; i <= n; i = i + 1){ cout << i << ' ';} return 0;}
#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; for(int i = 1; i <= n; i = i + 2){ cout << i << ' ';} return 0;}
#include <bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; long long sum = 0; for(int i = 1; i <= n; i = i + 1){ sum = sum + i;} cout << sum << endl; return 0;}