Алгоритми та прогами

Алгоритми та прогами 

Самостійна робота 1

Самостійна робота 2

Самостійна робота 3

Дотаткові задачі

вікно програми

Задача "Competition"

Швидкість польоту ластівки 74 км/год, а горобця – 56 км/год. Хто пролетить більшу відстань: ластівка за F год чи горобець за G год?

Вхідні дані

Програма зчитує з клавіатури 2 цілих числа F та G.

Вихідні дані

Програма виводить на екран одне слово:

            ¤ martlet, якщо більше пролетить ластівка;

            ¤ sparrow, якщо переможе горобець;

            ¤ equally, якщо обидва птахи пролетять однакову відстань.

Контрольні приклади

1) F= 4, G= 5        =>   martlet

      2) F= 7, G= 10      =>   sparrow

      3) F= 28, G= 37    =>   equally

Задача "Stale"

Злий дракон має N голів. Коли Іван Царевич відтинає йому одну голову, то на її місці виростає K нових голів. Якщо драконові відрубати P голів, то скільки голів у нього буде?

Вхідні дані

Програма зчитує з клавіатури натуральні числа N, K, P (N>=1, K, P>=0)

 Вихідні дані

Програма виводить на екран одне число – нову кількість голів у дракона.

 

Контрольний приклад

Введення: 5  4  3

Виведення: 14

Задача “Perimeter or area

   Дано натуральне число k (1 або 2) і сторони прямокутника a та b
   Якщо k=1, то знайти площу прямокутника. Якщо  k=2, то обчислити периметр.
 
    Контрольні приклади
        1) k=1, a=5, b=10   => S= 50
        2) k=2, a=7, b=12   => p= 38

Задача “Calculation”


 

Дано числа аb і k.

  При введенні k=1 надрукувати менше серед чисел а і b,  
 k=2 знайти більше серед чисел а і b
 k=3 обчислити .

  Контрольні приклади

      1) a= 15, b= -26, k= 1     =>    -26

      2) a= 129, b= 17, k= 2    =>    129

      3) a= 3, b= 4, k= 3          =>    5.0

 

  


Задача “Coordinate

Визначити, в якій чверті прямокутної системи координат знаходиться точка з координатами (х, у).  Відомо, що точка не лежить ні на осі оХ, ні на осі оY.

  Вказівка.

Контрольні приклади
        1) x=5, y= 15      =>  1
        2) x=-9, y= 10     =>  2
        3) x=-4, y= -14    =>  3
        4) x=21, y= -3     =>  4



Задача “Triangle”



   Комп’ютер зчитує 3 додатних числа abc. З’ясувати, чи можна з них утворити трикутник?

   Контрольні приклади

       1) a= 12, b= 8, c= 10     => true

       2) a= 6, b= 15, c= 23     => false

  Вказівка. Трикутник існує тоді, коли кожна з сторін менша за суму двох інших.

 

Задача “Bookstore.py”

У книжковому магазині в розділі “Фантастика” стелажів по T книг у кожному. Кожна з K шаф дитячої літератури містить на 20 книг більше. 

   Яких книг у магазині більше: з фантастикою чи дитячою літературою?

    Контрольні приклади

       1) N= 6,   T= 100, K= 3      => 'fantastuka'

       2) N= 12, T= 60,   K= 11    =>    'dutiacha literatyra'

       3) N= 7,    T= 50,   K= 5      =>    'porivnu'


 

  


Задача “Quadratic.py”

  Дано цілі числа a≠0b і cЗнайти корені квадратного рівняння .

  Контрольні приклади

      1) a= 2, b= -13, c= -45     =>    x1= 9.0, x2= -2.5

      2) a= 16, b= -72, c= 81      =>    x= 2.25

      3) a= 12, b= 8, c= 4      =>    'rozviazky nemaie'

 

   Вказівка.

    Спочатку потрібно обчислити дискримінант .

    Якщо D>0, то 2 корені можна знайти за формулами:

          

   Якщо D=0, то є лише один корінь .

   Якщо D<0, то рівняння коренів не має.

