2061
Комментарий:
|
← Версия 13 от 2022-01-12 11:55:15 ⇥
4621
|
Удаления помечены так. | Добавления помечены так. |
Строка 2: | Строка 2: |
(Есть подходящее по теме [[https://pythontutor.ru/lessons/inout_and_arithmetic_operations/|Занятие в pythontutor]]) | |
Строка 6: | Строка 7: |
* Редактор и цикл редактирование - запуск | |
Строка 14: | Строка 16: |
Идентификатор:: Последовательность букв, цифр и символов «`_`», начинающаяся ''не с цифры'' * Большие и маленькие буквы различаются * Может быть многосимвольным * Может содержать буквы в текущей кодировке (например, русские)) * :D : `a`, `aSDf`, `x_0`, `asd_345_ASD__`, `____`, `O0O0O0O0`, `_0` и т. п. * X-( : `0O`, `A₁`, `☺`, `A-B-C` Операция именования: |
|
Строка 24: | Строка 34: |
* Связывание объекта, которые изготовила функция | |
Строка 30: | Строка 41: |
<<Anchor(Athomize)>> == Алгоритмический разбор формулы == * Записанный на ЯП алгоритм в случае формулы совсем не ''последовательный'' * Упражнение по превращении формулы в последовательность операций * Например, формула $$(bx+c)/(ay)$$ может быть представлена в виде {{{#!python res = (b*x+c)/(a*y) }}} * Упражнение состоит в раскрытии скобок и превращении каждой операции вычисления в ''атомарную''. Возможный пример: {{{#!python res = b * x res = res + c res2 = a * y res = res / res2 }}} * Обратите внимание на ''повторное использование'' `res` и дополнительного имени `res2` для хранения промежуточных результатов * '''TODO''' на следующий раз: «`+=`» и ему подобные |
|
Строка 36: | Строка 64: |
'''TODO''' | * Связывание результата `input()` (это просто функция, разницы нет) * Суперпозиция функций == Д/З == 1.#0 [[../EJudge|Регистрация на EJudge]] 1. <<EJCMC(165, HelloWorld, Hello World!)>> 1. <<EJCMC(165, ThreeSum, Сумма трёх чисел)>> 1. <<EJCMC(165, CalcDiscr, Квадратное неуравнение)>> 1. <<EJCMC(165, CalcTrigonometry, Вычислить формулу)>> 1. <<EJCMC(165, AthomizeFormula, Раскрыть скобки)>> |
Ввод, вывод, имена объектов и решение домашних заданий
(Есть подходящее по теме Занятие в pythontutor)
Повтор:
Интерпретация командной строки в Python REPL
- Интерпретация файла со сценарием-программой
- Редактор и цикл редактирование - запуск
Вывод
- Понятие о времени жизни объектов
- Пример: вычисление арифметического выражения
- Вывод «объекта-результата» в REPL и игнорирование его в сценарии
⇒ Функция print(…)
- Запятые между выражениями-параметрами
Имена объектов
- Идентификатор
Последовательность букв, цифр и символов «_», начинающаяся не с цифры
- Большие и маленькие буквы различаются
- Может быть многосимвольным
- Может содержать буквы в текущей кодировке (например, русские))
: a, aSDf, x_0, asd_345_ASD__, ____, O0O0O0O0, _0 и т. п.
: 0O, A₁, ☺, A-B-C
Операция именования:
- Операция именования, доступ к объекту посредством имени
- Формальное отличие от операции присваивания в других ЯП
- Связывание объекта именем
Функция dir()
- Связывание объекта несколькими именами
функция id()
Удаление имени del
- ≠ удаление объекта
Использование модуля math
Встроенные функции, например, abs()
- Связывание объекта, которые изготовила функция
- Немного про функции
from math import sin и вызов функции sin
from math import * и dir()
Вариант: import math и math.sin() и т. п.
Повторение: ∄ вещественных числе, только модели, nextafter()
Алгоритмический разбор формулы
Записанный на ЯП алгоритм в случае формулы совсем не последовательный
- Упражнение по превращении формулы в последовательность операций
Например, формула $$(bx+c)/(ay)$$ может быть представлена в виде
1 res = (b*x+c)/(a*y)
Упражнение состоит в раскрытии скобок и превращении каждой операции вычисления в атомарную. Возможный пример:
Обратите внимание на повторное использование res и дополнительного имени res2 для хранения промежуточных результатов
TODO на следующий раз: «+=» и ему подобные
Ввод
Функция input(), возвращающая строку
- Пример с выводом строки
- Почему это именно строка
Функции int() и float() (для любителей — и complex())
Система счисления — необязательный второй параметр int()
Связывание результата input() (это просто функция, разницы нет)
- Суперпозиция функций
Д/З
EJudge: HelloWorld 'Hello World!'
Написать программу, которая выводит строку Hello, world (в точности)
(ввод не нужен)
Hello, world
EJudge: ThreeSum 'Сумма трёх чисел'
Ввести три вещественных числа по одному в строке. Вывести их сумму.
1 2.2 3.7e-3
3.2037
EJudge: CalcDiscr 'Квадратное неуравнение'
Ввести a, b, c и x, по одному вещественному числу в строке, и вывести результат $$ax^2+bx+c$$
1 2.2 3 4
27.8
EJudge: CalcTrigonometry 'Вычислить формулу'
Ввести x, вычислить формулу и вывести результат:
$$ x ln x-1/(12x^2+17 sin x+5) $$
1.234
0.23402832649377744
EJudge: AthomizeFormula 'Раскрыть скобки'
Ввести переменную x, вычислить формулу, и вывести результат.
Обязательное условие: на каждую операцию связывания ("=") должно приходиться не более одной арифметической операции или один вызов функции (см пример в лекиии)
$$ |x^2-x^3|-(7x)/(x^3-15x) $$
-1.23
3.8927814656746076