форкнуто от main/python-labs
				
			
						Сommit
						437460afc1
					
				| @ -0,0 +1,3 @@ | ||||
| __pycache__ | ||||
| .* | ||||
| !.gitignore | ||||
| @ -0,0 +1,133 @@ | ||||
| # Программное обеспечение автоматизированных систем: лабораторные работы | ||||
| 
 | ||||
| [Репозиторий с методическими указаниями и заданиями.](http://uit.mpei.ru/git/main/python) | ||||
| 
 | ||||
| ## Работа с Git | ||||
| 
 | ||||
| **Работы проверяются только после того, как закоммичены по правилам ниже.** | ||||
| 
 | ||||
| [Лабораторная работа про Git второго семестра][gitlab] | ||||
| поможет вспомнить, как работать с Git. | ||||
| 
 | ||||
| [gitlab]: http://uit.mpei.ru/git/main/cs/src/branch/main/labs/lab02 | ||||
| 
 | ||||
| 1. В начале семестра | ||||
|     создать на сервере копию этого репозитория («форкнуть» его), нажав *Fork*. | ||||
|     Получится репозиторий-форк `http://uit.mpei.ru/git/IvanovII/python-labs`, | ||||
|     где `IvanovII` — ваше имя пользователя. | ||||
| 
 | ||||
| 1. В начале каждого занятия: | ||||
| 
 | ||||
|     Клонировать свой форк на рабочий стол | ||||
|     (`IvanovII` заменить на свое имя пользователя): | ||||
| 
 | ||||
|     ```sh | ||||
|     git clone http://uit.mpei.ru/git/IvanovII/python-labs.git | ||||
|     ``` | ||||
| 
 | ||||
|     Перебазировать свой форк на исходный репозиторий ("апстрим"): | ||||
| 
 | ||||
|     ```sh | ||||
|     # Первую команду нужно запускать только один раз, | ||||
|     # иначе будет ошибка "error: remote upstream already exists". | ||||
|     git remote add upstream http://uit.mpei.ru/git/main/python-labs.git | ||||
|     git fetch upstream | ||||
|     git stash push | ||||
|     git rebase upstream/main | ||||
|     git stash pop | ||||
|     ``` | ||||
| 
 | ||||
|     Перебазировать нужно, чтобы подтянуть из исходного репозитория обновления. | ||||
| 
 | ||||
| 1. После того, как отчет написан, закоммитить его как `TEMAn/report.md`. | ||||
| 
 | ||||
|     **Здесь и далее «закоммитить» для краткости означает: | ||||
|     сделать коммит и запушить его на сервер.** | ||||
| 
 | ||||
|     Здесь и далее `TEMAn` означают каталоги конкретных тем: | ||||
|     `TEMA1`, `TEMA2` и т. д. | ||||
|     Можно также коммитить по частям в процессе работы. | ||||
|     Если для отчета нужны рисунки, то их закоммитить в `TEMAn`, | ||||
|     назвав `figure0.png`, `figure1.png` и т. д. | ||||
| 
 | ||||
| 1. Решение общего контрольного задания (ОКЗ) закоммитить как `TEMAn/task.md`. | ||||
|     Исключения: | ||||
| 
 | ||||
|     * Тема 1 не содержит общего контрольного задания — ничего не делать. | ||||
|     * Тема 8 требует нескольких файлов — закоммитить их в каталог `TEMA8/task`. | ||||
| 
 | ||||
| 1. Решение индивидуального контрольного задания (ИКЗ) по темам 2, 4, 5, 7, 8 | ||||
|     или решение теста по модуля после тем 3, 6, 9 | ||||
|     закоммитить как `TEMAn/test.md`. | ||||
|     Исключения: | ||||
| 
 | ||||
|     * Тема 1 вместо ИКЗ содержит контрольный вопрос — | ||||
|         закоммитить также в `TEMA1/test.md`. | ||||
|     * Тема 8 и тест по модулю 3 (после темы 9) требуют нескольких файлов — | ||||
|         закоммитить в каталог `TEMAn/test`. | ||||
| 
 | ||||
| ## Оформление материалов | ||||
| 
 | ||||
| Тексты оформляются в формате [Markdown](https://commonmark.org/help/). | ||||
| Для этого текст со специальной разметкой пишется в файле с расширением `*.md`, | ||||
| а в web-интерфейсе будет отображаться оформленным, подобно этому. | ||||
| 
 | ||||
| Образец оформления материалов по каждой теме: [`TEMA0`](TEMA0). | ||||
| 
 | ||||
| ### Оформление отчетов | ||||
| 
 | ||||
| Отчет `TEMAn/report.md` оформляется в формате Markdown по следующему образцу: | ||||
| 
 | ||||
|     # Отчет по теме 1 | ||||
| 
 | ||||
|     Иванов Иван, А-01-25 | ||||
| 
 | ||||
|     ## 1 Изучение среды IDLE | ||||
| 
 | ||||
|     ## 1.1 Настройка текущего каталога | ||||
| 
 | ||||
|     ``` | ||||
|     >>> import os | ||||
|     >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") | ||||
|     >>> os.getcwd() | ||||
|     'C:\\Users\\u111-19\\Desktop\\python\\TEMA1' | ||||
|     ``` | ||||
| 
 | ||||
|     Нажал *Файл / Открыть*, диалог оказался сразу нацелен на установленную папку: | ||||
| 
 | ||||
|      | ||||
| 
 | ||||
| Заголовки пунктов должны отражать их суть в нескольких словах, | ||||
| то есть просто скопировать текст пункта в заголовок не подойдет. | ||||
| Вы должны сами придумать осмысленные заголовки, прочитав пункт задания. | ||||
| 
 | ||||
| В отчет копируется код, введенный в оболочку (строки, начинающиеся с `>>>`), | ||||
| и вывод соответствующих команд (`'C:\\Users...` в примере). | ||||
| 
 | ||||
| Если в пункте задания требуется сделать вывод или объяснить что-то, | ||||
| к коду и выводу добавляется письменный ответ или пояснение. | ||||
| 
 | ||||
| ### Оформление решений | ||||
| 
 | ||||
| Решение всех заданий оформляется по образцу: | ||||
| 
 | ||||
|     # Общее контрольное задание по теме 2 | ||||
| 
 | ||||
|     Иванов Иван, А-01-25 | ||||
| 
 | ||||
|     ## Задание | ||||
| 
 | ||||
|     Создать переменную `name`, содержащую ваше имя. Определить тип этой переменной. | ||||
| 
 | ||||
|     ## Решение | ||||
| 
 | ||||
|     ```py | ||||
|     >>> name = 'Иван' | ||||
|     >>> type(name) | ||||
|     'str' | ||||
|     ``` | ||||
| 
 | ||||
| Для темы 1 вместо «Задания» — «Вопрос», вместо «Решения» — «Ответ». | ||||
| 
 | ||||
| Для тем 8 и 9 раздела «Решение» не нужно, | ||||
| вместо этого решение размещается в отдельных файлах `*.py`. | ||||
| @ -0,0 +1,6 @@ | ||||
| # Тема 0: образец оформления материалов | ||||
| 
 | ||||
| * `README.md` — этот документ, в своих темах создавать не нужно; | ||||
| * [`report.md`](report.md) — отчет; | ||||
| * [`task.md`](task.md) — общее контрольное задание; | ||||
| * [`test.md`](test.md) — индивидуальное контрольное задание. | ||||
| После Ширина: | Высота: | Размер: 15 KiB | 
| @ -0,0 +1,18 @@ | ||||
| # Отчет по теме 0 | ||||
| 
 | ||||
| Иванов Иван, А-01-25 | ||||
| 
 | ||||
| ## 1 Изучение среды IDLE | ||||
| 
 | ||||
| ## 1.1 Настройка текущего каталога | ||||
| 
 | ||||
| ``` | ||||
| >>> import os | ||||
| >>> os.chdir(r"C:\users\u111-19\Desktop\python\TEMA1") | ||||
| >>> os.getcwd() | ||||
| 'C:\\Users\\u111-19\\Desktop\\python\\TEMA1' | ||||
| ``` | ||||
| 
 | ||||
| Нажал *Файл / Открыть*, диалог оказался сразу нацелен на установленную папку: | ||||
| 
 | ||||
|  | ||||
| @ -0,0 +1,15 @@ | ||||
| # Общее контрольное задание по теме 0 | ||||
| 
 | ||||
| Иванов Иван, А-01-25 | ||||
| 
 | ||||
| ## Задание | ||||
| 
 | ||||
| Создать переменную `name`, содержащую ваше имя. Определить тип этой переменной. | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| >>> name = 'Иван' | ||||
| >>> type(name) | ||||
| 'str' | ||||
| ``` | ||||
| @ -0,0 +1,24 @@ | ||||
| # Индивидуальное контрольное задание по теме 0 | ||||
| 
 | ||||
| Иванов Иван, А-01-25 | ||||
| 
 | ||||
| ## Задание | ||||
| 
 | ||||
| Создать переменную `name`, содержащую ваше имя, | ||||
| и `surname`, содержащую вашу фамилию. | ||||
| Как из них можно создать переменную, содержащую ваше полное имя? | ||||
| 
 | ||||
| ## Решение | ||||
| 
 | ||||
| ```py | ||||
| >>> name = 'Иван' | ||||
| >>> surname = 'Иванов' | ||||
| ``` | ||||
| 
 | ||||
| Создать требуемую переменную `full_name` можно так: | ||||
| 
 | ||||
| ```py | ||||
| >>> full_name = name + ' ' + surname | ||||
| >>> full_name | ||||
| 'Иван Иванов' | ||||
| ``` | ||||
| @ -0,0 +1,2 @@ | ||||
| name = input("Как Вас зовут? ") | ||||
| print("Привет,", name) | ||||
| @ -0,0 +1,59 @@ | ||||
| # File: tdemo_chaos.py | ||||
| # Author: Gregor Lingl | ||||
| # Date: 2009-06-24 | ||||
| 
 | ||||
| # A demonstration of chaos | ||||
| 
 | ||||
| from turtle import * | ||||
| 
 | ||||
| N = 80 | ||||
| 
 | ||||
| def f(x): | ||||
|     return 3.9*x*(1-x) | ||||
| 
 | ||||
| def g(x): | ||||
|     return 3.9*(x-x**2) | ||||
| 
 | ||||
| def h(x): | ||||
|     return 3.9*x-3.9*x*x | ||||
| 
 | ||||
| def jumpto(x, y): | ||||
|     penup(); goto(x,y) | ||||
| 
 | ||||
| def line(x1, y1, x2, y2): | ||||
|     jumpto(x1, y1) | ||||
|     pendown() | ||||
|     goto(x2, y2) | ||||
| 
 | ||||
| def coosys(): | ||||
|     line(-1, 0, N+1, 0) | ||||
|     line(0, -0.1, 0, 1.1) | ||||
| 
 | ||||
| def plot(fun, start, color): | ||||
|     pencolor(color) | ||||
|     x = start | ||||
|     jumpto(0, x) | ||||
|     pendown() | ||||
|     dot(5) | ||||
|     for i in range(N): | ||||
|         x=fun(x) | ||||
|         goto(i+1,x) | ||||
|         dot(5) | ||||
| 
 | ||||
| def main(): | ||||
|     reset() | ||||
|     setworldcoordinates(-1.0,-0.1, N+1, 1.1) | ||||
|     speed(0) | ||||
|     hideturtle() | ||||
|     coosys() | ||||
|     plot(f, 0.35, "blue") | ||||
|     plot(g, 0.35, "green") | ||||
|     plot(h, 0.35, "red") | ||||
|     # Now zoom in: | ||||
|     for s in range(100): | ||||
|         setworldcoordinates(0.5*s,-0.1, N+1, 1.1) | ||||
|     return "Done!" | ||||
| 
 | ||||
| if __name__ == "__main__": | ||||
|     main() | ||||
|     mainloop() | ||||
| @ -0,0 +1,9 @@ | ||||
| #Модуль Mod0 | ||||
| import Mod1 | ||||
| print('perm1=',Mod1.perm1) | ||||
| from Mod2 import alpha as al | ||||
| tt=al() | ||||
| print('tt=',tt) | ||||
| from Mod2 import beta | ||||
| qq=beta(float(tt)) | ||||
| print('qq=',qq) | ||||
| @ -0,0 +1,2 @@ | ||||
| perm1=input('Mod1:Введите значение = ') | ||||
| print('Mod1:Значение perm1=',perm1) | ||||
| @ -0,0 +1,11 @@ | ||||
| def alpha(): | ||||
|     print('****ALPHA****') | ||||
|     t=input('Значение t=') | ||||
|     return t | ||||
| 
 | ||||
| def beta(q): | ||||
|     print('****BETA****') | ||||
|     import math | ||||
|     expi=q*math.pi | ||||
|     return math.exp(expi) | ||||
|      | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче