Базовый курс. МГ сессия от 01.11.10

Продолжаем отвечать в формате видео на ваши вопросы. Представляем 6 новых видео-уроков.

Сегодня рассмотрены следующие вопросы.

1. —Пусть элемент структуры А.А равен 100,  вызываем некую процедуру Тест(А, А.А);
Процедура Тест(Структура, Элемент)
Структура = NULL;
Сообщить (Элемент); //  100!!!… —Структура «уничтожена», а значение ее элемента продолжает оставаться доступным!

2. —Присваивание переменных: по ссылке и по значению —Я стремился реализовать не формальное отсутствие других имен переменных, а реально избежать создания в памяти 3-го экземпляра значения, поскольку думаю, что в реальной задаче нам никто не запретит объявить еще одну переменную —А вот вспомогательное значение при обмене значениями между переменными очень большого размера (предположим, в каждой лежит картинка мегабайт по 500) – это уже может сказаться на скорости работы алгоритма. —Примеры

3. —Заметил,  что основное тело модуля формы обработки почему-то выполняется 2 раза. —В чем причина такого поведения?

4.—Пусть у нас есть строка кода типа:

X = Y + B + M + L

— т.е. у нас есть три операции одинакового приоритета (в данном случае сложения). Как система определяет, в какой последовательности будет происходить сложение этих переменных ??? —По принципу слева направо (к Y прибавит B, к полученному результату прибавит M и так далее) ??? —Это я к тому, что вместо переменных Y,B,M,L могут быть заданы условия в скобках, например:
X = (Усл1)  + M + L + (Усл2) — и тогда порядок следования слагаемых в выражении может повлиять на оптимальность. —

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

комментариев 5 на “Базовый курс. МГ сессия от 01.11.10”

  1. Спасибо за ответы Евгений !!!

  2. Евгений, большое спасибо за ответы :),  прочувствовал разницу между самообразованием по сканам методичек из интернета и учебой на курсах.
    3-4. Сделал вывод, что при знакомстве с новыми типами данных нужно будет обязательно поэкспериментировать, как работает с ними оператор присваивания.
    5. Был еще такой непонятный момент: когда в вашем примере курсор отладчика при компиляции “на клиенте” (примерно 47-я секунда видео) остановился на А=11;  табло показывает, что значение А еще не присвоено, если нажать не F5, а F11 – переход к след. строке, то увидим, что А=11, “число”, Б – “неопределено”, еще раз F11 – открывается форма обработки, но Б в табло по-прежнему “неопределено”!!! Я думал, что баг платформы: при второй компиляции не выполняется последний оператор основной программы модуля, но поместив вместо Б=11; оператор Сообщить(11); при открытии формы увидел два сообщения 11, сделал вывод, что последний оператор выполняется, но табло некорректно отражает текущую ситуацию (отстает на один оператор). Только непонятно, так происходит только с последним оператором программы, или это общая особенность работы табло – запаздывание отображения результатов на 1 оператор?

    • 5. Давайте разбираться.
      Если отладчик стоит на какой-либо строке это значит, что она еще не выполнена.
      Переходим на следующую строку – предыдущая выполняется.
      А вот результат выполнения последней строки в разделе основной программы мы не увидим!

  3. Подбородников Евгений 02.11.2010 в 17:17

    Евгений, правильно ли я понял из видео, что например, для того чтобы поменять таблицу значений из 800000 строк и список значений из 600000 можно воспользоваться вспомогательной переменной и это не приведет к выделению лишней памяти?