Корінь із числа за допомогою математичного модуля
import math
math.sqrt(num)
num будь-яке число

** оператор - це оператор єкспоненти. а**b (а поднести до степеня b). 
число**0.5 те саме що 

 Оператор умови  if 
   Оператор if використовується, коли виконання команд залежить від заданих у задачі умов.
 
Блок-схема Алгоритмічна мова    Мова Python    
 якщо <умова>
        то <серія1>
        інакше <серія2>            
все
   if  <умова> :
         <серія1>
  else:  
         <серія2>

Задача “Task01.py”

   Дано число x.

   Обчислити .

   Контрольні приклади
        1) x= 2      =>    y=50
        2) x= 10    =>    y=9.5

 

ПрограмаПояснення
print ("Task01") 
x=int(input('x='))
if  x<=6:
     y=3*x**4+7*x-12
 else:
     y=2.0/(x-6)+9
 print ('y=', y)
 Виведення фрази 'x=' та зчитування значення змінної x
 Якщо введене значення x менше або рівне 6
     то обчислюємо значення y за 1-ою формулою
     інакше 
          обчислюємо y за 2-ою формулою
 Виведення фрази 'y=' та знайденого значення змінної y

   Примітка

  • При записі дробу знаменник (x-6) є складеним виразом, тому обов’язково береться в дужки.
  • Для отримання дробового значення відповіді або чисельник, або знаменник повинен бути дробовим числом. Тому чисельник 2 записуємо 2.0.
  • Оператор else слід писати на рівні if, а не з відступу.
  • Команду print 'y=', y описують на рівні оператора умови. Якщо її описати з відступу (під командою y=2.0/(x-6)+9), то значення змінної y буде виводитись лише одночасно з else, коли умова x<=6 не буде виконуватись.

Іноді умова буває складеною (складається з простих за допомогою операцій або (or) чи і (and)).

 Наприклад

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

Задача “Season.py”

   Дано номер місяця k. Вивести відповідну пору року.

   Контрольні приклади

     1)  k= 5     =>  ‘весна’
     2)  k= 12   =>  ‘зима’

ПрограмаПояснення
 k=int(input('k='))
 if (k==1) or (k==2) or (k==12):  
      rez=('winter')
 if (k==3) or (k==4) or (k==5):
     rez=('spring')
 if (k>=6) and (k<=8):
     rez=('summer')
 if (k>=9) and (k<=11):
     rez=('autumn')
 print (rez)    
 Виведення фрази 'k=' та зчитування значення змінної k
 Якщо ввели 1-ий, 2-ий або 12-ий місяць
       то у змінну rez записуємо 'winter' (зима)
 Якщо ввели 3-ий, 4-ий або 5-ий місяць
       то у змінну rez записуємо 'spring' (весна)
 Якщо номер місяця (k більший або рівний 6) і (менший або рівний 8)
       то у змінну rez записуємо 'summer' (літо)
 Якщо номер місяця (k більший або рівний 9) і (менший або рівний 11)
       то у змінну rez записуємо 'autumn' (літо)
 Виведення знайденого значення змінної rez

    Примітка. Операція = є операцією присвоєння (надання змінній деякого значення). В умові використовується оператор порівняння == (перевірка, чи дорівнює значення змінної вказаному значенню).


Задача “School.py”

 

   Дано номер класу, в якому навчається учень.

 З’ясувати, до школи якого ступеню

 (початкова, основна, старша) він відноситься.

          Початкова школа: 1-4 класи 

          Основна школа: 5-9 класи

          Старша школа: 10-11 класи

   Вхідні дані

         Програма зчитує з 

