середу, 23 листопада 2016 р.

Контрольна робота «Циклічні алгоритми»

Контрольна робота «Циклічні алгоритми»

І варіант

1. Для чого використовують оператор повторення? Що таке цикл?

2. Намалюйте блок-схему, що відповідає циклу з передумовою, та поясніть призначення її основних блоків. Запишіть структуру циклу з передумовою відповідно до правил НАМ. Яке значення повинна мати умова, записана у циклі з передумовою, для того аби він виконувався?

3. Складіть блок-схеми для даних алгоритмів. Визначте значення всіх змінних після виконання операторів повторення:
а) а:=0; с:=1;  Поки с<=10 виконати   Початок  а:=а*2;  с:=с+1; кінець;  с:=с+а;
б)  а:=1;  для і:=2 до 6 виконати  а:=а+і*2;
в)  а:=0; і:=1; Поки і < 2 виконати  Початок  а:=а+1;  і:=і – 1; кінець;
г) х:=0; і:=-8;  Повторювати і:=і – 1; х:=х – і;  доки Не і <-10.

4. Сформулювати алгоритм Евкліда для визначення найбільшого спільного дільника двох чисел. Записати формулу для обчислення найменшого спільного кратного двох чисел.

5. Знайдіть алгоритм для обчислення суми всіх парних чисел від 103 до 303. Складіть блок-схеми для цього алгоритму.

6. Учора, переглядаючи фільм про пригоди Гаррі Поттера, я спробував порахувати, скільки запрошень на навчання до школи Гогвортс відіслав хлопцю професор Дамблдор. Першого дня професор відправив із совою одного листа та одного листа поклав до поштової скриньки будинку, де мешкав майбутній маг. Далі щодня він відправляв із совами в х разів більше запрошень, ніж у попередній день. Крім того, до поштової скриньки Дамблдор вкладав на у листів більше, ніж у попередній день. Допоможіть мені визначити, скільки всього листів отримав Гаррі Поттер за n днів листування із школою Гогвортс.

ІI варіант

1. Які є види циклів? У чому полягає відмінність між ними?

2. Намалюйте блок-схему, що відповідає циклу з післяумовою, та поясніть призначення її основних блоків. Запишіть структуру циклу з післяумовою відповідно до правил НАМ. Яке значення повинна мати умова, записана у цьому циклі, для продовження виконання тіла циклу?

3. Складіть блок-схеми для даних алгоритмів. Визначте значення всіх змінних після виконання операторів повторення:
а) х:=0; у:=1; Поки у < 4 виконати Початок х:=х+у; у:=у+1; кінець;
б)  а:=2; с:=2; Поки а <=16 виконати Початок а:=а*с+2; с:=с+4; кінець;
в)  а:=10; для і:=3 до 10 виконати а:=а+1/і; г)  х:=0; і:=6; Повторювати
х:=х+1/і;  і:=і-1  доки  Не і=0.

4. Записати алгоритм обчислення найбільшого спільного дільника двох чисел навчальною алгоритмічною мовою блок-схем.

5. Складіть блок-схеми для даного алгоритму обчислення суми всіх непарних чисел від 203 до 403.


6. Готуючись до Спартакіади, хлопці завзято та наполегливо тренуються, щоб здобути перемогу для свого класу. Розпочавши тренування, у перший день  вони пробігли 1 км, а кожного наступного дня збільшували довжину дистанції на 5% порівняно з пробігом попереднього дня. Друзі запропонували мені бути їх тренером. Будь ласка, допоможіть мені визначити сумарну довжину пробігу друзів за перший тиждень тренувань.

вівторок, 22 листопада 2016 р.

Найпростіші логічні операції над висловлюваннями в алгоритмах розгалуження.


Найпростіші логічні операції над висловлюваннями в алгоритмах розгалуження.

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

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

Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"
Значень логічних оперцій тільки два:
"0"  - хибне висловлювання(х);
"1" - істинне висловлювання(і).

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


Найпростіші логічні операції над висловлюваннями.

\/ -логічне"або", диз'юнкція, а також говорять, як про логічне додавання(об'єднання множин).

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

/\- логічне "і", "and"  - а також називають логічне множення(переріз множин).
Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"



