Решение ДЗ №2.
1. Предполагалось, что цикл будет выполнен 1000 раз.
Но цикл будет бесконечный, потому что в коде встречается не оператор присваивания, а оператор сравнения.
Чтобы произошло 1000 итераций нужно изменить код:
М.Добавить(Счетчик);
Счетчик=Счетчик+1
2. Для оператора А получим склеивание строк получим строку 010010
Для оператора Б преобразуем 010+(+010) получим строку 01010
Для оператора В 010-010+1 это числа получим число 1
Для оператора Г преобразуем к виду 010+(-010)+1 получим строку 010-101
3. а). С использованием временной переменной:
Начислено=1000;
Выплачено=2000;
Уважаемая команда курсов по Программированию, с праздником Первомая!
Прошу прощения, но почему-то нет решения Преподавателя.
Возможно мы не в той ветке отчитываемся,
но в другой ветке система не принимает комментариев.
Да, Олег, но при попытке внести комментарий в этой ветке
База пишет следующее: Извините, обсуждение этой записи закрыто.
Такая же ситуация и с решением Третьего ДЗ.
А хочется получить решение Преподавателя.
Спасибо!
№1
Цикл будет повторяться бесконечно, произойдет зацикливание. Так как условия выхода из данного цикла, выполнены не будут. Для добавления элементов массива используется метод объекта М.Добавить. В качестве параметра этого метода используется операция сравнения переменных Счетчик и Счетчик +1, результатом этого сравнения будет значение тип Булево “Ложь”. Массив будет бесконечно заполняться элементами с Булевским значением “Ложь”.
№2
А. 010010
Б. 01010
В. 1
Г. 010-101
№3
Вариант : с использованием промежуточной переменной.
<code>
Перем Начислено,Выплачено,Врем;
Начислено = 1000;
Выплачено = 2000;
Врем = Начислено;
Начислено = Выплачено;
Выплачено = Врем;
</code>
Вариант : без использования промежуточной переменной.
<code>
Перем Начислено,Выплачено;
Начислено = 1000;
Выплачено = 2000;
Код создает массив, но счетчик помещен в параметр М.Добавить, а потому он изменяться не будет и в итоге получается бесконечный цикл.
Т.к. первые значения – строка, все + в этих выражениях являются конкатенацией. Т.к. строки можно привести к числу, – является вычитанием и выполняется в приоритете.
Обработка Замены значений:
Добрый день!
№1
Это бесконечный цикл, т.к. в параметре метода М.Добавить используется операция сравнения, что приводит к бесконечному циклу.
№2
А. 010010
Б. 01010
В. 1
Г. 010-101
№3
Вариант : с использованием промежуточной переменной.
<code>
Начислено = 1000;
Выплачено =2000;
ПромПерем = Выплачено;
Выплачено = Начислено;
Начислено = ПромПерем;
</code>
Вариант : без использования промежуточной переменной.
<code>
Начислено = 1000;
Выплачено =2000;
Начислено = Начислено + Выплачено;
Выплачено = Начислено – Выплачено;
Начислено = Начислено – Выплачено;
</code>
Все материалы этого сайта являются составной частью Базового / Продвинутого курсов по программированию - и являются объектами авторского и имущественного права.
Любое их распространение без письменного согласования с авторами запрещено.
Решение ДЗ №2.
1. Предполагалось, что цикл будет выполнен 1000 раз.
Но цикл будет бесконечный, потому что в коде встречается не оператор присваивания, а оператор сравнения.
Чтобы произошло 1000 итераций нужно изменить код:
М.Добавить(Счетчик);
Счетчик=Счетчик+1
2. Для оператора А получим склеивание строк получим строку 010010
Для оператора Б преобразуем 010+(+010) получим строку 01010
Для оператора В 010-010+1 это числа получим число 1
Для оператора Г преобразуем к виду 010+(-010)+1 получим строку 010-101
3. а). С использованием временной переменной:
Начислено=1000;
Выплачено=2000;
ВременнаяПеременная=Выплачено;
Выплачено=Начислено;
Начислено=ВременнаяПеременная;
в. без использования временной переменной:
Начислено=Начислено+Выплачено;
Выплачено=Начислено-Выплачено;
Начислено=Начислено-Выплачено;
Losick, ваш отчет принят.
Уважаемая команда курсов по Программированию, с праздником Первомая!
Прошу прощения, но почему-то нет решения Преподавателя.
Возможно мы не в той ветке отчитываемся,
но в другой ветке система не принимает комментариев.
Спасибо, вас тоже с праздниками.
Вы действительно отчитываетесь на другой странице. Отчитываться нужно вот на этой.
Да, Олег, но при попытке внести комментарий в этой ветке
База пишет следующее: Извините, обсуждение этой записи закрыто.
Такая же ситуация и с решением Третьего ДЗ.
А хочется получить решение Преподавателя.
Спасибо!
Проверьте почту (вам был выслан новый пароль для входа в блог) и попытайтесь повторно опубликовать комментарий.
№1
Цикл будет повторяться бесконечно, произойдет зацикливание. Так как условия выхода из данного цикла, выполнены не будут. Для добавления элементов массива используется метод объекта М.Добавить. В качестве параметра этого метода используется операция сравнения переменных Счетчик и Счетчик +1, результатом этого сравнения будет значение тип Булево “Ложь”. Массив будет бесконечно заполняться элементами с Булевским значением “Ложь”.
№2
А. 010010
Б. 01010
В. 1
Г. 010-101
№3
Вариант : с использованием промежуточной переменной.
<code>
Перем Начислено,Выплачено,Врем;
Начислено = 1000;
Выплачено = 2000;
Врем = Начислено;
Начислено = Выплачено;
Выплачено = Врем;
</code>
Вариант : без использования промежуточной переменной.
<code>
Перем Начислено,Выплачено;
Начислено = 1000;
Выплачено = 2000;
Начислено = Начислено+Выплачено;
Выплачено = Начислено-Выплачено;
Начислено = Начислено-Выплачено;
</code>
Сергей, ваш отчет принят.
Код создает массив, но счетчик помещен в параметр М.Добавить, а потому он изменяться не будет и в итоге получается бесконечный цикл.
Т.к. первые значения – строка, все + в этих выражениях являются конкатенацией. Т.к. строки можно привести к числу, – является вычитанием и выполняется в приоритете.
Обработка Замены значений:
С применением временной переменной:
<code>
&НаСервере
Процедура ЗаменаЗначений(Начислено, Выплачено)
Промежуточная = Начислено;
Начислено = Выплачено;
Выплачено = Промежуточная;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Начислено = 1000;
Выплачено = 2000;
ЗаменаЗначений(Начислено, Выплачено);
Сообщить(“Начислено”+” “+Начислено);
Сообщить(“Выплачено”+” “+Выплачено);
КонецПроцедуры
<code/>
Без применения временной переменной:
<code>
&НаСервере
Процедура ЗаменаЗначений(Начислено, Выплачено)
Начислено = Начислено+Выплачено;
Выплачено = Начислено-Выплачено;
Начислено = Начислено-Выплачено;
КонецПроцедуры
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Начислено = 150;
Выплачено = 301;
ЗаменаЗначений(Начислено, Выплачено);
Сообщить(“Начислено”+” “+Начислено);
Сообщить(“Выплачено”+” “+Выплачено);
КонецПроцедуры
<code/>
Максим, ваше решение принято.
Добрый день!
№1
Это бесконечный цикл, т.к. в параметре метода М.Добавить используется операция сравнения, что приводит к бесконечному циклу.
№2
А. 010010
Б. 01010
В. 1
Г. 010-101
№3
Вариант : с использованием промежуточной переменной.
<code>
Начислено = 1000;
Выплачено =2000;
ПромПерем = Выплачено;
Выплачено = Начислено;
Начислено = ПромПерем;
</code>
Вариант : без использования промежуточной переменной.
<code>
Начислено = 1000;
Выплачено =2000;
Начислено = Начислено + Выплачено;
Выплачено = Начислено – Выплачено;
Начислено = Начислено – Выплачено;
</code>
Здравствуйте. AlexandraK, ваш отчет принят. Изучите наше решение.