клавіатури одне ціле число.

   Вихідні дані

   Програма виводить на

 екран “School_1” для

 початкової школи,

 “School_2”– для основної,

 “School_3”– для старшої.

 

   Приклади вхідних та вихідних даних

       Введення: 3
       Виведення: School_1

       Введення: 7
       Виведення: School_2

       Введення: 11

       Виведення: School_3

Задача “Homework01.py”

   Дано число x.

   Обчислити 

   Вказівка. Оператор  мовою Python позначають < > або !=.

Задача “Homework02.py”

   Дано номер місяця m. Вивести кількість днів у ньому.

   Контрольні приклади

      1) m= 1     =>     k= 31
      2) m= 2     =>     k= 28

Задача “ChessСells.py”

   На шаховій дошці задано координати 2-ох клітинок (x1, y1) і (x2, y2), де перша координата – це номер рядка, друга – номер стовпця. 

   Визначити, чи одного кольору задані клітинки. Вивести 1, якщо це правда, 0 – в іншому випадку.

   Вхідні дані

       Програма зчитує з клавіатури 4 цілих числа: х1у1х2у2

   Вихідні дані

       Програма виводить на екран одне число – 0 або 1.

   Приклади вхідних та вихідних даних

       Введення:   1   1   2   2
       Виведення: 1

       Введення:   1   1   1   4
       Виведення: 0

 

Лінійні програми

Задача Apples




У першому ящику було A кг яблук, у другому –  на 40 кг більше.

  Скільки кілограмів фруктів в обох ящиках?

   Контрольні приклади

       1) A= 78     =>    m= 196

       2) A= 100   =>    m= 240

       3) A= 691   =>    m= 1422

Задача Milk

У посудині було L л молока. Пес Барбос випив 2/5 всього молока, а кіт Мурчик – 1/4 решти.

  Скільки літрів молока залишилося в посудині?

   Контрольні приклади

         1) L= 6      =>   2.7

         2) L= 143   =>   64.35



Задача “Flowers.py”

   На клумбі росло S тюльпанів, нарцисів та крокусів. Тюльпанів і нарцисів було W, нарцисів та крокусів - Z

   Скільки квітів кожного виду створювали квіткову композицію?

   

Контрольні приклади

     1) S= 200, W= 123, Z= 98       =>     T= 77, N= 21, K= 102

     2) S= 304, W= 201, Z= 164     =>     T= 103, N= 61, K= 140

 

Розв’язання

         

  Розглянувши схему, можна помітити, що:

   1) Кількість крокусів K можна знайти як різницю загальної кількості квітів S та суми кількостей тюльпанів і нарцисів W.

        K= S-W

   2) Кількість нарцисів N можна дізнатись як різницю загальної кількості нарцисів і крокусів Z та щойно знайденої кількості крокусів K.

        N= Z-K 

   3) Кількість тюльпанів T обчислимо як різницю загальної кількості квітів S і спільної кількості нарцисів та крокусів Z.

        T= S-Z

ПрограмаПояснення

 S=input('S=')

 W=input('W=')

 Z=input('Z=')

 K=S-W

 N=Z-K

 T=S-Z

 print 'T=', T 

 print 'N=', N

 print 'K=', K 

 Виводимо текст 'S=' і зчитуємо введене значення у змінну S

 Виводимо текст 'W=' і зчитуємо введене значення у змінну W

 Виводимо текст 'Z=' і зчитуємо введене значення у змінну Z

 Знаходимо кількість крокусів K

 Знаходимо кількість нарцисів N

 Знаходимо кількість тюльпанів T

 Виводимо на екран текст 'T=' і значення кількості тюльпанів T

 Виводимо на екран текст 'N=' і значення кількості нарцисів N

 Виводимо на екран текст 'K=' і значення кількості крокусів K

 


Задача “Cyclists.py”

   Два велосипедиста виїхали з двох населених пунктів назустріч один одному. Перший велосипедист їде з швидкістю км/год, а другий на 2 км/год більше. Відстань між населеними пунктами км. 

    Через скільки хвилин велосипедисти зустрінуться?

  Контрольні приклади

     1) V= 14, S= 60       =>     t= 120.0

     2) V= 15, S= 100     =>     t= 187.5