-   логічне "не", інверсія, іноді говорять, як про логічне протилежне.

Пов’язане зображення

Імплікація - логічне слідування.

Пов’язане зображення

Логічна еквівалентність


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

Значень логічних оперцій тільки два:
"х"-хибне висловлювання;
"і" - істинне висловлювання.

Перевірте правильність заповнення таблиці.

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




Вправи для самоперевірки.

1.Розпізнай назву логічних операцій за таблицями:

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




Складені логічні висловлювання

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




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


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

Приклад алгоритму у вигляді блок-схеми

Пов’язане зображення

Пов’язане зображення

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

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

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


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








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




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

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





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


Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"
Наведемо приклад таблиці істинності:
Результат пошуку зображень за запитом "таблиці істинності для логічних виразів"

Закони логіки.

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


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


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

Пов’язане зображення



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


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














Блок-схеми алгоритмів

Блок-схеми алгоритмів

Проблемне запитання:

Як швидко порахувати суми:
  1. 2+4+6+..+ 2k = ? (сума перших парних натуральних чисел);
  2. 1+3+5+..+ 2к -1 = ?  (сума перших непарних натуральних чисел);
  3. 1+2+3+4+..+ k =   ?  (сума перших натуральних чисел);
  4. 12+22+32+42+..+ к2 =  ? (сума квадратів перших натуральних чисел);
  5. 1∙2 + 3∙2 + 3∙4 + 4∙5 + 5∙6 + … + к(к+1) =?;
  6. 13+23+33+43+..+ k3 =    (сума кубів перших натуральних чисел);
Отже, може попросити допомоги у комп'ютера! А це значить шукати   алгоритми для сумування!


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

Графічне зображення базових  алгоритмічних структур.
Назва блокуОпис дії
Позначає початок та кінець алгоритму
Позначає ввід вихідної інформації і вивід проміжної чи результуючої інформації
Позначає дію, яку треба виконати
Позначає перевірку значення логічного виразу деякої умови


Просте слідування
Слідування означає, що дії повинні виконуватись послідовно одна за одною.
Лінійний алгоритм – алгоритм, в якому всі вказівки виконуються одна за одною і не містить розгалужень та повторень.
Приклад
Алгоритм знаходження суми S трьох чисел a,b,c.



Розгалуження
Розгалуження – це така форма організації дій, які містять умови і в залежності від того чи вона виконується чи ні здійснюється або одна або друга послідовність дій.
Умова - це будь-яке твердження, яке або виконується або не виконується, тобто можна дістати одну з двох відповідей: «так» або «ні». Блок-схемою це можна зобразити так:
Якщо умова виконується, то виконується серія команд 1 (гілка так), якщо умова не виконується, то виконується команд 2 (гілка ні). Після виконання серії команд виконавець переходить до наступної команди після команди розгалуження.
 В серію може входити також команда розгалуження. В цьому випадку кажуть, що команди розгалуження вкладені одна в одну.


Можливий випадок, що у випадку невиконання умови не потрібно виконувати ніяких дій. Тоді використовується скорочена форма розгалуження («Якщо-то»).
Блок-схема структури «якщо-то»

Приклад
Алгоритм обчислення модуля:

Приклад



