Учебни материали по Информатика 8 клас
Раздел Алгоритми
Линейни блок – схеми /БС/ Последователните (линейни) алгоритми са съставени от команди, които се изпълняват една след друга, последователно по реда на записването им.
Пример 1. Да се създаде БС за размяна на стойностите на две променливи с участие на друга променлива.
Пример 2. Да се създаде БС за размяна на стойностите на две променливи без участие на друга променлива.
Пример 3. Съставете и опишете с блок-схема алгоритъм за въвеждане на параметър r , който е радиус на кръг и отпечатване на лицето на кръга.
Пример 4. Съставете и опишете с блок-схема алгоритъм за въвеждане на страната и височина към нея в триъгълник и пресмятане на лицето на триъгълника.
Пример 5. Опишете чрез блок-схема алгоритъм за намиране обиколката на квадрат със страна а.
Разклонени блок – схеми Разклонените алгоритми съдържат команди, които (в зависимост от изпълнението или не на някакво условие) определят кои са следващите за изпълнение команди. Те позволяват изпълнението на алгоритъма да се управлява в зависимост от получените до момента резултати.
Пример 1. Опишете чрез блок-схема алгоритъм за намиране обиколката на успоредник със страни а и b. Направете проверка за коректност на входните данни. Изведете подходящи съобщения.
Пример 2. Опишете чрез блок-схема алгоритъм чрез който цялото число а се разделя на цялото число b. Изведете подходящи съобщения.
Пример 3. Опишете чрез блок-схема алгоритъм за намиране на най-голямото от: а/ две числа б/ три числа.
Пример 4. Опишете чрез блок-схема алгоритъм за пресмятане стойността на функцията: Y ( = 2.x при х>3 ; = x? – 1 при х=3 )
Пример 5. Да се състави блок-схема за пресмятане стойността на функцията:
Пример 6. Да се състави блок-схема за пресмятане стойността на функцията:
Решаване на квадратно уравнение
Циклични блок – схеми
Цикличните алгоритми съдържат група от команди, които се изпълняват многократно (повтаряща се група от елементарни действия се нарича цикъл). Алгоритмите, съдържащи цикли, дават възможност с малък брой команди да се представя голяма по обем еднотипна обработка на данни.
Цикълът е структура за управление, при която част от действията се повтарят многократно за различни стойности на участващите променливи. От цикъла се излиза при изпълнение на определено условие, наречено условие за край.
Всеки цикъл трябва да съдържа частите инициализация (задаване на начални стойности), тяло, условие за край и актуализация (модификация), независимо от реда, в който са разположени.
Инициализация – задават се начални стойности на величини (променливи), участващи в цикъла. Най-често се среща случая, когато променливата е една, наречена управляваща променлива. Тяло – група от блокове, които ще се изпълняват многократно. Актуализация – променя се стойността на поне една величина от цикъла (най-често това е управляващата променлива). Условие за край – този блок определя дали да се изпълни тялото на цикъла още веднъж или не.
- Ако условието за край е разположено преди тялото на цикъла, това е цикъл с предусловие.
- Ако условието за край е разположено след тялото на цикъла, това е цикъл със следусловие
Разликата между цикъл с предусловие и цикъл със следусловие е че този със следусловие се изпълнява задължително поне веднъж, докато този с предусловие може и да не се изпълни.
Пример 1. Опишете чрез блок-схема алгоритъм за извеждане на естествените числа от 1 до 4. Променете блок-схемата, така че да се изведат естествените число от 1 до m.
Пример 2. Опишете чрез блок-схема алгоритъм за намиране на сумата на естествените числа от 1 до 5. Променете блок-схемата, така че да намира сумата на естествените числа от 1 до n.
Пример 3. Опишете чрез блок-схема алгоритъм за намиране на произведението на естествените числа от 1 до k.
Оператор за проверка на условия
Пример 0. Напишете програма, която въвежда три числа X, Y и Z и определя дали поне две от тях са отрицателни. Ако има такава двойка се показва на екрана „YES!“
Пример 1. Да се напише програма, която въвежда от клавиатурата 2 какви да е реални числа в променливи А и В. Да се умножи по-малкото от двете по 4 и да се изведе на екрана „По-малкото число е ……….., а произведението му с 4 е ……………….“. На мястото на точките да се появят съответните числа.
Пример 2. Да се напише програма, която въвежда от клавиатурата 3 какви да е цели числа в променливи X, Y, Z. Да се провери всяко число дали е четно и на екрана да се покаже съобщение „Числото …………… е четно.“ На мястото на точките да се появи съответното число.
Пример 3. Да се напише програма, която въвежда от клавиатурата 3 какви да е цели числа в променливи X, Y, Z. Да се сметне сбора на положителните и =0 числа, както и произведението на отрицателните числа от въведените три числа. На екрана да се появят съобщенията: „Сборът е ………………..“, както и „Произведението е ………….“. На мястото на точките да се появят съответните числа.
Пример 4. Да се напише програма, която въвежда от клавиатурата 2 какви да е реални числа в променливи А и В. Да се провери дали въведено трето реално число С попада в интервала [A, B]. На екрана да се появи едно от съобщененията „Числото ……….. принадлежи на интервала […., …..]“ или „Числото ……….. НЕ принадлежи на интервала […., …..]“ . На мястото на точките да се появят съответните числа.
Пример 5. Да се напише програма, която въвежда от клавиатурата 2 какви да е реални числа в променливи А и В. Да се провери дали въведено трето )реално число С попада в интервала ( A, B ). На екрана да се появи едно от съобщененията „Числото ……….. принадлежи на интервала ( …, …..) “ или „Числото ……….. НЕ принадлежи на интервала ( …., ….. )“ . На мястото на точките да се появят съответните числа.
Пример 6. Да се напише програма, която въвежда от клавиатурата 3 какви да е цели числа в променливи X, Y, Z. Да се провери всяко число дали е четно или нечетно. На екрана да се покаже съобщението „Броят на четните числа е ………“ както и „Броят на нечетните числа е ………“. На мястото на точките да се появи съответното число.
Пример 7. Да се напише програма, която въвежда от клавиатурата едно какво да е реално число – за оценка на ученик. Например „Въведи оценка: ………….“. Да се провери каква е стойността му и на екрана да се изведе едно от съобщенията:
2 – 2.99 СЛАБ 3.00 – 3.49 СРЕДЕН 3.50 – 4.49 ДОБЪР 4.50 – 5.49 МНОГО ДОБЪР 5.50 – 6.00 ОТЛИЧЕН
Ако числото не попада в тези интервали да се изведе „НЕКОРЕКТНА ОЦЕНКА!“.
Пример 8. Да се напише програма, която въвежда от клавиатурата 3 какви да е реални числа. Да се проверява дали тези числа могат да са страни в триъгълник. Условието, което следва да проверите е СБОРЪТ НА ДВЕТЕ СТРАНИ ДА Е ПО-ГОЛЯМ ОТ ТРЕТАТА СТРАНА. Това важи са всяка двойка страни. Да се изведе съобщение на екрана „Тези числа могат да са страни в триъгълник!“, а в противен случай съобщението да бъде „Тези числа НЕ могат да са страни в триъгълник!“.
Пример 9. Да се напише програма, която въвежда от клавиатурата 1 символ – буква на английски: R или r, W или w, Y или y ……… На екрана да се появи името на съответния цвят на български език. / ЧЕРВЕН или БЯЛ или ЖЪЛТ…… Ако се въведе символ, който не е начална буква на цвят да се появи „ГРЕШКА!“.
Пример 10. Напишете програма, която въвежда три числа X, Y и Z и намира най-голямото измежду тях.
Пример 11. Да се състави програма, която пресмятане стойността на функцията
Оператори за цикъл – Цикли. Предназначение и приложение. Видове
Цикълът представлява група повтарящи се действия, които се изпълняват за различни стойности на участващите в тях величини. Всеки цикъл би могъл да се разгледа като съставен от четири основни части:
- Инициализация – в нея задаваме начални стойности на участващите в цикъла величини
- Тяло на цикъла – това са операторите, които се изпълняват многократно.
- Актуализация – тук задаваме нови стойности на някои от участващите в тялото на цикъла величини и ги подготвяме за следващото изпълнение
- Условие за край на цикъла – това е логически израз, в зависимост от чиято стойност цикълът продължава да се изпълнява или се прекратява.
В зависимост от определеността на броя на повторенията, има два вида циклични процеси: индуктивни (определени) – при които броят на повторенията е известен предварително;итеративни (неопределени) – при които броят на повторенията не е известен предварително; при тях броят на повторенията зависи от някакво условие.
В зависимост от начина на изпълнение, делим циклите на следните видове:
- Цикъл с предусловие – при него условието за край на цикъла се проверява най-напред и в зависимост от това, дали е вярно или не, тялото на цикъла се изпълнява. Не е трудно да преценим, че такъв цикъл може да не се изпълни и нито веднъж, ако още в началото условието не е изпълнено.
- Цикъл с постусловие (следусловие) – при него първо се изпълнява тялото на цикъла, а чак след това се проверява верността на условието за край. Такъв цикъл се изпълнява минимум един път.
- Цикъл с управляваща променлива (броячен цикъл) – това е цикъл, при който задаваме начална и крайна стойност на управляващата променлива и той се изпълнява определен брой пъти. Основно реализира индуктивни циклични процеси.
Пример 1. От клавиатурата се въвеждат две цели положителни числа (първото трябва да е по-малко от второто). В цикъл for се сумират целите числа между тях. В сумата се включват и граничните числа.
Пример 2. Да се състави програма, която намира суми на различни числови редици:
S=1+2+3+4+….+N
S=1/2+2/3+…+N/N+1
S=1+1*2+1*2*3+1*2*3*4+…+1*2*3*N
S=++….+
S=1*2*3*4*………….*N
Пример 3. Напишете програма, която въвежда последователност от цели числа до въвеждане на числото 33. Изходен резултат – да се намери произведението от положителните числа. Друг вариант с Изходен резултат – да се намери броя на четните числа.
Пример 4. Напишете програма, която извежда на екрана на нов ред координатите: (0,0) (0,1) (0,2) (1,0) (1,1) (1,2) (2,0) (2,1) (2,2) Направете поне 3 варианта на програмата с използване на различните оператори за цикъл.
Пример 5. Напишете програма, която да покаже на екрана числовия правоъгълник:
Пример 6. Да се напише програма, която въвежда от клавиатурата числа докато се въведе числото 100. Да се преброят въведените числа и да се намери сумата на положителните.Да се изведе подходящо съобщение.
Пример 7. Да се напише програма, която въвежда от клавиатурата 100 числа. Да се намери сумата и броя на числата, които попадат в предварително зададения интервал ( А , В ). Да се изведе подходящо съобщение.
Пример 8. Да се напише програма, която въвежда от клавиатурата числа докато се въведе числото 50. Да се преброи колко от въведените числа са положителни числа и колко не са. Да се изведе подходящо съобщение.
Пример 9. Да се напише програма, която въвежда от клавиатурата числа докато се въведе 0. Да се преброят въведените числа и да се намери най-голямото ( най-малкото) въведено число.
Пример 10. Да се съберат четните числа от 20 до 30 включително, а на екрана да се появи съобщението:
20 22 24 26 28 30
Sbora e: _____
Успех!