Различия между версиями 8 и 9
Версия 8 от 2021-09-19 14:12:31
Размер: 4240
Редактор: FrBrGeorge
Комментарий:
Версия 9 от 2021-09-20 20:55:10
Размер: 4509
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 70: Строка 70:
 * <<EJCMC(165, CalcDisrc, Дискриминант)>>
 * <<EJCMC(165, CalcTrigonometry, Вычислить формулу)>>
 * <<EJCMC(165, AthomizeFormula, Раскрыть скобки)>>
 * <<EJCMC(165, AthomizeTrigonometry, Раскрыть скобки-2)>>

Ввод, вывод, имена объектов и решение домашних заданий

Повтор:

  • Интерпретация командной строки в Python REPL

  • Интерпретация файла со сценарием-программой
  • Редактор и цикл редактирование - запуск

Вывод

  • Понятие о времени жизни объектов
    • Пример: вычисление арифметического выражения
    • Вывод «объекта-результата» в REPL и игнорирование его в сценарии
  • ⇒ Функция print(…)

    • Запятые между выражениями-параметрами

Имена объектов

Идентификатор

Последовательность букв, цифр и символов «_», начинающаяся не с цифры

  • Большие и маленькие буквы различаются
  • Может быть многосимвольным
  • Может содержать буквы в текущей кодировке (например, русские))
  • :D : a, aSDf, x_0, asd_345_ASD__, ____, O0O0O0O0, _0 и т. п.

  • X-( : 0O, A₁, , A-B-C

Операция именования:

  • Операция именования, доступ к объекту посредством имени
    • Формальное отличие от операции присваивания в других ЯП
  • Связывание объекта именем
  • Функция dir()

  • Связывание объекта несколькими именами
    • функция id()

  • Удаление имени del

    • ≠ удаление объекта

Использование модуля math

  • Встроенные функции, например, abs()

  • Связывание объекта, которые изготовила функция
  • math

    • Немного про функции
  • from math import sin и вызов функции sin

  • from math import * и dir()

  • Вариант: import math и math.sin() и т. п.

  • Повторение: ∄ вещественных числе, только модели, nextafter()

Алгоритмический разбор формулы

  • Записанный на ЯП алгоритм в случае формулы совсем не последовательный

  • Упражнение по превращении формулы в последовательность операций
    • Например, формула $$(bx+c)/(ay)$$ может быть представлена в виде

         1   res = (b*x+c)/(a*y)
      
    • Упражнение состоит в раскрытии скобок и превращении каждой операции вычисления в атомарную. Возможный пример:

         1   res = b * x
         2   res = res + c
         3   res2 = a * y
         4   res = res / res2
      
      • Обратите внимание на повторное использование res и дополнительного имени res2 для хранения промежуточных результатов

      • TODO на следующий раз: «+=» и ему подобные

Ввод

  • Функция input(), возвращающая строку

    • Пример с выводом строки
    • Почему это именно строка
  • Функции int() и float() (для любителей — и complex())

    • Система счисления — необязательный второй параметр int()

  • Связывание результата input() (это просто функция, разницы нет)

  • Суперпозиция функций

Д/З

  • Регистрация на EJudge

  • EJudge: HelloWorld 'Hello World!'

    Написать программу, которая выводит строку Hello, world (в точности)

    Input:

    (ввод не нужен)
    Output:

    Hello, world
  • TODO будут ещё задачи!

  • EJudge: CalcTrigonometry 'Вычислить формулу'

    Ввести x, вычислить формулу и вывести результат:

    • $$ x ln x-1/(12x^2+17 sin x+5) $$

    Input:

    1.234
    Output:

    0.23402832649377744
  • EJudge: AthomizeFormula 'Раскрыть скобки'

    Ввести переменную x, вычислить формулу, и вывести результат.

    • Обязательное условие: на каждую операцию связывания ("=") должно приходиться не более одной арифметической операции или один вызов функции (см пример в лекиии)

    • $$ |x^2-x^3|-(7x)/(x^3-15x) $$

    Input:

    -1.23
    Output:

    3.8927814656746076

Python/GeoPython2021/02_NamesInputPrnit (последним исправлял пользователь FrBrGeorge 2022-01-12 11:55:15)