Повторення(цикл)
Часто зустрічаються такі задачі при виконанні яких потрібно виконувати одні і ті самі дії декілька разів. Тоді кажуть, що така структура команд називається циклічною, або утворена структура «повторення».
Цикл – це форма організації дій, за якою одна і та сама послідовність дій виконується кілька разів доти, поки виконується деяка умова. Серія команд, що виконується декілька разів без змін при кожному проході циклу, називається тілом циклу.
Є два типи повторень: з передумовою та післяумовою. У першому випадку спочатку перевіряється умова і, якщо вона істинна, то вказана дія виконується черговий раз, якщо ж ні – то виконання дії припиняється.
У випадку повторення з післяумовою спочатку виконується серія команд, а після цього перевіряється умова і визначається, чи є потреба виконувати її знову.
Можливі ситуації, коли «цикл поки» не виконується жодного разу. Це відбувається в тому випадку, коли на першому кроці умова є хибною. Якщо при повторенні циклу умова залишається завжди  істинною, то цикл може повторюватись нескінченно.
Приклад
Алгоритм підрахунку суми N перших натуральних чисел. Суму позначимо через S, через і – черговий доданок. Спочатку S=0, оскільки ще суми не знаходили, i=1 (перше натуральне число). Щоб знайти суму, то потрібно до попередньої суми додати наступний доданок: S=S+i. Для отримання наступного числа потрібно попереднє збільшити на одиницю: i=i+1. Виконання циклу продовжується до тих пір, поки i<=N.
Проте є зручніші алгоритми для підрахунку таких сум, наприклад, можна скористатися такими формулами і використати їх одразу для лінійного алгоритму на калькуляторі.
  1. 2+4+6+..+ 2k = k(k+1)   (сума перших парних натуральних чисел);
  2. 1+3+5+..+ 2к -1 = k2   (сума перших непарних натуральних чисел);
  3. 1+2+3+4+..+ k = 0,5* k(k+1)  (сума перших натуральних чисел);
  4. 12+22+32+42+..+ к2 =  k(k+1)(2k+1)/6 (сума квадратів перших натуральних чисел);
  5. 1∙2 + 3∙2 + 3∙4 + 4∙5 + 5∙6 + … + к(к+1) = k(k+1)(2+k)/3 ;
  6. 13+23+33+43+..+ k3 =  k2(k2+1)/3  (сума кубів перших натуральних чисел);
Принципи структурного програмування
Алгоритми, у яких використовується тільки структура «слідування», називаються  лінійними.
Алгоритми, в основі яких лежить структура «розгалуження», називаються алгоритмами з розгалуженнями.
Алгоритми, в основі яких лежить структура «повторення», називають циклічними.
На практиці алгоритми розв’язування складних задач містять у собі всі три типи базових структур алгоритмів. Розглянуті принципи конструювання алгоритмів називають принципами структурного програмування.




Практичні завдання раджу не ігнорувати. Теорія без практики не запам'ятовується  і не ефективна. Тільки читаючи статті і виконуючи різноманітні задачі можна досягти найкращого ефекту від опанування мови програмування.




Вправа 1-1. «Побудова математичної моделі»
1)      В шкільну їдальню привезли m кг картоплі, а буряків в n раз менше. Скільки всього овочів привезли до шкільної їдальні ? Запишіть формулу.
2)      Присадибна ділянка має форму прямокутника, довжиною a см і шириною b см. Знайти чверть площі присадибної ділянки. Запишіть формулу.
3)      Контрольну роботу на “10”-“12” написали n  учнів, “7”-“9” – m учнів, “4”-“6” – k учнів. Визначити, у  скільки разів менше учнів написали на “4”-“6”, ніж на “7”-“12”.  Запишіть формулу.
4)      Знайти корені рівняння типу: ax=b.  Запишіть формули та умови на усі випадки.
5)      Знайти корені рівняння: ax2+bx+c=0. Запишіть формули та умови на усі випадки.
6)      Знайдіть площу кільця, яке створене двома кола із спільним центром і радіусами R та r. Запишіть формули та умови на усі випадки.

Вправа 1-2. «Алгоритм та його властивості»
  1. Записати алгоритм обчислення виразу: y=(x3+2x+1)/(4x2-x+1). Складіть блок-схему та умови на усі випадки.
  2. Записати алгоритм додавання багатоцифрових чисел. 
  3. Складіть блок-схему для обчислення площі трапеції.
  4. Складіть блок-схему алгоритму розв’язування задачі: якщо подарунок не перевищує N гривень, то купити цей подарунок і квіти, в іншому випадку купити тільки подарунок.
  5. Складіть блок-схему для знаходження суми квадратів перших 50 натуральних чисел.



Вправи до  теми «Алгоритми та алгоритмічні структури»
1)      На одній книжкові полиці X книг, а на іншій – 10. Складіть блок-схему алгоритму обчислення кількості книг на двох полицях разом.
2)      Запишіть речення у вигляді умови:
a)      число а додатне;
b)      число х не більше 10;
c)      чи належить точка з координатами (x,y) осі ординат.
3)      Знайдіть значення величини P після виконання команди розгалуження, якщо значення величини а дорівнює:
a)      3
b)      2
c)      1
4)      Підберіть значення величини х, при якому умови: виконуються; не виконуються.
a)      x>=3;
b)      x<=0.
5)      Знайдіть значення величини C після виконання команди розгалуження, якщо значення величини m дорівнює:
a)      8
b)      7
c)      2

