ответвлено от main/python-labs
Сравнить коммиты
6 Коммитов
ffaf154a63
...
main
| Автор | SHA1 | Дата | |
|---|---|---|---|
|
|
1e6c09714a | ||
|
|
a745cdf46f | ||
|
|
c0d720f810 | ||
|
|
541cfa55cb | ||
|
|
d71865a978 | ||
|
|
74133d71ae |
@@ -331,7 +331,10 @@ perm1*3= 777
|
|||||||
Попробуем в командной строке (в главном модуле) увеличить в 2 раза значения объектов perm1, tt, qq.
|
Попробуем в командной строке (в главном модуле) увеличить в 2 раза значения объектов perm1, tt, qq.
|
||||||
```py
|
```py
|
||||||
>>> perm1 = perm1*2; perm1
|
>>> perm1 = perm1*2; perm1
|
||||||
'777777'
|
Traceback (most recent call last):
|
||||||
|
File "<pyshell#5>", line 1, in <module>
|
||||||
|
perm1 = perm1*2
|
||||||
|
NameError: name 'perm1' is not defined
|
||||||
>>> tt = tt*2; tt
|
>>> tt = tt*2; tt
|
||||||
'44'
|
'44'
|
||||||
>>> qq = qq*2; qq
|
>>> qq = qq*2; qq
|
||||||
|
|||||||
37
TEMA8/test/Mod1.py
Обычный файл
37
TEMA8/test/Mod1.py
Обычный файл
@@ -0,0 +1,37 @@
|
|||||||
|
# Mod1.py
|
||||||
|
import math
|
||||||
|
|
||||||
|
def calc_function(a, x):
|
||||||
|
if x == 0:
|
||||||
|
return a
|
||||||
|
return a * math.sin(x) / x
|
||||||
|
|
||||||
|
def calculate_interval(a, x_start=0.5, x_end=50, step=0.5):
|
||||||
|
results = []
|
||||||
|
x = x_start
|
||||||
|
while x <= x_end:
|
||||||
|
value = calc_function(a, x)
|
||||||
|
results.append((x, value))
|
||||||
|
x += step
|
||||||
|
return results
|
||||||
|
|
||||||
|
def write_to_file(results, filename="output.txt"):
|
||||||
|
with open(filename, 'w', encoding='utf-8') as f:
|
||||||
|
for x, val in results:
|
||||||
|
f.write(f"{val}\n")
|
||||||
|
print(f"Данные записаны в файл: {filename}")
|
||||||
|
|
||||||
|
def plot_function(results):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
x_vals = [item[0] for item in results]
|
||||||
|
y_vals = [item[1] for item in results]
|
||||||
|
|
||||||
|
plt.figure(figsize=(10, 5))
|
||||||
|
plt.plot(x_vals, y_vals, label="f(x) = a * sin(x) / x", color='blue')
|
||||||
|
plt.title("График функции f(x) = a * sin(x) / x")
|
||||||
|
plt.xlabel("x")
|
||||||
|
plt.ylabel("f(x)")
|
||||||
|
plt.grid(True)
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
||||||
24
TEMA8/test/Mod2.py
Обычный файл
24
TEMA8/test/Mod2.py
Обычный файл
@@ -0,0 +1,24 @@
|
|||||||
|
import Mod1
|
||||||
|
|
||||||
|
print("=" * 50)
|
||||||
|
print("Расчёт функции f(x) = a * sin(x) / x")
|
||||||
|
print("=" * 50)
|
||||||
|
|
||||||
|
try:
|
||||||
|
a = float(input("Введите коэффициент a: "))
|
||||||
|
filename = input("Введите имя файла ('output.txt'): ") or "output.txt"
|
||||||
|
except ValueError:
|
||||||
|
print("Ошибка ввода! Используйте числа.")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
results = Mod1.calculate_interval(a)
|
||||||
|
|
||||||
|
print("\nПервые 10 значений:")
|
||||||
|
for x, val in results[:10]:
|
||||||
|
print(f" x={x:.1f}, f(x)={val:.6f}")
|
||||||
|
|
||||||
|
Mod1.write_to_file(results, filename)
|
||||||
|
|
||||||
|
print("\nОтображение графика:")
|
||||||
|
Mod1.plot_function(results)
|
||||||
|
|
||||||
Двоичные данные
TEMA8/test/image1.png
Обычный файл
Двоичные данные
TEMA8/test/image1.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 27 KiB |
Двоичные данные
TEMA8/test/image2.png
Обычный файл
Двоичные данные
TEMA8/test/image2.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 12 KiB |
100
TEMA8/test/output.txt
Обычный файл
100
TEMA8/test/output.txt
Обычный файл
@@ -0,0 +1,100 @@
|
|||||||
|
1.917702154416812
|
||||||
|
1.682941969615793
|
||||||
|
1.3299933154720727
|
||||||
|
0.9092974268256817
|
||||||
|
0.47877771528316515
|
||||||
|
0.0940800053732448
|
||||||
|
-0.20044755867978276
|
||||||
|
-0.3784012476539641
|
||||||
|
-0.43445783007337646
|
||||||
|
-0.3835697098652554
|
||||||
|
-0.2565601183892334
|
||||||
|
-0.09313849939964196
|
||||||
|
0.0661907655654817
|
||||||
|
0.18771045677679687
|
||||||
|
0.25013332713993036
|
||||||
|
0.24733956165584545
|
||||||
|
0.18787932061729182
|
||||||
|
0.09158188560927924
|
||||||
|
-0.015821288518275644
|
||||||
|
-0.10880422217787396
|
||||||
|
-0.16756109713746095
|
||||||
|
-0.181816401191037
|
||||||
|
-0.1522525521197267
|
||||||
|
-0.08942881966673916
|
||||||
|
-0.01061150357619211
|
||||||
|
0.06464108258871398
|
||||||
|
0.11907917430394385
|
||||||
|
0.14151533652783863
|
||||||
|
0.1289510421413356
|
||||||
|
0.08670504535428224
|
||||||
|
0.026640965411328592
|
||||||
|
-0.03598791458313316
|
||||||
|
-0.08627701119625734
|
||||||
|
-0.11310558727994786
|
||||||
|
-0.11150011491064658
|
||||||
|
-0.08344302741907512
|
||||||
|
-0.037024931726444596
|
||||||
|
0.015776548385573932
|
||||||
|
0.06210665330457447
|
||||||
|
0.09129452507276277
|
||||||
|
0.09725168724671213
|
||||||
|
0.0796814893843863
|
||||||
|
0.04387339563666941
|
||||||
|
-0.0008046644809458069
|
||||||
|
-0.043304401107600844
|
||||||
|
-0.07358438297175397
|
||||||
|
-0.08494315131739542
|
||||||
|
-0.07546486350055198
|
||||||
|
-0.0482740840706224
|
||||||
|
-0.010588140007821843
|
||||||
|
0.028161439531150453
|
||||||
|
0.05865834234458482
|
||||||
|
0.07391378438520128
|
||||||
|
0.07084266136329652
|
||||||
|
0.050853820484007106
|
||||||
|
0.019350413450562074
|
||||||
|
-0.015702150188547117
|
||||||
|
-0.045767854083652935
|
||||||
|
-0.06379873954867482
|
||||||
|
-0.06586877493952412
|
||||||
|
-0.05200834357096952
|
||||||
|
-0.026066944859552584
|
||||||
|
0.005331711472491862
|
||||||
|
0.03446416757760566
|
||||||
|
0.05439202606435881
|
||||||
|
0.06060071879437983
|
||||||
|
0.052008358219055306
|
||||||
|
0.031122510948236697
|
||||||
|
0.0033326074263724387
|
||||||
|
-0.024467581114065773
|
||||||
|
-0.04557852204010741
|
||||||
|
-0.05509882519128421
|
||||||
|
-0.05105298015642222
|
||||||
|
-0.034785845046324294
|
||||||
|
-0.010549269313944655
|
||||||
|
0.015598346247862386
|
||||||
|
0.03729738144268281
|
||||||
|
0.049425404424825015
|
||||||
|
0.049298504085821676
|
||||||
|
0.03725565802396744
|
||||||
|
0.01650129268387262
|
||||||
|
-0.007737691161205316
|
||||||
|
-0.029520971227733485
|
||||||
|
-0.0436438832340778
|
||||||
|
-0.046874658970333834
|
||||||
|
-0.038687197331562714
|
||||||
|
-0.021324851309601257
|
||||||
|
0.0008046329593369808
|
||||||
|
0.02224203674393834
|
||||||
|
0.0378179344237386
|
||||||
|
0.043894104281836065
|
||||||
|
0.0392081890282091
|
||||||
|
0.02512673481347465
|
||||||
|
0.005258430755115915
|
||||||
|
-0.01546548838459753
|
||||||
|
-0.03201061088848612
|
||||||
|
-0.04045807994239575
|
||||||
|
-0.03892867970446824
|
||||||
|
-0.027995351686209927
|
||||||
|
-0.01049499414815715
|
||||||
101
TEMA8/test/test.md
Обычный файл
101
TEMA8/test/test.md
Обычный файл
@@ -0,0 +1,101 @@
|
|||||||
|
# Индивидуальное контрольное задание по теме 8
|
||||||
|
|
||||||
|
Зеленкина Катерина, А-02-23
|
||||||
|
Вариант 8
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
Задание из ЛР7: разработайте анонимную функцию, вычисляющую значение a*sin(x)/x, где a,x – аргументы функции. Рассчитайте эту функцию в интервале значений х: 0<x≤50 с шагом 0.5 и при некотором значении коэффициента a. Обеспечьте запись рассчитанных значений в текстовый файл по одному значению на строке. Отобразите рассчитанные значения в виде графика.
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
Содержимое Mod1
|
||||||
|
```py
|
||||||
|
# Mod1.py
|
||||||
|
import math
|
||||||
|
|
||||||
|
def calc_function(a, x):
|
||||||
|
if x == 0:
|
||||||
|
return a
|
||||||
|
return a * math.sin(x) / x
|
||||||
|
|
||||||
|
def calculate_interval(a, x_start=0.5, x_end=50, step=0.5):
|
||||||
|
results = []
|
||||||
|
x = x_start
|
||||||
|
while x <= x_end:
|
||||||
|
value = calc_function(a, x)
|
||||||
|
results.append((x, value))
|
||||||
|
x += step
|
||||||
|
return results
|
||||||
|
|
||||||
|
def write_to_file(results, filename="output.txt"):
|
||||||
|
with open(filename, 'w', encoding='utf-8') as f:
|
||||||
|
for x, val in results:
|
||||||
|
f.write(f"{val}\n")
|
||||||
|
print(f"Данные записаны в файл: {filename}")
|
||||||
|
|
||||||
|
def plot_function(results):
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
x_vals = [item[0] for item in results]
|
||||||
|
y_vals = [item[1] for item in results]
|
||||||
|
|
||||||
|
plt.figure(figsize=(10, 5))
|
||||||
|
plt.plot(x_vals, y_vals, label="f(x) = a * sin(x) / x", color='blue')
|
||||||
|
plt.title("График функции f(x) = a * sin(x) / x")
|
||||||
|
plt.xlabel("x")
|
||||||
|
plt.ylabel("f(x)")
|
||||||
|
plt.grid(True)
|
||||||
|
plt.legend()
|
||||||
|
plt.show()
|
||||||
|
```
|
||||||
|
|
||||||
|
Содержимое Mod2:
|
||||||
|
```py
|
||||||
|
import Mod1
|
||||||
|
|
||||||
|
print("=" * 50)
|
||||||
|
print("Расчёт функции f(x) = a * sin(x) / x")
|
||||||
|
print("=" * 50)
|
||||||
|
|
||||||
|
try:
|
||||||
|
a = float(input("Введите коэффициент a: "))
|
||||||
|
filename = input("Введите имя файла ('output.txt'): ") or "output.txt"
|
||||||
|
except ValueError:
|
||||||
|
print("Ошибка ввода! Используйте числа.")
|
||||||
|
exit()
|
||||||
|
|
||||||
|
results = Mod1.calculate_interval(a)
|
||||||
|
|
||||||
|
print("\nПервые 10 значений:")
|
||||||
|
for x, val in results[:10]:
|
||||||
|
print(f" x={x:.1f}, f(x)={val:.6f}")
|
||||||
|
|
||||||
|
Mod1.write_to_file(results, filename)
|
||||||
|
|
||||||
|
print("\nОтображение графика:")
|
||||||
|
Mod1.plot_function(results)
|
||||||
|
```
|
||||||
|
|
||||||
|
Вывод:
|
||||||
|
```py
|
||||||
|
Введите коэффициент a: 2
|
||||||
|
Введите имя файла ('output.txt'): output.txt
|
||||||
|
|
||||||
|
Первые 10 значений:
|
||||||
|
x=0.5, f(x)=1.917702
|
||||||
|
x=1.0, f(x)=1.682942
|
||||||
|
x=1.5, f(x)=1.329993
|
||||||
|
x=2.0, f(x)=0.909297
|
||||||
|
x=2.5, f(x)=0.478778
|
||||||
|
x=3.0, f(x)=0.094080
|
||||||
|
x=3.5, f(x)=-0.200448
|
||||||
|
x=4.0, f(x)=-0.378401
|
||||||
|
x=4.5, f(x)=-0.434458
|
||||||
|
x=5.0, f(x)=-0.383570
|
||||||
|
Данные записаны в файл: output.txt
|
||||||
|
|
||||||
|
Отображение графика:
|
||||||
|
```
|
||||||
|