Задача “Parallelepiped1.py”

 

  Довжина прямокутного паралелепіпеда

 дорівнює L см. Його висота становить R% довжини. 

А ширина – 3/4 висоти.

    Обчисліть об’єм прямокутника.

    Контрольні приклади

        1) L= 10, R= 50      =>     V= 187.5

        2) L= 28, R= 25      =>     V= 1029.0



Задача “Broken.py”

     Чому дорівнює довжина ламаної?

  Контрольні приклади

       1) W= 20, T= 2        =>     S= 76.3

       2) W= 102, T= 5      =>     S= 710.3

  Ламана складається з трьох ланок. Довжина першої ланки дорівнює W см,

 що на 3,7 см більше за довжину другої ланки і у разів менше

 від довжини третьої.

 

Задача “Field.py”

 

   Поле прямокутної форми має площу а, його ширина – м.

   Обчисліть периметр поля.

      Примітка. 1 а (ар) = 100 м2

   Контрольні приклади

        1) S= 50, L= 100       =>     p= 300.0

        2) S= 36, L= 320       =>     p= 662.5


Задача “Road_traffic.py”

  З одного населеного пункту одночасно в одному напрямі вирушили велосипедист та легковий автомобіль. Велосипедист їхав зі швидкістю км/год, а автомобіль – зі швидкістю у разів більшою.

   Якою буде відстань між ними через год після початку руху?

  Контрольні приклади

     1) V= 14, P= 6, T= 3         =>     S= 210.0

     2) V= 15.5, P= 4, T= 7      =>     S= 325.5
 


Задача “Triangle.py”

   Одна сторона трикутника дорівнює дм, друга – у разів коротша за першу, а третя – на 12 дм довша за другу.

   Знайдіть периметр трикутника.

  Контрольні приклади

     1) A= 10, N=2       =>     p= 32.0

     2) A= 25, N= 8      =>     p= 43.25


Задача “Parallelepiped2.py”

   Сума довжин усіх ребер прямокутного паралелепіпеда дорівнює см, два його виміри – см і см.

    Знайдіть третій вимір паралелепіпеда.

  Контрольні приклади

     1) W= 240, A= 15, B= 20          =>     C= 25

     2) W= 234.8, A= 9.6, B= 42      =>     C= 7.1

Задача “Road.py”   

   Потрібно було відремонтувати n км дороги. За перший місяці полагодили 36%, за другий– m%, а за третій – решту. 

   Скільки кілометрів дороги відремонтували за третій місяць?  

   Контрольні приклади

     1) n= 1000, m= 25        =>      s= 390.0

     2) n=2354, m= 12         =>      s= 1224.08


 

 Задача “Calculation.py” 

Дано два числа x і y. Обчислити:

      

   Контрольні приклади
         1) x= 4, y= 1      =>     t= 493, z= 18.0
         2) x= 3, y= 2      =>     t= 199, z= 18.6666666667


 


Введення даних та виведення результатів у Python
 
ЗавданняРеалізація мовою PythonПояснення
 Прочитати числа х та у, які записані в різних рядках
 Вхід:
        23
        -56
 x=input()
 y=input()
 Команда input() зчитує введене значення та переходить на наступний рядок
Прочитати 2 цілих числа х та у, які записані в одному рядку
 Вхід:
        23   -56
 x, y =map(int,raw_input().split())
 raw_input() – зчитування рядка величин
 split() – розділення величин за ознакою пропуск
 int – величини будуть перетворюватись у цілочисельний тип
Прочитати 3 дробових  числа ху та z, які записані в одному рядку
 Вхід:
       23   -56    125

 x, y, z = map (float, raw_input().split())
