Proc23
Пример использования функции для трех точек с ненулевыми координатами:
def Quarter(x, y):В данной функции используется условная конструкция if-elif-else для определения номера координатной четверти, в которой находится точка. Если обе координаты положительны, то точка находится в первой четверти. Если x отрицательно, а y положительно, то точка находится во второй четверти. Если обе координаты отрицательны, то точка находится в третьей четверти. Если x положительно, а y отрицательно, то точка находится в четвертой четверти. Если точка лежит на одной из осей, то возвращается соответствующее сообщение.
if x > 0 and y > 0:
return 1
elif x < 0 and y > 0:
return 2
elif x < 0 and y < 0:
return 3
elif x > 0 and y < 0:
return 4
else:
return "Точка лежит на одной из осей"
Пример использования функции для трех точек с ненулевыми координатами:
point1 = (2, 3)
point2 = (-4, 5)
point3 = (-1, -2)
print(Quarter(*point1)) # Вывод: 1
print(Quarter(*point2)) # Вывод: 2
print(Quarter(*point3)) # Вывод: 3
В данном примере функция Quarter вызывается для каждой из трех точек, передавая ей координаты точки в виде аргументов. Результатом вызова функции будет номер соответствующей координатной четверти для каждой точки.`👍2
Proc24
function Even(K: integer): boolean;Proc25
begin
Even := (K mod 2 = 0);
end;
var
numbers: array[1..10] of integer; // Предполагаем, что у вас есть массив из 10 целых чисел.
procedure CountEvenNumbers;
var
i, count: integer;
begin
count := 0;
for i := 1 to 10 do
begin
if Even(numbers[i]) then
count := count + 1;
end;
// Теперь переменная "count" содержит количество четных чисел в наборе.
end;
function IsSquare(K: integer): boolean;
var
root: integer;
begin
if K > 0 then
begin
root := round(sqrt(K));
IsSquare := (root * root = K);
end
else
IsSquare := false;
end;
var
positiveNumbers: array[1..10] of integer; // Предполагаем, что у вас есть массив из 10 целых положительных чисел.
procedure CountSquares;
var
i, count: integer;
begin
count := 0;
for i := 1 to 10 do
begin
if IsSquare(positiveNumbers[i]) then
count := count + 1;
end;
// Теперь переменная "count" содержит количество квадратов в наборе.
end;
👍2
Proc 24:
def Even(K):Proc25
return K % 2 == 0
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def CountEvenNumbers():
count = 0
for num in numbers:
if Even(num):
count += 1
# Теперь переменная "count" содержит количество четных чисел в наборе.
return count
print(CountEvenNumbers()) # Вывод: 5
import math
def IsSquare(K):
if K > 0:
root = int(math.sqrt(K))
return root * root == K
else:
return False
positiveNumbers = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
def CountSquares():
count = 0
for num in positiveNumbers:
if IsSquare(num):
count += 1
# Теперь переменная "count" содержит количество квадратов в наборе.
return count
print(CountSquares()) # Вывод: 10
👍2
Proc26
def IsPower5(K):Для нахождения количества степеней числа 5 в наборе из 10 целых положительных чисел, мы можем использовать эту функцию. Просто пройдемся по каждому числу в наборе и проверим, является ли оно степенью числа 5. Если да, увеличим счетчик на 1.
while K > 1:
if K % 5 != 0:
return False
K = K / 5
return True
numbers = [10, 25, 30, 125, 150, 625, 750, 3125, 3750, 15625]В этом примере мы создали список numbers, содержащий 10 целых положительных чисел. Затем мы проходимся по каждому числу в списке и используем функцию IsPower5 для проверки, является ли оно степенью числа 5. Если да, увеличиваем счетчик count на 1. В конце выводим количество степеней числа 5 в наборе.
count = 0
for number in numbers:
if IsPower5(number):
count += 1
print("Количество степеней числа 5 в наборе:", count)
👍2
Proc27.
Proc28.
def IsPowerN(K, N):В данном примере, функция IsPowerN проверяет, является ли каждое число в наборе степенью числа N=2. Затем, мы считаем количество чисел, для которых условие выполняется, и выводим результат. В данном случае, результат будет равен 6, так как числа 16, 8, 32, 64, 128 и 256 являются степенями числа 2.
power = 0
while K % N == 0:
K = K / N
power += 1
return K == 1
N = 2
numbers = [16, 8, 5, 32, 9, 64, 7, 128, 256, 1024]
count = 0
for num in numbers:
if IsPowerN(num, N):
count += 1
print("Количество степеней числа", N, "в данном наборе:", count)
Proc28.
def IsPrime(N):В данном примере, функция IsPrime проверяет, является ли каждое число в наборе простым. Затем, мы считаем количество чисел, для которых условие выполняется, и выводим результат. В данном случае, результат будет равен 1, так как только число 7 является простым числом.
if N <= 1:
return False
for i in range(2, N):
if N % i == 0:
return False
return True
numbers = [16, 8, 5, 32, 9, 64, 7, 128, 256, 1024]
count = 0
for num in numbers:
if IsPrime(num):
count += 1
print("Количество простых чисел в данном наборе:", count)
✍1👨💻1
Proc29
def DigitCount(K):Вывод:
count = 0
while K > 0:
count += 1
K //= 10
return count
# Пример использования функции
number1 = 12345
number2 = 987654321
number3 = 100
number4 = 9999
number5 = 1
count1 = DigitCount(number1)
count2 = DigitCount(number2)
count3 = DigitCount(number3)
count4 = DigitCount(number4)
count5 = DigitCount(number5)
print("Количество цифр в числе", number1, ":", count1)
print("Количество цифр в числе", number2, ":", count2)
print("Количество цифр в числе", number3, ":", count3)
print("Количество цифр в числе", number4, ":", count4)
print("Количество цифр в числе", number5, ":", count5)
Количество цифр в числе 12345 : 5Таким образом, функция
Количество цифр в числе 987654321 : 9
Количество цифр в числе 100 : 3
Количество цифр в числе 9999 : 4
Количество цифр в числе 1 : 1
DigitCount(K) находит количество цифр в заданном целом положительном числе K, а затем используется для нахождения количества цифр в каждом из пяти данных чисел.🔥2
Proc29
# Пример использования функции DigitCount
count = DigitCount(12345)
print(count) # Вывод: 5
# Пример использования функции DigitN
digit = DigitN(12345, 3)
print(digit) # Вывод: 3
# Пример использования функции IsPalindrom
isPalindrom = IsPalindrom(12321)
print(isPalindrom) # Вывод: True
def DigitCount(K):Proc30
count = 0
while K > 0:
count += 1
K //= 10
return count
def DigitN(K, N):Proc31
count = 0
while K > 0 and count < N:
count += 1
digit = K % 10
K //= 10
if count < N:
return -1
return digit
def IsPalindrom(K):# Пример использования функций
count = DigitCount(K)
i = 1
isPalindrom = True
while i <= count // 2:
digit1 = DigitN(K, i)
digit2 = DigitN(K, count - i + 1)
if digit1 != digit2:
isPalindrom = False
break
i += 1
return isPalindrom
# Пример использования функции DigitCount
count = DigitCount(12345)
print(count) # Вывод: 5
# Пример использования функции DigitN
digit = DigitN(12345, 3)
print(digit) # Вывод: 3
# Пример использования функции IsPalindrom
isPalindrom = IsPalindrom(12321)
print(isPalindrom) # Вывод: True
`🔥2
Proc32.
Пример использования функции DegToRad(D)
Пример использования функции Fact(N):
Пример использования функции DegToRad(D)
Proc33.
def DegToRad(D):
return D * 3.14 / 180
angle_degrees = 45
angle_radians = DegToRad(angle_degrees)
print(angle_radians) # Выводит: 0.7853981633974483
Proc34.
Пример использования функции RadToDeg(R):
def RadToDeg(R):
return R * 180 / 3.14
angle_radians = 1.57
angle_degrees = RadToDeg(angle_radians)
print(angle_degrees) # Выводит: 89.80891719745223
Пример использования функции Fact(N):
def Fact(N):
result = 1
for i in range(1, N+1):
result *= i
return result
number = 5
factorial = Fact(number)
print(factorial) # Выводит: 120
В данном примере вычисляется факториал числа 5, который равен 120.
👍1🔥1
Proc35
def Fact2(N):python
result = 1
if N % 2 == 0: # если N четное
for i in range(2, N+1, 2):
result *= i
else: # если N нечетное
for i in range(1, N+1, 2):
result *= i
return result
numbers = [3, 4, 5, 6, 7]
for num in numbers:
double_factorial = Fact2(num)
print(f"Двойной факториал числа {num} равен {double_factorial}")
❤🔥1👍1
Proc36
Теперь, чтобы найти пять чисел Фибоначчи с данными номерами \(N_1, N_2, \ldots, N_5\), мы можем вызвать функцию
Обратите внимание, что вычисление чисел Фибоначчи с большими номерами может занять значительное время, так как рекурсивный подход имеет экспоненциальную сложность. Для более эффективного вычисления чисел Фибоначчи с большими номерами, можно использовать итеративный подход или сохранять промежуточные значения в массиве для повторного использования.
def Fib(N):В этой реализации, мы проверяем базовые случаи: если
if N <= 0:
return None
elif N == 1 or N == 2:
return 1
else:
return Fib(N-2) + Fib(N-1)
N меньше или равно 0, возвращаем None, а если N равно 1 или 2, возвращаем 1. В противном случае, мы рекурсивно вызываем функцию Fib для \(N-2\) и \(N-1\) и складываем их значения.Теперь, чтобы найти пять чисел Фибоначчи с данными номерами \(N_1, N_2, \ldots, N_5\), мы можем вызвать функцию
Fib для каждого из этих номеров и сохранить результаты в переменные:N1 = 10В этом примере, мы вызываем функцию
N2 = 15
N3 = 20
N4 = 25
N5 = 30
fib1 = Fib(N1)
fib2 = Fib(N2)
fib3 = Fib(N3)
fib4 = Fib(N4)
fib5 = Fib(N5)
print(fib1, fib2, fib3, fib4, fib5)
Fib для каждого из номеров \(N_1, N_2, \ldots, N_5\) и сохраняем результаты в переменные fib1, fib2, fib3, fib4, fib5. Затем мы выводим эти результаты на экран.Обратите внимание, что вычисление чисел Фибоначчи с большими номерами может занять значительное время, так как рекурсивный подход имеет экспоненциальную сложность. Для более эффективного вычисления чисел Фибоначчи с большими номерами, можно использовать итеративный подход или сохранять промежуточные значения в массиве для повторного использования.
👍2
Proc37
import math
def Powerl(A, B):
if A <= 0:
return 0
else:
return math.exp(B * math.log(A))
# Пример использования функции
A = 2
B = 3
C = -1
P = 4
result_A = Powerl(A, P) # Вычисляем A^P
result_B = Powerl(B, P) # Вычисляем B^P
result_C = Powerl(C, P) # Вычисляем C^P
print(result_A) # Выводим результат A^P
print(result_B) # Выводим результат B^P
print(result_C) # Выводим результат C^P
🔥2
Proc38
def Power2(A, N):
if N == 0:
return 1
elif N > 0:
result = 1
for _ in range(N):
result *= A
return result
else:
result = 1
for _ in range(abs(N)):
result *= A
return 1 / result
# Пример использования функции
A = 2
K = 3
L = -2
M = 4
result_K = Power2(A, K) # Вычисляем A^K
result_L = Power2(A, L) # Вычисляем A^L
result_M = Power2(A, M) # Вычисляем A^M
print(result_K) # Выводим результат A^K
print(result_L) # Выводим результат A^L
print(result_M) # Выводим результат A^M
👏2
Proc39
def Power3(A, B):
if B % 1 == 0:
return Power(A, round(B))
else:
return Powerl(A, B)
👍2
Proc40
import math
def Exp1(x, ε):
result = 1.0
term = 1.0
n = 1
while term > ε:
result += term
n += 1
term = math.pow(x, n) / math.factorial(n)
return result
x = 2.0
ε_values = [0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]
for ε in ε_values:
approx_exp = Exp1(x, ε)
print(f"Приближенное значение exp({x}) при ε = {ε}: {approx_exp}")
🔥2
Proc41
import mathТеперь мы можем использовать функцию Sin1(x, ε) для нахождения приближенного значения синуса для данного x при шести разных значениях ε. Например:
def Sin1(x, ε):
sum = 0
term = 0
n = 0
while abs(term) > ε:
n += 1
term = (-1)**n * x**(2*n+1) / math.factorial(2*n+1)
sum += term
return sum
x = 1.0
epsilons = [0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]
for epsilon in epsilons:
sin_approx = Sin1(x, epsilon)
sin_actual = math.sin(x)
print(f"Приближенное значение синуса для x={x} с ε={epsilon}: {sin_approx}")
print(f"Фактическое значение синуса для x={x}: {sin_actual}")
print(f"Разница: {abs(sin_approx - sin_actual)}\n")
👍2
Proc42
# Пример использования функций для нахождения приближенных значений
x = 0.5
epsilons = [0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]
for epsilon in epsilons:
cos_approx = Cos1(x, epsilon)
ln_approx = LnI(x, epsilon)
cos_exact = math.cos(x)
ln_exact = math.log(1 + x)
print(f"При epsilon = {epsilon}:")
print(f"Приближенное значение cos({x}) = {cos_approx}")
print(f"Точное значение cos({x}) = {cos_exact}")
print(f"Приближенное значение ln(1 + {x}) = {ln_approx}")
print(f"Точное значение ln(1 + {x}) = {ln_exact}")
print()
import mathProc43
def Cos1(x, epsilon):
summation = 1
term = 1
factorial = 1
sign = -1
power = 2
while abs(term) > epsilon:
factorial *= power * (power - 1)
term *= x * x / factorial
summation += sign * term
sign *= -1
power += 2
return summation
```
def LnI(x, epsilon):
summation = x
term = x
power = 2
sign = -1
while abs(term) > epsilon:
term *= x * sign / power
summation += term
power += 1
sign *= -1
return summation
# Пример использования функций для нахождения приближенных значений
x = 0.5
epsilons = [0.1, 0.01, 0.001, 0.0001, 0.00001, 0.000001]
for epsilon in epsilons:
cos_approx = Cos1(x, epsilon)
ln_approx = LnI(x, epsilon)
cos_exact = math.cos(x)
ln_exact = math.log(1 + x)
print(f"При epsilon = {epsilon}:")
print(f"Приближенное значение cos({x}) = {cos_approx}")
print(f"Точное значение cos({x}) = {cos_exact}")
print(f"Приближенное значение ln(1 + {x}) = {ln_approx}")
print(f"Точное значение ln(1 + {x}) = {ln_exact}")
print()
`Proc 44
import mathProc45
def Arctg1(x, epsilon):
result = 0
term = x
n = 1
while abs(term) >= epsilon:
result += term
term = (-1) ** n * (x ** (2 * n + 1)) / (2 * n + 1)
n += 1
return result
def Power4(x, a, epsilon):
result = 1
term = 1
n = 1
while abs(term) >= epsilon:
result += term
term = a * (a - 1) * ... * (a - n + 1) * (x ** n) / math.factorial(n)
n += 1
return result
Proc46
Функция NOD2, реализующая алгоритм Евклида для нахождения наибольшего общего делителя (НОД) двух целых положительных чисел A и B, может быть описана следующим образом:
Функция NOD2, реализующая алгоритм Евклида для нахождения наибольшего общего делителя (НОД) двух целых положительных чисел A и B, может быть описана следующим образом:
def NOD2(A, B):Для нахождения наибольшего общего делителя пар (A, B), (A, C), (A, D), где даны числа A, B, C, D, можно использовать функцию NOD2 следующим образом:
while B != 0:
A, B = B, A % B
return A
A = 24Результат выполнения программы будет:
B = 36
C = 48
D = 60
NOD_AB = NOD2(A, B)
NOD_AC = NOD2(A, C)
NOD_AD = NOD2(A, D)
print("НОД(A, B) =", NOD_AB)
print("НОД(A, C) =", NOD_AC)
print("НОД(A, D) =", NOD_AD)
НОД(A, B) = 12Таким образом, наибольшие общие делители пар (A, B), (A, C), (A, D) равны 12, 24 и 12 соответственно.
НОД(A, C) = 24
НОД(A, D) = 12
Proc47
Вот описание процедуры
С помощью процедуры
Вот описание процедуры
Fracl на языке программирования:def Fracl(a, b, p, q):В этой процедуре сначала вычисляется наибольший общий делитель
nod = NOD2(a, b)
p = a // nod
q = b // nod
if q < 0:
p = -p
q = -q
nod с помощью функции NOD2. Затем числитель p присваивается результату деления a на nod, а знаменатель q присваивается результату деления b на nod. Если знаменатель q отрицателен, то меняем знак числителя p и знаменателя q, чтобы знак результирующей дроби был приписан числителю.С помощью процедуры
Fracl можно найти несократимые дроби, равные a / b + c / d, a / b + e / f и a / b + g / h, где a, b, c, d, e, f, g, h - заданные числа.Proc48. Для решения этой задачи с использованием функции NOD2 из задания Proc46, опишем функцию NOK2(A, B), которая будет находить наименьшее общее кратное чисел A и B.
Proc49. Для решения этой задачи с использованием функции NOD2 из задания Proc46, опишем функцию NOD3(A, B, C), которая будет находить наибольший общий делитель трех чисел A, B, C.
Proc50. Для решения этой задачи опишем процедуру TimeToHMS(T, H, M, S), которая будет определять по времени T (в секундах) количество часов H, минут M и секунд S.
def NOD2(A, B):Для нахождения наименьших общих кратных пар (A, B), (A, C), (A, D), где даны числа A, B, C, D, можно вызвать функцию NOK2 для каждой пары чисел:
while B != 0:
A, B = B, A % B
return A
def NOK2(A, B):
GCD = NOD2(A, B)
return A * (B // GCD)
NOK_AB = NOK2(A, B)Теперь переменные NOK_AB, NOK_AC и NOK_AD содержат наименьшие общие кратные пар (A, B), (A, C), (A, D) соответственно.
NOK_AC = NOK2(A, C)
NOK_AD = NOK2(A, D)
Proc49. Для решения этой задачи с использованием функции NOD2 из задания Proc46, опишем функцию NOD3(A, B, C), которая будет находить наибольший общий делитель трех чисел A, B, C.
def NOD3(A, B, C):Для нахождения наибольших общих делителей троек (A, B, C), (A, C, D) и (B, C, D), где даны числа A, B, C, D, можно вызвать функцию NOD3 для каждой тройки чисел:
GCD_AB = NOD2(A, B)
GCD = NOD2(GCD_AB, C)
return GCD
NOD_ABC = NOD3(A, B, C)Теперь переменные NOD_ABC, NOD_ACD и NOD_BCD содержат наибольшие общие делители троек (A, B, C), (A, C, D) и (B, C, D) соответственно.
NOD_ACD = NOD3(A, C, D)
NOD_BCD = NOD3(B, C, D)
Proc50. Для решения этой задачи опишем процедуру TimeToHMS(T, H, M, S), которая будет определять по времени T (в секундах) количество часов H, минут M и секунд S.
def TimeToHMS(T):Для каждого отрезка времени T1, T2, ..., T5 можно вызвать процедуру TimeToHMS и передать соответствующее значение времени T:
H = T // 3600
T %= 3600
M = T // 60
S = T % 60
return H, M, S
H1, M1, S1 = TimeToHMS(T1)
H2, M2, S2 = TimeToHMS(T2)
...
H5, M5, S5 = TimeToHMS(T5)