Числа в Python и операции с ними

Числа в Python

Числа являются одним из самых важных типов данных в программировании. В Python есть два основных типа чисел: целые (int) и дробные (float).

Примеры из реальной жизни:

  • Возраст человека — целое число.
  • Время в формате часы:минуты — целые числа.
  • Вес предмета — дробное число.
  • Цена товара — дробное число.

Примеры кода:

# Создание целых чисел
a = 10
b = 1000
c = -5

# Создание дробных чисел
x = 3.14
y = 2.5
z = -0.01

# Вывод значений переменных
print(a, b, c, x, y, z)

Результат:

10 1000 -5 3.14 2.5 -0.01

Примеры использования чисел при решении задач на Python

  1. Вычисление площади круга:
    # Пример использования целых чисел в решении задачи
    
    # Задача: Вычислить площадь круга.
    
    # Решение:
    # S = π * r^2, где S - площадь, π - число пи, r - радиус круга.
    
    import math
    
    # Ввод радиуса круга
    r = int(input("Введите радиус круга: "))
    
    # Вычисление площади круга
    S = math.pi * (r ** 2)
    
    # Вывод результата
    print("Площадь круга равна:", S)
    
  2. Подсчет среднего арифметического двух чисел:
    # Пример использования дробных чисел в решении задачи
    
    # Задача: Вычислить среднее арифметическое двух чисел.
    
    # Решение:
    # Среднее арифметическое двух чисел - это сумма этих чисел, деленная на 2.
    
    # Ввод двух чисел
    a = float(input("Введите первое число: "))
    b = float(input("Введите второе число: "))
    
    # Вычисление среднего арифметического
    avg = (a + b) / 2
    
    # Вывод результата
    print("Среднее арифметическое двух чисел равно:", avg)
    

Задание для закрепления. Написать программу, которая будет запрашивать у пользователя три целых числа и выводить на экран их сумму.

Числовые операции и операторы