float - величини будуть перетворюватись у дробовий тип
 Вивести числа х та у в різних рядках
 Вивід:
      34
      67
 print x
 print y
 Команда print виводить значення та переходить на наступний рядок
 Вивести числа х та у в одному рядку
 Вивід:
      34   67
 print x, y 
 Команда print виводить через пропуск в одному рядку два значення

 

Змінні та константи. Типи даних у програмуванні. Операції над змінними

Змінна та константа

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

   У Python змінна – це посилання на комірку пам‘яті.

           

   Константа – це величина, яка не змінюється протягом виконання програми.

   Приклади констант із життя:
        ¤  число Пі дорівнює 3,1415926…;
        ¤  у добі 24 години;
        ¤  літера “А” не стане іншою буквою.

 


Типи даних у програмуванні

   Тип даних – це набір значень та операцій, які над ними можна виконувати.

   Наприклад,  числа можна множити або ділити. Але ці операції неможливо виконати над словами чи літерами.

   Змінні можуть набувати значень різних типів. Розглянемо деякі стандартні типи мови Python.

 


Операція присвоєння. Вимоги до імен змінних  

   Для того, щоб “запам‘ятати” значення досить присвоїти його змінній. Для цього використовується спеціальний оператор присвоєння, який позначається знаком рівності (=). 

       message = “Hello world!”
       n = 12
       pi = 3.14159

   Слід обирати осмисленні назви змінних. Імена змінних можуть бути довільної довжини, але намагайтесь обирати не занадто короткі та не занадто довгі імена – від цього залежить зручність читання програми.

    При заданні імен в Пітоні можна використовувати: 
         ¤ будь-які латинські літери, 
         ¤ цифри (0-9), 
         ¤ знак _ (знак підкреслення). 

  Знак підкреслення може використовуватись для відділення слів, що утворюють ім‘я змінної. Наприклад, user_name, full_price. 

   Але назви змінних не можуть: 
        ¤ починатись із цифри, 
        ¤ містити пропуск та специфічні знаки ($, %, &, @, !, …), 
        ¤ набувати значень команд (print, input, …).

   Варто пам’ятати, що Python чутливий до регістру (розрізняє великі та малі літери). Змінні X та x – це різні змінні.

 


Операції над змінними та величинами

   УВАГА! У Python 1/2=0, а не 0.5 (числа 1 та 2 – цілі, то й результат має бути цілий). Щоб отримати дробову відповідь, слід одне зі значень (або чисельник, або знаменник) перетворити у дробовий тип командою float

     float(1)/2= 1/float(2)= 0.5

Написання першої програми мовою програмування Python

  Завантажити інсталяцію Python можна тут:
 (натисніть на посилання; у вікні, що відкриється, клацніть правою клавішею мишки; оберіть Запустить этот плагин)

  Для написання та запуску програми потрібно:
  1. Запустити програму Python (натиснути на ярлик  або  на Робочому столі).
 
       
 
  2. У вікні, що відкрилось, натиснути FileNew File.
       
  3. Зберегти файл собі в папку D:\\ Tutorial\ 9-X:
  • натиснути FileSave As… або Ctrl+S
  • обрати шлях до своєї папки; 
  • ввести назву програми англійською мовою і вказати розширення py, наприклад task.py
            
  • натиснути кнопку Зберегти.
      УВАГА! Жодна папка у шляху та назва файлу не можуть містити українські літери.
  4. Ввести код програми.
  5. Зберегти (FileSave або Ctrl+S).

  6. Запустити програму на виконання (Ctrl+F5). 

Пошук найбільшого та найменшого серед кількох значень

Задача “Min.py”   

  Дано цілі числа abc і 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= 12b=35c= 0d= -2

          1 крок. Розглядаємо пару a= 12b=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

Розв’язання

  Розв’язання задачі аналогічне попередній. Але, оскільки дано чисел, то потрібно організувати цикл, який буде повторюватись разів (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