|
||||||
|
|
||||||
|
Файл __output.txt__ был успешно создан:
|
||||||
|

|
||||||
@@ -55,7 +55,9 @@ emp2.add_encouragement("Лучший лектор")
|
|||||||
emp1.add_encouragement("За экспертную работу")
|
emp1.add_encouragement("За экспертную работу")
|
||||||
|
|
||||||
print(f"Поощрения {emp1.fio}: {emp1.pooshrenia}")
|
print(f"Поощрения {emp1.fio}: {emp1.pooshrenia}")
|
||||||
print(f"Поощрения {emp2.fio}: {emp2.pooshrenia}")```
|
print(f"Поощрения {emp2.fio}: {emp2.pooshrenia}")
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
```py
|
```py
|
||||||
Обычайко Д. С., УИТ, Ассистент, оклад: 70000
|
Обычайко Д. С., УИТ, Ассистент, оклад: 70000
|
||||||
|
|||||||
10
TEMA9/test/M0.py
Обычный файл
10
TEMA9/test/M0.py
Обычный файл
@@ -0,0 +1,10 @@
|
|||||||
|
import M2
|
||||||
|
|
||||||
|
res = M2.main()
|
||||||
|
if res:
|
||||||
|
c, p, o = res
|
||||||
|
with open("Res3030.txt", "w", encoding="utf-8") as f:
|
||||||
|
f.write("Результаты:\n")
|
||||||
|
for country, value in zip(c, p):
|
||||||
|
f.write(f"{country}: {value}\n")
|
||||||
|
f.write(f"\nОбщее: {o}")
|
||||||
20
TEMA9/test/M1.py
Обычный файл
20
TEMA9/test/M1.py
Обычный файл
@@ -0,0 +1,20 @@
|
|||||||
|
import pylab
|
||||||
|
|
||||||
|
def calc(d):
|
||||||
|
pop = 0
|
||||||
|
res = 0
|
||||||
|
cnt = []
|
||||||
|
per = []
|
||||||
|
for c, v in d.items():
|
||||||
|
pop += v[0]
|
||||||
|
res += v[1]
|
||||||
|
cnt.append(c)
|
||||||
|
per.append(v[1]/v[0] if v[0]>0 else 0)
|
||||||
|
return cnt, per, res/pop if pop>0 else 0
|
||||||
|
|
||||||
|
def plot(d):
|
||||||
|
pylab.bar(d.keys(), [v[1] for v in d.values()])
|
||||||
|
pylab.title('Ресурс по странам')
|
||||||
|
pylab.xlabel('Страны')
|
||||||
|
pylab.ylabel('Ресурс')
|
||||||
|
pylab.show()
|
||||||
30
TEMA9/test/M2.py
Обычный файл
30
TEMA9/test/M2.py
Обычный файл
@@ -0,0 +1,30 @@
|
|||||||
|
import os
|
||||||
|
import M1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
fname = input("Файл (data.txt): ")
|
||||||
|
if not os.path.isfile(fname):
|
||||||
|
print("Файл не найден")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Чтение данных
|
||||||
|
data = {}
|
||||||
|
with open(fname, 'r', encoding='utf-8') as f:
|
||||||
|
for line in f:
|
||||||
|
c, p, r = line.strip().split()
|
||||||
|
data[c] = [float(p), float(r)]
|
||||||
|
|
||||||
|
print("Данные:", data)
|
||||||
|
|
||||||
|
# Расчёт
|
||||||
|
c, p, o = M1.calc(data)
|
||||||
|
|
||||||
|
print("\nРесурс на душу:")
|
||||||
|
for country, val in zip(c, p):
|
||||||
|
print(f"{country}: {val:.3f}")
|
||||||
|
print(f"\nОбщее: {o:.3f}")
|
||||||
|
|
||||||
|
# График
|
||||||
|
M1.plot(data)
|
||||||
|
|
||||||
|
return c, p, o
|
||||||
9
TEMA9/test/Res3030.txt
Обычный файл
9
TEMA9/test/Res3030.txt
Обычный файл
@@ -0,0 +1,9 @@
|
|||||||
|
Результаты:
|
||||||
|
США: 0.07682119205298013
|
||||||
|
Россия: 0.10342465753424657
|
||||||
|
Австралия: 0.5
|
||||||
|
Китай: 0.009216909216909217
|
||||||
|
Индия: 0.007279151943462898
|
||||||
|
Германия: 0.03975903614457831
|
||||||
|
|
||||||
|
Общее: 0.023178226514486387
|
||||||
6
TEMA9/test/data.txt
Обычный файл
6
TEMA9/test/data.txt
Обычный файл
@@ -0,0 +1,6 @@
|
|||||||
|
США 302 23.2
|
||||||
|
Россия 146 15.1
|
||||||
|
Австралия 28 14
|
||||||
|
Китай 1443 13.3
|
||||||
|
Индия 1415 10.3
|
||||||
|
Германия 83 3.3
|
||||||
Двоичные данные
TEMA9/test/image1.png
Обычный файл
Двоичные данные
TEMA9/test/image1.png
Обычный файл
Двоичный файл не отображается.
|
После Ширина: | Высота: | Размер: 13 KiB |
132
TEMA9/test/test.md
Обычный файл
132
TEMA9/test/test.md
Обычный файл
@@ -0,0 +1,132 @@
|
|||||||
|
# Индивидуальное контрольное задание по теме 9
|
||||||
|
|
||||||
|
Зеленкина Катерина, А-02-23
|
||||||
|
Вариант 6
|
||||||
|
|
||||||
|
## Задание
|
||||||
|
1) Создайте модуль М1, содержащий две функции:
|
||||||
|
- функция 1: аргумент - словарь с исходными данными (ключи - страны, значения - списки с 2 значениями: население, объем некоторого ресурса); функция должна создать два списка: список стран и список с элементами - для каждой страны значение ресурса на душу населения, а также значение отношения суммарных ресурсов к суммарному населению;
|
||||||
|
- функция 2: аргумент - словарь, такой же, как в функции1; функция должна построить столбиковую диаграмму, демонстрирующую распределение ресурса по странам.
|
||||||
|
|
||||||
|
2) Создайте еще один модуль М2, в котором должны выполняться операции:
|
||||||
|
- запрашивается и вводится имя бинарного файла, проверяется его наличие, и если он существует, то из него считывается объект-словарь с исходными данными;
|
||||||
|
- вызывается функция 1 и отображаются результаты;
|
||||||
|
- вызывается функция 2.
|
||||||
|
|
||||||
|
3) Создайте модуль М0 - главную программу, которая вызывает М2 и после завершения ее работы записывает полученные результаты в текстовый файл Res3030.txt.
|
||||||
|
|
||||||
|
4) Проверьте программу с данными о запасах угля в разных странах:
|
||||||
|
|
||||||
|
США 302 23.2
|
||||||
|
|
||||||
|
Россия 146 15.1
|
||||||
|
|
||||||
|
Австралия 28 14
|
||||||
|
|
||||||
|
Китай 1443 13.3
|
||||||
|
|
||||||
|
Индия 1415 10.3
|
||||||
|
|
||||||
|
Германия 83 3.3
|
||||||
|
|
||||||
|
## Решение
|
||||||
|
Содержимое M1
|
||||||
|
```py
|
||||||
|
import pylab
|
||||||
|
|
||||||
|
def calc(d):
|
||||||
|
pop = 0
|
||||||
|
res = 0
|
||||||
|
cnt = []
|
||||||
|
per = []
|
||||||
|
for c, v in d.items():
|
||||||
|
pop += v[0]
|
||||||
|
res += v[1]
|
||||||
|
cnt.append(c)
|
||||||
|
per.append(v[1]/v[0] if v[0]>0 else 0)
|
||||||
|
return cnt, per, res/pop if pop>0 else 0
|
||||||
|
|
||||||
|
def plot(d):
|
||||||
|
pylab.bar(d.keys(), [v[1] for v in d.values()])
|
||||||
|
pylab.title('Ресурс по странам')
|
||||||
|
pylab.xlabel('Страны')
|
||||||
|
pylab.ylabel('Ресурс')
|
||||||
|
pylab.show()
|
||||||
|
```
|
||||||
|
|
||||||
|
Содержимое M2:
|
||||||
|
```py
|
||||||
|
import os
|
||||||
|
import M1
|
||||||
|
|
||||||
|
def main():
|
||||||
|
fname = input("Файл (data.txt): ")
|
||||||
|
if not os.path.isfile(fname):
|
||||||
|
print("Файл не найден")
|
||||||
|
return
|
||||||
|
|
||||||
|
# Чтение данных
|
||||||
|
data = {}
|
||||||
|
with open(fname, 'r', encoding='utf-8') as f:
|
||||||
|
for line in f:
|
||||||
|
c, p, r = line.strip().split()
|
||||||
|
data[c] = [float(p), float(r)]
|
||||||
|
|
||||||
|
print("Данные:", data)
|
||||||
|
|
||||||
|
# Расчёт
|
||||||
|
c, p, o = M1.calc(data)
|
||||||
|
|
||||||
|
print("\nРесурс на душу:")
|
||||||
|
for country, val in zip(c, p):
|
||||||
|
print(f"{country}: {val:.3f}")
|
||||||
|
print(f"\nОбщее: {o:.3f}")
|
||||||
|
|
||||||
|
# График
|
||||||
|
M1.plot(data)
|
||||||
|
|
||||||
|
return c, p, o
|
||||||
|
```
|
||||||
|
|
||||||
|
Содержимое M0:
|
||||||
|
```py
|
||||||
|
import M2
|
||||||
|
|
||||||
|
res = M2.main()
|
||||||
|
if res:
|
||||||
|
c, p, o = res
|
||||||
|
with open("Res3030.txt", "w", encoding="utf-8") as f:
|
||||||
|
f.write("Результаты:\n")
|
||||||
|
for country, value in zip(c, p):
|
||||||
|
f.write(f"{country}: {value}\n")
|
||||||
|
f.write(f"\nОбщее: {o}")
|
||||||
|
```
|
||||||
|
|
||||||
|
Создали файл data.txt с данными:
|
||||||
|
```py
|
||||||
|
США 302 23.2
|
||||||
|
Россия 146 15.1
|
||||||
|
Австралия 28 14
|
||||||
|
Китай 1443 13.3
|
||||||
|
Индия 1415 10.3
|
||||||
|
Германия 83 3.3
|
||||||
|
```
|
||||||
|
|
||||||
|
Вывод:
|
||||||
|
```py
|
||||||
|
Файл (data.txt): data.txt
|
||||||
|
Данные: {'США': [302.0, 23.2], 'Россия': [146.0, 15.1], 'Австралия': [28.0, 14.0], 'Китай': [1443.0, 13.3], 'Индия': [1415.0, 10.3], 'Германия': [83.0, 3.3]}
|
||||||
|
|
||||||
|
Ресурс на душу:
|
||||||
|
США: 0.077
|
||||||
|
Россия: 0.103
|
||||||
|
Австралия: 0.500
|
||||||
|
Китай: 0.009
|
||||||
|
Индия: 0.007
|
||||||
|
Германия: 0.040
|
||||||
|
|
||||||
|
Общее: 0.023
|
||||||
|
```
|
||||||
|
|
||||||
|
График:
|
||||||
|

|
||||||
Ссылка в новой задаче
Block a user