Базовый курс. Домашнее задание №2

Второе задание по 0-му блоку базового курса.

Для выполнения рекомендуется изучить следующие главы 0-го блока.
Глава 11. Программный код
Глава 12. Примитивные типы данных
Глава 13. Контекст исполнения кода
Глава 14. Объектная техника
Глава 15. Сервисные средства по написанию кода

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь. Если Вы оплачивали курс, у Вас активирован токен доступа, Вы залогинены, но Вы видите эту запись — напишите нам на e-mail поддержки.

комментария 63 на “Базовый курс. Домашнее задание №2”

  1. //—————————————————
    // Задача №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 Выплачено = Выплачено + Начислено; Начислено = Выплачено – Начислено; Выплачено = Выплачено – Начислено; Сообщить(“Начислено ” + Начислено); Сообщить(“Выплачено ” + Выплачено);

  2. Зиля Гайфуллина 25.11.2010 в 10:06

    Задание сделала, п.1 не вызвал сомнений в том, что цикл бесконечный и элементы массива заполняются значением Ложь, п.2 – пришлось заглянуть в подсказку – унарный + и – совсем позабыла…, п.3 первый вариант получился, второй тоже подсмотрела в подсказке

  3. Отчитываюсь тоже здесь, т.е. в ветке Задания, а не Решения:
    1. Нюанс в том, что указанный Программный Код не вернёт Истину, счётчик не будет увеличиваться на единицу и цикл будет бесконечным.
    В этом Программном Коде используется Операция Сравнения, а не Оператор Присваивания. Счётчик=Счётчик+1 будет возвращать Ложь. Соответственно будет выполняться бесконечный цикл. Чтобы этот программный Код работал Правильно нужно отдельно описать Операцию Присваивания и отдельно добавлять в массив значение счётчика.
    2. Работа с четырьмя Операторами основана на преобразовании типа данных Строка к Числу.
    3. Переменные меняются местами либо методом создания Новой Переменной,
    либо методом накопления в одной из двух Переменных суммы двух Переменных.

  4. выполнено. видимо отчитывался в другом месте… :\

  5. Выполнил задание.  В решении первой части задания помог просмотр образцового решения Дз №1;  в задачах с унарными операциями ошибся; третья часть задания затруднений не вызвала

  6. По первому пункту тоже догадался, что цикл бесконечный. А вот в пункте 2 допустил ошибки на б) и г) подпунктах. Пункт третий мне тоже уже знаком был. Подобное задание мне уже давали на собеседовании при трудоустройстве, там я решил его с помощью умножения.

  7. Задание №2 выполнил.
    п.1. Выхода из цикла – нет. В массив заполняется значением Ложь, получается что присваивать новое значение переменной можно только “вне метода”, а “в методе” платформа рассчитывает условие.
    Пересмотрел урок 11-6. Я бы рекомендовал дополнительно акцентировать внимание на разницу межу присваиванием (=) и сравнением(=).
    Я приведу пример. Внутри управляющих конструкций при одинаковом написании оператор выполняет разные функции.
    А=0;
    Если А= 1 Тогда // = сравнение
    КонецЕсли;
    Для А=1 По 10 Цикл // = присваивание
    КонецЦикла;
    Во избежание путаницы я бы сравнение писал так:
    Если НЕ А<> Тогда
    КонецЕсли;
    п.2. При повторном прореживании – решил без ошибок, а кода решал первый – ошибки были, ответы не помнил.
    п.3. Решил оба варианта. Когда решил второй вариант – стало приятно, сам себя похвалил :-)

  8. Задание выполнено.
    1. Цикл бесконечный, т.к счетчик не растет.
    2. Ошиблась в пункте б. Разобралась.
    3. Оба способа знакомы.
     

  9. Задание сделал.
    По первому пункту сразу понял, что цикл не закончится. В пункте два чуть-чуть ошибся. На практике такими вещами не пользовался. Теме не менее интересно поведение системы. Пункт три сделал без проблем обоими способами.

  10. Задание выполнил.
    1. Про цикл догадался :).
    2. В уме в четвертом примере ошибся.
    3. С использованием 3-й переменной – легко.  Без её использования тоже не трудно – с давних пор знаю два способа (через сложение-вычитание, через умножение-деление). Наверное есть ещё способы, может кто поделится?

  11. Выполнил. Второй пункт очень забавный. Как раз в нем допустил ошибку из-за невнимательности.

  12. Сделал, теперь только отметился.

  13. Задание порешал – как оказалось неверно:-(
    Посмотрел ответы, думал…

  14. Igor V.Borodin 18.09.2010 в 20:36

    Выполнил

  15. Harley Davidson 18.09.2010 в 17:41

    Задание выполнено!

  16. ДЗ № 2 выполнено.

  17. Хорошее тренировочное. Особенно часть 2. Выполнил.

  18. Отчитываюсь – тоже давно выполнил

  19. Сергей Ермаков 09.09.2010 в 20:40

    Тоже сделано