Алгоритми із розгал. та повтореннями


Розв'язування задач

Задача 1
Вивести на екран таблицю значень функції  y = -3x**2 - 4x + 20 на вказаному
проміжку із вказаним кроком зміни х

# Програма 1
print("Таблиця значень функції ")
x1 = float(input("Точка початку відрізка х1: " ))
x2 = float(input("Точка кінця відрізка х2: " ))
step = float(input("Крок зміни х step: " ))

if x1 > x2:
x1, x2 = x2, x1

print("Функция: y = -3x**2 - 4x + 20")
print("   x        y")
while x1 <= x2:
y = -3*x1**2 - 4*x1 + 20
print('%5.2f | %7.2f' % (x1, y))
x1 += step

Скриншот результату роботи програми:



















Задача 2.

Перевірка простоти числа перебором подільників

Перебір дільників - це алгоритм, який використовується для визначення, чи є натуральне число простим, або воно є складним, тобто складовим.

Прості числа - це натуральні числа більше одиниці, які діляться без остачі тільки на одиницю і на себе. Наприклад, число 3 просте, так як без остачі ділиться тільки на 1 і 3. Число 4 складне, тому що без остачі ділиться не тільки на 1 і 4, але також на число 2.
Алгоритм перебору дільників полягає в послідовному розподілі заданого натурального числа на всі цілі числа, починаючи з двійки і закінчуючи значенням меншим або рівним квадратному кореню з тестованого числа.
Якщо хоча б один дільник ділить досліджуване число без залишку, то це число є складовим. Якщо жодного такого дільника не знаходиться, то число визнається простим.

# Програма 2
import math
n = int (input ())
if n <2:
    print ("Число повинно бути більше 1")
    quit ()
elif n == 2:
    print ( "Це просте число")
    quit ()
i = 2             # перший дільник
limit = int (math.sqrt (n))
while i <= limit:
    if n% i == 0:
        print ( "Це складне число")
        quit ()   # вихід з програми
    i + = 1       # перехід до наступного дільника
print ( "Це просте число")

Число 2 є простим, але при цьому воно ділиться на 2. Цикл while визначив би двійку як складене число, що неправильно. Тому для числа 2 необхідна окрема перевірка.

Програма дійде до останнього рядка коду, тільки якщо не був знайдений жоден дільник. Якщо це так, значить число складене.

Приклад функції, що визначає чи є число простим:


# Програма 3
from math import sqrt

def is_prime (n):
    if n <2:
        return False
    if n == 2:
        return True
    limit = sqrt (n)
    i = 2
    while i <= limit:
        if n% i == 0:
            return False
        i + = 1
    return True

for i in range (3):
    num = int (input ())
    print (is_prime (num))

Приклад виконання:

17
True
57
False
103
True

 Завдання для самостійного виконання
1. Тренер формує команду для гри в баскетбол з учнів, зріст яких не менше180 см. Розробіть програму визначення, чи потрапить до цієї команди учень, зріст якого дорівнює h см.
2. Оклад працівника дорівнює s грн. Якщо він якісно виконує завдання, йому нараховується премія в розмірі 50% окладу. Розробіть програму визначення реальної заробітної платні працівника.
3. У банк покладено S грн під n%(5-12) відсотків річних. Розробіть програму, за допомогою якої визначається кількість років, через яку сума вкладу буде не меншою від N грн.
4. Дано куби зі сторонами 3; 4.5; 6; 7.5; 9, тобто сторона кожного наступного куба збільшується на 1,5. Розробіть програму визначення об'єму кожного з них.
 



Комментариев нет:

Отправить комментарий