комментариев 10 на “Базовый курс. Занятие №2”

  1. Aleksandr.nett 04.01.2016 в 19:40

    Домашнее задание № 2 Блок 0.

    1 Результат исполнения кода – создание одномерного Массива. И исполнение бесконечного цикла , поскольку значение присвоенное переменной Счетчик , в результате вычисления выражения Счетчик = Счетчик+1 , примет тип булево и значение Ложь.

    2.
    А. «010» + «010» = «010010»
    Б. «010» ++ «010» = «01010»
    В. «010» – «010» = 0
    Г. «010» +- «010» = «010-10»

    3. Замена переменных.
    //Вариант с промежуточной переменной

     Начислено = 150; Выплачено = 301;
     Врем = Начислено;
     Начислено = Выплачено;
     Выплачено = Врем;

    //3. Вариант без промежуточной переменной

     Начислено = 150;
     Выплачено = 301;
     Начислено = Начислено + Выплачено;
     Выплачено = Начислено - Выплачено;
     Начислено = Начислено - Выплачено;
    <
  2. Poyto_n_z@mail.ru 23.10.2015 в 00:39
    1. задание. Программа зациклится, т.к.значение Счетчика не увеличивается/не изменяется. Метода добавить в массив, добавляет в элемент массива результат сравнения, т.к. Истину или Ложь
    2. задание. в обработке написала
    Сообщить("010" + "010" ); // 20
          Сообщить("010" ++ "010");  //20
          Сообщить("010" - "010" + 1); //1
          Сообщить("010" +- "010" + 1); //1

    3. задание
    • Poyto_n_z@mail.ru 23.10.2015 в 00:53
      3.задание
      Функция ПервыйСпособСПромежуточнойПеременной(Начислено, Выплачено)
          ПромежуточнаяПеременная = Начислено;
          Начислено = Выплачено;
          Выплачено = ПромежуточнаяПеременная;
         
      КонецФункции // ПервыйСпособСПромежуточнойПеременной()

      Функция ВторойСпособБезПромежуточнойПеременной(Начислено, Выплачено)
          Начислено = Начислено + Выплачено;
          Выплачено = Начислено  - Выплачено;
          Начислено = Начислено  - Выплачено ;
      КонецФункции // ПервыйСпособСПромежуточнойПеременной()
  3. 1. Цикл после запуска становится бесконечным, т.к. код внутри скобок метода Добавить() воспринимается как выражение, вычисленное значение которого добавляется в массив М.

    2. Второй знак воспринимается как унарная операция.
    “010” + “010” =”010010″
    “010” ++ “010” =”01010
    “010” – “010” + 1 =1
    “010” +- “010” + 1 =”010-101″

    3.

    &НаКлиенте
    Процедура ОбменЗначениямиСПромежуточнойПеременной(Команда)
        Перем Начислено, Выплачено, Промежуточная;
       
        Начислено = 1000;
        Выплачено = 2000;
       
        Сообщить("Обмен с промежуточной переменной.");
        Сообщить("   ДО: Начислено - " + Начислено + "; Выплачено - " + Выплачено);
       
        Промежуточная = Начислено;
        Начислено = Выплачено;
        Выплачено = Промежуточная;
       
        Сообщить("ПОСЛЕ: Начислено - " + Начислено + "; Выплачено - " + Выплачено);
    КонецПроцедуры

    &НаКлиенте
    Процедура ОбменЗначениямиБезПромежуточнойПеременной(Команда)
        Перем Начислено, Выплачено;
       
        Начислено = 150;
        Выплачено = 301;
       
        Сообщить("Обмен без промежуточной переменной.");
        Сообщить("   ДО: Начислено - " + Начислено + "; Выплачено - " + Выплачено);
       
        Выплачено = Начислено + Выплачено;
        Начислено = Макс(-(Начислено - Выплачено),(Начислено - Выплачено));
        Выплачено = Выплачено - Начислено;
        Сообщить("ПОСЛЕ: Начислено - " + Начислено + "; Выплачено - " + Выплачено);
    КонецПроцедуры
  4. 1. С использованием временной переменной

    ВремПерем = Начислено;
    Начислено = Выплачено;
    Выплачено = ВремПерем;

    2.Без использования временной переменной

    Начислено = 150;
    Выплачено = 301;
    А = Начислено;
    В = Выплачено;
    А = А + В;
    В = А - В;
    А = А - В;
  5. 1. Зацикливание программы (т.е нет выхода из цикла), так как счетчик не переключается.

    2.
    2.1. “010010”. Это операция сложения двух строк.
    2.2. “01010”. В данном случае сначала вторая часть выражения, так как у нее выше приоритет превращается в число 10, а потом идет сложение строки “010” и числа 10.
    2.3. 1. Так как получается сначала строки “010” и “010” превратить в числа 10 и 10. Потом выполнить операцию вычитания, получается 0, а потом к нулю прибавить 1, получается 1.
    2.4 “010-101”. Высший приоритет имеет унарная операция -, т.е сначала -“010” превращается в -10. Потом идет сложение первой части текстовой строки “010” с числом -10, получается “010-10”, потом к этой итоговой строке добавляется 1. Получается “010-101”
    Проверял на обработке 1 урока.

    3.
    3.1. С использованием новой переменной
    Начислено=1000;
    Выплачено=2000;
    НоваяПеременная = Начислено;
    Начислено = Выплачено;
    Выплачено = НоваяПеременная;

    3.2 Без использования переменной
    Начислено=1000;
    Выплачено=2000;
    Выплачено = Выплачено+Начислено; //3000
    Начислено = Выплачено-Начислено; //3000-1000=2000
    Выплачено = Выплачено-Начислено; //3000-2000=1000

    При вставке фрагментов кода их следует обрамлять тегами

     

    Скажите пожалуйста, как это технически делается?

    • Татьяна Гужавина 12.10.2015 в 10:18

      Доброго дня, Дмитрий!
      Необходимо использовать теги code.

      • А как технически это делать?

        • Татьяна Гужавина 13.10.2015 в 08:07

          В начале ставите теги code. Далее текст, после тег с закрытием /code

  6. 1. Выполнение программного кода приведет к бесконечному циклу, т.к. оператор «=» в выражении Счетчик = Счетчик + 1 , размещенного как параметр метода массива «Добавить()», выступает не оператором присваивания , а проверяет значения на равенство.

    2. А – “010010”, Б – “01010” , В – 1 , Г – “010-101” .
    3. С использованием промежуточной переменной

    Процедура ПриНачалеРаботыСистемы()
       
        Начислено = 1000;
        Выплачено = 2000;
        Сообщить("До обмена переменных: Начислено = " + Начислено + ", Выплачено = " + Выплачено);
        Обмен(Начислено, Выплачено);
        Сообщить("После обмена переменных: Начислено = " + Начислено + ", Выплачено = " + Выплачено);
           
    КонецПроцедуры

    Процедура Обмен(Операнд1, Операнд2)
       
        ВременнаяПерем = Операнд1;
        Операнд1 = Операнд2;
        Операнд2 = ВременнаяПерем;

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

    Без использования промежуточной переменной

    Процедура ПриНачалеРаботыСистемы()
       
        Начислено = 150;
        Выплачено = 301;
        Сообщить("До обмена переменных: Начислено = " + Начислено + ", Выплачено = " + Выплачено);
        Обмен(Начислено, Выплачено);
        Сообщить("После обмена переменных: Начислено = " + Начислено + ", Выплачено = " + Выплачено);
           
    КонецПроцедуры

    Процедура Обмен(Операнд1, Операнд2)
       
        Операнд2 = Операнд2 - Операнд1;
        Операнд1 = Операнд1 + Операнд2;
        Операнд2 = Операнд1 - Операнд2;

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