Сохторҳои назорат дар SomonScript
Сохторҳои назорат ба мо имкон медиҳанд, ки қарор қабул кунем (if, switch) ва амалҳоро такрор кунем (for, while). Ин яке аз муҳимтарин мавзӯъҳо барои фаҳмидани рафтори барнома мебошад.
1. Барои чӣ ба мо сохторҳои назорат лозиманд?
Бе шартҳо ва давраҳо барнома танҳо аз боло ба поён иҷро мешавад. Бо онҳо мо метавонем:
- танҳо ҳангоми иҷро шудани шарт як қисмати кодро иҷро кунем;
- аз байни чанд ҳолат якеашро интихоб кунем;
- як амалро чандин маротиба такрор кунем.
2. Мисоли оддӣ: «Гузашт / нагузашт»
Дар ин мисол як донишҷӯ хол мегирад. Агар хол аз 60 боло бошад, барнома "гузашт" менависад, вагарна "нагузашт".
Шарти оддӣ бо АГАР-ВАГАРНА
Мисоли шартӣ барои муайян кардани он ки донишҷӯ имтиҳонро гузашт ё не.
// Холҳои як донишҷӯ
тағ холҳо: рақам = 72;
// Шарти оддӣ бо АГАР-ВАГАРНА
агар (холҳо >= 60) {
чоп.сабт("Шумо гузаштед");
} вагарна {
чоп.сабт("Шумо нагузаштед");
}somon run exam.som
Шумо гузаштед3. Мисоли каме мушкил: давра бо ҳисоб
Акнун чанд хол дорем ва мехоҳем шумораи донишҷӯёне, ки гузаштанд, ҳисоб кунем. Барои ин аз давраи барои ва шарт истифода мебарем.
Шумориши донишҷӯёни гузашташуда
Давраи барои (for loop) бо шарт барои ҳисоб кардани он ки чанд нафар холҳои кофӣ доранд.
// Рӯйхати холҳои синф
тағ холҳо: рақам[] = [45, 80, 92, 58, 73];
// Шумораи донишҷӯёни гузашташуда
тағ шумораи_гузаштанд: рақам = 0;
// Давра барои гузаштан аз рӯйхати холҳо
барои (тағ и: рақам = 0; и < холҳо.дарозӣ; и++) {
// Агар хол аз 60 зиёд ё баробар бошад, ин донишҷӯ гузаштааст
агар (холҳо[и] >= 60) {
шумораи_гузаштанд = шумораи_гузаштанд + 1;
}
}
// Натиҷаро ба экран мебарорем
чоп.сабт("Донишҷӯёни гузашташуда: " + шумораи_гузаштанд);somon run control-flow.som
Донишҷӯёни гузашташуда: 34. Машқҳо
Ин машқҳоро метавонед дар синф ё ҳамчун кори хонагӣ истифода баред. Барои ҷавобҳои муфассал ба матни пурра дар боби 5 нигаред.
- Барномае нависед, ки рақами рӯзро (17) қабул карда, бо истифода аз интихобноми рӯзро менависад.
- Барномае эҷод кунед, ки ададҳои аз 1 то 20-ро чоп мекунад, вале танҳо ададҳои тоқро нишон медиҳад (бо барои ва давом).
- Массиви ададҳо эҷод кунед ва бо истифода аз давра ҳисоб кунед, ки чанд адад аз 0 калонтар аст.
