1.8. 1С тилинде циклдар
Цикл - башка командалардын аткарылышын керектүү санда кайталоого мүмкүнчүлүк берген компьютерге берилүүчү атайын команда.
Мисал катары 1ден 10го чейинки сандарды экранга чыгаруу талап кылынсын. Бул маселени цикл командасын пайдаланбай туруп, төмөнкүдөй жазууга болот:
Сообщить (1);
Сообщить (2);
Сообщить (3);
Сообщить (4);
Сообщить (5);
Сообщить (6);
Сообщить (7);
Сообщить (8);
Сообщить (9);
Сообщить (10);
Жогоруда көрсөтүлгөндөй жөнөкөй эле программаны чечүү үчүн 10 жолчодон турган кодду жазууга туура келет. Мындай жазуу бир топ кыйынчылыкты туудурат. Учундай учурлар үчүн цикл түшүнүгү киргизилген. 1С тилинде циклдин “ЦиклДля” жана “ЦиклПока” деген эки түрү бар.
ЦиклДля
“ЦиклДля” циклдин конструкциясы төмөнкүдөй жазылат:
Для Имя = НачальноеЧисло По КонечноеЧисло Цикл
Команда1();
Команда2();
...
КонецЦикла;
“Цикл” жана “КонецЦикла” сөздөрүнүн ортосунда турган командалар циклдын телосу деп аталат жана “НачальноеЧисло” “КонечноеЧислодон” чоң боло тургандай канча кадам керек болсо, ошончо кадамга аткарылат. Мында “Имя” сөзүнүн ордуна программист өзү ысым берет жана ал ысым менен кадамдын учурдагы мааниси байланышат.
1ден 10го чейинки сандарды экранга чыгаруу талап кылынган маселени циклдин жардамында төмөнкүдөй жазууга болот:
Для Шаг = 1по 10 Цикл
Сообщить(Шаг);
КонецЦикла;
Мисал-Тапшырма. Цикл командасын пайдаланып 10дон 100гө чейинки сандарды экранга чыгаргыла.
Для Шаг = 1по 100 Цикл
Сообщить(Шаг);
КонецЦикла;
Тест
Тестин суроолору төмөнкү мисал боюнча берилет:
Для Шаг = 1по 100 Цикл
Сообщить(Шаг);
КонецЦикла;
1. Циклдын телосу ... аткарылат.
а) 10 жолу; б) чексиз жолу; в) 5 жолу; г) аткарылбайт.
2. Сообщить(Шаг) командасы ... аткарылат.
а) чексиз жолу б) 5 жолу; в) 10 жолу; г) аткарылбайт.
3. учурдагы циклдин маанисин кайсы ысымга кайрылуу менен билүүгө болот?
а) цикл; б) для; в) шаг; г) по.
4. Циклди аткаруу процессинде Шаг ысымы менен байланышкан маани канча жолу өзгөрөт?
а) 5тен 1ге чейин; б) 5тен 5ке чейин;
в) 1ден 1ге чейин; г) 1ден 5ке чейин.
5. Циклдын иштөөсүнүн жыйынтыгында кандай жыйынтык чыгат?
а) 1 5; б) 1 2 3 4 5 ; в) 5; г) 5 4 3 2 1.
6. 2 4 6 8 10 сандары чыгышы үчүн Сообщить(Шаг) командасынын ордуна эмне деп жазуу керек?
а) Сообщить(8*Шаг); б) Сообщить(6*Шаг);
в) Сообщить(2*Шаг); г) Сообщить(4*Шаг).
7. Сандар менен эле кошо беш жолу “Салам” сөзү чыгуусу үчүн кандай команда жазуу керек?
а) Сообщить(“Салам”) командасын ШАГдын алдында ДЛЯдан кийин кошуу керек;
б) Сообщить(“Салам”) командасын КОНЕЦ ЦИКЛАдан кийин кошуу керек;
в) Сообщить(“Салам”) командасын КОНЕЦ ЦИКЛАга чейин Сообщить(Шаг)тан кийин кошуу керек;
г) “Салам” сөзүн кошууга мүмкүн эмес.
Тапшырма.
7 нин таблица умножениясын Цикла Для командасын пайдаланып 3 жолчого жазгыла.
“ЦиклПока” циклдин конструкциясы төмөнкүдөй жазылат:
Пока ЛогическоеВыражение Цикл
Команда1();
Команда2();
...
КонецЦикла;
“Цикл” жана “КонецЦикла” сөздөрүнүн ортосунда турган командалар “ЛогическоеВыражение” чын болгон учурда аткарыла берет. “ЛогическоеВыражение” катары шарт болушу мүмкүн. Бул шарт чын болсо циклдин ичиндеги командалар кайра кайра кайталанып аткарыла берет. Качан гана шарт жалган болгон учурда гана циклдин ичиндеги командалар аткарылышын токтотот.
1ден 10го чейинки сандарды экранга чыгаруу талап кылынган маселени циклдин жардамында төмөнкүдөй жазууга болот:
Шаг = 1;
Пока Шаг Цикл
Сообщить (Шаг);
Шаг = Шаг +1;
КонецЦикла;
Мисал-Тапшырма. “ЦиклПока” командасын пайдаланып 10дон 100гө чейинки сандарды экранга чыгаргыла.
Шаг = 10;
Пока Шаг 0Цикл
Сообщить (Шаг);
Шаг = Шаг +1;
КонецЦикла;
Тапшырма. “ЦиклПока” командасын пайдаланып 10дон 1ге чейинки сандарды экранга чыгаргыла. Программа 5 гана жолчодон туруусу талап кылынат.
Шаг = 10;
Пока Шаг = 1 Цикл
Сообщить (Шаг);
Шаг = Шаг - 1;
КонецЦикла;
Тест
Тестин суроолору төмөнкү мисал боюнча берилет:
Шаг = 1;
Пока Шаг
Сообщить (Шаг);
Шаг = Шаг + 1;
КонецЦикла;
1. Циклдын телосу ... аткарылат.
а) 10 жолу; б) чексиз жолу; в) 5 жолу; г) 9 жолу.
2. Сообщить(Шаг) командасы ... аткарылат.
а) чексиз жолу б) 9 жолу; в) 10 жолу; г) аткарылбайт.
3. учурдагы циклдин маанисин кайсы ысымга кайрылуу менен билүүгө болот?
а) цикл; б) для; в) шаг; г) по.
4. Циклдын иштөөсүнүн жыйынтыгында кандай жыйынтык чыгат?
а) 1 10; б) 10 1 ; в) 1 2 3 4 5 6 7 8 9 10; г) 1 2 3 4 5 6 7 8 9.
5. 1 3 5 7 9 сандары чыгышы үчүн эмне деп жазуу керек?
а) Шаг = Шаг + 1 ордуна Шаг = Шаг + 3 жазуу керек;
б) Сообщить(Шаг) ордуна Сообщить(Шаг+1) жазуу керек;
в) Шаг = Шаг + 1 ордуна Шаг = Шаг + 2 жазуу керек;
г) Сообщить(Шаг) ордуна Сообщить(Шаг*3) жазуу керек.
6. Циклдын телосунун ар бир аткарылышында “Салам” сөзү чыгуусу үчүн кандай команда жазуу керек?
а) Сообщить(“Салам”) командасын Сообщить(Шаг) алдында кошуу керек;
б) Сообщить(“Салам”) командасын Шаг = Шаг + 1 кийин кошуу керек;
в) Сообщить(“Салам”) командасын Сообщить(Шаг) кийин кошуу керек;
г) Жогорку бардык командалардын аткарылышы туура.
Тапшырма.
7 нин көбөйтүү таблицасы “ЦиклаПока” командасын пайдаланып, көбөйтүүнүн таблицасы тескери тартипте башкача айтканда 7*10, 7*9... программасын жазгыла.