Отримання знань
дистанційна підтримка освіти школярів
Пошук найбільшого та найменшого серед кількох значень
Задача “Min.py”
Дано цілі числа a, b, c і d. Знайти найменше серед них.
Контрольні приклади
1) a= 12, b=35, c= 0, d= -2 => min= -2
2) a= -12, b=140, c= -700, d= 41 => min= -700
Розв’язання
Порівнювати відразу 4 числа складно. Якщо всі числа - різні, то потрібно буде прописати 4 складені умови:
якщо (a<b) і (a<c) і (a<d)
то min=a
все
якщо (b<a) і (b<c) і (b<d)
то min=b
все
якщо (c<a) і (c<b) і (c<d)
то min=c
все
якщо (d<a) і (d<b) і (d<c)
то min=d
все
Якщо ж серед даних чотирьох чисел є однакові, то умови значно ускладняються.
Спробуємо іншу ідею: по черзі розглядатимемо пари чисел та шукатимемо серед них найменше.
Розглянемо перший контрольний приклад: a= 12, b=35, c= 0, d= -2.
1 крок. Розглядаємо пару a= 12, b=35. Оскільки 12<35, то min=12.
2 крок. Порівнюємо знайдене значення min=12 із наступним числом c=0. 0<12, тому min=0.
3 крок. Нове значення min=0 порівнюємо з 4-им числом d= -2. Оскільки -2<0, то min= -2.
Для розв’язання задачі таким способом потрібно просто вміти знаходити менше серед 2-ох чисел і послідовно застосовувати його до пар заданих значень.
Розглянемо допоміжний алгоритм знаходження меншого серед 2-ох значень та його переклад мовою Python.
Допоміжний алгоритм | Програма мовою Python |
алг ціл Менше2 (ціл x, y) арг x, y поч якщо x<y то m=x інакше m=y все знач= m кін |
def Menshe2(x,y): if x<y: m=x else: m=y return m |
Основний алгоритм та його переклад мовою Python матиме вигляд:
Основний алгоритм | Програма мовою Python |
алг Менше4 (ціл a, b, c, d, ціл min) арг a, b, c, d рез min поч min= Менше2(a, b) min= Менше2(min, c) min= Менше2(min, d) кін |
a=input(‘a=’) b=input(‘b=’) c=input(‘c=’) d=input(‘d=’) min= Menshe2(a,b) min= Menshe2(min,c) min= Menshe 2(min,d) print 'min=', min |
Задача “Min2.py”
Дано кількість чисел N і самі числа. Знайти найменше серед них.
Контрольний приклад
N=5
12
-96
7
23
-104
min= -104
Розв’язання
Розв’язання задачі аналогічне попередній. Але, оскільки дано N чисел, то потрібно організувати цикл, який буде повторюватись разів (i<=N). У циклі будемо зчитувати чергове число x і порівнювати його з поточним значенням min.
Перед циклом слід задати початкове значення змінної min. Якщо шукають найменше число, то за початкове значення навпаки беруть дуже велике число і в процесі роботи програми його поступово зменшують.
Візьмемо, наприклад, min= 1000000. Але тоді вхідні числа не повинні будуть перевищувати задане значення.
Розглянемо основний алгоритм та його переклад мовою Python.
Попередньо введемо позначення:
N – кількість чисел
i – лічильник по числах
x – поточне значення числа
Основний алгоритм | Програма мовою Python |
алг Менше_серед_N (ціл N) арг N рез min поч ціл i, x min=1000000 i=1 поки i<=N пц чит (x) min=Менше2(min, x) i=i+1 кц кін |
N=input(‘N=’) min=1000000 i=1 while i<=N: x=input() min= Menshe2(min,x) i=i+1 print 'min=', min |