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