5. Запишите на языке Python программы решения задач № 3, 4, 6, 7 из § 3.6. Используйте оператор while.
3. Запас рыбы в пруду оценён в А тонн. Ежегодный прирост рыбы составляет 15%. Ежегодный план отлова — В тонн. Наименьший запас рыбы составляет С тонн. (Запас ниже С тонн уже не восстанавливается.) Составьте блок-схему алгоритма для подсчёта количества лет, в течение которых можно выдерживать заданный план.
4. Дана последовательность 5, 9, 13, 17, … . Составьте блок-схему алгоритма для определения числа слагаемых (первых членов последовательности), сумма которых равна 324.
6. Сумма 10 000 рублей положена в банк, при этом прирост составляет 5% годовых. Составьте алгоритм, определяющий, через какой промежуток времени первоначальная сумма увеличится в два раза.
7. Одноклеточная амёба каждые три часа делится на 2 клетки. Составьте алгоритм вычисления времени, через которое будет Х амёб.
Ответ
Программы на языке Python:
3. Запас рыбы в пруду оценён в А тонн. Ежегодный прирост рыбы составляет 15%. Ежегодный план отлова — В тонн. Наименьший запас рыбы составляет С тонн. (Запас ниже С тонн уже не восстанавливается.) Составьте блок-схему алгоритма для подсчёта количества лет, в течение которых можно выдерживать заданный план.
def calculate_years(A, B, C):
years = 0
while A > C:
A += A * 0.15 # ежегодный прирост рыбы
A -= B # ежегодный план отлова
years += 1
return years
# Входные данные
A = float(input(«Введите начальный запас рыбы в тоннах (A): «))
B = float(input(«Введите ежегодный план отлова в тоннах (B): «))
C = float(input(«Введите наименьший запас рыбы в тоннах (C): «))
result = calculate_years(A, B, C)
print(«Количество лет, в течение которых можно выдерживать план: «, result)
Программа сначала объявляет функцию calculate_years, которая принимает три аргумента: начальный запас рыбы (A), ежегодный план отлова (B), и наименьший запас рыбы (C).
Затем, в функции calculate_years, используется цикл while, который выполняется до тех пор, пока запас рыбы (A) больше наименьшего запаса (C). Внутри цикла, каждый год к запасу рыбы добавляется 15% от текущего запаса (A += A * 0.15), а затем вычитается ежегодный план отлова (B). При каждой итерации цикла увеличивается счетчик лет (years).
После цикла, результат (количество лет) возвращается из функции calculate_years и выводится на экран.
Вы можете ввести необходимые значения для A, B и C и программа выведет количество лет, в течение которых можно выдерживать план.
4. Дана последовательность 5, 9, 13, 17, … . Составьте блок-схему алгоритма для определения числа слагаемых (первых членов последовательности), сумма которых равна 324.
def find_number_of_terms(target_sum):
a = 5 # первый член последовательности
d = 4 # разность между членами последовательности
sum_of_terms = 0
number_of_terms = 0
while sum_of_terms < target_sum:
sum_of_terms += a
a += d
number_of_terms += 1
if sum_of_terms == target_sum:
return number_of_terms
else:
return -1 # если не удалось найти число слагаемых
# Входные данные
target_sum = 324
result = find_number_of_terms(target_sum)
if result == -1:
print(«Не удалось найти число слагаемых, сумма которых равна», target_sum)
else:
print(«Число слагаемых, сумма которых равна», target_sum, «равно», result)
Программа объявляет функцию find_number_of_terms, которая принимает целевую сумму в качестве аргумента.
Затем, в функции find_number_of_terms, используется цикл while, который выполняется до тех пор, пока сумма слагаемых меньше целевой суммы. Внутри цикла, на каждой итерации текущее слагаемое (начиная с 5) добавляется к сумме (sum_of_terms += a), а затем значение слагаемого увеличивается на 4, так как разность между членами последовательности равна 4 (a += d). При каждой итерации цикла увеличивается счетчик числа слагаемых (number_of_terms).
После цикла, программа проверяет, равна ли найденная сумма слагаемых целевой сумме. Если да, то результат (число слагаемых) возвращается из функции find_number_of_terms и выводится на экран. Если нет, то выводится сообщение о том, что не удалось найти число слагаемых, сумма которых равна целевой сумме.
Вы можете использовать программу, введя необходимую целевую сумму, и программа выведет число слагаемых, сумма которых равна этой сумме.
6. Сумма 10 000 рублей положена в банк, при этом прирост составляет 5% годовых. Составьте алгоритм, определяющий, через какой промежуток времени первоначальная сумма увеличится в два раза.
def calculate_time(initial_sum):
target_sum = 2 * initial_sum # Целевая сумма, равная удвоенной первоначальной сумме
interest_rate = 0.05 # Годовая процентная ставка
current_sum = initial_sum # Текущая сумма
years = 0 # Счетчик лет
while current_sum < target_sum:
current_sum += current_sum * interest_rate # Увеличение суммы на годовой прирост
years += 1
return years
#Входные данные
initial_sum = 10000 # Первоначальная сумма
result = calculate_time(initial_sum)
print(«Первоначальная сумма увеличится в два раза через», result, «лет»)
Программа объявляет функцию calculate_time, которая принимает первоначальную сумму в качестве аргумента.
Затем внутри функции calculate_time, используется цикл while, который выполняется до тех пор, пока текущая сумма меньше целевой суммы (удвоенной первоначальной суммы). Внутри цикла, каждый год текущая сумма увеличивается на долю годового прироста (current_sum += current_sum * interest_rate). При каждой итерации цикла увеличивается счетчик лет (years).
После цикла, результат (количество лет) возвращается из функции calculate_time и выводится на экран. Программа сообщает через какой промежуток времени первоначальная сумма увеличится в два раза.
Вы можете использовать программу, установив необходимую первоначальную сумму, и программа выведет количество лет, необходимых для удвоения этой суммы.
7. Одноклеточная амёба каждые три часа делится на 2 клетки. Составьте алгоритм вычисления времени, через которое будет Х амёб.
def calculate_time(target_number):
current_number = 1 # Текущее количество амёб
hours = 0 # Счетчик часов
while current_number < target_number:
current_number *= 2 # Увеличение количества амёб в два раза
hours += 3 # Увеличение счетчика часов на 3
return hours
# Входные данные
target_number = 64 # Целевое количество амёб
result = calculate_time(target_number)
print(«Необходимо», result, «часов, чтобы получить», target_number, «амёб»)
Программа объявляет функцию calculate_time, которая принимает целевое количество амёб в качестве аргумента.
Затем внутри функции calculate_time используется цикл while, который выполняется до тех пор, пока текущее количество амёб меньше целевого количества. Внутри цикла, каждые три часа количество амёб удваивается (current_number *= 2). При каждой итерации цикла увеличивается счетчик часов (hours).
После цикла, результат (количество часов) возвращается из функции calculate_time и выводится на экран. Программа сообщает, через сколько времени будет достигнуто целевое количество амёб.
Вы можете использовать программу, установив необходимое целевое количество амёб, и программа выведет количество часов, которые потребуются для достижения этого количества.