6)      Складіть алгоритм визначення типу хімічного розчину за реакцією лакмусового папірця.
7)      Складіть блок-схеми алгоритмів для знаходження значення y:
a)   
b)  
8)      Складіть алгоритм наповнення водою 25-літрової діжки за допомогою 3- літрової банки. Скільки разів треба виконати команди в циклі? Скільки літрів види переллється через край діжки?
9)      Які значення будуть мати змінні X та Y після виконання таки блок-схем:
a)    

б)  

10)  Складіть блок-схеми для обчислення суми:
a)      Знайти суму перших 50 натуральних чисел;
b)      Знайти суму значень натурального ряду чисел від 10-го по 70-е.
c)      Знайдіть суму парних двоцифрових  натуральних чисел.
11)  Є 10-20 деяких предметів. Два гравці по черзі беруть предмети, але не більше половини за один раз. Складіть алгоритм, який описує стратегію виграшу в грі в цьому випадку, коли програє той хто візьме останній предмет.
12) Скласти блок-схему алгоритму Евкліда знаходження найбільшого спільного дільника.

Перш ніж роз'яснити, в чому полягає суть алгоритму Евкліда, ми доведемо одну лему.
Лема. Нехай а і b натуральні  числа і r остача (лишок)  від ділення а на b. Тоді  найбільший спільний дільник чисел а і b  рівний найбільшому спільному  дільникові чисел b і r, тобто 
НСД(а, b) = НСД(b, r).
Доведення. Оскільки r - остача від ділення а на b, то ми можемо написати:
а = bq+r,
де q – деяке ціле число. Нехай с деякий спільний дільник чисел а і b. Так як
r = а – bq,
то r  теж ділиться на c, тобто c є cпільним дільником чисел b і r.
Назад, нехай c' деякий спільний дільник чисел b і r. Тоді число
а = bq + r
теж ділиться на c', тобто c' є cпільним дільником чисел а і b. Таким чином, числа а і b мають такі ж спільні  дільники, що і числа b і r. Це означає, що
НСД(а, b) = НСД(b, r).


Доведена лема і служить основою алгоритму для отримання  пар чисел за допомогою трьох автоматів. 



Для пояснення  алгоритму Евкліда ми розглянемо наступний приклад.

Приклад алгоритму Евкліда. Знайти НСД(645, 381).
Рішення. Розділимо (із залишком) 645 на 381. Ми отримаємо;
645 = 381*1+264.
По доведеній лемі НСД(645, 381) = НСД(381, 264). Значить, треба знайти (381, 264); ми помічаємо, що числа стали трохи менше. Розділимо (із залишком) 381 на 264. Ми отримаємо:
381 = 264*1 + 117.
По лемі НСД (381, 264) = НСД (264, 117). Значить НСД (645, 381) =  НСД (264, 117), отже залишається знайти (264, 117). Ми бачимо, що числа стало ще менше. Розділимо (із залишком) 264 на 117. Ми отримаємо:
264=117*2 + 30.
По лемі НСД (264, 117) = НСД (117,30). Значить НСД (645, 381) = НСД (117, 30), і залишається знайти НСД (117, 30). Розділимо (із залишком) 117 на 30. Ми отримаємо:
117 = 30-3 + 27.
По лемі НСД (117, 30) = НСД (30, 27). Значить НСД (645, 381) = НСД (30, 27). Далі
30 = 27-1+3.
По лемі НСД (30, 27) = НСД (27, 3). Значить НСД (645, 381) = НСД (27, 3). Далі
27=3-9 + 0,
т.   е.   27   ділиться    на   3.    Значить,   найбільший   спільний дільник чисел 27 і 3 рівний 3, тобто (27, 3) = 3. Таким чином, НСД(645, 381) = 3, тобто необхідний найбільший cпільний  дільник знайдений.

Результат пошуку зображень за запитом "блок схема алгоритма евклида"

Результат пошуку зображень за запитом "блок схема алгоритму  евкліда"


Результат пошуку зображень за запитом "блок схема алгоритму  евкліда"