форкнуто от 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)
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
					Загрузка…
					
					
				
		Ссылка в новой задаче