4. Линейни, разклонени и циклични алгоритми. Създаване на алгоритми със скриптов език за програмиране - упражнения

 

Създаване на алгоритми

Презентация 1

Линейни, разклонени и циклични алгоритми

Реализиране на линеен алгоритъм на езика Python

Линейният алгоритъм е поредица от инструкции, които се изпълняват една след друга, без разклонения или цикли. За да реализирате линеен алгоритъм на Python, можете да използвате следните основни структури:

1. Дефиниране на променливи:

# Дефиниране на числова променлива

a = 5

# Дефиниране на текстова променлива

b = "Здравей, свят!"

 

2. Извършване на операции:

# Събиране

c = a + 2

# Умножение

d = b * 3

# Печат на резултат

print(c, d)

 

Реализиране на цикличен алгоритъм на езика Python


В Python има два основни типа цикли:

  • Цикъл for: Използва се за повтаряне на блок код за определен брой итерации.
  • Цикъл while: Използва се за повтаряне на блок код, докато дадено условие е изпълнено.

 

Цикъл for синтаксис:
for <променлива> in <последователност>:
    <блок код>
Пример: Този код ще отпечата числата от 0 до 4 (без 5).
for i in range(5):
    print(i)

 

Цикъл while Синтаксис:
while <условие>:
    <блок код>

Пример: Напишете програма, която чете числа от потребителя, докато не се въведе 0.

n = int(input("Въведете число: "))
while n != 0:
    print(n)
    n = int(input("Въведете число: "))

 

Реализация на разклонен алгоритъм на Python


Разклонените алгоритми са ключов елемент от програмирането, позволявайки ни да изпълняваме различни действия в зависимост от дадени условия. В Python езикът, това се реализира с помощта на оператори за сравнение и условни конструкции.

1. Условни оператори:
==: Равно на
!=: Различно от
<: По-малко от
<=: По-малко или равно на
>: По-голямо от
>=: По-голямо или равно на
2. Условни конструкции:

  • if: Изпълнява код, ако условието е истина.
  • elif: Изпълнява код, ако предишното условие е лъжа, а текущото е истина.
  • else: Изпълнява код, ако всички предишни условия са лъжа.

Пример: Проверка за число, по-голямо от 10

num = int(input("Въведете число: "))

if num > 10:
    print(f"Числото {num} е по-голямо от 10.")
elif num == 10:
    print(f"Числото {num} е равно на 10.")
else:
    print(f"Числото {num} е по-малко или равно на 10.")
В този пример:

int(input("Въведете число: ")) - Чете въведено число от потребителя и го преобразува в цяло число.
if num > 10: - Проверява дали числото е по-голямо от 10.
elif num == 10: - Проверява дали числото е равно на 10.
else: - Изпълнява се, ако числото е по-малко или равно на 10.


3. Вложени условни конструкции:
Пример: Проверка за число, по-голямо от 10 и четно

num = int(input("Въведете число: "))

if num > 10:
    if num % 2 == 0:
        print(f"Числото {num} е по-голямо от 10 и четно.")
    else:
        print(f"Числото {num} е по-голямо от 10, но нечетно.")
else:
    print(f"Числото {num} е по-малко или равно на 10.")
В този пример:

Първият if проверява дали числото е по-голямо от 10.
Вторият if (вложен) проверява дали числото е четно, само ако е по-голямо от 10.


4. Допълнителни условни конструкции:

  • and: И двете условия трябва да са истина.
  • or: Само едно от условията трябва да е истина.
  • not: Променя истиността на условието.

 

Практически задачи

Трябва да решите 4 задачи по ваш избор 
Създаване на алгоритми в среда за блоково програмиране (задачи 1-3)
Задача 1: Създаване на линеен/цикличен алгоритъм:

Трябва да си изберете дали ще работите с линеен или с цикличен алгоритъм:

  • Създайте код за програма, която изчертава квадрат с линеен алгоритъм.
  • Създайте код за програма, която изчертава квадрат, триъгълник и петоъгълник, като използвате блокове за повторение (цикличен алгоритъм).

 

Примерно решение с линеен алгоритъм
Примерно решение с циклични алгоритми
Задача 2: Създаване на подпрограма / собствен блок /,
променлива и диалог с потребителя:
  • Създайте код за програма, която пита потребителя колко страни да има многоъгълник, след което изчертава многоъгълника по зададения брой страни.

 

Примерно решение със собствен блок:
Създаване на алгоритми със скриптов език за програмиране (задачи 4-7)
Задача 4: Конвертор на цена евро/лева

Напишете програма, която помага за изчисляване на цена:

  1. Създайте променлива лев със стойност 1.95583;
  2. Създайте друга променлива за цена в евро;
  3. Питайте потребителя за цената в евро. Използвайте prompt("Въведи цена в евро: ");
  4. Изведете в конзолата цена*лев.
  5. Можете да закръглите до 2 знака след нулата с метода .toFixed(2).

 

Задача 5:  Интерактивна графика

Създайте програма, която чертае фигура с определен цвят, а при кликане с мишката - цвета да се променя.

За квадрат можете да ползвате square(100, 100, 200);

За кръг можете да ползвате circle(200, 200, 100);

За реакция на кликането mouseIsPressed === true

Примерна структура:

 

if (mouseIsPressed === true) {
    fill(единия цвят);
  } else {
    fill(другия цвят);
  }

  //тук пишете кода за фигурата, която ще ползвате;

 

Създаване на цикличен / разклонен алгоритъм с езика Python:

Задача 6: Триъгълник от символи

Създайте програма, която да извежда триъгълник от символи "*" на 9 реда, като използвате цикличен алгоритъм.

Задача 7: Познай числото

Да се създаде програмата, която да генерира случайно число в интервала от 1 до 10, а потребителят да въвежда предложения за числото, докато то съвпадне с генерираното число. Използвайте разклонен алгоритъм.

 

Примерно решение на задача 6 с цикъл while и на задача 7 с if-elif-else
Примерен вид на крайният резултат: