Differences between revisions 12 and 13
Revision 12 as of 2021-09-24 09:53:58
Size: 4602
Editor: FrBrGeorge
Comment:
Revision 13 as of 2022-01-12 08:55:15
Size: 4621
Editor: FrBrGeorge
Comment:
Deletions are marked like this. Additions are marked like this.
Line 71: Line 71:
 1. <<EJCMC(165, CalcDiscr, Дискриминант)>>  1. <<EJCMC(165, CalcDiscr, Квадратное неуравнение)>>

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

(Есть подходящее по теме Занятие в pythontutor)

Повтор:

  • Интерпретация командной строки в 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() (это просто функция, разницы нет)

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

Д/З

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

  2. EJudge: HelloWorld 'Hello World!'

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

    Input:

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

    Hello, world
  3. EJudge: ThreeSum 'Сумма трёх чисел'

    Ввести три вещественных числа по одному в строке. Вывести их сумму.

    Input:

    1
    2.2
    3.7e-3
    Output:

    3.2037
  4. EJudge: CalcDiscr 'Квадратное неуравнение'

    Ввести a, b, c и x, по одному вещественному числу в строке, и вывести результат $$ax^2+bx+c$$

    Input:

    1
    2.2
    3
    4
    Output:

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

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

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

    Input:

    1.234
    Output:

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

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

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

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

    Input:

    -1.23
    Output:

    3.8927814656746076

Python/GeoPython2021/02_NamesInputPrnit (last edited 2022-01-12 08:55:15 by FrBrGeorge)