Python предоставляет ряд операций и операторов, которые могут быть использованы для работы с числами. Некоторые из основных операций включают в себя:

  • сложение (+)
  • вычитание (-)
  • умножение (*)
  • деление (/)
  • возведение в степень (**)
  • целочисленное деление (//)
  • взятие остатка от деления (%)

Кроме того, Python также предоставляет операторы сравнения, такие как:

  • равно (==)
  • не равно (!=)
  • больше (>)
  • меньше (<)
  • больше или равно (>=)
  • меньше или равно (<=)

Несколько практических применений числовым операциям.

  1. Финансы: операции сложения, вычитания, умножения и деления используются в финансовых расчетах. Например, вы можете написать программу, которая вычисляет проценты по кредиту или подсчитывает ваши ежемесячные расходы.
    # Пример программы для вычисления процентов по кредиту
    loan_amount = 10000
    interest_rate = 0.05
    years = 5
    
    total_interest = loan_amount * interest_rate * years
    total_paid = loan_amount + total_interest
    
    print("Total interest paid: $", total_interest)
    print("Total amount paid: $", total_paid)
    
  2. Инженерия: операции сложения, вычитания, умножения и деления используются для вычисления различных параметров, таких как скорость, расстояние, мощность и т.д. Например, вы можете написать программу для вычисления скорости объекта на основе его расстояния и времени.
    # Пример программы для вычисления скорости объекта
    distance = 10 # в километрах
    time = 2 # в часах
    
    speed = distance / time
    
    print("Speed: ", speed, "km/h")
    
  3. Наука: операции сложения, вычитания, умножения и деления используются для обработки данных и вычисления статистических показателей. Например, вы можете написать программу, которая анализирует данные и вычисляет среднее значение или стандартное отклонение.
    # Пример программы для вычисления среднего значения
    numbers = [5, 10, 15, 20, 25]
    
    total = sum(numbers)
    count = len(numbers)
    mean = total / count
    
    print("Mean: ", mean)
    

Задание 2. Написать программу, которая вычисляет периметр окружности на основе его радиуса.

Задание 3. Написать программу, которая вычисляет площадь треугольника на основе его высоты и основания

Задание 4. Написать программу, которая преобразует градусы в радианы.

Чем отличаются операции деления, целочисленного деления и взятия остатка

  • Целочисленное деление возвращает результат, который является целым числом и не содержит дробной части. Оператор целочисленного деления в Python обозначается символом //. Например, 7 // 2 = 3
  • Дробное деление возвращает результат, который содержит дробную часть. Оператор дробного деления в Python обозначается символом /. Например. 7 / 2 = 3.5
  • Взятие остатка возвращает остаток от деления двух чисел. Оператор взятия остатка в Python обозначается символом %. Например, 7 % 2 = 1

Практическое применение целочисленного деления — распределение задач по группам. Предположим, что у вас есть 12 задач, которые нужно разделить на три группы. Вы можете использовать целочисленное деление для распределения задач поровну между группами:

>>> tasks = 12
>>> groups = 3
>>> tasks_per_group = tasks // groups
>>> tasks_per_group
4

Практическое применение дробного деления — расчет стоимости продуктов в магазине. Предположим, что у вас есть 3 яблока, которые стоят 30 рублей в общей сумме. Чтобы узнать цену одного яблока, нужно использовать дробное деление:

>>> total_cost = 30
>>> apples = 3
>>> cost_per_apple = total_cost / apples
>>> cost_per_apple
10.0

Практическое применение взятия остатка — проверка четности числа. Чтобы проверить, является ли число четным, можно использовать оператор взятия остатка и проверить, равен ли остаток от деления числа на 2 нулю:

>>> num = 7
>>> remainder = num % 2
>>> remainder
1
>>> if remainder == 0:
...     print("Число", num, "четное")
... else:
...     print("Число", num, "нечетное")
... 
Число 7 нечетное

Задание 5. Напишите программу, которая запрашивает у пользователя два целых числа, а затем выводит результат целочисленного деления и остаток от деления этих чисел.

Пример работы программы:

Введите первое число: 15
Введите второе число: 4
Результат целочисленного деления: 3
Остаток от деления: 3

Особенности дробных чисел в Python

Дробные (вещественные, действительные), числа в Python записываются как десятичные дроби, которые вы использовали на уроках математики. Единственное отличие — разделитель целой и дробной части числа.

В Python, разделителем целой и дробной части числа является точка = «.», в отличие от принятой в русскоязычной среде запятой.

Например, число 3.14 записывается так:

x = 3.14

В физике, когда мы работаем с очень большими или очень маленькими числами, мы используем научную нотацию. Например, если мы хотим записать скорость света, то это число будет выглядеть как 299 792 458 м/с. Однако, в научной нотации мы можем записать это число как 2.99792458 × 10^8 м/с. Здесь мантисса — это 2.99792458, а 10^8 — это показатель степени.

Точно так же, в Python мы можем использовать запись чисел с использованием мантиссы, используя знак «e». Например, число 1000 можно записать как 1e3, что означает 1 умножить на 10 в степени 3. Аналогично, число 0.001 можно записать как 1e-3, что означает 1 умножить на 10 в степени -3.

Например, для вычисления скорости движения света в вакууме можно использовать следующий код на Python:

speed_of_light = 2.99792458e8 # м/с

Также можно использовать мантиссу для записи больших вещественных чисел. Например:

big_number = 1.23e30

В этом примере, число 1.23 умножается на 10 в степени 30, что дает очень большое число.

Использование мантиссы в Python позволяет записывать очень большие или очень маленькие числа с помощью компактной записи, что делает код более читаемым и удобным для работы.

Стандартные функции для работы с числами

В Python есть несколько стандартных функций, которые упрощают работу с числами. Рассмотрим некоторые из них.

Функция abs

Функция abs возвращает абсолютное значение числа, то есть модуль числа, не учитывая его знак. Например, abs(-5) вернет 5, а abs(5) также вернет 5.

Пример использования функции abs:

# Нахождение расстояния между двумя точками на координатной плоскости
x1, y1 = 2, 5
x2, y2 = 7, 8

distance = ((x2 - x1) ** 2 + (y2 - y1) ** 2) ** 0.5
print(distance)  # 5.0

# Абсолютное значение от разности двух чисел
a, b = 10, 3
diff = a - b
absolute_diff = abs(diff)
print(absolute_diff)  # 7

Функция round

Функция round округляет число до указанного количества знаков после запятой (или до ближайшего целого числа, если количество знаков не указано). Если число имеет необходимое количество знаков после запятой, оно не изменяется.

Пример использования функции round:

# Округление до двух знаков после запятой
x = 3.14159265359
rounded_x = round(x, 2)
print(rounded_x)  # 3.14

# Округление до ближайшего целого числа
y = 3.6
rounded_y = round(y)
print(rounded_y)  # 4

Функции max и min

Функции max() и min() возвращают максимальное и минимальное значение из переданных аргументов. Например, max(1, 2, 3) вернет 3, а min(1, 2, 3) вернет 1:

>>> max(1, 2, 3)
3
>>> min(1, 2, 3)
1

Функция sum

Функция sum() возвращает сумму всех элементов переданного списка. Например, sum([1, 2, 3]) вернет 6:

>>> sum(1, 2, 3)
6

Задание 6. Написать программу, которая запрашивает у пользователя два числа и выводит насколько одно число больше другого. Использовать функцию abs.

Задание 7. Написать программу, которая запрашивает у пользователя дробное число и округляет его до ближайшего целого числа. Использовать функцию round.

Задание 8. Написать программу, которая запрашивает у пользователя два числа с плавающей точкой и выводит на экран их среднее арифметическое, округленное до двух знаков после запятой. Использовать функцию round.

Модули в Python

Модули в Python — это файлы, которые содержат код, написанный на языке Python, и который может использоваться в других программах Python. Модули содержат функции, классы, переменные и другие элементы, которые могут быть импортированы в вашу программу для повторного использования, что позволяет избежать дублирования кода.

Для того, чтобы использовать модуль в своей программе, нужно его импортировать. Вот простой пример:

Допустим, у вас есть файл module.py, содержащий следующий код:

def say_hello():
    print("Hello, world!")

Ваша программа может использовать этот модуль следующим образом:

import module
module.say_hello()

В этом примере мы импортировали модуль module с помощью ключевого слова import и вызвали его функцию say_hello(), используя синтаксис module.function_name().

Вы также можете импортировать только нужную функцию из модуля, чтобы не загружать программу не нужными функциями, так:

from module import say_hello

say_hello()

В этом примере мы импортировали только функцию say_hello() из модуля module с помощью синтаксиса from module import function_name.

Модуль math для работы с числами

Модуль math в Python содержит функции для выполнения математических операций, таких как вычисление косинуса, синуса, корня квадратного и т.д.

Для того, чтобы использовать этот модуль в своей программе, нужно его импортировать. Вот пример:

import math

x = math.sqrt(25)
print(x)

В этом примере мы импортировали модуль math и использовали его функцию sqrt() для вычисления корня квадратного числа 25. Функция sqrt() принимает один аргумент — число, которое нужно взять корень.

Также вы можете использовать другие функции, например:

import math

x = math.sin(30)
y = math.cos(60)

print(x)
print(y)

Здесь мы использовали функции sin() и cos() из модуля math для вычисления синуса и косинуса углов в радианах.

Функции модуля math:

Функции модуля math:

  • math.ceil(x) — округляет число x вверх до ближайшего целого.
import math x = math.ceil(4.3) 
print(x) # 5
  • math.floor(x) — округляет число x вниз до ближайшего целого.
import math x = math.floor(4.7)
print(x) # 4
  • math.sqrt(x) — вычисляет квадратный корень числа x.
import math x = math.sqrt(25)
print(x) # 5.0
  • math.pow(x, y) — возвращает x в степени y.
import math x = math.pow(2, 3)
print(x) # 8.0
  • math.exp(x) — вычисляет экспоненту e в степени x.
import math x = math.exp(2) 
print(x) # 7.3890560989306495
  • math.log(x) — вычисляет натуральный логарифм числа x.
import math x = math.log(10) 
print(x) # 2.302585092994046
  • math.log10(x) — вычисляет десятичный логарифм числа x.
import math x = math.log10(100) 
print(x) # 2.0
  • math.sin(x) — вычисляет синус угла x в радианах.
import math x = math.sin(math.pi / 2) 
print(x) # 1.0
  • math.cos(x) — вычисляет косинус угла x в радианах.
import math x = math.cos(math.pi) 
print(x) # -1.0
  • math.tan(x) — вычисляет тангенс угла x в радианах.
import math

x = math.tan(math.pi / 4)
print(x) # 0.9999999999999999
  • math.radians(x) — преобразует угол x из градусов в радианы.
import math

x = math.radians(90)
print(x) # 1.5707963267948966
  • math.degrees(x) — преобразует угол x из радианов в градусы.
import math

x = math.degrees(math.pi / 2)
print(x) # 90.0

Константы модуля math:

  • math.pi — математическая константа Пи.
import math

print(math.pi) # 3.141592653589793
  • math.e Константа math.e представляет собой число e, которое является основанием натурального логарифма. В Python её можно использовать, например, для вычисления экспоненты.
import math

result = math.e ** 2
print(result) # выводит 7.3890560989306495

Задание 9. Напишите программу, которая запрашивает у пользователя два числа и выводит на экран их наибольший общий делитель (НОД). Для вычисления НОД использовать функцию math.gcd.

Решение
import math

num1 = int(input("Введите первое число: "))
num2 = int(input("Введите второе число: "))
gcd = math.gcd(num1, num2)
print(f"НОД {num1} и {num2} равен: {gcd}")

Задание 10. Напишите программу, которая находит квадратный корень числа, которое вводит пользователь.

Решение
import math

number = float(input("Введите число: "))
sqrt = math.sqrt(number)

print("Квадратный корень из", number, "равен", sqrt)

Задание 11. Напишите программу, которая находит косинус угла, заданного в градусах.

Решение
import math

angle = float(input("Введите угол в градусах: "))
cos = math.cos(math.radians(angle))

print("Косинус угла", angle, "равен", cos)

Задание 12. Напишите программу, которая находит наибольшее целое число, которое меньше или равно заданному числу.

Решение
import math

number = float(input("Введите число: "))
floor = math.floor(number)

print("Наибольшее целое число, которое меньше или равно", number, "равно", floor)

Операции с числами. Видеоинструкция

Для тех, кому проще посмотреть видео. Я записал видеурок для вас.

Задания для закрепления

Задание13. Даны два натуральных числа. Найдите их сумму и выведите последнюю цифру результата.

Решение
# ввод чисел
a = int(input())
b = int(input())

# вычисление суммы
s = a + b

# вывод последней цифры
print(s % 10)

Для решения задачи мы используем операцию остатка от деления `%`, которая возвращает остаток от деления двух чисел. Если мы возьмем остаток от суммы двух чисел и разделим его на 10, то получим последнюю цифру суммы.

Пример работы. Входные данные:

345
789

Выходные данные:

4

Задание 14. Даны скорость v (в м/с) и время t (в секундах), за которое бегун пробежал некоторое расстояние, после чего он остановился. Бегун бегает по дорожке стадиона длиной 400 метров. Сколько полных кругов он пробежал и на каком расстоянии от места старта остановился?

На вход, программа получает два числа: v — скорость бегуна и t — время его бега. Необходимо вывести два числа: количество полных кругов и позиция бегуна в метрах относительно точки старта, когда он прекратил бег.

Решение
# ввод скорости и времени
v = float(input())
t = int(input())

# расчет расстояния и кругов
s = v * t # расстояние, которое пробежал бегун
circ = s // 400 # количество полных кругов, которые пробежал бегун

# расчет позиции бегуна на последнем круге
last_circ = s % 400 # расстояние, которое пробежал бегун на последнем круге

# вывод результата
print(int(circ))
print(int(last_circ))

Объяснение решения:

Для решения задачи мы используем формулу расстояния `s = v * t`, где `v` — скорость в метрах в секунду, `t` — время в секундах. Затем находим количество полных кругов, которые пробежал бегун, делением расстояния на длину дорожки стадиона (400 метров). Для расчета позиции бегуна на последнем круге используем остаток от деления расстояния на длину дорожки.

Пример работы. Входные данные:

Введите скорость бега: 4.5
Введите время бега в секундах: 1800

Выходные данные:

Количество полных кругов: 10
Метров относительно точки старта: 200

Задание 15. Даны два положительных действительных числа X и Y. Найдите и выведите на экран сумму их дробных частей.

Решение
# ввод чисел X и Y
x = float(input())
y = float(input())

# находим дробные части чисел
x_frac = x - int(x)
y_frac = y - int(y)

# находим сумму дробных частей
sum_frac = x_frac + y_frac

# выводим результат
print(sum_frac)

Объяснение решения:

Для решения задачи мы используем операцию вычитания целой части числа из самого числа, чтобы получить дробную часть. Далее мы складываем дробные части чисел и выводим результат.

Пример работы. Входные данные:

3.14
2.718

Выходные данные:

0.8589999999999998

Дробная часть числа 3.14 равна 0.14, а дробная часть числа 2.718 равна 0.718. Сумма этих дробных частей равна 0.859.

Задание 16. Дано положительное действительное число X. Найдите и выведите на экран первую цифру после десятичной точки.

Решение
# ввод числа X
x = float(input())

# находим дробную часть числа
frac = x - int(x)

# умножаем дробную часть на 10 и приводим к целому типу
frac *= 10
frac = int(frac)

# выводим первую цифру после десятичной точки
print(frac)

Объяснение решения:

Для решения задачи мы используем операцию вычитания целой части числа из самого числа, чтобы получить дробную часть. Затем мы умножаем дробную часть на 10 и приводим ее к целому типу, чтобы получить первую цифру после десятичной точки.

Пример работы. Входные данные:

3.14159265359

Выходные данные:

1

Первая цифра после десятичной точки числа 3.14159265359 равна 1.

Задание 17. Дано время начала работы и продолжительность рабочего дня в часах и минутах. Необходимо определить время окончания рабочего дня, учитывая, что у работника есть право на две перерыва по 15 минут каждый. Выведите время окончания рабочего дня в часах и минутах.

Решение
# ввод данных
start_time = input("Введите время начала работы в формате ЧЧ:ММ: ")
hours, minutes = map(int, start_time.split(':'))
duration = int(input("Введите продолжительность рабочего дня в минутах: "))

# вычисление времени окончания работы
end_h = (hours * 60 + minutes + duration + 30) // 60
end_m = (hours * 60 + minutes + duration + 30) % 60 

# вывод результата
print("Время окончания рабочего дня: ",end_h, end_m)

Объяснение решения:

В начале программы мы считываем время начала работы и продолжительность рабочего дня в минутах. Затем мы преобразуем время начала работы в количество минут, используя формулу `hours * 60 + minutes`. Для учета двух перерывов по 15 минут каждый мы добавляем 30 минут к продолжительности рабочего дня. Затем мы вычисляем время окончания работы, разделив общее количество минут на 60 и получив часы и остаток от деления на 60, который является минутами.

В конце мы выводим время окончания работы

Примеры работы:

Введите время начала работы в формате ЧЧ:ММ: 09:00
Введите продолжительность рабочего дня в минутах: 480
Время окончания рабочего дня: 17:30
Введите время начала работы в формате ЧЧ:ММ: 13:15
Введите продолжительность рабочего дня в минутах: 360
Время окончания рабочего дня: 19:00
Введите время начала работы в формате ЧЧ:ММ: 08:30
Введите продолжительность рабочего дня в минутах: 240
Время окончания рабочего дня: 12:45

Задание 18. Написать программу на Python, которая рассчитывает количество дней, необходимых для написания статьи заданной длины, если известно, сколько символов в минуту может написать автор.

Программа получает на вход два числа: количество символов, которое автор может написать в минуту, и длину статьи в символах.

Решение

Для решения задачи нужно сначала посчитать, сколько минут нужно автору, чтобы написать статью. Это можно сделать, разделив длину статьи на количество символов, которое автор может написать в минуту. Затем нужно округлить полученное число вверх, чтобы учесть время на перерывы и возможные задержки.

Для округления вверх можно использовать функцию math.ceil(). Эта функция возвращает наименьшее целое число, которое больше или равно заданному числу.

Примеры работы:

# Пример 1
# Символов в минуту: 500
# Длина статьи: 10000
# Ожидаемый результат: 20 дней

import math

symbols_per_minute = 500
article_length = 10000

minutes_needed = article_length / symbols_per_minute
days_needed = math.ceil(minutes_needed / 60 / 8) # 8 рабочих часов в день

print("Для написания статьи потребуется", days_needed, "дней")

Задание 19. Пользователь вводит цену за килограмм фруктов и вес покупки в граммах. Напишите программу, которая рассчитывает стоимость покупки в рублях и копейках и выводит её на экран.

Решение

Для решения задания нам нужно считать два числа с клавиатуры и выполнить простые арифметические операции над ними. Для этого воспользуемся встроенными функциями ввода и вывода в Python — input() и print().

Код решения:

price_per_kg = float(input("Введите цену за кг фруктов: "))
weight_in_g = int(input("Введите вес покупки в граммах: "))

total_price = price_per_kg * (weight_in_g / 1000)

print("Стоимость покупки:", int(total_price), "рублей", int(total_price * 100 % 100), "копеек")

Задание 20. Автомобиль выехал из Москвы в h часов, m минут и s секунд. И приехал в Ярославль в h1 часов, m1 минут и s1 секунд. Определите, сколько секунд ехал автомобиль из Москвы в Ярославль. Известно, что моменты старта и прибытия принадлежат одним и тем же суткам. Программа получает на вход 6 чисел: h, m, s, h1, m1, s1

Решение

Для решения данной задачи можно воспользоваться формулой для вычисления разности между двумя моментами времени. Можно выразить время каждого момента в секундах и затем вычислить разность между ними.

Формула для вычисления разности между двумя моментами времени в секундах:

raznost = (h1 - h) * 3600 + (m1 - m) * 60 + (s1 - s)

где h, m, s — часы, минуты, секунды начального момента времени, h1, m1, s1 — часы, минуты, секунды конечного момента времени, raznost — разность между моментами времени в секундах.

Пример решения:

h = int(input('Введите час старта: '))
m = int(input('Введите минуту старта: '))
s = int(input('Введите секунду старта: '))
h1 = int(input('Введите час финиша: '))
m1 = int(input('Введите минуту финиша: '))
s1 = int(input('Введите секунду финиша: '))

departure_time = h * 3600 + m * 60 + s
arrival_time = h1 * 3600 + m1 * 60 + s1

travel_time = arrival_time - departure_time

print(travel_time)

Сначала происходит ввод данных в 6 переменных.

Затем вычисляются значения времени отправления и времени прибытия в секундах, используя формулу h * 3600 + m * 60 + s и h1 * 3600 + m1 * 60 + s1 соответственно.

Далее вычисляется разница между временем прибытия и временем отправления и выводится результат в секундах.

Пример работы программы:

#Входные данные:
Час старта: 6
Минута старта: 0
Секунда старта: 0
Час финиша:12
Минут финиша: 0
Секунда финиша: 0
#Выходные данные:
21600

В данном случае автомобиль ехал из Москвы в Ярославль 6 часов, соответственно, время в пути равно 6 часам * 3600 секунд/час = 21600 секундам.

Задание 21*. Лодка без якоря движется против течения реки. Скорость лодки против течения vb км/ч. Скорость течения vr км/ч. 12 часов лодка движется, затем, 12 часов, гребец спит и лодку относит назад. Лодка вышла из города A и идет в город Б. Расстояние между городами n километров. Определите, за сколько дней лодка доберется до пункта назначения. Программа получает на вход 3 числа: vb, vr, n.

Решение

Для решения задачи можно использовать формулу расстояния:

distance = speed * time

Здесь distance — расстояние между городами A и Б, speed — скорость лодки относительно воды (без учета течения), time — время пути.

За 12 часов лодка проходит расстояние, равное произведению скорости лодки относительно воды и времени пути:

s_boat = vb * TIME

За следующие 12 часов лодка не двигается относительно воды, но относительно берега ее относит назад течение. Расстояние, на которое ее относит течение, также можно выразить через скорость течения:

s_river = vr * TIME

Если за день лодка продвигается на s_boat километров, а за ночь откатывается назад на s_river километров, то каждые сутки она продвигается на s_boat — s_river метров. Таким образом, количество суток, необходимых для перемещение на расстояние h, равно:

days = math.ceil((h — s_boat) / (s_boat — s_river)) + 1

Здесь функция ceil() из модуля math используется для округления результата вверх до целого числа.

Полный код программы:

import math

h = int(input("Расстояние между городами: "))
vb = int(input("Скорость лодки против течения: "))
vr = int(input("Скорость течения реки: "))

TIME = 12
s_boat = vb * TIME
s_river = vr * TIME

days = math.ceil((h - s_boat) / (s_boat - s_river)) + 1

print("Лодка достигнет цели на", days, "день(ей).")

Результат работы:

Расстояние между городами: 100
Скорость лодки против течения: 5
Скорость течения реки: 2
Лодка достигнет цели на 3 день(ей).
Понравилась статья? Поделиться с друзьями:
Школа Виктора Комлева
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.