This repository was archived by the owner on Jan 21, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlaba2_Monte_Carlo.py
More file actions
52 lines (52 loc) · 8.43 KB
/
laba2_Monte_Carlo.py
File metadata and controls
52 lines (52 loc) · 8.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
end = 1 # создание переменной для выхода из программы
while end == 1: # цикл для повторения программы
change = int(input("""Меню:
1 - Задача №1
2 - Задача №2
3 - Задача №3
0 - Выход из программы
""")) # инициализация переменной выбора + вывод меню
if change == 1: # выбор задачи 1
print("\nЗадача №1") # вывод информации с переводом в новую строку
x = float(input("Введите x: ")) # инициализация х с преобразованием текста в вещественное число
if x > 0: # первое условие
print("y = 2*x - 10 = 2*" + str(x) + " - 10 = " + str((x*2 - 10))) # вывод ответа с преобразованиями чисел в строки + конкатенация строк
elif x == 0: # второе условие
print("y = 0") # вывод ответа
else: # случай, если оба условия не подошли
print("y = 2*|x| - 1 = 2*|" + str(x) + "| - 1 = " + str((abs(x)*2 - 1))) # вывод ответа с преобразованиями чисел в строки + конкатенация строк
print() # пустая строка
elif change == 2: # выбор задачи 2
print("\nЗадача №2") # вывод информации с переводом в новую строку
N = int(input("Введите количество чисел: ")) # инициализация переменной, отвечающей за количество чисел
i = 0 # инициализация переменной, участвующей в цикле
score = 0 # инициализация счётчика, считает 0
print("Введите числа (по одному в строку):") # вывод информации
while i < N: # цикл, который выполняется, пока i < N
x = int(input()) # ввод чисел пользователя
if x == 0: # проверка 0
score = score + 1 # увеличение счётчика
i = i + 1 # увелечение переменной цикла
print("Количество чисел равных нулю: " + str(score)) # вывод ответа
print() # пустая строка
elif change == 3: # выбор задачи 3
print("\nЗадача №3") # вывод информации с переводом в новую строку
Points = int(input("Введите точность вычисления: ")) # ввод точности
i = 0 # инициализация переменной, участвующей в цикле
score2 = 0 # инициализация счётчика, считает количество точек, попадающих в фигуру
while (i < Points): # цикл, который повторяется количество раз равное точности
i = i + 1 # увелечение переменной цикла
import random # подключение модуля рандом
x1 = random.uniform(0,8) # инициализация переменной с случайным вещественным числом в диапазоне от 0 до 8
y1 = random.uniform(0,8) # инициализация переменной с случайным вещественным числом в диапазоне от 0 до 8
if (8 >= y1 >= x1/4) and (0 <= x1 <= 8): # проверка на принадлежность точки к фигуре
if (0 <= x1 < 2) and (y1 <= 2): score2 = score2 + 1 # проверка на принадлежность точки к фигуре + увеличение счётчика
elif (2 <= x1 < 4) and (y1 <=4): score2 = score2 + 1 # проверка на принадлежность точки к фигуре + увеличение счётчика
elif (4 <= x1 < 6) and (y1 <=6): score2 = score2 + 1 # проверка на принадлежность точки к фигуре + увеличение счётчика
elif (6 <= x1 <= 8) and (y1 <=8): score2 = score2 + 1 # проверка на принадлежность точки к фигуре + увеличение счётчика
print("Площадь данной фигуры, согласно заданной точности равна: " + str((score2/Points)*64)) # вывод ответа
elif change == 0: # выбор выхода
end = 0 # изменение переменной для выхода из программы
else: # если пользователь ввёл цифру, не соответвующюю пунктам меню
print() # пустая строка
continue # оператор, начинающий следующий проход цикла