Записки программиста 1с

Циклы в 1с примеры применения.

Циклы в 1с примеры использования. Система программирования 1с : Предприятие 8 содержит 3 вида операторов цикла:

циклы в 1с примеры
Виды операторов цикла в 1с

Рассмотрим применение операторов цикла на примере решения задачи нахождения чисел Фибоначчи. Постановка задачи:

“Пусть в огороженном месте имеется пара кроликов (самка и самец) в первый день января. Эта пара кроликов производит новую пару кроликов в первый день февраля и затем в первый день каждого следующего месяца. Каждая новорожденная пара кроликов становится зрелой уже через месяц и затем через месяц дает жизнь новой паре кроликов. Возникает вопрос: сколько пар кроликов будет в огороженном месте через год, то есть через 12 месяцев с начала размножения?”

циклы в 1с примеры
Формула нахождения чисел Фибоначчи.

Во-первых создадим обработку. Содержащую один реквизит ВерхняяГраница типа Число:

циклы в 1с примеры
Настройка формы 1с

Во-вторых на Форму Обработки разместим 3 команды. Для каждого вида своя команда.

циклы в 1с примеры
Циклы в 1с примеры применения

Пример применения цикла Для Цикл

Решим задачу нахождения чисел Фибоначчи используя Цикл Для. Известно, что верхняя граница равна 12. В качестве верхней границы цикла можно использовать переменную. В таком можно будет найти произвольное количество таких чисел.

&НаКлиенте
Процедура Команда1(Команда)
	// Цикл Для
	Перем ВерхняяГраница;
	ВерхняяГраница=Объект.ВерхняяГраница;
	//Первые два элемента зададим за циклом
	Первый=1;
	Сообщить(Первый);
	Второй=1;
	Сообщить(Второй);
	Для Номер=3 по ВерхняяГраница Цикл
		Текущий=Первый+Второй;
		Сообщить(Текущий);
		Первый=Второй;
		Второй=Текущий;
	КонецЦикла;
	
КонецПроцедуры

Пример применения цикла Пока

Решим задачу нахождения чисел Фибоначчи используя Цикл Пока. Известно, что верхняя граница равна 12. В качестве верхней границы цикла также будем использовать переменную. Цикл Пока является условным. Он выполняется Пока условие цикла Истинна.

&НаКлиенте
Процедура Команда2(Команда)
	// Вставить содержимое обработчика.
	// Цикл Для
	Перем ВерхняяГраница;
	ВерхняяГраница=Объект.ВерхняяГраница;
	//Первые два элемента зададим за циклом
	Первый=1;
	Сообщить(Первый);
	Второй=1;
	Сообщить(Второй);
	Номер=3;
	
	пока Номер<=ВерхняяГраница Цикл
		Текущий=Первый+Второй;
		Сообщить(Текущий);
		Первый=Второй;
		Второй=Текущий;
		Номер=Номер+1;
	КонецЦикла;

КонецПроцедуры

Цикл Пока не позволяет задать начальное значение переменной цикла. Поэтому начальное значение задается перед Циклом

Номер=3;

Также Цикл Пока в отличии от цикла Для не имеет внутреннего счетчика. Поэтому Была добавлена строка кода:

Номер=Номер+1;

Пример применения цикла Для Каждого

Решение задачи используя Цикл Для Каждого. Этот цикл можно применять только к массивам или другим Универсальным коллекциям значений .

&НаКлиенте
Процедура Команда3(Команда)
	// цикл для каждого 
	//создаем массив
	ВерхняяГраница=Объект.ВерхняяГраница;
	Массив=Новый массив(ВерхняяГраница);
	Массив[0]=1;
	Массив[1]=1;
	Для Номер=2 по ВерхняяГраница-1 Цикл
	   Массив[Номер]=Массив[Номер-1]+Массив[Номер-2];	
	КонецЦикла;
	//выводим массив
	для Каждого Элемент из Массив цикл
	    Сообщить(Элемент);	
	конецЦикла;
КонецПроцедуры

В Этом примере используется два вида циклов:

Во-первых цикл Для при создании массива.

Для Номер=2 по ВерхняяГраница-1 Цикл
	   Массив[Номер]=Массив[Номер-1]+Массив[Номер-2];	
	КонецЦикла;

Во-вторых цикл Для Каждого для вывода массива

//выводим массив
	для Каждого Элемент из Массив цикл
	    Сообщить(Элемент);	
	конецЦикла;

В результате Нами рассмотрен пример использования всех трех видов циклов в 1с.

Один ответ на “Циклы в 1с примеры применения.

  1. Спасибочки 🙂 Классная тема, пишите чаше – у вас отлично получается 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *