Базовый курс. Домашнее задание №2
Второе задание по 0-му блоку базового курса.
Для выполнения рекомендуется изучить следующие главы 0-го блока.
Глава 11. Программный код
Глава 12. Примитивные типы данных
Глава 13. Контекст исполнения кода
Глава 14. Объектная техника
Глава 15. Сервисные средства по написанию кода
К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.
//—————————————————
// Задача №1
Счетчик = 0;
Масс = Новый Массив();
// Бесконечный цикл
// и огромный массив нулевой аргумент = ложь, остальные истина
//Пока Счетчик < 10 Цикл
//
// // Так Счетчик = Счетчик+1 – в данном случае выражение
// // сравнения и преобразовывается к типу булево
// // и счетчику вообще не изменяется
// // так как он инициализирован нулем он всегда будет меньше 1000
// Масс.Добавить(Счетчик = Счетчик+1);
//КонецЦикла;
//—————————————————
// Задача №2
А = “010” + “010” ; // “010010” – Строка
Б = “010” ++”010″; // “01010” – Строка
В = “010” – “010” + 1; // 1 – число
Г = “010” + -“010” + 1;// “010-101” -Строка * (ножиданно себя ведет)
Д = “010” – “010”; // 0 – число
//—————————————————
// Задача №3
Начислено = 1000;
Выплачено = 2000;
// Поменять местами – способ 1
ВремПеременная = Начислено;
Начислено = Выплачено;
Выплачено = ВремПеременная;
Сообщить(“Начислено ” + Начислено);
Сообщить(“Выплачено ” + Выплачено);
// Поменять местами – способ 2
Выплачено = Выплачено + Начислено;
Начислено = Выплачено – Начислено;
Выплачено = Выплачено – Начислено;
Сообщить(“Начислено ” + Начислено);
Сообщить(“Выплачено ” + Выплачено);
//————————————————— // Задача №1 Счетчик = 0; Масс = Новый Массив(); // Бесконечный цикл // и огромный массив нулевой аргумент = ложь, остальные истина //Пока Счетчик < 10 Цикл // // // Так Счетчик = Счетчик+1 – в данном случае выражение // // сравнения и преобразовывается к типу булево // // и счетчику вообще не изменяется // // так как он инициализирован нулем он всегда будет меньше 1000 // Масс.Добавить(Счетчик = Счетчик+1); //КонецЦикла; //————————————————— // Задача №2 А = “010” + “010” ; // “010010” – Строка Б = “010” ++”010″; // “01010” – Строка В = “010” – “010” + 1; // 1 – число Г = “010” + -“010” + 1;// “010-101” -Строка * (ножиданно себя ведет) Д = “010” – “010”; // 0 – число //————————————————— // Задача №3 Начислено = 1000; Выплачено = 2000; // Поменять местами – способ 1 ВремПеременная = Начислено; Начислено = Выплачено; Выплачено = ВремПеременная; Сообщить(“Начислено ” + Начислено); Сообщить(“Выплачено ” + Выплачено); // Поменять местами – способ 2 Выплачено = Выплачено + Начислено; Начислено = Выплачено – Начислено; Выплачено = Выплачено – Начислено; Сообщить(“Начислено ” + Начислено); Сообщить(“Выплачено ” + Выплачено);
Задание сделала, п.1 не вызвал сомнений в том, что цикл бесконечный и элементы массива заполняются значением Ложь, п.2 – пришлось заглянуть в подсказку – унарный + и – совсем позабыла…, п.3 первый вариант получился, второй тоже подсмотрела в подсказке
Отчитываюсь тоже здесь, т.е. в ветке Задания, а не Решения:
1. Нюанс в том, что указанный Программный Код не вернёт Истину, счётчик не будет увеличиваться на единицу и цикл будет бесконечным.
В этом Программном Коде используется Операция Сравнения, а не Оператор Присваивания. Счётчик=Счётчик+1 будет возвращать Ложь. Соответственно будет выполняться бесконечный цикл. Чтобы этот программный Код работал Правильно нужно отдельно описать Операцию Присваивания и отдельно добавлять в массив значение счётчика.
2. Работа с четырьмя Операторами основана на преобразовании типа данных Строка к Числу.
3. Переменные меняются местами либо методом создания Новой Переменной,
либо методом накопления в одной из двух Переменных суммы двух Переменных.
выполнено. видимо отчитывался в другом месте… :\
Выполнил задание. В решении первой части задания помог просмотр образцового решения Дз №1; в задачах с унарными операциями ошибся; третья часть задания затруднений не вызвала
По первому пункту тоже догадался, что цикл бесконечный. А вот в пункте 2 допустил ошибки на б) и г) подпунктах. Пункт третий мне тоже уже знаком был. Подобное задание мне уже давали на собеседовании при трудоустройстве, там я решил его с помощью умножения.
Задание №2 выполнил.
п.1. Выхода из цикла – нет. В массив заполняется значением Ложь, получается что присваивать новое значение переменной можно только “вне метода”, а “в методе” платформа рассчитывает условие.
Пересмотрел урок 11-6. Я бы рекомендовал дополнительно акцентировать внимание на разницу межу присваиванием (=) и сравнением(=).
Я приведу пример. Внутри управляющих конструкций при одинаковом написании оператор выполняет разные функции.
А=0;
Если А= 1 Тогда // = сравнение
КонецЕсли;
Для А=1 По 10 Цикл // = присваивание
КонецЦикла;
Во избежание путаницы я бы сравнение писал так:
Если НЕ А<> Тогда
КонецЕсли;
п.2. При повторном прореживании – решил без ошибок, а кода решал первый – ошибки были, ответы не помнил.
п.3. Решил оба варианта. Когда решил второй вариант – стало приятно, сам себя похвалил :-)
Задание выполнено.
1. Цикл бесконечный, т.к счетчик не растет.
2. Ошиблась в пункте б. Разобралась.
3. Оба способа знакомы.
Задание сделал.
По первому пункту сразу понял, что цикл не закончится. В пункте два чуть-чуть ошибся. На практике такими вещами не пользовался. Теме не менее интересно поведение системы. Пункт три сделал без проблем обоими способами.
Задание выполнил.
1. Про цикл догадался :).
2. В уме в четвертом примере ошибся.
3. С использованием 3-й переменной – легко. Без её использования тоже не трудно – с давних пор знаю два способа (через сложение-вычитание, через умножение-деление). Наверное есть ещё способы, может кто поделится?
Выполнил. Второй пункт очень забавный. Как раз в нем допустил ошибку из-за невнимательности.
Сделал, теперь только отметился.
Задание порешал – как оказалось неверно:-(
Посмотрел ответы, думал…
Выполнил
Задание выполнено!
Отлично! :)
ДЗ № 2 выполнено.
Хорошее тренировочное. Особенно часть 2. Выполнил.
Отчитываюсь – тоже давно выполнил
Тоже сделано