четвер, 20 листопада 2014 р.

Конспекти уроків розроблені згідно програми курсу

«Основи алгоритмізації та програмування мо-вою Паскаль»


Передмова
Конспекти уроків розроблені згідно програми курсу «Основи алгоритмізації та програмування» 8 клас. Містять необхідний об’єм теоретичного матеріалу,  докладно розібрані приклади та завдання для самостійної роботи.  Рівень викладання теоретичного матеріалу та добір задач відповідає рівню базових знань та психологічних особливостей дітей 8 року навчання. Широко використані міжпредметні зв’язки (задачі з математичним, фізичним, економічним змістом), наводяться приклади уривків літературних творів, певним чином пов’язаних з навчальними темами,  розглядається велика кількість цікавих, із «розважальним» змістом задач. Передбачена наявність самостійних робіт, інформаційних диктантів, практичних робіт, тематичних атестацій. Система методичних рекомендацій дає можливість оптимізувати навчальний процес, вносити коригування в залежності від специфіки класу.
Календарне планування
Тема уроку
Дата проведення
1. Основи алгоритмізації  

1
2
Алгоритми, властивості алгоритмів.
Виконавці алгоритмів

3
4
Загальні правила алгоритмічної мови.
Величини. Вказівка присвоювання.

5
6
7
Алгоритми з розгалуженнями.
Команда повторення.
Етапи розв’язування задач.

8
Тематична атестація «Алгоритми»

2. Основні поняття мови Паскаль

9
10
Мова програмування Turbo Pascal 7.0.
Основні поняття мови Паскаль

11
12
Прості типи мови Паскаль
Самостійна робота

13
14
Створення лінійних программ
Розв’язування задач на створення лінійних програм.

15
16
Практична робота №1

17
18
Модуль CRT. Графічний режим роботи.
Елементи комп’ютерної графіки

19
20
Практична робота №2

21
Тематична атестація «Основні поняття мови Паскаль»

3. Організація розгалужень

22
23
Елементи алгебри логіки.
Обчислення значень логічних виразів.

2425
2627
Вказівка розгалуження
Повне розгалуження
Розв’язування задач
Розв’язування задач

28
Практична робота №3

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

303132
Оператор вибору
Розв’язування задач
Розв’язування задач

33
 Практична робота №4

34
Оператор безумовного переходу. Мітки

35
36
Самостійна робота
Розв’язування задач

37
38
Тематична атестація «Розгалуження»

4. Організація циклів

39
40
4142
Вказівка повторення. Організація циклів.
Цикл із пост- і передумовою.
Цикл із параметром
Розв’язування задач

4344
45
Обчислення суми, добутку та кількості.
Розв’язування задач
Розв’язування задач

4647
Методи перебирання варіантів
Розв’язування задач

48
4950
Табулювання функції
Розв’язування задач
Самостійна робота

51
Практична робота №5

52
53
Пошук максимального чи мінімального значення     Розв’язування задач

54
55
5657
58
Вкладені цикли.
Задачі з вкладеними циклами
Розв’язування задач
Розв’язування задач
Розв’язування задач

59
60
Обробка рекурентних послідовностей
Поняття про метод ітерацій. Числа Фібоначчі 

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

6364
Практична робота №6

65
66
Тематична атестація «Цикли»

67
68
Підсумкове заняття

69
70
Резерв часу


1. Основи алгоритмізації
Урок 1. Тема. Алгоритми. Властивості алгоритмів.
„Алгоритм не розкіш, а засіб досягнення мети”
Епіграф до уроку:
                Коль кругом все будет мирно,
                Так сидеть он будет смирно;
                Но лишь чуть со стороны
                Ожидать тебе войны,
                Иль набега силы бранной,
                Иль другой беды незваной,
                Вмиг тогда мой петушок
                Приподымет гребешок,
                Закричит и встрепенется
                И в то место обернется.
                                               А.С.Пушкин
Мета.
            Навчальна:
  • дати поняття про алгоритм, його властивості;
  • навчити розпізнавати алгоритми навколо себе;
  • вміти розрізняти правильно та неправильно сформульовані алгоритми;
  • формувати цілісну уяву про картину всесвіту;
  • формувати науковий світогляд;
  • синтезувати знання, отримані при вивченні різних шкільних предметів.
Розвивальна:
  • розвивати логічне мислення, пізнавальний інтерес;
  • формувати вміння аналізувати, узагальнювати, порівнювати, абстрагуватися, синтезувати знання, отримані при вивченні різних предметів.
Виховна:
  • виховувати прагнення  до отримання нових знань;
  • узагальнювати знання з різних областей життя;
  • виховувати почуття товариськості, взаємовиручки;
  • виховувати комунікативні якості, вміння слухати;
  • виховувати критичне відношення до загальноприйнятих істин;
  • виховувати культуру між особистісних взаємовідносин, акуратність в роботі.
Задачі:
  • Визначити наявність алгоритмів в шкільних предметах.
  • Довести необхідність складання алгоритмів на любому навчальному предметі для кращого розуміння, засвоєння і запам’ятовування матеріалу.
  • Показати значення інформатики для інших наук.
Тип уроку: вивчення нового матеріалу.
Хід уроку.
І. Вступна бесіда.      
Багато хто вважає, що інформатика потрібна тільки для того, щоб навчитися працювати на комп’ютерах. Але цю помилкову думку ми постараємося спростувати на нашому уроці.
Кожна людина щодня зустрічається з безліччю задач від найпростіших і добре відомих до дуже складних. Для багатьох задач існують визначені правила (інструкції, команди), що пояснюють виконавцю, як розв'язувати дану проблему. Ці правила людина може вивчити чи заздалегідь сформулювати сама в процесі розв'язування задачі. Чим точніше описані правила, тим швидше людина опанує ними і буде ефективніше їх застосовувати.У нашому житті ми постійно складаємо опис деякої послідовності дій для досягнення бажаного результату, тому поняття алгоритму не є для нас чимось новим і незвичайним. Так, ранком мама перед твоїм виходом до школи, дає вказівку: "Коли прийдеш зі школи, відразу пообідай і вимий посуд. Після цього підмети підлогу, сходи в магазин і можеш трохи погуляти. Гуляти дозволяю не більше години, а потім відразу за уроки".
Ця інструкція складається з послідовності окремих вказівок, що і визначають твою поведінку після повернення зі школи. Це і є алгоритм.
          Кожний з нас використовує сотні різних алгоритмів. Спробуйте згадати деякі з них (алгоритми виконання арифметичних дій, розв'язування задач, прибирання квартири, миття посуду, готування їжі - рецепти тощо).
Отже, після обговорення кількох прикладів алгоритмів, давайте спробуємо сформулювати визначення, що ж таке алгоритм.
Саме слово алгоритм походить від algorithmi – латинської форми написання імені великого математика ІХ ст. аль-Хорезмі, який сформулював правила виконання арифметичних дій. Спочатку під алгоритмами і розуміли тільки правила виконання чотирьох арифметичних дій над багатоцифровими числами. В подальшому це поняття стали використовувати взагалі для позначення послідовності дій, які приводять до розв’язання задачі.
                                   Алгоритмом називають зрозуміле і точне розпорядження виконавцю про виконання послідовності дій, спрямованих на досягнення зазначеної мети чи на вирішення поставленої задачі.
  В цьому означенні використовується поняття "виконавець". Що це означає? Під виконавцем алгоритму ми розуміємо будь-яку істоту (живу чи неживу), яка спроможна виконати алгоритм. Все залежить від того, якої мети ми намагаємося досягнути. Наприклад: риття ями (виконавці - людина або екскаватор), покупка деяких товарів (один із членів родини), розв'язування математичної задачі (учень або комп'ютер) тощо.
Поняття алгоритму в інформатиці є фундаментальним, тобто таким, котре не визначається через інші ще більш прості поняття (для порівняння у фізиці - поняття простору і часу, у математиці - точка).
Будь-який виконавець (і комп'ютер зокрема) може виконувати тільки обмежений набір операцій (екскаватор копає яму, вчитель вчить, комп'ютер виконує арифметичні дії). Алгоритмічне мислення допомагає чітко побачити кроки, що ведуть до мети, замітити всі перешкоди і уміло їх обійти.
  Тому алгоритми повинні мати певні властивості,  разом з тим, не кожна інструкція або послідовність дій може називатися алгоритмом.
Отже, сформулюємо основні властивості алгоритму.
1. Зрозумілість. Щоб виконавець міг досягти поставленої перед ним мети, використовуючи даний алгоритм, він повинен уміти виконувати кожну його вказівку, тобто розуміти кожну з команд, що входять до алгоритму.
Наприклад: Мамі потрібно купити в магазині їжу. Виконавцем цього алгоритму може бути хтось із родини: батько, син, бабуся, маленька дочка тощо. Зрозуміло, що для тата достатньо сказати, які купити продукти, а далі деталізувати алгоритм не потрібно. Дорослому сину-підлітку необхідно детальніше пояснити в яких магазинах можна придбати потрібний товар, що можна купити замість відсутнього товару і таке інше. Маленькій дочці алгоритм необхідно деталізувати ще більше: де взяти сумку, щоб принести товар, яку решту грошей необхідно повернути з магазину, як дійти до магазину і як там поводитись (якщо дитина вперше йде за покупками).
Подібних прикладів можна навести безліч і запропонувати дітям самостійно підібрати ситуацію, в якій в залежності від виконавця алгоритм буде набувати все більшої деталізації. Висновок з цього діти можуть зробити самостійно: зрозумілість - це властивість алгоритму, що полягає в тім, що кожен алгоритм повинен бути написаний у командах, зрозумілих даному виконавцю.
2. Визначеність (однозначність). Зрозумілий алгоритм все ж таки не повинен містити вказівки, зміст яких може сприйматися неоднозначно. Наприклад, вказівки "почисти картоплю", "посоли за смаком", "прибери в квартирі" є неоднозначними, тому що в різних випадках можуть призвести до різних результатів. Крім того, в алгоритмах неприпустимі такі ситуації, коли після виконання чергового розпорядження алгоритму виконавцю не зрозуміло, що потрібно робити на наступному кроці. Наприклад: вас послали за яким-небудь товаром у магазин, та ще попередили "без (хліба, цукру і таке інше) не повертайся", а що робити, якщо товар відсутній?
Отож, точність - це властивість алгоритму, що полягає в тім, що алгоритм повинен бути однозначно витлумачений і на кожному кроці виконавець повинен знати, що йому робити далі.
3. Дискретність. Як було згадано вище, алгоритм задає повну послідовність дій, які необхідно виконувати для розв'язання задачі. При цьому, для виконання цих дій їх розбивають у визначеній послідовності на прості кроки. Виконати дії наступного розпорядження можна лише виконавши дії попереднього. Ця розбивка алгоритму на окремі елементарні дії (команди), що легко виконуються даним виконавцем, і називається дискретністю.
4. Масовість. Дуже важливо, щоб складений алгоритм забезпечував розв'язання не однієї окремої задачі, а міг виконувати розв'язання широкого класу задач даного типу. Наприклад, алгоритм покупки якого-небудь товару буде завжди однаковий, незалежно від товару, що купується. Або алгоритм прання не залежить від білизни, що переться, і таке інше. Отож, під масовістю алгоритму мається на увазі можливість його застосування для вирішення великої кількості однотипних завдань.
5. Результативність. Взагалі кажучи, очевидно, що виконання будь-якого алгоритму повинне завершуватися одержанням кінцевих результатів. Тобто ситуації, що в деяких випадках можуть призвести до так званого "зациклення", повинні бути виключені при написанні алгоритму. Наприклад, розглянемо таку ситуацію: роботу дано завдання залишити кімнату (замкнутий простір), не виконуючи руйнівних дій. У цьому випадку, якщо роботу не дати вказівки відкрити двері (що, можливо, закриті), то спроби залишити приміщення можуть бути безуспішними.
6. Ефективність - кожний крок алгоритму повинен бути   виконаний точно за скінчений проміжок часу.
  Примітка: У процесі та по закінченні викладання матеріалу дітям пропонується навести приклади інструкцій, що не відповідають визначенню алгоритму чи не володіють властивостями алгоритму.
Для роботи багатьох програм необхідно задавати початкові значення. Ці значення передаються в алгоритм за допомогою аргументів.
Аргументи - це величини, значення яких необхідно задати для виконання алгоритму. Правда, деколи зустрічаються алгоритми, що не вимагають ніяких початкових значень для свого виконання. Пізніше буде нагода познайомитися з такими алгоритмами. Однак, немає жодного алгоритму, що не дає ніякого результату. Дійсно, який же зміст у такому алгоритмові? Прикладом різноманітності результатів роботи програм є ігрові комп'ю­терні програми. Одержувана ними під час роботи закодована інформація певним чином перетворюється у графічні та звукові образи.
  Результати - це величини, значення яких одержуються                                внаслідок виконання алгоритму.
При складанні багатьох алгоритмів виникає необхідність окрім аргументів та результатів використовувати ще додаткові величини. Введення в алгоритм таких величин залежить від самого автора алгоритму.
 Проміжні величини — це величини, які додатково вводяться в ході розробки алгоритму.
Тепер залишається з'ясувати, яким чином можна подати алгоритм виконавцю. Існує кілька методів запису алгоритмів, вибір яких залежить від виконавця та того, хто його задає.
Першій спосіб - це словесний опис алгоритму. Сьогодні на уроці розібрано вже кілька алгоритмів, і всі вони подавалися виконавцю за допомогою словесного опису.
Другий спосіб - це подача алгоритму у вигляді таблиць, формул, схем, малюнків тощо. Наприклад, всіх вас вчили в дитячому садочку правилам поведінки на дорозі. І найкраще діти, вочевидь, сприймають алгоритм, що поданий у вигляді схематичних малюнків. Дивлячись на них, дитина, а потім і доросла людина, відпрацьовує ту лінію поведінки, що їй пропонується. Аналогічно можна навести приклади алгоритмів, що записані у вигляді умовних позначок на купленому товарі, щодо його користування (заварювання чаю, прання білизни тощо). В математиці наявність формул дозволяє розв'язати задачу, навіть "не використовуючи слів".
Третій спосіб - запис алгоритмів за допомогоюблок-схеми. Цей метод був запропонований в інформатиці для наочності представлення алгоритму за допомогою набору спеціальних блоків. Основні з цих блоків наступні:
               Четвертий спосіб - навчальні алгоритмічні мови (псевдокоди). Ці мови мають жорстко визначений синтаксис і вже максимально наближені до машинної мови (мови програмування). Але створені вони з навчальною метою, тому мають зрозумілий для людей вигляд. Таких псевдокодів зараз існує велика кількість, починаючи з графічних середовищ "Алгоритміка", "Роботландія", "Лого-світи", "Черепашка" тощо і закінчуючи текстовими "національними" реалізаціями алгоритмічних мов, подібних до Паскаля. Ці псевдокоди мають програмну реалізацію і дуже широко застосовуються на етапі навчання основам програмування.
П'ятий спосіб максимально наближений до комп'ютера - це мови програмування. Справа в тому, що найчастіше в практиці виконавцем створеного людиною алгоритму являється машина і тому він повинен бути написаний мовою, зрозумілою для комп'ютера, тобто мовою програмування.
Приклади алгоритмів
  1. Знайти найбільший спільний дільник двох натуральних чисел m і n (алгоритм Евкліда). Складемо алгоритм розв’язання цієї задачі, який базується на тій властивості, що якщо m>n, то найбільший спільний дільник чисел m,n такий самий, як і чисел m-n, n.
Алгоримт буде таким:
  1. якщо числа рівні, то взяти любе з них за відповідь, в іншому випадку продовжити виконання алгоритму;
  2. визначити більше із чисел;
  3. замінити більше число різницею більшого і меншого чисел;
  4. почати алгоритм спочатку.
  1. Алгоритм «відгадування» задуманого числа. Нехай хто-небудь задумає довільне натуральне число. Йому пропонується провести з цим числом слідуючі дії і потім повідомити результат:
  1. помножити задумане число на 5;
  2. додати 8;
  3. суму помножити на 2.
Необхідно за результатом «відгадати» задумане число.
Розв’язання даної задачі зводиться до розв’язання рівняння (х∙5+8)∙2=a, де х – невідоме задумане число, а – отриманий результат.
«Відгадування» х можна доручити виконавцю, зовсім незнайомому із змістом задачі. Для цього достатньо повідомити йому слідуючий алгоритм:
  1. відняти від результата 16;
  2. в отриманій різниці відкинути крайню праву цифру, отримане число і буде шуканим.
Виконуючи алгоритм, виконавець може не вникати в зміст того, що він робить, і разом з тим отримати потрібний результат. У цьому випадку говорять, що виконавець діє формально.  
IVПідсумок уроку.
Домашнє завдання:
  • прочитати сторінки  запропонованого підручника;
  • вивчити означення, що прочитані на лекції (що таке алгоритм, властивості алгоритму, способи подачі алгоритму);
  • придумати будь-який алгоритм на побутову тему (кулінарний, прибирання кімнати, виконання уроків тощо);
  • продумати варіанти, коли в запропонованих алгоритмах можуть не виконуватися властивості алгоритмів.
  • записати алгоритм знаходження середини відрізка за допомогою циркуля  лінійки.
  • скільки разів буде виконуватися крок 3 алгоритма Евкліда для m=100, n=18? 

Урок 2. Виконавці алгоритмів
Мета уроку: Дати поняття про виконавця, характеристик виконавця, моделювання та створення інформаційних моделей об'єктів; навчити: визначати цілі, яких може досягти виконавець, складати алгоритми розв’язування задач для визначеного виконавця.
Тип уроку Лекційний.
Хід уроку.
І. Актуалізація опорних знань учнів.
Фронтальне опитування
  1.  Яке походження терміна «алгоритм»?
  2.  Що ми розуміємо під поняттям «алгоритм»?
  3.  Що таке допустимі команди виконавця?
  4.  Які є способи опису алгоритмів?
  5.  Які властивості повинен мати алгоритм?
  6.  Що означає скінченність (дискретність) алгоритму?
  7.  Що таке формальність алгоритму?
  8.  Що означає масовість алгоритму?
ІІ. Викладання нового навчального матеріалу.
1. Виконавець алгоритму
Виконавцем алгоритму може бути людина, машина, комп’ютер, система людина-машина, верстат-автомат, робот тощо, яких «навчено» виконувати вказівки алгоритму.
Характеристики виконавця
Середовище – «місце проживання» виконавця.
Припустимі дії – обмежений набір дій, що вміє виконувати даний виконавець. Описати виконавця – значить вказати його припустимі дії. Досяжні цілі – результати, що виконавець може одержати за допомогою своїх припустимих дій.
Система команд виконавця – суворо заданий список вказівок, як виконати визначені дії. Виконавця можна представити у виді пристрою з кнопками, де кожна кнопка відповідає одній команді. Натискання кнопки означає виклик команди.
Відмова – виникає при виклику команди в неприпустимому для даної команди стані середовища.
   При побудові алгоритму часто виникає необхідність пояснити виконавцю деякі складні дії, якщо їх виконання не входить в систему команд виконавця. Наприклад, перший раз даючи дитині завдання пришити ґудзик до плаття, їй треба пояснити, як необхідно підбирати нитки для шиття, як вдягати нитку в голку, як тримати голку та ґудзик при роботі, яка різниця між пришиванням ґудзика до тоненької сорочки та товстої куртки (в другому випадку ґудзик робиться на "ніжці").  В подальшому такі пояснення будуть вже зайві, бо алгоритм "пришивання ґудзика" стає вже командою в системі команд виконавця "дитина".
Взагалі кажучи кожна дія людини (якщо вона її може виконати) може вважатися командою її "системи команд", хоча колись, на етапі навчання, учитель або хтось інший ретельно пояснював, яку треба виконати послідовність дій, щоб досягти поставленої мети.
Узагальнюючи сказане, можна сказати, що кінець кінцем кожну задачу можна вважати окремою командою виконавцю, якщо його навчено виконувати поставлене завдання. Якщо ж виконавець не знає, як розв'язувати запропоновану задачу, виникає потреба розкласти її на такі підзадачі, що являються "посильними" для виконання, тобто входять до системи команд виконавця. Продовжуючи цей процес, остаточно отримують алгоритм, що складається з простих команд, зрозумілих виконавцю, або остаточно переконуються, що дана задача непосильна для вибраного виконавця, тому що в його системі команд не існує необхідних для цього команд. Наприклад, як би ми не деталізували алгоритм побудови багатоповерхової будівлі для дитини, задача кінець кінцем являється для неї непосильною.
Примітка: на даному етапі уроку можна дати дітям завдання придумати задачу, яка б була непосильною для вибраного виконавця (виконавцем може бути людина, комп'ютер, якийсь пристрій тощо). Наприклад, спробуйте створити алгоритм виконання ремонту кімнати, розрахований на виконавця "екскаватор".
Запропонований підхід до конструювання алгоритмів називається методом покрокової деталізації зверху вниз. Вочевидь, що при такому підході кожна операція остаточно буде подана у вигляді лише одного з трьох типів базових структур алгоритмів - лінійної (в літературі часто ця структура називається слідування), розгалуження або повторення (циклу). Степінь деталізації алгоритму при цьому сильно залежить від того, на якого виконавця його орієнтовано.
Досить складну конструкторську задачу неможливо розв'язати без поступового заглиблення в деталі. Подумайте, наприклад, як розробляється конструкція сучасного теплохода, автомобіля або літака. (Можна дати дітям можливість самостійно це продумати).
Розглянутий принцип конструювання алгоритмів не залежить від конкретних особливостей поставленої задачі та вибору виконавця. Проте набір команд системи команд вибраного виконавця суттєво впливає на ступінь деталізації алгоритму та, кінець кінцем, на його структуру.
Візьмемо, наприклад, простий алгоритм "переходу через вулицю". Взагалі для кожної дитини можна вважати це командою, що входить до її "системи команд". Але кожен пам'ятає, як в дитинстві батьки та вихователі неодноразово повторювали: якщо в місті, де необхідно перейти вулицю, є підземний перехід, скористуйся ним, якщо немає, відшукай місце, де є світлофор, і перейди вулицю, користуючись правилами; якщо немає ні підземного переходу, ні світлофора... (далі діти самостійно продовжать це алгоритм). Однак, навіть в цьому алгоритмі є необхідність дещо деталізувати. Наприклад, що значить "перейди вулицю, користуючись правилами", при наявності світлофора? А якщо алгоритм складається для зовсім маленької дитини, то що таке світлофор і як його шукати? А якщо виконавець взагалі прибулець з інших світів? Що таке "зелений", "червоний", "жовтий"? Що таке підземний перехід? Перелік питань можна доповнити нескінченою послідовністю непорозумінь.
Алгоритми, що складаються для розв'язування окремих підзадач основної задачі, називаються допоміжними.
Вони створюються при поділі складної задачі на прості або при необхідності багаторазового використання одного ж того набору дій в одному або різних алгоритмах. Допоміжний алгоритм повинен мати тільки один вхід та один вихід, причому того, хто користується ним, зовсім не цікавить, як реалізований цей алгоритм. Головне, щоб всі команди, що входять до складу допоміжного алгоритму входили до системи команд обраного виконавця. Зверніть увагу ще на те, що в реальному житті допоміжні алгоритми можуть виконувати, навіть, зовсім інші виконавці. Наприклад, якщо батьки вдома вирішили зробити ремонт, це не значить, що вони самостійно повинні зробити собі шпалери та клей. Алгоритми виробництва матеріалів існують і їх хтось виконує, а ми тільки користуємось результатами їх роботи.
Таким чином, можна вважати допоміжний алгоритм своєрідним "чорним ящиком", на вхід якого подаються деякі вхідні дані, а на виході ми отримуємо очікуваний результат. Головне чітко домовитись про правила оформлення вхідних даних та вигляд результату. Невиконання домовленостей може привести до збою у виконанні допоміжного алгоритму або до отримання неочікуваного результату.
Описаний метод послідовної деталізації лежить в основі технології структурного програмування і широко застосовується при використанні таких мов програмування, як Паскаль, С, С++ та інших.
При описуванні програми для комп'ютера мовами високого рівня допоміжні алгоритми реалізовуються у вигляді підпрограм. Правила опису, звернення до них та повернення в точку виклику визначаються конкретною мовою програмування. Для зручності часто використовувані підпрограми можна об'єднувати в бібліотечні модулі і при необхідності підключати їх в свої програми.
ІІІ. Закріплення теоретичного матеріалу.
Креслення різноманітних ліній із записом кроків в програмі «Кенгуру» («Сходинки») та «Лого-Миры»
IV. Підсумок уроку.
Домашнє завдання:
  • вивчити означення, що прочитані на лекції (що таке допоміжний алгоритм, в чому сутність метода покрокової деталізації та проектування зверху вниз);
  • придумати будь-який алгоритм, в якому в залежності від виконавця необхідна різний степінь деталізації;
  • продумати приклади алгоритмів, для яких будь-який степінь деталізації не дозволить виконати їх заданим виконавцем.
  • записати алгоритм, за допомогою якого можна перейти вулицю у місці переходу. На яких виконавців розрахований цей алгоритм?

Урок № 3 Загальні правила алгоритмічної мови
Мета уроку: ознайомити учнів із словником алгоритмічної мови; службовими словами, правилами послідовного запису команд в алгоритмі; визначенням лінійного алгоритму; навчити складати та виконувати прості алгоритми, однозначно формулювати вказівки виконання певних дій та записувати їх за правилами навчальної алгоритмічної мови.
Тип уроку: вивчення нового навчального матеріалу
Хід уроку.
І. Актуалізація опорних знань учнів.
Інформаційний диктант
1. Що ми називаємо алгоритмом? Як виник термін «алгоритм»?
2. Наведіть власний приклад алгоритму.
3. Запишіть основні властивості алгоритмів.
4. Що розуміється під формальним виконанням алгоритму?
5. Хто або що може бути виконавцем алгоритму?
6. Які характеристики виконавця вам відомі?
ІІ. Викладання теоретичного матеріалу.
1. Поняття про навчальну алгоритмічну мову.
 Алгоритмічна мова – це система позначень і правил для однакового і точного запису алгоритмів і їх виконання. Алгоритмічна мова визначає способи запису тексту алгоритму (синтаксис алгоритму) і правила інтерпретації записаного тексту виконавцем (семантика мови). З одного боку, алгоритмічна мова близька до звичайної, з іншого – включає в себе і математичну символіку: числа, позначення величин і функцій, знаки операцій. Правила алгоритмічної мови лежать в основі мов програмування для ПК. Тому вивчення алгоритмічної мови допоможе вам швидше опанувати мову програмування.
2. Алфавіт мови
Алфавіт мови — це символи, які дозволено до використання в мові. В навчальній алгоритмічній мові використовуються:
  • 33 літери українського алфавіту;
  • 26 латинських літер (від А до 2);
  • 10 арабських цифр;
  • 28 спеціальних знаків (?,   !,  #,  $,%тощо).
Звичайно ж, у конкретних мовах програмування допускається дещо інший набір символів (наприклад, алфавіт мови Паскаль не містить літер українського алфавіту). Кожний символ алфавіту мови програмування має свій числовий код. Яким кодам відповідають символи, наведено в таблицях кодування символів.
3. Синтаксис мови
Синтаксис мови — це правила написання команд, службових слів,розділових знаків.
Розділовими знаками можуть бути такі символи:
1) ; —розділовий знак між командами;
2) . — розділовий знак між цілою й дробовою частинами числа;
(«,») —використовуються у записі виразів підпрограм;
[«, «] — для запису індексованих змінних;
5), — розділовий знак між елементами списку або індексами масиву;
6) : — є елементом синтаксису деяких команд, а також використовується для задання розмірів масиву. У мові програмування Паскаль для задання розмірів масиву використовується дві крапки, розміщені поруч...
4. Елементи мови
Елементами мови є:
Символи — основні неподільні знаки, за допомогою яких записуються тексти.
Службові слова — скорочення деяких слів, за допомогою яких записуються алгоритми. Наприклад: АЛГ,  АРГ,   РЕЗ,  ПОЧ,  КІН та ін.
Команди — дії алгоритму. Вони бувають прості й складені.
5. Об'єкти мови
Об'єктами мови є:
  1. Константи, змінні.
  2. Допоміжні алгоритми (підпрограми — функції або процедури).
Константи — це постійні величини, які визначаються на початку програми та не зміню­ють свого значення в процесі розв'язання завдання.
Числова константа — це деяке число. Числа можуть бути цілими або дробовими й пода­ватися у звичайній або експонентній формі.
У звичайній формі запису дробового числа ціла частина від дробової відділяється крапкою, а не комою. Така форма запису числа називається записом з фіксованою крапкою, на­приклад:
2,       2.4,       -7.12,       0.3.
Для запису надто великих або надто малих чисел зручніше застосовувати експонентну форму запису. її називають записом із плаваючою крапкою. Вона складається з мантиси (можливо зі знаком), літериЕ десяткового порядку (цілого числа, можливо зі знаком), наприклад:
2.1Е-5,   ІЕ6,   1Е-9
Текстова константа — це будь-яка послідовність символів, узята в лапки «"» або апострофи « '» (у мові Паскаль можливий тільки останній варіант)
Усередині текстової константи можуть бути й лапки, але тоді їх також треба взяти в лапки. Приклади текстових констант:
"мама",
"1234",
"Корабель  ""Ластівка""",
"Справа *306",
"Значення виразу =".
Тому надалі ми подаватимемо текстові константи в лапках або апострофах.
Змінні — це величини, які можуть змінювати своє значення в процесі розв'язування зав­дання.Змінна та комірка в програмуванні — поняття тотожні, оскільки кожній змінній у пам'яті комп'ютера виділяється місце, яке називається коміркою.
Змінні називаються ідентифікаторами. Ім'я змінної має обов'язково починатися на літе­ру, а далі може йти послідовність літер або цифр та знаків підкреслення.
Приклади ідентифікаторів змінних:
 а,  аі, в2а,  сума (у Паскалі україномовні ідентифікатори заборонені).
Імена змінним дає автор алгоритму. Ім'я змінної бажано добирати таким чином, щоб воно за змістом підкреслювало її призначення.
Не можна давати змінним імена, що збігаються з іменами службових слів, зарезервованих у цій мові програмування.
Кожна змінна повинна мати певне значення. Якщо в процесі виконання алгоритму змінна величина не одержала конкретного значення, то її значення буде непередбаченим.
Алгоритм, який використовується у складі іншого алгоритму, називають допоміжним алгоритмомстосовно алгоритму, в якому він використовується.
Вираз, «алгоритм, який використовується у складі іншого алгоритму», необхідно розуміти так:
  • допоміжний алгоритм може бути у складі основного алгоритму;
  • допоміжний алгоритм може подаватися у вигляді окремого файла на диску, а в основному алгоритмі встановлюється з ним зв'язок.
У будь-якій мові програмування є фіксований набір стандартних функцій. Однак за необхідності його можна розширювати, створюючи власні функції користувача. За допомогою об'єктів мови створюються вирази.
Вираз — це сукупність об'єктів мови, пов'язана деякими операціями для обчислення одного значення певного типу.
Вирази бувають:
  • арифметичні;
  • алгебраїчні;
  • логічні;
  • літерні (рядкові, текстові).
Арифметичні вирази — це числа, з'єднані знаками арифметичних операцій (можливо, із застосуванням дужок).
Алгебраїчні вирази — це числа, літери, функції, з'єднані знаками арифметичних операцій (можливо, із застосуванням дужок).
Логічні вирази — це умови. Умови бувають прості й складені. Прості умови складаються з одного відношення між величинами.
Складені умови складаються з кількох простих умов, з'єднаних між собою логічними операціями:
І (and— кон'юнкція (логічне множення);
Або (or)— диз'юнкція (логічне додавання);
Не (not)— заперечення.

Приклади складених умов:
Х>2 і Х<4, а<З АБО а<5,  НЕа = 0.
Мовою Паскаль відповідно умови пишуться так:
(х > 2)   and   (х <  4),  (а <  3) or (a<5), not(a) = 0 Значенням логічного виразу є «Істина» або«Хибність».
Літерні вирази — це текстові константи, змінні, функції, що опрацьовують текст, з'єднані знаком плюс «+».3нак плюс означає операцію склеювання (конкатенацію). Значен­ням літерного виразу єтекстовий рядок.
Структура алгоритму:

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

Приклад 1. Скласти алгоритм
Приклад 2.
знаходження середнього ари-
алг створення програм
фметичного трьох чисел.
поч
алг середнє арифметичне
скласти алгоритм;
арі а,Ь,с
написати програму;
Рез хг
відлагоди і и програму на ПК;
поч х
отримані рішення задачі;
к:=а+Ь+с;
проаналпуішти     правильність
хг:=я/3
результатів
кін
кін
Приклад 1. Записати алгоритмічною мовою алгоритм знаходження середини відрізка, якщо в систему виконавця входять звичні дії із циркулем і лінійкою.
алг розподіл відрізка АВ навпіл
поч
поставити ніжку циркуля в точку А, встановити розчин циркуля рівним довжині відрізка АВ, провести коло, поставити ніжку циркуля в точку В, провести коло, через точки перетину кіл провести пряму, відзначити точку перетинання цієї прямої з відрізком АВ
 кін
ІІІ. Закріплення нового матеріалу.
Запишіть алгоритми для розвязування задач:
  1. деяке задане число х збільшити у 16 разів, використовуючи лише операції множення на 2 і додавання;
  2. деяке задане число х зменшити на 8, використовуючи лише операцію віднімання 1 і 3;
  3. складіть алгоритм обчислення площі трапеції;
  4. запишіть алгоритм обчислення шляху, який долає автомобіль зі швидкістю v за  час t.
  5. на інший берег річки треба перевезти човном вовка, козу та капусту, виконуючи умову: не можна залишати разом у човні чи на березі вовка і козу, або козу і капусту (за один раз можна перевозити не більше одного об’єкта).
IVПідсумок уроку.
Домашнє завдання:
  • вивчити означення, що прочитані на лекції ;
  • записати алгоритм обчислення площі прямокутного трикутника;
  • задано два кути трикутника, складіть алгоритм, який визначає величину третього кута трикутника;
  • задано діаметр кола, складіть алгоритм, який визначає довжину кола та площу круга.
Урок 4. Величини. Вказівка присвоювання
Мета уроку: ввести поняття перетворення інформації при розв'язуванні задач, основні характеристики величин, правила виконання операції присвоювання; навчити визначати необхідну для розв'я­зування задачі вхідну інформацію, обчислювати поточне значення величини та остаточний результат, розрізняти типи величин.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опрних знань учнів.
Самостійна робота.
І варіант.
Скласти алгоритм, який визначає периметр прямокутника, якщо задано його площу і ширину.
ІІ варіант.
Скласти алгоритм, який визначає периметр прямокутника, якщо задано його площу і довжину.
ІІ. Викладання нового теоретичного матеріалу.
1. Поняття величини.
Величина - це об'єкт, який має стале або змінне значення.
Величини діляться на змінні й сталі. Сталою називається величина, значення якої не змінюється в процесі виконання алгоритму, а залишається тим самим, зазначеним у тексті алгоритму (наприклад, 15; 2,4; 3,14 і т.д.). Змінною називається величина, значення якої змінюється в процесі виконання алгоритму.
При написанні алгоритму для змінних величин вводяться позначення аналогічно позначенням змінних у курсі алгебри. Таке позначення змінної величини в алгоритмічній мові називається ім'ямвеличини.
При виконанні алгоритму в кожний момент часу величина звичайно має деяке значення. Воно називається поточним значенням. У процесі виконання алгоритму величина може не одержати конкретного значення. Така величина називається невизначеною.
У шкільному курсі математики й фізики найчастіше зустрічаються числові величини, значеннями яких є натуральні, цілі, дійсні числа. Однак в алгоритмах настільки ж часто зустрічаються й нечислові величини: слова, таблиці, списки, тексти, графіки, геометричні фігури й т.д. У курсі математики й фізики величини найчастіше позначаються однією буквою латинського або грецького алфавіту. Оскільки при застосуванні ПК і при записі алгоритмів і програм розмаїтість величин дуже велика, в алгоритмічній мові прийнято використовувати як імена величин довільні букви, буквосполучення й будь-які слова, що пояснюють зміст і призначення величини в алгоритмі.
Величини, значеннями яких є слова або текст, називаються літерними.
Для того щоб виділити текст, що є значенням літерної величини, значення літерних величин беруться в лапки наприклад „немає розв’язку".
Як ми бачимо, величини можуть мати різний тип. Вони можуть бути натуральними, цілими, дійсними, літерними, відповідно до того, що може бути їхнім значенням. Скорочено типи змінних позначаються словами нат (натуральний),  цілий   (цілий), дійсн   (дійсний), літ   (літерний)
Основні характеристики величин:
Ім'я (ідентифікатор)
Тип
Вигляд
Значення
Правила:
-   тільки латинські літери, цифри,
-   спершу літера, потім цифра,
-   не застосовувати службових слів,
-   не припустимі розділові знаки, пробіл
Ціла.
дійснК.
літН.

Змінна Конс­танта
А:=А+5 Вираз - опис пра­вила обчислення деякої величини. Лінійна форма запису!
2. Оператор присвоювання
При програмуванні більше складних дій виникає задача обчислення чого-небудь без виведення на екран проміжних результатів. Наприклад, у виразі (а-2b)2 +7а – 2b спочатку зручно обчислити значення а – 2bзберегти його, а потім, використовуючи отримане число, знайти кінцевий результат. У цьому випадку не обійтися без спеціального оператора присвоювання, записуваного за допомогою двох символів:
змінна := вираз;
Працює оператор присвоювання так — спочатку обчислюється значення арифметичного виразушляхом підстановки всіх вхідних у нього змінних; результат записується в змінну. Ліворуч може перебувати тільки ім'я змінної, але в жодному разі не вираз. Наприклад:
а := 2  + 7;
у результаті одержимо значення а =9
с := а  - 4;
с  дорівнює  5
с := с + 3;
значення с збільшується на 3  і стає рівним 8
с +  1   : = 2  -  а;      
невірно, тому що ліворуч від знака присвоювання стоїть не змінна, а вираз!
Програмісти - початківці іноді плутають оператор присвоювання й математичний символ рівності, оскільки їхні позначення схожі один на одного. Це різні речі! Математик нас не зрозуміє, якщо ми напишемо  с = с + 3, оскільки цей запис рівносильний неправильній тотожності 0 = 3. Двійка в щоденнику за такий вираз гарантована! Однак програміст порахує вираз виду с  := с + 3 нормальним, тому що, з його погляду, це не відношення рівності, а послідовність дій, що складається з обчислення виразу в правій частині оператора присвоювання і запису отриманого результату у відповідну  комірку  пам'яті   замість  старого  значення до змінної с. У даному прикладі якщо до виконання оператора с := с + 3 змінна з мала значення 5, те після його виконання вона буде мати значення 8. 
змінна:= константа
К:=7.5; А:='слово'
змінна:= змінна
С:=В; В:=А; А:=С; (обмін значеннями)
змінна:= вираз
А:=5*В+С;
3. ЗАГОЛОВОК АЛГОРИТМУ
Запис усякого алгоритму починається із заголовка. От приклад заголовка алгоритму знаходження остачі від ділення двох натуральних чисел:
алг остача від ділення (нат ділене, нат дільник, нат остача)
арг ділене, дільник
рез остача
У цьому прикладі остача від ділення — назва алгоритму, ділене, дільник, і остача — імена величин. Перед кожним ім'ям величини зазначений її тип. Вихідними даними для алгоритму знаходження остачі від ділення двох натуральних чисел є величини ділене, дільник типу нат, а в результаті його виконання величина остача здобуває значення, рівне остачі ділення значень величин ділене йдільник. Величини, які є вихідними даними для алгоритму, називаються аргументами. Їхній список міститься після службового слова арг (аргумент). Результати алгоритму (у даному прикладі — величина остача) перераховуються після службового слова резvльтат).
Загальний вигляд заголовка алгоритму такий:
алг назва алгоритму (список величин із вказівкою типів)
арг імена аргументів
рез  імена результатів
Імена  аргументів  і  результатів  алгоритму  перераховуються через кому.
В процесі розв’язування задачі спочатку необхідно визначитися з набіром даних, необхідних для розв’язання задачі, які називаються вхідна інформація. Саме розв’язання – це обробка інформації – тобто процес перетворення вхідної інформації у результат.
Приклад 6.1. Заголовок алгоритму Евклида:
алг знаходження найбільшого спільного дільника  (НСД)   (нат М, N, нат НСД)
арг М, N
рез НСД
ІІІ. Формування практичних умінь та навичок.
1.   Яка вхідна інформація потрібна для таких задач:
а)   знайти середнє арифметичне значення трьох чисел;
б) змінити знак числа на протилежний;
в)   знайти цілу частину числа;
г)   знайти  площу та периметр прямокутника;
д)   перекласти слово на англійську мову.
2.   Вкажіть тип величини, якщо її значення дорівнює:
а) 25; б) 3.5; в)'число'.
3.   Визначить тип даних для величин:
а) маса людини в кг; б) кількість учнів у класі; в) назва книги
4.   Чому дорівнює значення Y після виконання  послідовності присвоювань:
а) х:=5;у:=1; у:=х;
б) у:=5; х:=8; у:=х;
в) у:=5; х:=8; у:=у*х;
г) х:=5; у:=5*х;
д) у:=1;а:=5-у; у:=у+2*а.
IV Тестові завдання
1.           Вкажіть тип величини, якщо її значення дорівнює:
а) 25; б) 36.6; в) 'слово'.
2.    З наведених значень виберіть припустимі для величин: а) цілого типу; б) дійсного типу; в) літерного типу:
-5; 3.7; 38; 'три'; 20.2; '23'; 14.
3.    Визначите тип для величин:
а) вага людини; б) кількість учнів у класі; в) назва дня тижня.
4.    Для величини КІЛЬКІСТЬ СТОРІНОК У КНИЗІ виберіть припустиме
значення:
-46; 'дев'яносто'; 175; 65,1.
  1. Наведіть кілька припустимих значень для величин: а) назва породи дерева; б) висота будинку; в) вага людини.
  2. Визначте, дана величина є постійною чи змінною: а) кількість днів у тижні; б) назва природного супутника Землі; в) кількість днів у січні місяці; г) кількість днів у місяці.
  3. Змінні х, у, z мають відповідно тип ціл, дійсн, літ. Виберіть запис із припустимими значеннями для х, у, z ( з дотриманням порядку слідування):
а)              15.3; 6; 'п'ять';
б)              38; 26.04; 'сім';
в)              'так'; 18; 10.3.
  1. Наведіть приблизний припустимий інтервал значень для величин: а) кількість днів у місяці; б) швидкість автомобіля.
  2. Випишіть номера команд, у записі яких допущені помилки:
х:=а+b                                     у:='ні'                      2*а:=b+1
2В:=9                                      a1:=7-d                   c:=c+1
10. Запишіть розпорядження у видгляі команди присвоювання:
а) збільшити значення А на одиницю;
б) V привласнити значення суми величин К і N.
11. Знайдіть значення змінної А після виконання команди присвоювання: А:=(В+3)*2; якщо початкове значення змінної В дорівнює: а) 2; б) 1.5.
12. Знайдіть значення змінної c після виконання серії команд:
а:=8; b:=a*4; c:=b-28.
VПідсумок уроку.
Домашнє завдання:
  • вивчити означення, що прочитані на лекції;
  • записати алгоритм одержання числа 512 із числа 2;
  • записати у вигляді схеми алгоритму послідовність виконання дій при обчисленні таких виразів:
  1. (х + у)2-х/у+10;
  2. х-у/(а+2);
  3. (а+в)/(а-в)/а*в.

Урок 5 Тема.   Алгоритми з розгалуженнями
Мета: ознайомити учнів із синтаксисом  та семантикою вказівки розгалуження, повною та скороченою  формами вказівки розгалуження; навчити  записувати умову у вигляді відношення; перевіряти істинність умови; виконувати вказівку розгалуження; підбирати тестові значення для перевірки вказівки розгалуження; складати та виконувати алгоритми з розгалуженнями.
Тип уроку: комбінований.
Хід уроку.
І. Актуалізація опорних знань учнів (Бесіда з елементами мотивації навчання)
- Давайте пригадаємо, які існують форми запису алгоритмів.
-Які позначення використовуються для запису алгоритму у вигляді блок-схеми?
-Як записати у вигляді блок-схеми лінійний алгоритм?
-На вашу думку, чи достатньо знати тільки лінійну алгоритмічну структуру, щоб розв’язувати різноманітні задачі?
-Складіть алгоритм переходу вулиці, де встановлено світлофор.
-Зверніть увагу, що в цьому прикладі вам треба обрати дію в залежності від кольора світлофора, тобто в залежності від виконання певної умови, виконується одна, або інша послідовність дій.
Уявім собі…
 Англія, Лондон, Бейкер-Стрит, будинок знаменитого детектива Шерлока Холмса. Увійдемо з дозволу хазяїна, присядемо біля каміна й послухаємо його діалог з доктором Ватсоном в оповіданні Артура Конан-Дойля «Строката стрічка»:
«....Так що ж ви про все це думаєте, Ватсон? - запитав Шерлок Холмс, відкидаючись на спинку крісла.
- По-моєму, це найвищою мірою темна й брудна справа.
- Досить брудна й досить темна. Але якщо наша гостя права, стверджуючи, що підлога й стіни в кімнаті міцні, так що через двері, вікна й коминкову трубу неможливо туди проникнути, виходить, її сестра в хвилину своєї таємничої смерті була зовсім одна...
- У такому випадку, що означають ці нічні свисти й дивні слова вмираючої?
- Уявити собі не можу.
- Якщо зіставити факти: нічні свисти, цигани, з якими в цього старого доктора такі близькі стосунки, натяки вмираючої на якусь стрічку й, нарешті, той факт, що місс Элен Стоунер чула металевий брязкіт, що міг видавати залізний засув від ставні... Якщо згадати до того ж, що доктор зацікавлений у запобіганні заміжжя своєї  пасербиці, — я думаю, що ми напали на вірні сліди, які допоможуть нам розгадати цю таємничу подію.
- Але тоді при чому тут цигани? 
- Гадки не маю...»
Зверніть увагу на виділене курсивом слово якщо, що кілька разів використовує Шерлок Холмс у своїх міркуваннях про здійснений злочин. Уживання цього слова має глибокий зміст — у ситуації невизначеності воно дозволяє направити хід міркувань по одному з декількох можливих шляхів. Слово якщо або пари якщо... то є незмінними супутниками логічних міркувань. Мабуть, мистецтво вживання цих слів і становить секрет геніальності Шерлока Холмса?
ІІ. Викладання нового теоретичного матеріалу.
  1. Відношення між величинами в якості умов
Як і в математиці, в алгоритмічній мові використовуються слідуючі знаки відношення між величинами:
Для числових величин
Менше
³
Не менше
=
Дорівнює
більше
Не більше
¹
Не дорівнює
Для літерних величин
= дорівнює                   ¹  не дорівнює
В алгоритмах роботи з числовими та літерними величинами такі відношення між величинами і використовуються у якості простих умов.
2. Поняття розгалуження.
Розгалуження - це така форма організації дій, при якій в залежності від виконання або невиконання деякої умови здійснюється або одна, або друга послідовність дій.
алг об'їзд небезпечної ділянки
поч зменшити швидкість
якщо ремонт закінчено
           то  їхати 5 км по відремонтованому шосе
інакше  їхати 10 км в об'їзд
все
зупинитися біля АЗС
кін
Умова - це є будь-яке твердження  або запитання такого виду, що допускає лише дві можливі відповіді «так» або «ні».
Якщо відповідь на умову є позитивною, то виконується серія команд, записана після слова то, якщо ж відповідь негативна, - серія команд після слова інакше, а для скороченої форми - у цьому випадку  нічого   не  виконується.
Після виконання серії команд виконавець переходить до наступної після розгалуження команди. 
Якщо серія команд після слів то … інакше складається з більш, ніж однієї команди, то обов'язковими будуть слова пскс (початок та кінець серії),  як-що у серії одна команда - ці слова необов'язкові. Будь-яка команда  серії може знову бути командою розгалуження. У цьому випадку кажуть,  що команди розгалуження вкладені одна в одну.
Повна форма розгалуження:
Скорочена форма розгалуження
Якщо < умова >
то серія 1
інакше серія 2
Все
Якщо < умова >
то серія
все


Повна форма розгалуження:
Скорочена форма розгалуження:
Якщо на дворі холодно то одягти пальто інакше одіти куртку
Все
Якщо на дворі дощ
то взяти парасольку Все
ІІІ. Формування навичок. Розв’язування вправ
Приклад 1. Складіть алгоритм знаходження більшого з трьох чисел. Алгоритм має вигляд:
АЛГ Приклад   1(дійсн  a,b,c,r)
АРГ  а,b,с
РЕЗ  r
ПОЧ
якщо  а>b
то  r:=а
інакше  r:=b
все
якщо  r<с
то  r:=с
все
ДРУКУВАТИ("Більше   з  трьох  чисел  дорівнює   ",r)
КІН
Пояснения до алгоритму
Спершу відбувається порівняння двох будь-яких чисел і більше число вміщується в комірку результату (при цьому використовується повна форма команди розгалуження). Потім наступне число порівнюється із вмістом комірки результату і найбільше з них вміщується в комірку результату (при цьому використовується скорочена форма команди розгалуження).
2. Побудувати алгоритм розв’язання слідуючої задачі: «Ракета запускається з точки на екваторі Землі зі швидкістю у (в км/с) за напрямом руху Землі по орбіті навкруги Сонця. Який буде результат цього запуску ракети в залежності від швидкості у?»
Алг запуск ракети  (дійсн в, літ А)
Арг у
рез А
поч
якщо у < 7,8
то А:= „ракета впаде на Землю"
інакше якщо у < 11,2
то А:= «ракета стане супутником Землі»
інакше якщо у <16,4
то А:= «ракета стане супутником Сонця»
інакше А : = «ракета     покине Сонячну систему»
все
все
все
кін
3Алгоритм розв’язання нерівності ах>b (HEP), де а й — довільні дійсні числа
алг HEP  (дійсн а, b, з, літ у)
арг а, b
рез с, у
поч
якщо  а¹ 0
то с.: = b/а
якщо а>0
то у: = „х> с"
інакше у: = „х с"
все
інакше
якщо < 0
то у: = „х - будь-яке число"
інакше у:=   „розв’язків немає"
все
 все                  
кін
Завдання 1.

Визначте, які з тверджень істинні, які хибні, які зовсім не можуть використовуватися в якості умов, а для яких істинність залежить від значень змінних:
а) 5>6;
б) х2 +у2<3;
в) наш клас дружний;
г)            число х парне;
д) три точки;
є) три точки належать одній прямій; є) колір олівця; з) тротуар мокрий; ж) А дорівнює В;
Завдання 2.
Поясніть, чому неправильні такі алгоритми:

А) Якщо завтра викличуть
то вчити уроки
інакше піти на прогулянку
Все
б) Якщо нога піднята
то опустити ногу
інакше Упадеш
Все
Завдання 3.
Задано число х. Скласти алгоритм, за допомогою якого збільшіть число х на 1, якщо воно додатнє.
Завдання 4.
Задано число х. Скласти алгоритм, за допомогою якого збільшіть число х на 1, якщо воно додатнє, в іншому випадку зменшіть число х на 1.
Завдання 5.
Задано два числа х, у. Складіть алгоритм, за допомогою якого змінній z присвойте значення 1, якщо х менше у; змінній z присвойте значення нуль, якщо х = у; змінній z  присвойте значення мінус одиниця, якщо х більше у.
IVПідсумок уроку.
Домашнє завдання:
вивчити означення, що прочитані на лекції;
Записати команди розгалуження для таких дій:
а) якщо число більше ніж 2, то піднести його до кубу, інакше – до четвертого степеня;
б) якщо ціна книжки не перевищує N гривень, купити цю книжку і сувенир, інакше купити тільки книжку;
в) задано два числа А і В, від більшого відняти 1, а менше помножити на 24
Дано довжини сторін трикутника. Складіть алгоритм, який визначає, чи є цей трикутник рівнобедреним, рівностороннім, різностороннім;
Дано дісне число х. Складіть алгоритм, за допомогою якого визначіть, чи є воно коренем рівняння:
а) 5х+1=0;
б) 15х-10,8=0
Урок 6. Тема.   Команда повторення
Мета: ввести поняття циклічного алгоритму, правила організації повторення дій, структуру циклу з передумовою; правила запису команди повторення «ДОКИ»; навчити учнів словесно описувати алгоритм з повторенням, складати протоколи виконання циклічних алгоритмів; застосовувати цикли при розв'язуванні задач.
Тип уроку: вивчення нового навчального матеріалу
Хід уроку.
І. Актуалізація опорних знань учнів
Диктант-лото
ІІ. Мотивація навчання
Перенесемося з Англії кінця XIX століття на дві тисячі років тому - у Давню Грецію. Давня Греція - країна великих учених, поетів і легендарних героїв. Познайомимося з історією одного з них.
«...Сізіф, син бога володаря всіх вітрів Эола, був засновником міста Коринфа, що у найдавніші часи називався Эфірою.
Ніхто у всій Греції не міг рівнятися по підступництву, хитрості й спритності розуму із Сізіфом. Сізіф завдяки своїй хитрості зібрав незлічимі багатства в себе в Коринфі; далеко поширилася слава про його скарби.
Коли прийшов до нього бог смерті похмурий Танат, щоб звести його в сумне царство Аїда, то Сізіф, ще раніше відчувши наближення бога смерті, підступно обдурив бога Таната й закував його в окови. Перестали тоді на землі вмирати люди. Ніде не відбувалося велике пишне поховання; перестали приносити й жертви богам підземного царства. Порушився на землі порядок, заведений Зевсом. Тоді громовержець Зевс послав до Сізіфа могутнього бога війни Ареса. Він звільнив Таната з оковів, а Танат вивергнув душу Сізіфа й відвів її в царство тіней померлих.
Але й отут зумів допомогти собі хитрий Сізіф. Він сказав дружині своїй, щоб вона не ховала його тіла й не приносила жертви підземним богам. Послухалася чоловіка дружина Сізіфа. Аїд і Персефона довго чекали похоронних жертв. Все немає їх! Нарешті наблизився до трону Аїда Сізіф і сказав владиці царства померлих, Аїду:
- О, володар душ померлих, великий Аїд, рівний могутністю Зевсу, відпусти мене на світлу землю. Я велю дружині моєї принести тобі багаті жертви й повернуся обернено в царство тіней.
Так обдурив Сізіф владику Аїда, і той відпустив його на землю. Сізіф не повернувся, звичайно, у царство Аїда. Він залишився в пишному палаці своєму й весело банкетував, радіючи, що один із всіх смертних зумів повернутися з похмурого царства тіней.
Розгнівався Аїд, знову послав він Таната за душею Сізіфа.  З'явився  Танат у палац  хитрішого  із смертних і застав його за розкішним банкетом. Вивергнув душу Сізіфа ненависний богам і людям бог смерті; назавжди відлетіла тепер душу Сізіфа в царство тіней..
 Тяжке покарання несе Сізіф у загробному житті за всі підступництва, за всі омани, які зробив він на землі. Він засуджений вкочувати на високу, круту гору величезний камінь. Напружуючи всі сили, трудиться Сізіф. Піт градом струменіє з нього від тяжкої роботи. Всі ближче вершина; ще зусилля, і скінчена буде праця Сізіфа; але виривається з рук його камінь і з шумом котиться долілиць, піднімаючи хмари пилу. Знову приймається Сізіф за роботу.
Так вічно котить камінь Сізіф і ніколи не може досягти мети - вершини гори...»
Нічого не скажеш - сумна історія! Адже Сізіф – взагалі - непоганий хлопець, у всякому разі в розумі йому не відмовиш! Чи не можна допомогти бідоласі?
От що цікаво - дайте прочитати давній міф програмісту, і він скаже: «Нічого страшного. Мова йде про виконання нескінченного циклу. Я й сам іноді попадаю в таке ж положення й знаходжу з нього вихід!»
Цикл є однієї з найважливіших алгоритмічних структур і являє собою послідовність операторів, що повторюється неодноразово. Цикли дозволяють записати повторювані дії в компактній формі.
ІІІ. Викладання нового матеріалу.
Якщо дії Р1, ..., Рn треба повторяти, поки виконується деяка умова А, то використовується вказівка:
Поки А
Пц Р1
…….
Рn
Кц
ЦИКЛ - це форма організації дій, при якій одна і та сама послідовність дій виконується кілька разів доти, поки виконується деяка умова.
Виконання команди приводить до того, що вказана в ній серія команд виконується декілька разів підряд. Вона виконується стільки разів, скільки потрібно для того, щоб умова перестала дотримуватися. Якщо умова не дотримується з самого початку, то серія не виконується жодного разу. Умова циклу перевіряється перед виконанням серії, але не в процесі її виконання
Оператори повторення призначені для багаторазового виконання оператора або групи операторів, їх ще називають операторами організації циклу. Багаторазово повторювані частини обчислень називають тілом циклу, а змінні, що впливають на виконання циклу, — змінними циклу.

Алгоритм циклічної структури у загальному вигляді має містити:
  1. підготовку циклу: задання початкових значень змінним циклу перед його виконанням;
  2. тіло циклу: дії, повторювані в циклі для різних значень змінних циклу;
  3. модифікацію (зміну) значень змінних циклу перед кожним новим його повторенням;
  4. керування циклом: перевірку умови продовження (або закінчення) циклу й перехід на початок тіла циклу, якщо виконується умова продовження циклу (або вихід із циклу по його закінченні).
Для цього передбачено кілька видів команд організації циклів. Команда «доки» (цикл із попередньою перевіркою (передумовою)
Формат команди алгоритмічною мовою:
доки умова
пц
серія
кц
Робота команди «Доки»
Команда працює в такий спосіб: спочатку перевіряється умова, і якщо вона істинна, виконується зазначена послідовність команд, після чого знову перевіряється умова; якщо умова хибна, відбувається вихід з конструкції. Цикл може взагалі не виконуватися, якщо умова апріорі хибна.
Наведемо приклад:
і:=1; s:=0
доки і<10
пц s:=s+i
і:=і+1
кц
У результаті виконання цього прикладу в комірці s буде занесено результат обчислення: сума чисел від 1 до 9 включно. При і = 10 відбудеться вихід з циклу. Якщо до моменту початку роботи циклу значення і буде більше або дорівнюватиме 10, то цикл взагалі виконуватися не буде.

Команда «ПОВТОРЮВАТИ» (цикл із постумовою (післяперевіркою).
Формат команди алгоритмічною мовою:     
Повторювати                                                      
пц                                                                     
серія                                                                 
кц
до умова

Робота команди «Повторювати»
Робота команди полягає в тому, що на початку виконується серія, і лише потім перевіряєть­ся умова. Якщо вона хибна, то знову виконується серія тощо. Робота циклу завершиться, якщо умова стане істинною. У будь-якому разі цикл спрацьовує хоча б один раз. Наприклад:
Формат команди алгоритмічною мовою:
і:=1;   s:=l
повторювати
пц
s:=s+i
і:=і+1 кц до  і=10
Цикл буде працювати доти, доки і не дорівнюватиме 10. Значення при цьому дорівнюватиме 46

Команда повторення з параметром «для».
Формат команди:
для і від j   до  k крок m
пц
серія
кц
Робота команди «для»
де і — керуюча змінна циклу (параметр);
І — нижня межа зміни значення і;
k — верхня межа зміни значення і;
т — значення кроку. Якщо воно дорівнює 1, то його можна опускати;
j,k,m — У загальному випадку можуть бути виразами.
Команда працює в такий спосіб:
  1. Керуюча змінна і (змінна циклу) на початку набуває значення j і здійснюється перевірка на кінцеве значення k; якщо умова «істинна», то виконуються команди циклу.
  2. Потім, щоразу до керуючої змінної і додається значення кроку m і здійснюється перевірка на кінцеве значення k; якщо умова «істинна», то виконуються команди циклу.
  3. Виконання серії циклу відбувається тільки після виконання однієї з умов:

  • і < k, якщо крок додатний (у цьому випадку j < k);
  • і k, якщо крок від'ємний (у цьому випадку j > k).
  1. За невиконання умови відбувається вихід з циклу.

Наведемо фрагменти алгоритмів з використанням команди «ДЛЯ».
для  і від  1  до  10  крок  1                                 для  і від  10 до  1  крок -1
пц                                                                   пц
Друхувати і                           або                       Друкувати і
кц                                                                    кц
У результаті виконання фрагментів алгоритмів на дисплеї одержимо:
• у першому випадку 1 23456789 10;
 •у другому 10  98765432  1.
Загалом, алгоритм роботи команди для однаковий для всіх алгоритмічних мов програмування.
Використовуючи цикл для, необхідно дотримуватися певних правил:
  1. Змінна, що керує циклом, не повинна змінюватися в циклі командою присвоювання (це може призвести до помилки або неочікуваного результату).
  2. Не рекомендується виходити з циклу, не дочекавшись його завершення.
  3. Не можна входити в цикл, оминаючи команду для.
  4. У внутрішніх циклах межі зміни змінних краще обчислювати перед циклом, це заощаджує час роботи циклів.
  5. Неприпустимо використовувати у вкладених циклах однакову змінну (це стосується й інших команд циклу).
Команду повторення з параметром зручно використовувати, коли наперед відома кількість повторень циклу. Вона передбачає початкове присвоювання значення керуючої змінної, йоги модифікацію й перевірку умови на вхід-вихід із циклу.
Порівняно з командами ДОКИ або ПОВТОРЮВАТИ, її можливості обмежені, оскільки останні можуть мати кілька керуючих змінних циклу і кількість повторень заздалегідь може бути невідомою.
Цикл можна організувати й за допомогою команд, ЯКЩО й ПЕРЕЙТИ М, де М — мітка рядка, І яку здійснюється перехід, але з метою збереження структурності алгоритмічної мови такий варіант використовувати не рекомендується. Це вважається поганим стилем програмування.
Наведемо кілька прикладів циклічних алгоритмів.
1. Запишіть у виді команди повторення прислів'я:
а) Куй залізо, поки гаряче.
б)Скільки вовка не годуй, він у ліс дивиться.
2. Скласти алгоритм Евкліда знаходження найбільшого спільного дільника
 Алгоритм знаходження найбільшого спільного дільника (НСД)
алг НСД  (нат М, N, нат НСД)
арг М, N
рез НСД
поч нат х, у
х:= М; в:= N поки х¹ у
пц
якщо х > y
то х: = х — у
інакше у: = у — х все
КЦ
НСД: = х
кін
Задачі для самостійного розв’язання.
  1. Складіть алгоритм, за допомогою якого визначте добуток:
А) перших 300 натуральних чисел;
Б) усіх двозначних парних чисел;
В) усіх двозначних непарних чисел;
Г) усіх тризначних чисел, кратних 7
  1.  Складіть алгоритм, за допомогою якого визначте суму:
а) усіх двозначних парних чисел;
б) усіх двозначних непарних чисел;
в) усіх тризначних непарних чисел.
Домашнє завдання:
Виконати обчислення з використанням команди повторення:
а) знайти суму перших 20 значень натурального ряду чисел;
б) знайти суму значень натурального ряду чисел від 15-го по 80-е;
в) знайти суму значень тих натуральних чисел, які кратні 7 і не перевищують 500.
IVПідсумок уроку.
Домашнє завдання:
вивчити означення, що прочитані на лекції;
1. Складіть алгоритм, за допомогою якого можна визначити суму:
А) перших 300 натуральних чисел;
Б) квадратів перших 500 натуральних чисел.
2. Складіть алгоритм, за допомогою якого можна визначити добуток:
А) всіх парних двозначних чисел;
Б) всіх чотиризначних чисел, кратних 5.


Урок №7. Етапи розв’язування задач
Мета уроку: Дати поняття про моделювання та створення інформаційних моделей об'єктів; навчити аналізувати умову задачі, будувати математичну модель процесу (явища) за схемою ДАНО – ТРЕБА – ЗВ'ЯЗОК, визначати метод розв’язування та конструювати алгоритм розв’язування.
Тип уроку: Лекційний.
Хід уроку.
І. Актуалізація опорних знань учнів.
Усне опитування за темою попереднього уроку з метою визначення засвоєного матеріалу.
  1. Розкажіть про організацію циклів:
  • з передумовою;
  • з післяумовою;
  • за допомогою команди «повторення з параметром»
    1. Що має містити алгоритм циклічної структури?
    2. Порівняйте можливості команди ДЛЯ з командою ДОКИ або ПОВТОРЮВАТИ.
    3. Які правила слід виконувати під час використання команди ДЛЯ?
ІІ. Викладання нового теоретичного матеріалу:
При проведенні різних експериментів, наукових і навчальних розрахунків, досліджень часто буває необхідно будувати якісь зменшені копії дійсних об'єктів, математичні графіки або використовувати інші засоби для наочного представлення поведінки різних об'єктів і процесів, тобто займатися моделюванням.
З давніх давен людина використовує моделювання для дослідження об'єктів, процесів та явищ в різних галузях своєї діяльності. Результати цих досліджень допомагають визначити та покращити характеристики реальних об'єктів та процесів, краще зрозуміти сутність явищ та пристосуватись до них або керувати ними, конструювати нові та модернізувати старі об'єкти. Моделювання допомагає людині приймати обґрунтовані рішення та передбачати наслідки своєї діяльності. Поняття комп'ютерного моделювання відображає використання в цьому процесі комп'ютера, як потужного сучасного засобу обробки інформації. Завдяки комп'ютеру суттєво розширюються галузі застосування моделювання, а також забезпечується всебічний аналіз отриманих результатів.
Що ж таке модель? Під цим словом ховаються і матеріальні моделі реально існуючих об'єктів на виставці, і телевізійна красуня, що рекламує товари та сучасний одяг, і макет Ейфелевої башти, і теорія розвитку суспільства, і всім відома формула земного тяжіння P = mgh, і багато чого іншого. Як же в одному слові можна об'єднати такі різні поняття?
Справа в тому, що поняття моделі об'єднує дещо спільне, а саме те, що модель - це штучно створений людиною абстрактний або матеріальний об'єкт. Аналіз та спостереження моделі дозволяє пізнати сутність реально існуючого складного об'єкта, процесу чи явища, що називаються прототипами об'єкта. Таким чином, модель - це спрощене уявлення про реальний об'єкт, процес чи явище, а моделювання - побудова моделей для дослідження та вивчення об'єктів, процесів та явищ.
Може виникнути питання, чому не можна дослідити сам оригінал, навіщо створювати моделі? Для цього може існувати багато причин:
- оригінал може не існувати в часі (гіпотеза про загиблий материк Атлантида, про побудову Єгипетських пірамід, про можливу "ядерну зиму", що може початися після атомного бомбардування);
- реально цей об'єкт не можна побачити (модель земної кулі, сонячної системи або атома);
- людина хоче побачити об'єкт, але не має можливості потрапити на місце його знаходження (модель Ейфелевої башти, єгипетської піраміди, Софіївського собору тощо);
- процес, який досліджує вчений, небезпечний для життя (ядерна реакція).
Таких прикладів можна придумати багато. І ви, якщо подумаєте, можете згадати багато моделей, що бачили у своєму житті.
Згадайте, які моделі ви бачили у своєму житті (сама тривіальна відповідь - іграшки). Навіть, коли ви зранку складаєте план своїх дій на день, це теж можна вважати моделюванням.
Для одного і того ж об'єкта можна створити велику кількість моделей. Все залежить, по-перше, від мети, що ви поставили перед собою, а по-друге, від методів та засобів, за допомогою яких ви збираєте інформацію про прототип. Наприклад, якщо ви хочете познайомитись з новим містом, то карта цього міста, фотографії, розповіді мешканців або кіноальманах дадуть вам зовсім різні уявлення про об'єкт, причому ці уявлення можуть зовсім не співпасти з тими враженнями, що ви отримаєте потім після відвідування цього міста безпосередньо. Модель цього ж самого міста для його мешканців взагалі буде іншою, тому що для них головне - це забезпечення нормальної життєдіяльності. Як ви вже переконались, кількість моделей та їх різноманітність дуже велика. Щоб не загубитися в цьому розмаїтті, необхідно мати якусь класифікацію моделей. Розглянемо найбільш суттєві ознаки, за якими класифікуються моделі:
- галузі використання;
- урахування в моделі фактора часу;
- спосіб представлення моделей.
Розглядаючи моделі з позиції галузі використання, можна сказати, що вони бувають:
- навчальні - наочні посібники, тренажери, навчальні програми;
дослідні - створюються для дослідження характеристик реального об'єкта (модель теплоходу перевіряється на усталеність, а модель літака - на аеродинамічні характеристики);
науково-технічні - для дослідження процесів та явищ (ядерний реактор або синхрофазотрон);
ігрові моделі - для вивчення можливої поведінки об'єкта в запрограмованих або непередбачених ситуаціях (військові, економічні, спортивні ігри тощо);
імітаційні моделі - виконується імітація дійсної ситуації, що багато повторюється для вивчення реальних обставин (випробування лікарських препаратів на мишах або інших тваринах, політ собаки в космос).
З урахуванням фактора часу моделі можуть бути динамічні та статичні. В першому випадку над об'єктом виконуються дослідження на протязі деякого терміну, а в другому - робиться одноразовий зріз стану (наприклад, постійний нагляд сімейного лікаря та одноразове обстеження в поліклініці).
За способом представлення моделі можуть бути матеріальні та інформаційні. Матеріальні моделі - це предметне відображення об'єкта зі збереженням геометричних та фізичних властивостей. Наприклад, іграшки, чучела тварин, географічні карти, глобус і таке інше - це матеріальні моделі реально існуючих об'єктів. Матеріальною моделлю можна також назвати хімічний або фізичний дослід. Ці моделі реалізують матеріальний підхід до вивчення об'єкта чи явища.
Інформаційна модель - це сукупність інформації, що характеризує властивості та стан об'єкта, процесу чи явища, а також взаємодію із зовнішнім світом.
Інформаційні моделі можуть бути:
вербальними - моделі отримані в результаті розумової діяльності людини і представлені в розумовій або словесній формі;
знаковими - моделі, що виражені спеціальними знаками (малюнками, текстами, схемами, графіками, формулами тощо).
За формою представлення можна виділити наступні види інформаційних моделей:
геометричні - графічні форми та об'ємні конструкції;
словесні - усні та письмові описи з використанням ілюстрацій;
математичні - математичні формули, що відображають зв'язок різних параметрів об'єкта;
структурні - схеми, графіки, таблиці;
логічні - моделі, в яких представлені різні варіанти вибору дій на основі різних умовиводів та аналізу умов;
спеціальні - ноти, хімічні формули і таке інше;
комп'ютерні та некомп'ютерні.
В сучасному світі розв'язування складних наукових та виробничих задач неможливе без використання моделей та моделювання. Серед різних видів моделей особливе місце займають математичні моделі, тому що вони дозволяють враховувати кількісні та просторові параметри явищ та використовувати точні математичні методи. Вивчення реальних явищ за допомогою математичних моделей, як правило, вимагає застосування обчислювальних методів. При цьому широко використовуються методи прикладної математики, математичної статистики та інформатики.
Підсумуємо вищевикладене.
Моделювання - це особлива форма експерименту, яка полягає в тому, що досліджується не сам об'єкт, а деяка його заміна.
Форми моделювання дуже різноманітні і залежать як від самого об'єкта, так і від мети його вивчення.
Інформаційна модель - це матеріальний або ідеальний об'єкт, що ви­користовується замість оригіналу явища (процесу) при його дослідженні, при цьому зберігається інформація про деякі важливі для даного дослідження типові риси і властивості оригіналу, тобто його істотні сторони.
Модель необхідна для того, щоб:
- зрозуміти, як влаштований об'єкт: які його структура, основні властивості, закони розвитку і взаємодії з навколишнім світом;
- навчитися керувати об'єктом або процесом і визначати найкращі способи керування при заданій меті і критеріях (оптимізація);
- прогнозувати прямі чи непрямі наслідки впливу на об'єкт.
Інформаційні моделі можуть формулюватися на будь-яких мовах: російській, англійській й ін. В них можуть бути використані мова графічних побудов, мова хімії, біології і т.д.
Окремим типом інформаційних моделей є математична модель.
Математична модель - це заміна оригіналу явища (процесу) відповідним аналогом за допомогою математичних залежностей.
Рішення практичної задачі починається з опису вихідних даних і мети задачі. Точне формулювання умов і мети рішення - це математична постановка задачі, а математичний опис найбільш істотних властивостей реального об'єкта - це математична модель.
Комп'ютерна модель - математична модель, яка реалізована за допомогою певних програмно-апаратних засобів.
Існують задачі, які важко або неможливо розв'язати без застосування комп'ютерів. Це різного роду задачі моделювання, наприклад, моделювання фізичних процесів, біологічні, екологічні, економічні задачі моделювання, задачі оптимізації й інші.
Етапи розв’язання прикладних задач з використанням комп'ютерів





Етап
Опис етапу
Математична
постановка
задачі
1. Визначити умови задачі:
-     Що дано?
-     Які дані допустимі?
-     Які результати, в якому вигляді повинні бути
отримані?
Побудова мате­матичної моделі, вибір методу рішення задачі
1.   Розгорнутий змістовний опис задачі замінити її математичною моделлю за допомогою математич­них залежностей.
2.   Обгрунтовано вибрати метод розв'язування.
Складання алгоритму на основі обраного методу
Алгоритм у більшій мірі визначається обраним методом, хоча той самий метод може бути реалі­зований за допомогою різних алгоритмів. При складанні алгоритму слід враховувати всі його властивості.
Складання програми
Програмування (складання програми) - кодування алгоритму на одній з мов програмування.
Тестування і
налагодження
програми
Перевірка правильності роботи програми за допомогою тестів і виправлення виявлених помилок. Тест - це спеціально підібрані вихідні дані і результати, отримані при цих даних.
Аналіз результатів
Після остаточного виконання програми зробити аналіз результатів. Можлива зміна самого підходу до рішення задачі і повернення до першого етапу для повторного виконання всіх етапів.

            Математична модель - це перелік вхідних даних, результатів, які потрібно отримати, та зв'язок між величинами, виражений у вигляді математичних співвідношень.
Для побудови математичної моделі використовується така форма:
Дано: <Перелік початкових даних>
Потрібно: <Перелік погрібних результатів>
Зв'язок: <Система рівнянь або тверджень, що зв’язують вхідні та шукані дані>
При <Умови допустимості початкових даних>
Приклади математичної моделі
  Задача: Розв'язати лінійне рівняння типу ах+b=с
Дано: а, b, с Потрібно: х
Зв'язок: якщо а=0 і с – b = 0, то х - будь-яке число;
якщо а=0 і с – b ¹0, то коренів немає;
якщо a ¹ 0 і с – b = 0, то х =0;
якщо а ¹ 0 і с – b ¹ 0, то х=(с – b)/а.
ІІІ. Формування практичних навичок.
Побудувати математичну модель та алгоритм розв'язування задач:
1. У цариці Несміяни кругле обличчя, радіус якого дорівнює R. Визначте довжину сторони такого квадратного дзеркала, щоб, коли Несміяна милується собою, її відображення поміщалося в дзеркалі.
2. З тераріуму втекли х гадюк, у кобр та z гюрз. Довжина кожної гадюки 1м, кожної кобри 1м 30см, а гюрзи 1м 15см. Скільки повних метрів отруйних змій втекло з тераріуму? Яку довжину вони складають у сантиметрах?
IVПідсумок уроку.
Домашнє завдання:
  • вивчити означення, що прочитані на лекції (що таке модель та моделювання, класифікація моделей, комп'ютерне моделювання);
  • придумати приклади моделей, що зустрічаються нам у повсякденному житті;
  • придумати набір елементів конструктора, з якого потім можна зібрати яку-небудь іграшку;
  • Побудувати математичну модель та алгоритм розв'язування задач:
а)   знайти корені квадратного рівняння типу ах2+Ь=0;
б)   знайти корені квадратного рівняння типу ax2+bx+c=0;
в)   прямокутник, довжини сторін якого відповідають умові a/b=b/(a-b),
називається золотим. Визначити, чи є даний прямокутник золотим.

Завдання до тематичної атестації з теми «Основи алгоритмізації»
1. Що таке алгоритм?
2. Що таке змінні в алгоритмах?
3. Що таке константи в алгоритмах?
4. Які основні властивості алгоритмів?
5. Які існують основні форми подання алгоритмів?
6. Хто може бути виконавцем алгоритму?
7. Чим викликано існування багатьох способів опису алгоритмів?
8. Назвіть та опишіть базові структури алгоритмів.
9. Як записується і використовується структура "слідування"?
10. Як записується і використовується структура "розгалуження"?
11. Як записується і використовується структура "повторення" (цикл-ДОКИ)?
12. Як записується і використовується структура "повторення" (цикл-ДО)?
13. Для чого необхідна алгоритмічна мова?
14. З чого складається алгоритмічна мова?
15. З чого складається алфавіт алгоритмічної мови?
16. Які правила опису алгоритмів НАМ?
17. Яка структура алгоритму, записаного на НАМ?
18. Які основні вказівки використовуються в НАМ?
19. Як записується і виконується вказівка розгалуження?
20. Як записується і виконується вказівка повторення?
21. Що таке величина?
22. Які існують типи величин?
23. Які існують види величин?
24. Що називається аргументом алгоритму?
25. Що називається результатом алгоритму?
26. Як записується і виконується вказівка  присвоювання?
Завдання для самостійного виконання
1. Записати в словесній формі алгоритми:
а) Знаходження остачі під ділення числа a  на число b,
б) Розклад числа N на прості множники,
в) Перевірки ознаки подільності  даного числа a  на 3,
г) Знайти найбільший  спільний дільник двох натуральних  чисел а і b.
2. Перерахувати всі службові слова, які використовуються:
а) у вказівці розгалуження
б) у вказівці повторення
3. Скласти алгоритм обчислення Y за формулою Y=(5x – 2)(x + 4).
5. Скласти алгоритм обчислення Y за формулою 
6. Скласти алгоритм знаходження найбільшого з трьох величин а,b,с.
7. Скласти алгоритм пофарбування підлоги, яка зроблена з 30 дощок.

2. Основні поняття мови Паскаль
Урок 9. Мова програмування Turbo Pascal 7.0
Мета уроку: Дати дитині поняття про програму, класифікацію мов програмування, поняття системи програмування, поняття про інтерпретацію та компіляцію. Дати поняття про основні резики роботи з файлами в інтерактивному середовищі ТП 7.0; основні відомості про роботу у вбудованому редакторі ТП 7.0; поняття про компіляцію та виконан­ня програм; порядок діагностування помилок. Навчити користуватися командами меню та «гарячими клавішами» для роботи з файлами, роботи з вікнами, отримання довідки, виконання програм.
Тип уроку: Лекційний.
Хід уроку.
І. Організаційний момент.
ІІ. Викладання нового теоретичного матеріалу
  1. Мови програмування. Паскаль.
Першими мовами програмування були FORTRAN, COBOL, ALGOL і деякі інші. У кожної з них були свої позитиви й свої недоліки. Одною з найбільш удалих довгий час уважалася ALGOL, настільки вдалою, що цю мову стали використовувати в спеціальній літературі для запису алгоритмів. Але й вона не була позбавлена недоліків, зокрема, остання версія ALGOL'a була зайво громіздкою, тому швейцарський професор наприкінці 60-х років ХХ ст. Никлаус Вірт зайнявся розробкою своєї власної мови, що успадкувала би від ALGOL'a краще, але була би більше лаконічною і мала би більше чітку логічну структуру. Призначалася нова мова для навчання студентів, і сам Вірт спочатку ставився до неї як до іграшки. Мова була названа на честь французького філософа й винахідника механічного калькулятора Блеза Паскаля - Паскалем. Нова мова виявилася настільки вдалою, що швидко завоювала популярність.
Поява нової мови збіглася з початком ери персональних комп'ютерів, які стали доступними майже кожній звичайній людині (це відбулося не відразу, і були часи, коли вартість «персоналки» була порівнянна з вартістю легкового автомобіля!). Масла у вогонь підлила фірма Borland, яка у першій половині 80-х випустила пакет Турбо Паскаль, що містив не тільки транслятор, але й редактор, а також інші програми, які значно полегшували процес програмування. Це зробило Турбо Паскаль популярнішою системою програмування.
Турбо Паскаль. Чому не просто Паскаль, а Турбо Паскаль? Слово «Турбо» в англійському лексиконі  означає прискорення. Транслятор, що входить до складу Турбо Паскаля, дуже швидко переводить програму з мови програмування в машинні коди, помітно швидше, ніж транслятори в інших системах  програмування. От тому - Турбо.
Скажемо ще, що Турбо Паскаль - це не окрема мова програмування, а «розширення» звичайного, стандартного Паскаля, що включає інтегроване середовище програмування. Слова «інтегроване середовище» означають, що з однієї програми є доступ до редактора текстів, транслятора, довідкової системи, налагоджувача та ін. До складу Турбо Паскаля входять додаткові набори процедур, які дозволяють не займатися щораз программуванням деяких складних дій, таких, наприклад, як виведення графіки. Крім Турбо Паскаля є й інші системи програмування на Паскалі, але ми будемо використовувати саме Турбо Паскаль.
  1. Поняття про мови прогамування.
Процес роботи комп'ютера полягає у виконанні програм, тобто деякого набору команд, що надходять у визначеному порядку. Машинний код команди складається з нулів та одиниць та указує, яку саме дію треба виконати центральному процесору. Отже, щоб задати комп'ютеру послідовність дій, яку він має виконати, треба задати послідовність двійкових кодів відповідних команд. Писати такі програми дуже складна справа. Раніше для цього програміст повинен був пам'ятати не тільки всі комбінації нулів та одиниць двійкового коду кожної команди, але й двійкові коди адрес даних, що використовувалися під час виконання програми. Щоб полегшити роботу програмістів, було розроблено багато мов програмування, які в більш наочному для людини вигляді подавали послідовність дій комп'ютера.
Алгоритмічні мови, призначені для побудови описів алгоритмів, що виконуються електронними обчислювальними машинами, називаються мовами програмування.
Описи алгоритмів мовою програмування називають програмами.
Набагато легше написати програму мовою, що наближена до людської, а перекладання цієї програми на машинні коди доручити комп'ютеру. Так з'явилися мови, що призначені спеціально для написання програм - мови програмування.
Існує багато різних мов програмування. Взагалі, для розв'язування більшості задач можна використовувати будь-яку з них. Тільки досвідчені програмісти знають, яку мову програмування краще використовувати для розв'язування складних спеціалізованих задач, щоб урахувати особливості тієї чи іншої з них.
Всі існуючи мови програмування можна поділити на дві групи:
- мови низького рівня;
- мови високого рівня.
До мов низького рівня належать мови асемблера (від англ. to assemble - складати, компонувати). У мові асемблера використовуються символьні позначення команд, які легко зрозуміти і запам'ятати. Замість послідовностей двійкових кодів команд записуються їх символьні позначення, а замість двійкових адрес даних, які використовуються під час виконання програми, - символьні імена цих даних. Іноді мову асемблера називають мнемокодом або автокодом.
pic
Більшість програмістів при складанні програм користуються деякою мовою високого рівня. Для описування алгоритмів такою мовою використовується певний набір символів - алфавіт мови. З цих символів складаються так звані службові слова мови, кожне з яких має певне призначення. Службові слова зв'язуються одне з одним в речення за певними синтаксичними правилами мови і визначають деяку послідовність дій, які мусить виконати комп'ютер.
Використання мов високого рівня надає можливість описувати програми для комп'ютера, використовуючи загальноприйняті позначення операцій і функцій.
Та програми, що написані на мовах програмування високого рівня (алгоритмічних мовах програмування), комп'ютер "не розуміє". Для того, щоб він міг виконати програму, її потрібно перекласти на машинну мову. Для такого перекладу використовують спеціальні програми, що мають назву - транслятори.
Транслятор - це програма, що призначена для перекладу тексту програми з однієї мови програмування на іншу. Процес перекладання називається трансляцією.
Будь-який транслятор виконує дві основні задачі.
Перша - аналіз програми, що транслюється, в результаті чого визначається її коректність. При виявленні помилок транслятор вказує на ті місця тексту програми, де порушені правила її написання.
Друга - генерація вихідної програми мовою команд комп'ютера.
Розрізняють два типи трансляторів:
- компілятори
- інтерпретатори.
Компілятор - це програма, призначена для перекладу в машинні коди програми, що написана мовою високого рівня. Процес такого перекладу називається компіляцією.
Кінцевим результатом роботи компілятора є програма в машинних кодах, яка потім виконується ПК. Скомпільований варіант програми можна зберігати на диску. Для повторного виконання програми компілятор вже не потрібен. Досить завантажити з диска в пам'ять комп'ютера скомпільований перед цим варіант і виконати його.
Існує інший спосіб поєднання процесів трансляції та виконання програм. Він називаєтьсяінтерпретацією.
Інтерпретатор - це програма, що призначена для трансляції та виконання вихідної програми по командах (на відміну від транслятора, який цей процес виконує в цілому).
У процесі трансляції відбувається перевірка програми на відповідність до правил її написання. Якщо в програмі знайдені помилки, транслятор виводить повідомлення про них на екран монітора. Інтерпретатор повідомляє про знайдені помилки після трансляції кожної команди програми, а компілятор - після завершення компіляції всієї програми. Знайти та виправити в цьому випадку помилки значно складніше, ніж при інтерпретації. Через це програми-інтерпретатори розраховані, в основному, на мови, що призначені для навчання програмуванню, і використовуються програмістами-початківцями.
Як правило, програми компілятори та інтерпретатори називаються так само, як і мови, для перекладу з яких вони призначені. Слова Паскаль, Бейсік, Сі можна сприймати і як назви мов, і як назви відповідних програм - трансляторів.
3. Опрацювання середовища ТП 7.0
  1. Увійдіть в каталог системи програмування ТП 7.0.
  2. Виконайте команду turbo.exe.
F10 - вихід в головне меню.
Esc - вийти з головного меню та повернутися у вікно редактора текстів.
Дія
Доступ через меню
Гаряча клавіша
Створити новий файл
File/New

Відкрити файл
File/Open
F3
Зберегти файл
File/Save
F2
Виконати програму
Run/Run
Ctrl+F9
Переглянути екран користувача
Debug/User Screen
Alt+F3
Створити exe-файл
Compile/Compile
Alt+F9
Викликати довідкову систему
Help
F1
Отримати довідку про вказаний курсором оператор

Ctrl+F1
Перейти до іншого вікна
Window/List
Alt +0
Закрити поточне вікно
Window/Close
Alt+F3
Вийти з середовища
File/Exit
Alt+X
Практичне завдання
Відкрийте існуючий в каталозі системи програмування файл Primerl.pas. В програмі Primerl використані основні елементи процесу опра­цювання даних у відповідності з принципом IPO (input - processing - output), тобто введення - опрацювання - виведення.
Для повного розуміння цього принципу необхідно познайомитися з операторами введення-виведення та присвоювання.
Program Primerl; {додавання двох цілих чисел}
var a,b,s: integer; begin
write (' введіть перше число'); readln(a);
write ( введіть друге число'); readln(b);
s=a+b;
writeln ( 'сума  А+В=' ,s)
end.
  1. Виконайте програму декілька разів для  різних А і В.
  2. Створіть exe-файл. Для цього виконайте послідовність дій:
  • увійдіть в головне меню, виберіть меню Compile.
  • виберіть і виконайте команду Destination - Memory, яка після натискання клавіші Enter змінюється на Destination - Disk.
  • Натисніть комбінацію клавіш Alt+F9.
3.  Вийдіть з середовища ТП 7.0. Виконайте файл Primerl.exe.
Підсумок уроку.
Домашнє завдання:
вивчити означення, що прочитані на лекції (що таке програма, класифікація мов програмування, що таке транслятор, типи трансляторів).

Урок 10. Основні поняття мови Turbo Pascal 7.0
Мета: дати поняття про загальну характеристику мови Пас­каль; алфавіт мови, основні поняття мови: ідентифікатор, величи­на, оператор, вираз; правила лінійного запису арифметичних виразів. Навчити  записувати математичні вирази в лінійній формі, обчислювати поточне значення величини та остаточний результат.
Тип уроку: вивчення нового навчального матеріалу.
Хід уроку.
І. Актуалізація опорних знань учнів.
Запитання для перевірки знань учнів.
  1. Для чого створено мови програмівання?
  2. Що можна назвати програмою?
  3. Для чого програми перекладають в машинні коди?
  4. Чим компілятор відрізняється від інтерпретатора?
  5. Які мови програмування ви знаєте? Наведіть приклади.
ІІ. Викладання нового навчального матеріалу.
Мова програмування — це один із способів подачі опису алгоритму, що розрахований на виконавця — комп'ютер.
Будь-яка мова програмування характеризується трьома основними складовими: алфавітом, синтаксисом і семантикою.    Сукупність символів, які дозволяється використовувати під час побудови  опису алгоритмів мовою програмування, називають алфавітом цієї мови.  
Сукупність правил опису алгоритмів мовою програмування називають синтаксисом мови програмування.
Правила семантики пояснюють, яке смислове значення має кожний елемент мови. У будь-якій мові програмування можна виділити чотири типи елементів, що використовуються при побудові програм: символи, слова, вирази, команди (оператори). Символи мови — це основні знаки, якими описуються команди і дані.
  Слова мови — структури, що утворені із символів алфавіту мови програмування і мають певний зміст. Слова — це імена змінних та констант, числа, службові слова та ін.
  Вираз — це правило (формула) обчислення значення однієї величини.       Якщо одержуване значення числове, то вираз називають арифметичним,    якщо значення логічне, то вираз називають логічним або бульовим, якщо значення—текст, то вираз називають літерним.
Команда — це вказівка на виконання деякої дії. При написанні програм команди називають операторами, а величини, що використані команді — операндами.
  Скінченна послідовність виконуваних почергово команд називається серією команд. Серія може складатися з однієї команди і навіть бути порожньою.

Алфавіт і словник мови
Програма мовою Паскаль формується за допомогою набору знаків, що утворюють алфавіт мови, і складається з літер, десяткових і шістнадцяткових цифр і спеціальних символів.
У якості літер використовують великі та малі літери латинського алфавіту: АВCDEFGHIJKLMNОPQRSTUVWXYZ abcdefghijklm nopqrstuvwxyz, а також _ (знак підкреслення).
У якості десяткових цифр: 1234567890. Шістнадцяткові цифри утворюються з десяткових цифр і літер від А до F (або від а до f).
При написанні програм застосовуються спеціальні символи:
+ плюс
* зірочка (знак множення) 
= дорівнює
< менше
$ знак грошової одиниці
() круглі дужки
.   крапка
:   двокрапка
'   апостроф
@ ет (або комерційне а)
- мінус
/  знак ділення
> більше
# міжнародний комерційний номер
[] квадратні дужки
{} фігурні дужки
,     кома
;     крапка з комою
~   тильда
               пробіл.

Комбінації спеціальних символів можуть утворювати складені символи, які сприймаються комп'ютером як один символ:
:=   присвоювання         <>  не дорівнює
… діапазон значень       >= більше або дорівнює
(..) альтернатива [ ]        <= менше або дорівнює.
(* *) альтернатива {}
Неподільні послідовності символів утворюють слова, що несуть певний зміст у програмі. Слова відділяються розділовими символами, такими як: пробіл, кома, символ кінця рядка, коментар. Слова поділяються на: стандартні, зарезервовані, ідентифікатори користувача. Зарезервовані слова є складовою частиною мови, мають фіксоване написання і назавжди  визначений зміст. Наприклад:begin, else, function, write, end, program  та ін.
Стандартні слова призначені для заздалегідь визначених розробником мови типів даних, констант, процедур і функцій (наприклад, sin, cos, Pi). Зарезервований ідентифікатор можна перевизначити, але це може призвести до помилки, тому краще цього не робити.
Ідентифікатори користувача використовують для позначення констант, змінних, процедур і функцій, що визначені самим програмістом. Існують загальні правила написання ідентифікаторів:
  1. Ідентифікатор починається тільки з літери або знака підкреслення.
  2. Ідентифікатор може складатися з літер, цифр і знака підкреслення.
  3. Між двома ідентифікаторами має бути хоча б один розділовий знак.
  4. Максимальна довжина ідентифікатора 127 символів, але значущими є тільки перші 63 символи.
  5. Ідентифікатор не може бути зарезервованим словом.
У написанні програм можна використовувати як великі, так і малі літери. Компілятор не визначає різниці між ними.

Правила оформлення програм (пунктуації):
  1. Крапку з комою можна не ставити після begin і перед end, тому що ці слова є операторними дужками, а не операторами.
  2. Крапка з комою розділяє оператори. її відсутність між операторами викликає помилку компіляції. Наявність між операторами кількох крапок з комою не є помилкою, тому що компілятор сприймає їх як ознаку наявності порожніх операторів.
  3. При використанні вкладених структур може виникнути ситуація:
                                   end;
                 end;
end       
        Крапку з комою можна ставити як після кожного, так і після останнього end. А наприкінці програми можна ставити крапку.
  1. В операторах циклу крапка з комою не ставиться після while, repeat, do і перед until.
  2. В умовних операторах крапка з комою не ставять після then і перед else.
ІІІ. Закріплення теоретичного матеріалу.
Опитування за питаннями для перевірки засвоєння знань       
  1. Що називають алфавітом мови програмування? 
  2. Що називають серією команд?    
  3. Чи можна змінити зміст зарезервованого слова?
  4. Для чого використовують ідентифікатори користувача? .
  5. Чи може бути ідентифікатор користувача зарезервованим словом?
Підсумок уроку.
Домашнє завдання:
вивчити означення, що прочитані на лекції.

Урок 11. Величини. Прості типи мови Паскаль.
  Мета уроку: ознайомлення з поняттями величини, типів даних, форму вання навичок визначення та опису стандартних типів даних; виховання    інформаційної культури.
Тип уроку. Вивченя нового навчального матеріалу.
Хід уроку.
І. Актуалізація опорних знань учнів.
- Сформулюйте загальні правила написання ідентифікаторів.
- Сформулюйте правила оформлення програм.
ІІ. Викладання нового матеріалу.
  1. Поняття величини.
У своїй роботі програміст має справу з таким поняттям, як величина.
   Що ж таке величина? З точки зору програмування величини — це дані, що обробляються програмами. Мова Паскаль інтерпретує дані, як а.   константи або змінні. Як перші, так і другі визначаються ідентифікаторами (іменами), за допомогою яких можна звертатися для одержання х   відповідних значень. Константами називають такі дані, яким присвоюються значення в описовій частині програми, й у процесі вико­нання програми їх змінювати заборонено. Для визначення констант служить зарезервоване слово const.
Формат опису:
Const <  ідентифікатор > = < значення константи >;
Приклад: Const Max=1000;
 Vxod='сегмент  5';
Є константи, до значень яких можна звертатися без попереднього опису.
Ідентифікатор
Тип
Значення
Опис
True
Boolean
True
Істина
False
Boolean
False
Хибність
Maxint
integer
32767
Максимальне ціле
Змінні, на відміну від констант, можуть змінювати свої значення в процесі виконання програми. Кожна змінна і константа належать до визначеного типу даних. Тип констант визначається компілятором автоматично. Тип змінних обов'язково вказується перед тим, як їх використати. Для опису змінних призначено зарезервоване слово var.
Формат опису:
Var <ідентифікатор>   :   <тип даних>;
Приклад: Var  Suml,   Sum2   :   real;
2. Типи даних.
Тип даних — це сукупність властивостей певного набору даних, від яких залежать: діапазон значень, якого можуть набувати ці дані, а також сукупність операцій, які можна виконувати над цими даними.
Усі типи даних у мові програмування Паскаль розділяють на дві групи: скалярні (прості), структуровані (складені). Скалярні типи, у свою чергу розділяють на стандартні та типи користувача.Стандартні типи користувачам пропонують розробники системи Turbo Pascal. Типи користувача — розроблюють програмісти самостійно.
До стандартних скалярних типів належать типи: цілі, дійсні, літерні, булівські. Величини цілих типів можна подавати як у десятковій, так і в шістнадцятковій системах числення. Якщо число подане в шістнадцят-ковій системі, перед ним без пробілу записується знак $. Діапазон зміни шістнадцяткових чисел від $0000 до SFFFF.
Цілі типи даних являють собою значення, що можна використовувати в арифметичних виразах.
Стандартні цілі типи наведено в таблиці:
Тип
Діапазон
Необхідна пам'ять (байт)
Byte
0...255
1
Shortint
-128... 127
1
Integer
-32768 ...32767
2
Word
0... 65535
2
Longint
-2147483648 ...2147483647
4
Дійсні типи даних являють собою дійсні значення, що використовуються в арифметичних виразах і займають у пам'яті від 4 до 10 байт. У програмі мовою Паскаль можна подавати дані дійсних типів у вигляді як із плаваючою, так і з фіксованою крапкою.
Дійсні десяткові числа з фіксованою крапкою записуються за звичайними правилами арифметики. Зверніть увагу, що ціла частина від дробової відокремлюється десятковою крапкою, а не комою. Якщо десяткова крапка відсутня, число вважається цілим. Перед числом може знаходитися знак «+» або «-». Якщо знак відсутній, то число вважається додатнім.
Дійсні десяткові числа у форматі з плаваючою крапкою подаються в експоненціальному вигляді: тЕ+р, де т- мантиса (ціле або дробове число з фіксованою десятковою крапкою), Е - означає «десять у степені», р -порядок (ціле число). Мантиса має бути нормалізованою, тобто поданою у вигляді числа з діапазону від 0 до 9 (це означає, що крапка завжди знаходиться після першої значущої цифри числа). Однак можна записати мантису у вигляді будь-якого дробового числа з фіксованою крапкою. Нормалізація при цьому виконується системою автоматично. Наприклад:
Число у форматі з плаваючою крапкою
Значення числа
0.4500Е+02
0.45*102=45
-2.600Е05
-2.6*105 = -260000
+0.45670Е-02
0.4567*10-2= 0.004567
Стандартний (найчастіше використовуваний) дійсний тип даних наведений у таблиці:

Тип
Діапазон значень
Мантиса (кількість значущих цифр)
Необхідна пам'ять (байт)
Real
±2.9*10Е-39 .. 1.7*10Е38
11-12
6
Літерний (символьний) тип може набувати значень ASCII-таблиці комп'ютера. Символьній змінній в пам'яті виділяється один байт, тому можна зберегти тільки один символ ASCII-таблиці.
Булівський тип подається двома значеннями: True (істина) або False (хибність). Цей тип застосовують у логічних виразах і виразах відношення.
Примітка: Для розв'язування майже всіх задач шкільного курсу інформатики учням цілком достатньо використання стандартного дійсного типу даних, але якщо вчитель вважає потрібним, то він може дати учням інші чотири дійсних типа (singledoubleextendedcomp).
Структуровані типи у своїй основі мають один або кілька скалярних типів даних. До структурованих типів даних належать рядки, масиви, файли, записи і т.д. їх ми розглянемо пізніше.
Перетворення типів:
Ціле значення можна перетворити в дійсне, присвоївши дійсній змінній ціле значення: А:=3+5.
Дійсне значення можна переворити в ціле за допомогою стандартних функцій: TRUNC(X) – ціла частина аргументу;  ROUND(X) – аргумент, округлений до найближчого цілого (за правилами математики);  INT(X) – аргумент, округлений до найближчого меншого цілого.
Сумісність типів:
При виконанні оператора присвоювання обчислюється вираз, що стоїть в правій частині, і його значення присвоюється змінній в лівій частині. При цьому тип виразу повинен відповідати типу змінної. Для стандартних типів це означає, що вони повинні збігатися. Допускається присвоювання змінній дійсного типу значення цілого типу. Присвоювання ж змінній цілого типу виразу дійсного типу заборонено!
Змінні і константи всіх типів використовуються у виразах
Вираз задає порядок виконання дій над даними і складається з операндов (констант, змінних, звертань до функцій), круглих дужок і знаків операцій. Круглі дужки ставлять, як і в математиці, для керування порядком виконання операцій. Якщо дужки відсутні, то операції виконуються залежно від їх пріоритетів, про що буде сказано далі.
У мові Паскаль є такі операції: арифметичні; відношення (порівняння); логічні. Операції можуть бутиунарними та бінарними. У першому випадку операція стосується одного операнду і завжди записується перед ним, у другому операція виражає відношення між двома операндами і записується між ними. Арифметичні операції задають арифметичні дії у виразах над значеннями операндів цілих та дійсних типів. Найчастіше використовуються арифметичні операції, що подані в наступній таблиці:
Операція
Дія
Тип операндів
Тип результату
Бінарні



+
Додавання
Цілий
Цілий


Дійсний
Дійсний
_
Віднімання
Цілий
Цілий


Дійсний
Дійсний
*
Множення
Цілий
Цілий


Дійсний
Дійсний
/
Ділення
Цілий
Дійсний


Дійсний
Дійсний
Div
Ділення націло
Цілий
Цілий
Mod
Залишок від ділення
Цілий
Цілий
Унарні



+
Збереження знака
Цілий
Цілий


Дійсний
Дійсний
-
Інверсія знака
Цілий
Цілий


Дійсний
Дійсний
Операції відношення виконують порівняння двох операндів і визна­чають значення виразу є істинним або хибним. Результат завжди має булівський тип одного з двох значень: True (істина) абоFalse (хибність).
Операція
Назва
Вираз
Результат
=
Дорівнює
А=В
True, якщо А дорівнює В
<>
Не дорівнює
А<>В
True, якщо А не дорівнює В
>
Більше
А>В
True, якщо А більше В
<
Менше
А<В
True, якщо А менше В
>=
Більше або дорівнює
А>=В
True, якщо А більше або дорівнює В
<=
Менше або дорівнює
А<=В
True, якщо А менше або дорівнює В
Результатом виконання логічного (булівського) виразу є логічне значення True або False.
 Виконання кожної операції відбувається з урахуванням її пріоритету. Пріоритети операцій зазначені в наступній таблиці:

Операція
Приоритет
Вид операції
Not, унарні «-»і «+»
перший (вищий)
Унарна операція
*, /, div, mod, and
другий
Операції типу множення
+, -, or
третій
Операції типу додавання
=, <>, <, >, <=, >=
четвертий (нижчий)
Операції відношення

Арифметичні вирази у якості операндів можуть містити імена функцій. Про поняття функції мова буде йти пізніше в курсі програмування, але стандартні функції (cossinx2 та інші) знайомі учням зі шкільного курсу математики, і використання таких виразів у курсі інформатики відрізняється тільки правилами запису (синтаксису). Так, наприклад, у програмуванні аргумент функції обов'язково береться в круглі дужки.
3. Команда присвоювання
Команда присвоювання має вигляд
<ім'я змінної> := <вираз>;
Дія команди. Обчислюється вираз і його значення надається змінній. Вираз призначений для описування формул, за якими виконуються обчислення. Вираз може містити числа, змінні, сталі, назви функцій,з'єднані символами операцій.
Змінна і вираз мають бути одного типу або узгодженими: змінним дійсного типу можна надавати значення виразів цілого типу, а змінним рядкового типу присвоювати значення виразів символьного типу,  але не навпаки.
Приклад. Розглянемо дію команд присвоєння в програмі Trykutnyk: p:=a+b+c; p:=p/2; s:=sqrt(p*(p-a)*(p-b)*(p-c)). Тут обчислюється значення периметра і воно надається змінній р, півпериметра (надається також змінній р) та площі (надається змінній s).
Основні стандартні функції та процедури

Функція
Тип
аргументу
Тип
результату
Математичний запис, коментар

abs(x)
integer, real
integer, real

arctan(x)
integer, real
real
arctgx

cos(x)
integer, real
real
cosx

sin(x)
integer, real
real
sinx

exp(x)
integer, real
real
ex

ln(x)
integer, real
real
lnx

sqrt(x)
integer, real
real

sqr(x)
integer, real
integer, real
X2

ord(x)
char упорядкований
integer
ASCII-код симв., номер елемента

succ(x)
упорядкований
упорядкований
повертає наступне значення х

pred(x)
упорядкований
упорядкований
Повертає попереднє
значення х

round(x)
real
integer
заокруглює  чис­ло х до цілого

trunc(x)
real
integer
відкидає дробову частину числа х

int(x)
real
real
відкидає дробову частину числа х

frac(x)
real
real
дробова частина числа х

odd(x)
integer
boolean
true (x - непарне), false   (x - парне)

random (x)
integer
integer
Генерує випад­кове число з діа­пазону від 0 до х

upcase(x)
char
char
замінює малу літеру латинської абетки на велику

процедури:
inc(x.y)
integer
integer
збільшує х на у
inc(x)
integer, char
integer, char
Збільшує x на 1
dec(x.y)
integer
integer
Зменшує x на у
dec(x)
integer, char
integer, char
Зменшує x на 1
        
Розглянемо приклади значень функцій і виконання процедур:
round(2.1)=2,                 int(2.1)=2.0,              x:=l; inc(x,5); (х=6),
round(6.8)=7,                 int(6.8)=6.0,              x:=V; inc(x); (x='b'),
trunc(2.1)=2,                  frac(2.1)=0.1,             x:=7; dec(x,3); (x=4),
trunc(6.8)=6,                  frac(6.8)=0.8,             x:='d'; dec(x); (x=V).
Це відповідає такому запису в Pascal:
exp (In (x)*  ).
Правила лінійного запису арифметичних виразів:
  1. вираз повинен бути записаний у вигляді лінійного ланцюжка символів, що обумовлено конструкцією пристрою введення інформації;
  2. не можна опускати знак операції множення;
  3. порядок виконання операцій одного пріоритету регулюється дужками;
  4. аргументи функцій записуються в круглих дужках.       
Перестановка змінних. Добре іллюструє роботу із змінними наступне завдання - поміняти місцями значення двох змінних а й b (тобто, щоб  в а з’явилося те, що було раніше в b, і навпаки). Здавалося б, можна записати так:
а := b;  b := а;
однак тут криється помилка. Давайте перевіримо це на  конкретному прикладі. Нехай а дорівнювало 10, а значення b дорівнювало 7. Після виконання оператора а := b в b залишиться 7; а дорівнюватиме 7, і тепер, якщо виконати оператор присвоювання b := а, там також виявиться 7. Ми втратили одне зі значень! Як же бути? Вихід полягає у використанні додаткової промієної змінної t, в якій ми збережемо значення змінної а до того, як його буде треба замінити новим:
t := а; а := b; b := t;
Корисно перевірити виконання даного фрагментe програми на конкретному прикладі:

a
b
t
Значення до
10
7
-
Після t:=a
10
7
10
Після a:=b
7
7
10
 Після b:=t
7
10
10
ІІІ. Формування практичних вмінь та навичок.
Виконайте завдання
1.            Скільки арифметичних операцій містить вираз:
1)(х + 1/2)*(у + 7/10) -3/4;
  1. (х + у)/(х у)/х*у;
  2. (х у) mod (x у) div 10;
  3. sqr (x mod у div y)/x - у;
  4. trunc (sin ((х - у)/х*у) div 10?
2.            Записати арифметичний вираз у вигляді звичайної алгебраїчної формули:
  1. a*b*c - a/(n*m)/(a + k/2);
  2. a*b/(c + d) + (c- d)/b*(a + 6);
  3. (a/(j + k/(2*x)) + c)/(j - sqr (sqrt (a)));
  4. x/(j + sqr (x)/(2 + x*sqr (x)/3));
  5. (x*sin (y z*(2 k)) + 1)/(0.7 - x/(y sqr (z)))*x/(a + b).
3.             Вказати порядок виконання операцій під час обчислен­
ня значення простого арифметичного виразу:
1)sqr(x) + sqr(sqr(i/));
  1. x*sqr (y)/sqr (2);
  2. a*b/c*d;
  3. sqrt (a) + 1 - sqr (b);
  4. -x*sqr (y)/sqr (sqr (2)).
4.     Нехай A5, В 4, С = З та Р = 0.5. Обчислити значення
простого арифметичного виразу:
1) (А В)/С*Р;                                             2) (А В)/С/Р;
3) (А В)/(С*Р);                                           4) -А*В sqr (С) + 0.5.
5. Перевести формулу у вигляд , доступний для програмування:
6.           Нехай задані такі значення дійсних змінних х = 0.5 та
h 0.1. Які значення матимуть ці змінні після виконання таких операторів присвоювання:
1) х:=2.5;                                  2) х := х + 2*h;   h:=h/2;
3) x:=x + h;      4) h := - hx := x hh := h*21
7.     Є три цілочислові змінні з поточними значеннями А = 3, В 5, С = 7. Які значення матимуть ці змінні в результаті вико­нання таких послідовностей операторів присвоювання:
  1. С :=А*В 2; В := В 1; А := С - sqr (B);
  2. Р := С; С := В; В := А; А := Р;
  3. В:=В+А; С:=С + В;
4) А :=А + 1;В:=А + В;С:=А В?
8.     Задані дійсні змінні х та у з поточними значеннями x = 0.8,
у = - 2.1 та цілочислові змінні k та j із поточними значеннями k = 5, j = - 3. Знайти значення, якого набуде відповідна змінна в результаті виконання кожного з наведених нижче операторів присвоювання із зазначенням його типу:
1) k:=х;                                            2)  k:=(k + 1)/10;
3) j:= 5 +у;                                       4)   x :=(k + 1)/10;
5) k:=k/3;                                       6)   j:=x + y;
7) x:=k;                                            8)   х:=х + у;
9) y:=k + x;                                      10) j:=x + 0.9.
9.     Чому дорівнюватимуть значення змінних х та у після виконання таких дій:
х:=2,   у:=5,   х:=у;   у := х?
IVПідсумок уроку
Домашнє завдання:
вивчити означення, що прочитані на лекції.
1.           Задати за допомогою оператора присвоювання такі дії:
  1. змінній z присвоїти значення, що дорівнює півсумі значень змінних х та у;
  2. подвоїти значення змінної а;
  3. значення змінної х збільшити на 0.1;
  4. за нове значення змінної а прийняти її поточне зна­чення, піднесене до квадрата;
  5. змінити знак у значенні змінної q.


2. Змінній а присвоїти значення, що дорівнює сумі значень змінних х та у, а змінній b - подвоєному їх добутку.
  1. Визначити, за допомогою якої послідовності дій можна поміняти місцями вміст змінних х та у:
1) х := х + у;                             2)х:=у;                 3) у := х у;                           4) х := х у;
у:=у-х;                                  х:=у х;                          х := у х;                        у := х у;
х:=у;                                     у:=х-у;                           у := у х;                        х:=х-у.
4. Записати у вигляді оператора присвоювання обчислення виразу у 3 Зх2 + х + 5, не використовуючи при цьому операції піднесення до степеня.
5. Яке значення будуть мати змінні х та у після виконання операторів:
А) х:= 178  у:= x Div 10      e:= x Mod 10;
Б) x:= 123   y:= 1234  x:= (x Div 100)Mod 10   y:= (y Mod 1000) Div 100;
B) x:= 3456  y:=12345  x:=(x Div 100)Mod 10   y:=(y Mod 1000)Div 10;
Г) x:= 23456  y:= 12345 x:= (x Mod 10000) Div 10    y:= (x Mod 100) Div 10.
6. Обчислити значення виразів
а)trunc(6,9);    б) round(6,9);  в)tranc(6,2); г)round(6,2);  д) trunc(-l,8); є) round(-l,8); ж) round(0,5); з)round(-0,5);  і)20 div 6;   к)123 div 0;
л) 3.0mod 3; м)20 mod 6; н) 2 div 5; о) 2 mod 5; п) 3 * 7div2 mod 7 / 3 - trunc(sin(1)); р) succ(round(5/2)-pred(3)).

Урок 12. Самостійна робота №1
            Мета: перевірити знання учнів з тем «Основні поняття мови Паскаль» та «Величини. Прості типи мови Паскаль».
1. Визначити тип результату виразів, якщо I, j, k: integer; x, y, z: real;
1) i*i+j*j+2*k/3;   2) cos(x)+3*sin(y)-z;  3) i+sqrt(j)/
2. Обчислити значення виразів, якщо A=2.5; B=7.8; C=-17.3; M=5; X=8.7
1) (A+B)/C*M;  2) 2+X*X/(X+(A+B)/5);  3) (A<B) AND (X+A<B) OR (C<M)
3. Змінній А присвоїти дробову частину додатнього числа Х.
4. Обчислити значення виразів:
а) trunc(7.8);  б) round(7.8); в) trunc(7.2);  г) round(7.2); д) trunc(-2.7);  е) round(-2.7); ж) trunc(0.5);   з) round(-0.5).
5.  Обчислити значення виразів:
а) 30 div 6; б) 30 mod 6; в) 30 div 5; г) 30 mod 5; д) 3 div 7; е) 3 mod 7;  ж) 137 div 0; з) 3.0 mod 6.
6. Вказати порядок виконання операцій у виразі:
-a mod b+a div b*c
7. Обчислити значення виразів:
а) 3*7 div 2 mod 7/3-trunc(sin(1)); б) succ(round(5/2)-pred(3)).
8. Визначити тип (цілий чи дійсний) виразу:
а) 1+0.0; б) 20/4; в) sqr(4); г) sqr(5.0); д) sqrt(25); е) sin(0); ж) succ(-3); з) trunc(-3.14).
9. Вкажіть тип констант:
а) 5; б) -4.0; в) 3.6·106; г) ‘567’; д) ‘ok’.
10. Запишіть наступні формули в лінійній формі запису:


Урок 13. Створення лінійних програм
Мета: дати поняття про загальну структуру програми, призначення розділів опису; синтаксис та семантику операторів введення/виведення; правила форматування при виведенні; навчитиправильно описувати величини; організовувати введення та виведення даних; програмувати простіший діалог.
Тип уроку: вивчення нового навчального матеріалу.
Хід уроку.
І. Організаційний момент.
ІІ. Викладання нового матеріалу.
1Структура програми. Програма складається із заголовка
program <ім'я програми>;
розділів описової частини

uses label
—     приєднання бібліотек та модулів;
—     оголошення міток (позначок);
const
— оголошення сталих;
type
— опис типів;
var
— оголошення змінних;
procedure function
—     оголошення процедур користувача;
—     оголошення функцій користувача
та виконуваної частини
begin
<розділ команд>
                end.
Заголовок та усі розділи, окрім останнього, є необов'язковими. Розділювачем між конструкціями (командами) програми є символ ";". У кінці програми завжди має стояти крапка.
Заголовок програмі надає програміст. В іменах, які користувач дає своїм програмам та змінним, великі і малі букви рівноправні: імена А та а (або MyName та myname) позначають один і той самий об'єкт.
У програму можуть входити коментарі. Коментар — фрагмент тексту програми, взятий в фігурні дужки або записаний так: (* коментар *). Коментар слугує для пояснення роботи програми і не впливає на виконання команд. Він може бути розташований у довільному місці програми.
2Розділи оголошення сталих і змінних. Усі величини, які входять у програму, повинні бути описані у розділі сталих (констант), якщо вони не мінятимуть значення протягом виконання Програми:
const    <стала 1> = значення 1>;
або у розділі оголошення змінних, якщо вони обчислюватимуться:

var
<список змінних 1> : <тип змінних 1>;
<список змінних n > : <тип змінних n>;
Елементи списків записують через кому. Кутові дужки <...> — це засіб формалізованого описування конструкцій мови. У конкретних програмах їх не використовують.
3Перша програма. Програма — це послідовність команд, за допомогою яких записують алгоритм розв'язування задачі. Програми (алгоритми) складають за таким принципом: вводять дані,визначають потрібне, виводять результати. Аналогічно розв'язують задачі з математики та фізики, але тут обчислення вручну виконувати не потрібно — їх виконає комп'ютер.
Розглянемо   програму   з   назвою   Trykutnyk   для   розв'язування задачі обчислення периметра р та площі s трикутника зі сторонами a = 5, b=3.6, с=4.2   за  формулою   Герона.   Усі   команди, наведені   в програмі, будуть детально розглянуті нижче.
program Trykutnyk;
uses Crt;                                  {Приєднуємо модуль Crt}
const a=5; b=3.6; c=4.2;              {Вводимо довжини сторін}
var p,s: real;                              {Оголошуємо змінні для]
begin                                       {периметра та площі}
clrscr;                                 {Очищуємо екран}
р:=а+Ь+с;                            {Обчислюємо периметр}
writeln('p=', p:5:2);               {Виводимо значення периметра}
р:=р/2;                               {Обчислюємо півпериметр}
s:=sqrt(p*(p-a)*(p-b)*(p-c));   {Визначаємо площу}
writeln('s=',    s:5:2);              {Виводимо значення площі}
writeln('Виконав Іванов П.');
readln
end.
Після виконання програми на екрані отримаємо:
р= 12.80 s= 7.43

Прості команди алгоритмів: присвоювання, введення і виведення.
4. Команди введення (read, readln) даних. Надавати значення змінним можна двома способами: за допомогою команди присвоювання, наприклад х:=5, або команд уведення даних з клавіатури. Другий спосіб робить програму більш універсальною, оскільки дає змогу розв'язувати задачі для різних значень змінних. Команда read має вигляд

Read(<змінна 1>,…<змінна n>);
Дія команди.  Виконання програми зупиняється.  Система переходить у режим    очікування    введення    даних    (екран    темний, миготить курсор).   Значення   цих   даних   користувач   набирає на клавіатурі через  пропуск  або  натискає після  кожного  даного  на клавішу  вводу. У результаті виконання цієї команди відповідним змінним будуть присвоєні конкретні значення.
Команда readln має вигляд
readln(<змінна 1>,...,<змінна n>);
Вона діє як команда read з тою різницею, що зайві дані у рядку введення  ігноруються.   Наступна  команда  вводу читатиме  дані  нового рядка.  Цю команду застосовують під час роботи з текстовими файлами.
Зауваження.   Команду   readln   без   параметрів   часто   використовують у середовищі ТР для MS-DOS, щоб оглянути результати виконання програми на екрані. Щоб після цього перейти у режим редагування   програми, потрібно   натиснути  на  клавішу  вводу.   Зауваження. Значення змінних логічного й перерахованого типу вводити з клавіатури не можна.
5Команди виведення (writewritelnданих. Для виведення на екран повідомлень та результатів обчислень використовують команди write та writeln:
write(<вираз 1>,< вираз 2>                       <вираз n>);
У списку виведення можуть бути сталі, змінні або вирази.
Дія команди. Сталі, значення змінних та виразів виводяться на екран у вікно виведення, яке можна переглянути за допомогою комбінації клавіш Alt+F5. Команда
writeln(<вираз 1>,...,<вираз п>);
діє майже так само як і команда write; різниця така: наступна після неї команда write чи writeln буде виводити значення на екран у новому рядку.
Для переходу на новий рядок екрана чи для пропуску рядка використовують команду  writeln без параметрів.
6. Форматний вивід. Команди write та writeln можуть здійснювати форматний вивід даних. Форматування — це подання результатів у наперед заданому користувачем вигляді. Для цього після виразу через двокрапку записують число (:n) — кількість позицій на екрані, які треба надати для виведення значення цього виразу. Формат :n застосовують для даних цілого та рядкового типів. Під час виведення даного дійсного типу зазначають загальну кількість позицій для всіх символів (n) та кількість позицій для дробової частини (m),тобто формат має  вигляд :n:m.
Задача  1.  Дано  координати  трьох   вершин   трикутника А(1;1), В(2;2) та С(-1;2). Обчислити медіану тb  та радіус описаного кола r.
 program TrykutnykNew;
uses Crt;
var xl,yl,x2,y2,x3,y3,a,b,c,mb,r,x,y,p,s: real;
begin
clrscr;
writeln('введіть координати:');
readln(xl,yl,x2,y2,x3,y3);
a:=sqrt(sqr(x3-x2)+sqr(y3-y2));  {Обчислимо довжини}
b:=sqrt(sqr(xl-x3)+sqr(yl-y3));  {сторін трикутника}
c:=sqrt(sqr(xl-x2)+sqr(yl-y2));
x:=(xl+x3)/2;                                         {Обчислимо координати)
y:=(yl+y3)/2;                                         {середини сторони b)
mb:=sqrt(sqr(x-x2)+sqr(y-y2));    {Обчислимо медіану mb}
p:=(a+b+c)/2;                                       {Обчислимо півпериметр}
s:=sqrt(p*(p-a)*(p-b)*(p-c));                    {Обчислимо площу}
r:=a*b*c/(4*s);                                    {Обчислимо радіус}
writeln('mb=',mb:5:2);                           {Виведемо результати}
writeln('r=',r:5:2);                                 {Виведемо радіус}
readln
end.

Задача 2. Написати програму визначення суми цифр тризначного числа.
program proba_l;
var x, rez: integer; begin
writeln(‘Задайте тризначне число:');
readin(x);
rez:=(x mod 10)+((xdiv 10) mod 10)+(x div 100);
writeln(‘ Сума цифр заданого числа: ‘, rez); readln;
end.
7. Зворотний запис числа. Дано тризначне число х = abc (а, bc - його цифри). Потрібно одержати число, записане тими ж цифрами, але у зворотному порядку. Тобто, якщо дано число 128, то одержати треба 821. Перед нами встає завдання знаходження цифр числа — a, b і с. Розмістити ці цифри у зворотному порядку легко — результат буде дорівнювати х = 100 с + 10 b + а. Найпростіше знайти цифру одиниць с — вона буде дорівнювати залишку від ділення числа х на 10 (наприклад, якщо х = 128, те х mod 10 буде 8, що нам і потрібно). Отже,
с   := х mod  10;
Щоб знайти b, спочатку знайдемо ab, рівне х, діленому націло на 10 (для 128 це буде 12), а потім уже визначимо у — цифру одиниць числа, що вийшло після останніх дій :
b   := х  div  10 mod   10;
Знайти а просто — це результат ділення х націло на 100:
а   :.= х  div  100;
Тепер можна написати всю програму:
program naoborot;
var x, a, b, з : Integer;
begin
Write('x==>');
ReadLn(x);
с := x mod 10;
b := x div 10 mod 10;
a := x div 100;
Write(100 * з + 10 * b + a) ;
end.
ІІІ. Формування практичних вмінь та навичок.
Задача 1. Скласти програму обчислення:
  1. Середнього арифметичного чисел А, В, С;
  2. Площі прямокутного трикутника з катетами А і В;
  3. Суми цифр тризначного числа А.
Задача 2. Обчислити добуток трьох дійсних чисел.
Задача 3. Обчислити значення виразу 
де а й b — дійсні числа.
Задача 4. Дано чотиризначне число х abcd. Одержати число, записане тими ж цифрами у зворотному порядку (у = dcba).
Задача 5. Дано тризначне число х = abc. Знайти суму квадратів його цифр.
IV. Підсумок уроку.
Домашнє завдання.
Підготувати відповіді на запитання:
  1. Яку структуру повинна мати правильно написана програма на мові програмування Паскаль?
  2. Які блоки в програмі обов’язкові, а які ні?
  3. Що таке лінійна програма?
  4. Які ви знаєте вказівки введення та виведення інформації?

Скласти програму, задавши вхідні дані самостійно.
  1. Радіус Місяця 1740км. Обчислити площу поверхні S=4πr2 та об’єм планети V=(4/3)πr3.
  2. Обчислити кінетичну E=mv2/2 та потенціальну P=mgh енергії тіла заданої маси m, яке рухається на висоті h зі швидкістю v.
  3. Скільки секунд мають доба, тиждень, рік?
  4. Задано двозначне число. Визначити суму цифр цього числа.

Урок 14. Розв’язування задач на створення лінійних програм
Мета: формування практичних навичок складання програм з лінійними алгоритмами; виховання інформаційної культури.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опорних знань учнів.
Повторення понять величини, типів величин, команди присвоювання, правил оформлення виразів та пріоритетів виконання операцій мовою Паскаль.
Розв’язання прикладів на повторення:
Приклад 1. Якщо значення цілочисельних змінних таке: Х= 15, Y25, Z= 8, то чому дорівнюватимуть значення цих змінних після виконання операцій присвоювання:           
X   := sqrt(Y)*2;                                                                            
Y   := Y-2;                                                                                    
Z   := Y div mod 3;                                                                    
Очікувана відповідь: Х:=  sqrt(25)*2 —тут присвоєння не може 
бути виконаним, оскільки значення квадратного кореня — дійсне число, а X—ціле число  
Y:= 25-2                            Y = 23                                                 
Z:= 23 div mod 3       Z = 2                                                        
Приклад 2. Написати команду присвоєння, що надає значення середнього арифметичного змінних Х та  У змінній Z (Tип змінних дійсний).  
Очікувана відповідь: Z   : =   (X  + У)   /  2    
Приклад 3. За допомогою яких операторів присвоєння можна поміняти  місцями значення двох змінних Х та Y.
Очікувана відповідь: Для цього необхідне використання третьої змінної того ж типу, що й змінні X та У, наприклад, Z:   Z := X; X :=Y; Y := Z
ІІ. Формування навичок.
Розв’язування задач
Задача 1.
  Якщо на одну шальку терезів посадити Даринку, яка важить N кг, і Наталку, яка важить на 5кг менше, а на іншу насипати М кг цукерок, то скільки кілограмів цукерок доведеться з'їсти дівчаткам, щоб шальки терезів зрівноважилися?
Введемо змінні для зберігання результатів: N— вага Даринки; М — вага цукерок; Р— вага цукерок, які необхідно з'їсти дівчаткам.
Тоді програма для розв'язання задачі буде такою:
Program Task_1;
Uses  crt;
Var M, N, P : real;
Begin
Clrscr;
Write('Введіть вагу Даринки'); Readln(N);
Write('Введіть вагу цукерок, що лежать на терезах'); Readln(M);
Р :=N+N-5-M; {N-5- вага Наталки)
Writeln("Дівчаткам необхідно з'їсти ' ,Р, 'кг цукерок.');
 Readln;{Процедура затримує зображення на екрані до натискання клавіші Enter}
End.
Задача 2
Визначити, яку платню одержить на фірмі сумісник за виконану роботу, якщо йому нараховано S грн., а податок становить 20%.
Необхідні змінні: S — сума нарахувань сумісника; Р—реальна платня, яку він одержить у касі (за умовою вона становить 80 % від нарахувань).
Програма має наступний вигляд:
Program Task_2;
Uses crt;
Var  P,S   :   real;
Begin
Clrscr;
Write ('Введіть суму нарахувань робітника') ; Readln(S);
P  := S*0.8;
Writeln('Платня сумісника становить:',  P:8:2);
Readkey; 
End.
3адача 3. Від міста А до В автомобіль їхав t1 = 5 год з середньою швидкістю v1 = 70 км/год, від В до С — t2 = 4 год. зі швидкістю v2 = 75 км/год. Визначити відстань між містами.
program Distance;
var t1, vl, t2, v2, ab, be, ac : integer;
begin
tl := 5 ; t2 := 4;  vl := 70 ; v2 := 75;
ab := vl * tl; be := v2 * t2; ac :== ab +bc;
writeln (ab:6, bc:6, ac:6);
readln
end.
Виконаємо програму і на екрані отримаємо:     350    300    650.
Завдання. Модифікуйте програму на випадок чотирьох міст.
Задача 4Автотранспортна фірма «Радар» купує п'ять (kl) мікро­автобусів «Пежо» по 32100 грн. (с1) за автобус і три (к2) мікроавтобуси «Івеко» по 29500 грн. (с2). Яку суму (suma) потрібно заплатити?
program Radar;
var kl, cl, k2, c2, suma : integer;
begin
kl := 5 ; k2 := 3;  cl := 32100 ; c2 := 29500;
suma := kl * cl + k2 * c2;
writeln (suma:8);
readln
end.
Виконаємо програму, і замість результату отримаємо повідомлення про помилку. Виявляється, що значення змінної suma є 249 000, і воно вийшло за допустимі межі, визначені для типу integerОсь чому правильно оголосити змінні потрібно так:
var kl, k2, cl, c2 : integer;   suma : longint; .
Отже, щоб розв'язати задачу, потрібна додаткова пам'ять, оскільки змінні типу longint займають удвічі більше пам'яті, ніж змінні типу integer.
Завдання. Виконайте програму Radar і поекспериментуйте з різними цінами. Модифікуйте програму, якщо купують три марки автобусів.
Задача 5. Ввести з клавіатури будь-яке тризначне число. Визначити суму його цифр і вивести цифри числа у зворотному порядку.
Нехай змінна а міститиме значення заданого числа. Цифри числа позначимо так: і — кількість сотень, j — кількість десятків, k — кількість одиниць, а їхню суму — s. Для визначення цифр деякого числа використовують операції div та mod.
program MyNumber; var a, i, j, k, s : integer;
begin
write('Введіть  число a: ');read (a);
і := a div 100;     {Отримаємо кількість сотень}
j := a div   10 mod 10; {Отримаємо к-сть десятків}
k := a mod 10;   {Отримаємо кількість одиниць}
s := і + j + k;
writeln('Cyмa цифр числа а =   ', s);
writeln(k,j,i)
 end.
Виконаємо програму. Введемо число 235 - отримаємо результат суми цифр числа а =   10

Вправи та задачі для самостійного розв’язання
  1. Швидкість світла 299792 км/с. Яку відстань долає світло за хвилину, годину, добу?
  2. Квіткова клумба має форму круга. Обчисліть її периметр і площу за заданим радіусом.
  3. Тіло падає з прискоренням g. визначіть пройдений тілом шлях  h=gt2/2 після першої та другої секунди падіння.
  4. Яка маса золотої кульки заданого радіуса, наприклад 0.02м, якщо густина золота 19300кг/м3? (M=r·V, V=(4/3)πr3)
  5. Яка маса зливка срібла у вигляді куба з заданою стороною, наприклад 6см, якщо густина срібла 10500кг/м3?
ІІІ. Підсумок уроку.
Домашнє завдання. Виконайте вправи та задачі.
  1. Нехай а=0. Якого значення набуде змінна а, якщо команду а:= а+2 виконати: а) один раз; б) два рази підряд; в) три рази підряд.
  2. Нехай а=1. Якого значення набуде змінна а, якщо команду а:= а*2 виконати: а) один раз; б) два рази підряд; в) три рази підряд.
3. Які значення матимуть змінні (та якого вони є типу) після виконання
команд присвоювання, якщо раніше були виконані команди А:=2; В:=5; С:=0:
а)                А1 := (2*А - 3*В)/(11-2*В);
б)                А2 := А/2 + В+5*А/(В+С);
в)                 A3 := 3 + 25 div 4 + 7 mod 3;
г)                 А4 := 110 div 100 +110 mod 100 + 110 mod 10;
д)                A5 := В div A + В/А + В mod А  (відповідь: 5.5)?
  1. Уведіть тризначне ціле число. Визначте суму і добуток крайніх цифр.
  2. Уведіть чотиризначне число. Виведіть його цифри а) у стовпчик; б) у зворотному порядку.
  3. Уведіть  п'ятизначне ціле число. Обчисліть суму його цифр.
7.   Задано координати вершин трикутника у площині: (х1 у1), (х2; у2),
3; у3). 
Обчисліть довжини його сторін (складіть програму).
Довідка. Відстань між двома точками, які задані координатами (х1 у1та 2; у2), визначають так:   .
  1. Задано координати вершин чотирикутника у площині: (х1 у1), (х2; у2), (х3; у3), (х4; у4). Складіть програму для обчислення довжини його сторін.


Урок 15-16. Практична робота №1 «Створення лінійних програм»
Мета: формування практичних навичок складання програм з лінійними алгоритмами; виховання інформаційної культури.
Тип уроку: практична робота
Хід уроку.
І. Повторення правил поведінки в комп’ютерному класі.
ІІ. Актуалізація опорних знань учнів.
Дати відповіді на запитання:
  1. Яку структуру повинна мати програма на мові Паскаль?
  2. Які блоки в програмі обов’язкові, а які ні?
  3. Що таке лінійна програма?
  4. Які оператори використовують для введення/виведення інформації?
ІІІ. Виконання практичної роботи.
1. Яка маса Землі? Сучасні наукові дослідження супроводжуються обчисленнями, які не під силу виконати вручну одній людині чи навіть багатьом людям. Однак комп'ютер потрібний не лише для обчислень. Сьогодні він дає змогу відкрити нові явища в природі, уточнити наші знання про вже відомі фізичні факти тощо.
Розглянемо задачу визначення маси нашої планети: скласти алгоритм і програму для обчислення маси Землі (М) у кілограмах, а також її густини (р). У скільки разів (п) густина Землі більша, ніж густина води (густина води — 1000 кг/м3)?
Розв'язування. У курсі фізики є дві формули для сил F1 і F2які діють на тіло масою т, яке перебуває на Північному полюсі Землі:
Такі сталі були визначені експериментально з деякою точністю:
g — гравітаційна стала 6,67*10-11;
R — радіус Землі 6,37*106 м;
g — 9,8 м/с2.
Згідно із законами фізики рівняння F1 = F2 є математичною моделлю задачі. З нього визначаємо М,записуємо формулу для об'єму Землі та її густини р і шуканого числа п — отримаємо метод розв'я­зування і алгоритм (як послідовність формул):
М= gR2 /g ;π
V = (4/3)πR3  {Це формула об'єму кулі}; r M/Vn = r/1000. Використаємо латинські імена gamma та rо замість відповідних грецьких літер і складемо програму.
program MyPlanet;
const g = 9.8; gamma - 6.67E-11; r = 6.37E+6;
var M, V, ro, n : real;
begin
M:=g*r*r/ gamma; V := 4/3 * pi * r * r * r; ro := M / V;
n := ro /1000;
writeln('Maca =', M, ' густина =', ro);
writeln('густина Землі більша, ніж води в ',n:4:1, "разів') end.
Виконайте програму, отримайте результати і перепишіть їх у зошит. Яка маса Землі?
2.Складіть програми для обчислення значень виразів:
а) 5х5 - 6,3x2(sinπ/7 - tg3a) + 8,12;
б) cosl/3asin2a + 4,5х3 - 2,6х + 2,3.
3. Складіть графічну схему алгоритму і програму для обчислення кіне­тичної E=mv2/2 і потенціальної енергії тіла P=mgh маси т, що рухається на висоті h зі швидкістю vВхідні дані задайте самостійно.
4. Складіть графічну схему алгоритму і програму для обчислення площі основи S=πR2 і об'ємуV=1/3Sh конуса за відомими радіусом основи r і висотою hВхідні дані задайте самостійно.
Тексти програм і результати обчислень записати в зошит.



Урок 17. Модуль CRTГрафічний режим роботи
Мета: ознайомити з понятями графічного режиму роботи монітору, ініціалізації графічного режиму; формування навичок роботи з процедурами та функціями для побудови графічних зображень; виховання інформаційної культури.
Тип уроку: вивчення нового навчального матеріалу
Хід уроку.
І. Організаційний момент.
ІІ. Викладання нового матеріалу.
1. Ініціалізація графічного режиму
Після запуску інтегрованого середовища Турбо Паскаля включається текстовий режим і для використання графіки необхідно виконати ряд дій по переходу в графічний режим.
Насамперед необхідно підключити модуль Graph Турбо Паскаля. У цьому модулі описані процедури й функції, призначені для роботи із графічним екраном, а також деякі вбудовані константи й змінні, які можуть бути використані в графічних програмах. Для того щоб скористатися всіма можливостями модуля Graph, на початку програми (після її заголовка) необхідно розмістити оператор: uses Graph;
Основну частину модуля становлять процедури виводу основних графічних елементів, таких як точки, відрізки прямих ліній, дуги, цілі кола та ін. Такі елементи називаються графічними примітивами. Інша група процедур призначена для керування графічним режимом. Усього в бібліотеці модуля Graph перебуває більше 50 процедур і функцій для роботи із графікою.
Далі варто визначити тип відеоадаптера, установленого на комп'ютері. Відеоадаптером називають набір мікросхем, керуючих роботою конкретного дисплея. Можна доручити з'ясувати тип відеоадаптера програмі.
Як майже всякий фізичний пристрій комп'ютера, відеоадаптер може працювати тільки в тому випадку, коли завантажена програма, що управляє його роботою. Така програма називаєтьсядрайвером пристрою (driver у перекладі з англійської мови — «шофер», так що драйвер є «водієм», що управляє роботою пристрою). Графічні драйвери містяться у файлах з розширенням .BGI(наприклад, EGAVGA.BGI або IBM8514.BGI). У Турбо Паскалі вже є необхідний набір .BGI-Файлів, тому програмістові залишається лише вказати у відповідному місці програми розташування каталогу, що містить ці файли.
Графічний режим спочатку треба задати. Це виконують так:
<розділи описів та оголошень конкретної програми>;
var driver, mode : integer;    {Для характеристик дисплея}
begin
driver:= detect; {detect стандартна стала}
initgraph (driver, mode, "); {Задания графічного режиму}
if graphresult < > then begin
writeln('графічний режим задати не вдалося');
halt                {Стоп}
end;
<текст конкретної програми з графічними командами>
end.
2. Процедури і функції для графічних побудов. Розглянемо процедури модуля Graph,призначені для графічних побудов.
initgraph (driver, mode, <шлях до драйвера>) — задає графічний режим. Шлях до драйвера зазначають (у лапках), якщо він не є в тому ж каталозі, що й файл turbo.exe;
detectgraph (<драйвер>, <режим>) — повертає значення характеристик дисплея;
setcolor (<колір>) — задає колір майбутнього зображення;
setbkcolor (<колір>) — задає колір тла;
putpixel (x, у, <колір>) — висвітлює точку (х,у) заданим кольором;
line (xl, yl, х2, у2) — рисує лінію між двома точками;
lineto (х, у) — рисує лінію від поточної точки до точки (х,у);
linerel (dx, dy) — рисує лінію від поточної точки з заданими приростами;
rectangle (xl, yl, x2, y2) — рисує прямокутник з заданими координатами діагонально протилежних вершин (лівої верхньої та правої нижньої);
setviewport (xl, yl, x2, y2, true) — задає координати нового
графічного вікна. Логічна стала true задає режим
відсікання зображення, яке виходитиме за межі вікна;
bar (xl, yl, x2, y2) — рисує зафарбований прямокутник; bar3d (xl, yl, х2, у2, <об'ємна глибина>, true) — рисує паралелепіпед;
circle (х, у, R— рисує коло з радіусом R і центром у (х,у); arc (х, у, <початковий кут>, <кінцевий кут>, <радіус>) — рисує дугу; pieslice (x, у, <початковий  кут>,   <кінцевий  кут>,   <радіус>) —      рисує зафарбований сектор;
ellipse (x, у, <початковий кут>, <кінцевий кут>, <горизонт. радіус>, <вертик. радіус>) — рисує еліпс чи дугу еліпса;
setfillstyle (<заповнення>, <колір>) — задає спосіб заповнення замкнутої області залежно від значення параметра за­повнення: 0 — заповнення кольором фону, 1 — суцільне заповнення, 2 — заповнення товстими горизонтальними лініями,     3 — заповнення нахиленими лініями, ...,   10 —            заповнення точками, 11— щільне заповнення точками;
floodfill (x, у, <колір межі>)  —  заповнює замкнену область, що містить точку (х,у);
closegraph — закриває графічний режим;
outtext (<текст>) — виводить заданий текст з поточної позиції;
outtextxy (х, у, <текст>) — виводить текст у заданому місці;
settextstyle (<шрифт>, <напрям>, <розмір>) — задає вигляд символів, напрямок виведення: 0 — горизонтально чи 1 — вертикально, і розміри символів: 1, 2, 3.
3. Розглянемо деякі функції модуля Graph.
graphresult — повертає код помилки, якщо неможливо задати графічний режим, і 0 — у разі задания;
getmaxx — повертає значення розміру екрана уздовж осі ОХ;
getmaxy — повертає значення розміру екрана уздовж осі 0У;
getcolor — повертає значення поточного кольору;
getcolor(x.y— повертає значення кольору точки (х,у);
getx, gety — повертають координати поточного пікселя.
4. Кольори. Кольори задають числами або англійськими назвами:
black=0 - чорний;                         darkgray=8 - темно-сірий;
blue=l - синій;                               lightblue=9 - яскраво-синій;
green=2 - зелений;                        lightgreen=10 - яскраво-зелений;
суап=3 - блакитний;                     lightcyan=ll - яскраво-блакитн.;
red=4 — червоний;                       lightred=12 — яскраво-червоний;
magenta=5 - фіолетовий;             lightmagenta=13 - яскраво-фіол.;
brown=6 — коричневий;               yellow=14 - жовтий;
lightgray=7 - світло-сірий;             white=15 - білий.
Задача 1. Нарисувати різними кольорами десять концентрич­них кіл, які мають спільний центр по середині екрана, тобто в точ­ці з графічними координатами (320; 240), і описати навколо кіл червоний прямокутник.
program Circle10;
uses Crt, Graph;
var driver, mode, r : integer;
begin  clrscr;
driver := detect; initgraph( driver, mode, ");
r := 10;        {Радіус першого кола 10 пікселів)
while r <= 100 do
begin
setcolor(r div 10); circle(320, 240, r);
r := r + 10 end; setcolor(red);
rectangle(220, 140, 420,340); readln
end.
Задача 2. Нарисувати емблему. У верхній лівій частині графічного екрана на чорному фоні нарисувати блакитний квадрат, а в ньому   -   чорне   коло,   зафарбоване   жовтим   кольором.   У   центрі емблеми чорними літерами написати слово "Балта".
program Emblema;
uses Crt, Graph;
var driver, mode: integer;
begin  clrscr;
driver:—detect;
initgraph(driver,mode,");
setbkcolor(O);
setcolor(3);
rectangle(100,0,300,200);
setfillstyle(l,3);
floodfill(200,100,3);
setcolor(14);
circle( 200,100,100);
setfillstyle(l,14);
floodfill(200,100,14);
setcolor(O);
circle(200,100,100);
settextstyle(0,0,3); outtextxy(135,95, 'Балта'); readln end.
 Побудова графіків функцій. Графічні команди використовують також для рисування графіків функцій.
Задача3. Зобразити на екрані графік функції у=sinx.
program Grafiksin;
uses crt, graph;
var driver, mode, i, x1, y1 : integer; x, у : real;
begin    clrscr; driver := detect;
initgraph(driver, mode,");
setcolor(4); setbkcolor(11);
setlinestyle(0,1,3);
line(20, 240, 450, 240); line (60, 340, 60, 120);
x:=0;    x1:=60; y1:=240;
Moveto(x1, y1); setcolor(8);
while x<=2*pi+0.1 do  {розгл. відрізок [0;2π]}
begin
y:= sin(x);
y1:= - trunc(100*y) + 240;
lineto(x1, y1);
x:=x+0.1; x1:=x1+5
end;
settextstyle(0, 0, 1); outtextxy(60, 245, '0');
outtextxy(360, 245, '6.3'); settextstyle(0, 0, 2);
outtextxy(80, 100, ‘Графік функції sin(x)')
 end.
Задача 4. Різнобарвні смуги. Намалювати 14 різнобарвних вертикальних смуг, пофарбованих  14 кольорами (крім білого й чорного), можна за допомогою процедур малювання ліній і установки кольору:
program stripes;
uses Graph;
 var gd,   gm,   c,   x,  у,   і   :   Integer;
begin
gd   := Detect;
InitGraph(gd, gm, '');
SetBkColor(white);
ClearDevice;
x := 0;
for с := 1 to 14 do
begin
x := x + 35;
SetColor(c) ;
Line(x, 0, x, 400);
for і :=1 to 5 do
Line(x + і, 0, x + і, 400) ;
{Малюємо 6 смуг}
end;
Readln;
CloseGraph;
end.
Задача 5. Малюємо Королеву Краси. Ну от, тепер можна спробувати намалювати царівну Будур або хоча б схожого на неї зображення.
program man; uses Graph;
var gd,   gm   :   Integer;
begin
gd   :=  Detect;
InitGraph(gd,  gm,  ' ');
SetFiUStyleU,   Green);{Трава}
Bar(0,   350,   639, 479);
SetFillStyle(1, LightBlue);{Небо}
FloodFill(0,   0, Green) ;
SetColor(Red);
Circle(320, 200, 19);{Голова}
SetLineStyle(0, 0, 3);
Rectangle(300, 220, 340, 300);{Тулуб}
Line(320, 300, 300, 350);{Ноги}
Line(320, 300, 340, 350);
Line(300, 240, 250, 250); {Руки}
Line(340, 240, 390, 250);
SetFillStyle(1, Red);
FloodFill(320, 200, Red)
FloodFill(320, 230, Red)
SetColor(Yellow) ;
Circle(315, 190, 2):, {Ліве око}
Circle(325, 190, 2); {Праве око}
Line(315, 210, 325, 210) {Рот}
Readln;
CloseGraph;
end.
Ну як? Намальована програмою дівчина... звичайно, далеко не прекрасна дочка султана! Але в Турбо Паскалі є досить засобів і можливостей для того, щоб створити по-справжньому гарну картинку.
Задача 6Павутина. Програма web («павутина») виводить на екран зображення, складене з відрізків прямих і концентричних кіл. Загальний центр точки перетину відрізків і кіл знаходиться в центрі екрана. Тут використовуються функції GetMaxХ і GetMaxY. Графічні координати правого нижнього кута екрана рівні (GetMaxХ, GetMaxY).
У програмі використовується процедура Delay модуля Crt. Ця процедура припиняє виконання програми на зазначену кількість мілісекунд.
Програма припиняє свою роботу при натисканні клавіші Enter.
program web;
uses CRT, Graph;
var і : Word; gd, gm : Integer;
begin
gd := Detect;
gm := 0;
InitGraph(gd, gm, '');
SetBkColor(Blue);
SetColor(LightCyan) ;
Line(0, 0, GetMaxX, GetMaxY);
Delay(1000);
SetColor(Yellow);
Line(0, GetMaxY, GetMaxX, 0);
Delay(1000);
SetColor(LightGreen) ;
Line(0, GetMaxY div 2, GetMaxX, GetMaxY div 2);
Delay(1000);
SetColor(LightGray) ;
Line(GetMaxX div  2,   0,   GetMaxX div  2, GetMaxY);
Delay(1000);
SetColor(LightRed);
for   і:=2   to 20 do
begin SetColor(16  -   і   div 2);
Circle(GetMaxX div  2,   GetMaxY div  2, GetMaxY div  i);
Delay(500  -   15   *   i);
end;
ReadLn;
 CloseGraph;
 end.
Підсумок уроку.
Домашнє завдання.
Побудувати трикутник з вершинами в точках (100, 100), (150, 100), (80, 70). Колір фону – сірий, колір ліній – червоний.

Урок №18. Елементи комп’ютерної графіки.
Мета: ознайомлення з функціями роботи в графічному режимі; формування навичок роботи в графічному режимі екрану; виховання інформаційної культури.
На цьому уроці пропоную розв'язати цікаві задачі із застосуванням графічного режиму роботи монітору.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опорних знань учнів
- Як задати графічний режим?
- Як нарисувати пряму лінію?
- Як нарисувати коло?
ІІ. Формування практичних навичок та вмінь.
Розв’язування задач.
Задача 1.
 Умова: Скласти програму, яка при натисканні клавіші Д (день) малює сонце, а при натисканні клавіші Н (ніч) малює місяць.
Розв'язування: По-перше, для вибору малюнку (день чи ніч) введемо символьну змінну Chзалежно від значення якої і будемо малювати сонце чи місяць. По-друге, малювання сонця складається з малювання зафарбованого кола процедурою FillEllipse (ця процедура малює зафарбований еліпс, але, якщо еліпс має однакові радіуси по осям, то він перетворюється на коло) та кількох прямих (променів), а місяць можна отримати, якщо накласти одне на одне два кола різних кольорів (жовтого та чорного) з деяким зміщенням. Програма має вигляд:
Program Example_1;
Uses graph,crt;   {Підключення бібліотек}
Var GraphDriver,GraphMode:integer;
Ch:char;
Begin   Clrscr;
Writeln(‘Введіть Ваш вибір:   Д - день,   Н - ніч.’);
Readln(ch);
GraphDriver:=VGA;   {Ініціалізація графічного режиму}
GraphMode:=VGAHi;
InitGraph(GraphDriver,GraphMode," );
 if   (Сh='Д')   or   (Сh='д')     then
 begin setfillstyle(l,yellow);
setcolor(yellow);
fillellipse(100,80,50,50);   {Малювання сонця}
{Малювання променів}
line(100,80,250, 80) ;    line(100,80,240,30) ;
line(100,80,200,250);   line(100,80,230,180);
line(100,80,150,250);   line(100,80,100,300);
line(100,80,50,380);   line(100,80,20,280) ;
line(100,80,0,150);   line(100,80,0,80);
line(100,80,0,30);   line(100,80,10,0) ;
line(100,80,50,0);   line(100,80,100,0);
line(100,80,150,0);
 end
else
if   (Ch='H')   or   (Ch='H')     then
begin
setfillstyle(1,yellow);   setcolor(yellow);
fillellipse(100,80,50,50);   setfillstyle(1,black);
setcolor(black);   fillellipse(130,80,50,50);
end
else writeln (' Ви помилилися!') ;
Readkey;      Closegraph;
End.
Задача 2. Умова: «Зоряне небо». Заповнити екран монітора різнокольоровими точками, кількість яких, колір та координати визначаються випадково.
 Розв'язання: Для вибору випадковим чином вказаних величин скористуємось функцією Randomщо вибирає числа із заданого діапазону, д причому врахуємо, що, якщо в дужках після функції вказане ціле число,  то будуть генеруватися цілі числа в діапазоні від 0 до вказаного числа. Зверніть увагу на те, що всього можливих кольорів 16 (від 0 до 15), але на чорному тлі чорний колір (з нульовим номером) не видимий, тому можна скористатися такою формулою для отримання ненульових цілих чисел в діапазоні від 1 до 15:  random (14) +1
Аналогічно можна вибрати координати та кількість «зірок» (точок) на екрані, причому відслідкувати, щоб кількість ніколи не була нульовою. Сама «зірка» (точка) на екрані може бути отримана процедурою Рutpixelщо задає колір та координати точки виведення. Програма має вигляд:

Program Example_2;
Uses  graph;
Var GraphDriver,GraphMode:integer;
x,y,color,N:integer;   {x,y - координати точки  -   'зірки', color - колір точки,  N - кількість точок)
і:integer;   {і - змінна циклу)
Begin Randomize;
GraphDriver:=VGA;
GraphMode:=VGAHi; InitGraph(GraphDriver,GraphMode,' ') ;
{Генерується кількість точок в діапазоні від 200 до 1200} N:=random(1000)+200;
for і:=1  to N do
begin x:=random(640);   у:=random(480);   color:=random(14)+1; putpixel (x,y,color) ;  {Виведення піксела заданого кольору
color у задані координати екрану х та у}
 end;
Readkey;     Closegraph;
End.
Запитання для перевірки засвоєння знань
  1. Які процедури визначають тип ліній?
  2. Як скористатися процедурою малювання еліпса для малювання кола?
  3. Що задає процедура PutPixel?
  4. Якими процедурами визначається тип зафарбування?
  5. Які процедури дають змогу намалювати пряму лінію?
ІІІ. Підсумок уроку
Домашнє завдання:
Побудувати і замалювати зеленим кольором круг радіусом 100, центр якого співпадає з центром екрана дисплея. Колір фону – малиновий.

Урок 19-20. Практична робота №2
Мета: формування навичок роботи з діловою графікою засобами мови Паскаль на прикладах розв'язання задач; виховання інформаційної культури.
На цьому уроці пропонується показати можливості мови Паскаль при побудові графіків функцій та різного виду діаграм.
Тип уроку: формування навичок
Хід уроку.
І. Повторення правил ТБ
ІІ. Практична робота
Виконайте завдання.
Умова: Зобразити на екрані монітора декартову систему координат, початок якої збігається з центром екрана.
Розв'язування: Для малювання осей х та у слід скористатися про­цедурою lineпричому координати початку та кінця цих прямих обчислити неважко, тому що вони мають розміщуватись в центрі екрану. Градуювання осей робиться теж за допомогою коротких відрізків довжиною 8 пікселів, що розташовані з кроком step пікселів (крок в програмі заданий у вигляді константи, хоча можна його задавати і іншим методом). Підписи на осях можна зробити таким чином: число, що треба написати, переводиться в рядок процедурою strа потім виводиться на екран процедурою OutTextXyЗверніть увагу на те, що на від'ємному проміжку вісі до числа ліворуч дописується знак «-» командою S := '-' +Sде S - рядок, що містить підпис під поділкою. Для якісного оформлення малюнку використовується процедура settextjustify (1,1), що забезпечує відцентроване виведення тексту у вказану позицію. Програма, що реалізує алгоритм, має вигляд:
Program Example_1;
Uses graph; {Підключення бібліотек}
Const Step=25; {Крох між поділками на осях}
Var GraphDriver,GraphMode:integer;
x,у:integer; {x,y - координати центру дехарт.сист. коорд.}
r:integer;  {r - відстань від центру координат до чергової поділки}
S:string;   {S - рядок, де зберігається символьне значення підпису для поділки}
Begin   Randomize;
GraphDriver:=VGA;  {Ініціалізація графічного режиму}
GraphMode:=VGAHi;
InitGraph(GraphDriver,GraphMode,'');   {Малювання осей}
line(0,240,640,240);   
 line(320,0,320 , 480) ;
 {Малювання стрілочок на кінцях осей}
line(630,235,640,240); line(630,245,640,240);
line(315,10,320,0); line(325,10,320,0);
{Підписи на осях)
outtextxy(330,5,'Y'); outtextxy(630,220,'X') ;
x =320; y:=240; r:=0;  {Малювання та підпис поділок на вісі X}
while x+r<640 do
  begin
   line(x+r,y-4,x+r,y+4); line(x-r,y-4,x-r,y+4) ;
   r:=r+step;  str(r div step, S);
   settextjustify (1,1);
outtextxy(x+r,y+10,S); J   s:='-'+S; outtextxy(x-r,y+10,S);
  end;
  r:=0; {Малювання та підпис поділок на вісі Y}
  while y+r<480 do
  begin
line (х+4 , у+г, х-4 , у+г) ; line (х+4 , у-г, х-4, у-г) ;
   r:=r+step;
str(r div step, S) ;
settextjustify   (1,1);   outtextxy(x-10,y-r,S); s:='-'+S;  
outtextxy(x-10,y+r,S);
end;
Readkey;  Closegraph;   {Закриття графічного режиму}
End.

Задача2. Умова: Стовпчаста діаграма це послідовно зображені прямокутники однакової ширини, що розташовані на одному горизонтальному рівні. Висота прямокутників пропорційна значенням деякої числової послідовності. Побудувати стовпчасту діаграму за даними п цілими значеннями. Для наочності стовпчики зафарбувати різними кольорами.
Розв'язання: Для побудови діаграми, по-перше, необхідно задати кількість стовпчиків, тобто кількість числових значень, по яких буде будуватися діаграма, а, по-друге, - самі значення. В даному алгоритмі всі ці величини вводяться з клавіатури, хоча можна передбачити і інші методи, наприклад, заповнення генератором випадкових чисел. Після введення числових даних слід розрахувати коефіцієнти пропорційності по осях X та У, щоб отримати малюнок на весь екран. Врахуємо, що максимальний розмір по осі X640 пікселів, а по осі У - 480 пікселів. Тоді коефіцієнт по осі можна обчислити за формулою
Де  коефіцієнт пропорційності, N— кількість стовпчиків на діаграмі.
Константне значення 5 від дробу віднімається, щоб розділити стовп­чики між собою хоча б на 5 пікселів (це значення можна змінити).
По осі У знайти коефіцієнт пропорційності важче, тому що для цього слід спочатку визначити максимальне значення, що використовується для побудови діаграми. Для знаходження максимуму використовуємо стандартний алгоритм. Тут можна запропонувати дітям згадати цей алгоритм самостійно. Після знаходження максимуму знаходимо коефіцієнт пропорційності по осі Y за очевидною формулою 
 де  шуканий коефіцієнт, Мах - максимальне значення з масиву.
Обидва шукані коефіцієнти пропорційності округлюємо функцією roundтому що екранні координати не можуть бути дробовими, а після цього нормалізуємо значення масиву множенням на коефіцієнт .
Після підготовки даних можна побудувати стовпчасту діаграму. Кожен її елемент будується процедурою Ваrщо малює зафарбований прямокут­ник, колір якого задається процедуроюSetFillStyleОчевидно, що ширина кожного стовпчика буде дорівнювати   - 5, тому початкова координата по осі X дорівнює  а кінцева —  , де i - змінна циклу, що рахує номер чергового стовпчика. Початкова координата по осі У буде максимальною, тобто 480, а кінцева координата дорівнювати різниці між 480 та елементом масиву. Програма має наступний вигляд:
 Program Example_2;
 Uses graph;
Var GraphOrivar,OraphMode:integer; N,i,Max :integer;
A:array [1. .100] of integer; {Масив мишень побудови діаграми}
 SizeX,   SizeY  :   integer;
{Коефіцієнти пропорційності no відповідний осях)
Begin ClrScr;
Write  ('Введіть кільхість стовпчиків у діаграмі:   ');
ReadLn  (N) ;  {Введення значень для побудови діаграми}
for i:=1 to N do
begin Write   ('Введіть A[‘,i,']:');  ReadLn   (A[i]) ;  end;
Randomize;
GraphDriver:=VGA;   {Ініціалівація графічного режиму} GraphMode:=VGAHi;  InitGraph(GraphDriver,GraphMode,") ;
SizeX:=round(640/N-5);     {Пошук максимального значення в
масиві для    побудови діаграми на весь екран}
Мах:=А[1];
 for i:=2 to N do
if A[i]>Max than Max:=A[i];
SizeY:=round(480/Max);   {Перетворення масиву значень у
відповідності з коефіцієнтом пропорційності}
 for i:=1 to N do A[i]:=A[i]*SizeY;
 for і :=1 to N do
begin   {Встановлення випадковим чином кольору зафарбування
стовпчиків діаграми}
SetFillStyle (1,random(14)+l) ;
Bar  ((i-1)*SizeX,480,i*SizeX-5,480-A[i]) ;
End;
Readkey;
CloseGraph;
end.

Задача 2. Секторною діаграмою називають круг, площі секторів якого пропорційні відповідним числовим величинам, узятим з деякої послі­довності. Для заданої послідовності з п дійсних чисел побудувати секторну діаграму. Для наочності сектори діаграми зафарбувати різними кольорами.
Розв'язування: Кількість елементів діаграми в цій задачі вводиться так само, як і в попередньому випадку, тобто з клавіатури, а заповнення масиву даними зробимо генератором випадкових чисел. Далі, як і в попередній задачі, необхідно промасштабувати початкові значення для виведення їх на екран у вигляді кругової діаграми. Для цього спочатку знаходимо суму всіх елементів масиву, а потім масштабуємо їх за формулою
  де Sum - загальна сума елементів масиву, 360 - кількість градусів у повному колі.
Сама діаграма будується за допомогою процедури PieSliceщо виводить на екран зафарбований сектор круга. Колір зафарбування задається процедурою SetFillStyleа початковий та кінцевий кути сектора обчислюються від поточного кута Angle з урахуванням значення елементу масиву. Центр кола, на якому будується кругова діаграма, завжди константний (320; 240). Програма, що реалізує описаний алгоритм, має вигляд:
Program Example_2;
Uses graph;  {Підключення бібліотек}
Var GraphDriver,GraphMode:integer;    N,  і  :  integer;
Sum, Ang : real;
A : array [1..100] of real; S : string;
Begin
ClrScr; Randomize;
Write (‘Введіть кількість елементів діаграми: ');
ReadLn (N) ;  {Введення значень для побудови діаграми}
for i:=1  to N do А [і] :=random*200;
GraphDriver:=VGA;
GraphMode:=VGAHi;
InitGraph(GraphDriver,GraphMode,») ;
Sum: =0 ;
for i:=1 to N do Sum: =Sum+A[i] ;
for i:=1 to N do A[i] :=A[i] *360/Sum;
Ang:=0;
for і:=1 to N do
begin
SetFillStyle (1,Random(14)+1) ;
PieSlice (320,240,round (Ang), round (Ang+A[i]),230);
{Виведення на діаграмі числових значень}
Str (A[i]*Sum/360:3:0,S) ;
OutTextXY(round(320+120*cos((2*Ang+A[i]))*Pi/360),
round(240-120*sin((2*Ang+A[i])*Pi/360)),S);
Ang:=Ang+A[і];
end; Readkey;    CloseGraph;   {Закриття графічного режиму}
end.
Додаткове завдання. В надану програмою «Павлин» Внести доповнення, які б дозволяли уповільнити появу зображення на екрані.
program pavlin;
uses Graph,  Crt;
var gd, gm. xl, x2, a, y2 : Integer;
begin
gd := Detect;
InitGraph(gd, gm, ");
Randomize;
x1 := 0; a : = 1;
while x1<= 600 do
begin
x2 := Round(320 + 140 * Sin(xl / 30));
y2 := Round(240 + 140 * Cos(xl / 30));
Delay(100);
Line(x1, 240, x2, y2);
X1 := x1 + 2;
a := a + 1;
if a > 14 then a := 1;
end;
Readln;
CloseGraph;
end.
Запитання для перевірки засвоєння знань
  1. Як вивести осі координат на екран?
  2. Як «підписати» осі координат?
  3. Якою процедурою можна «відцентрувати» текст?
  4. Як можна створити стовпчикову діаграму?
  5. Навіщо потрібна ініціалізація графічного режиму?


Урок 21 Тематична атестація з теми «Основні поняття мови Паскаль»
Дайте відповіді на запитання:
  1. Яке призначення виразів?
  2. Які є типи виразів?
  3. Який тип дужок використовують у функціях?
  4. Які операції визначені над числовими даними?
  5. Які операції визначені над числовими цілими даними?
  6. Яка різниця між операціями ділення і цілочислового ділення?
  7. Сформулюйте правило пріоритетів.
  8. Сформулюйте правило дужок.
  9. Сформулюйте правило лінійного запису виразів.  
  10. Сформулюйте правило коректних імен.
Виконайте завдання:
1. Яких значень набудуть такі функції та вирази:
а) аbs(-5) (відповідь: 5); б) sin(0);    в) sqrt(36);   г) 8 div 5;  д) 9 mod 2.  Яких значень набудуть такі функції та вирази:
а) 9 div 2 / 2 (відповідь: 2.0);   б) abs(2-sqrt(9));   в) cos(l div 2); г) sqr(5 - 3);   д) sqrt(abs(-9)).
3.         Напишіть за правилами мови такі вирази:
а) 2 3х + 4,5tg2х (відповідь: 7*х*х - 3*х + 4.5*sin(2*x)/cos(2*x));
б) 4х2 8х cos3x; в) tg2x-sin3х+2cos2(2х2-l,4);
4.        Напишіть мовою Паскаль такі вирази:
а) ах2 bх + с (відповідь: a*sqr(x) + b*x + с);
б) a+bsinx + cos3,2x + cos2,5x;
в) sin5c - 6,5d + 4ac;
  1. Які помилки допущені в записах арифметичних виразів:
а)              sin(2x) + cosx  (має бути так: sin(2*x) + cos(x));
б)             5*х + 6у/(5*х - 2*у;   в) sin3*x; r) sin(abs(3*x); д) 2,51х + 5а?
  1. Складіть програму для обчислення периметра та площі будь-якого трикутника за відомими сторонами, використовуючи формулу Герона.
  2. Виберіть з таблиці свою власну функцію, де n — ваш номер у журналі. Складіть програму для обчислення її значння в деякій точці. Обчисліть значення функції в точках 1, 2, 3, 4, для чого виконайте програму чотири рази. Результати запишіть у зошит.
п
Функція fn(x)
1
9,2cosx2-|sinx/1,1|
2
12,4sin|x/2,1|-8,3cos1,2x
3
|cosx/2,7|+9,1sin(l,2x+l)
4
|sinx/3,12+cosx2| -8,3sin3x
5
cos|2x|/l,12-cos(3x-2)+6,15
6
sinxcosx2sin(x+l ,4)+5,14
7
|sin(2x-l,5)+3sinx2|+2,38
8
cosx2sin(2x-l)+4,29
9
cos(x2+l)-|sin2x-5,76|
10
sinx-cosx3sin(x2 -4,2)+4,27
11
|sinl2xcos|2x|/3|+4,21
12
cosx3/2,l+cosx2/l,l-8.3sin(3x+l)
13
sinx2cosx3—sinx+5,2
14
2sinxsin(2x-l,5)cos(2x+l,5)-6
15
|cosx2-0,51|sin(3x-4)-4,44
16
cos2,lxsin|x| /0,15-5,8
Скласти і виконати програму, задавши вхідні дані самостійно.
  1. Квіткова клумба має форму круга. Обчислити її периметр і площу за заданим радіусом.
  2. Обчислити довжину кола і площу круга за заданим діаметром.
  3. Ділянка лісу має форму рівнобічної трапеції. Обчислити її периметр і площу за заданими сторонами.
  4. Ресторан закуповує щодня масло т1 кг по 8.50 грн. за кілограм, сметану т2 кг по 2.40 грн., вершки т3 кг по 4.10 грн. Визначити суми, потрібні для купівлі окремих продуктів, і загальну суму.
  5. Скільки секунд маєють доба, тиждень, рік?
  6. Обчислити кінетичну E=mv2/2 та потенціальну P=mgh енергії тіла заданої маси т, яке рухається на висоті h зі швидкістю v.
  7. Ціни на два види товарів зросли на р відсотків. Вивести старі та нові ціни.
  8. Обчислити площу поверхні S=4πr2 та об'єм V=4πr3/3 сфери за заданим радіусом r.
  9. Швидкість світла 299792 км/с. Яку відстань долає світло за годину, добу?
  10. Обчислити об'єм та площу бічної поверхні куба, якщо відоме ребро.
  11. Яку площу і периметр матиме квадрат, описаний навколо круга заданої площі S.

 Організація розгалужень
Урок 22 Логічні операції та вирази
Мета: ознайомлення з поняттями про прості та складені умови, навчити записувати умову логічної задачі у вигляді системи логічних виразів, виховання інформаційної культури.
Тип уроку: вивчення нового навчального матеріалу
Хід уроку.
І. Організаційний момент.
ІІ. Викладання нового матеріалу.
1. Логічні  вирази. Обчислення значень логічних виразів
Крім арифметичних виразів, у Pascal існує ще один тип виразів – логічний.
Логічним виразом називається такий вираз, внаслідок обчислення якого одержується логічне значення типу true або false («істина» або «хиба»).
Із  стандартним типом змінних Booleanякі можуть набувати лише двох значень True або Falseви вже ознайомилися. Отже, саме такий тип і мають результати обчислення логічних виразів.
Логічні вирази поділяються на прості та складені.
Простим логічним виразом називається вираз, який записується за допомогою знаків співвідношень <, >, <=, >=, =, та <>.
Приклади простих логічних виразів можуть здатися вам простими:
а b > с + dп > т, х = у.
Порівняйте тепер призначення символів «:=» та «=»! Зверніть увагу на те, що спочатку виконуються арифметичні дії, а вже потім порівняння отриманих результатів.
Складеним логічним виразом називається вираз, в яко­му використовуються логічні операції andornot («так», «або», «ні»).
Наведемо приклади. З математики вам відомі такі записи:
х Î [а, bта х Ï [a, b].
Спробуємо записати їх у вигляді логічних виразів
(х >= a) and (х <= b),
(x<a)or(x>b).
Під час запису складених логічних виразів прості логічні вирази обов'язково слід брати у круглі дужки!
Чи можна записати простий логічний вираз n<> m у вигляді складеного? Виявляється, можна:
not (n = m).
Визначимо правила, за якими обчислюються значення складених логічних виразів. Для цього існують таблиці істинності, в яких цифра 0 означає falseа цифра 1 - trueНаведені таблиці можна перефразувати таким чином.
A
B
A  and B
0
0
1
1
0
1
0
1
0
0
0
1
Логічна операція and дає результат true тоді і тільки тоді, коли обидва операнда мають значення true.
A
A or B
0
0
1
1
0
1
0
1
0
1
1
1
Логічна операція or дає результат true тоді, коли хоча б один операнд має значенняtrue.
A
not A
0
1
1
0
Логічна операція not завжди дає результат, протилежний значенню її операнда.
Вираз
Значення
Вираз
Значення
not true
false
not false
true
true and true
true
true or true
true
true and false
false
true or false
true
false and true
false
false or true
true
false and false
false
false or  false
false
Приклад. Нехай x=3, y= -9. Розглянемо деякі логічні вирази та їхні значення.

Прості вирази
Значення
Складені вирази
Значення
х=3
true
not(у -  50)
true
х>у
true
(1<х) and (x<5)
true
7 mod 3=1
true
(х>4) or (у<-15)
false
у div 2=4
false
(х>4) or (y>-15)
true
Подвійну нерівність 1<х<5 як складений логічний вираз запи­сують так: (1<х) and (x<5). Сукупність нерівностей вигляду х<1; х>5 — так: (х<1) or (x>5). Прості логічні вирази, які входять у складені,  завжди беруть у дужки.
2. Логічні змінні
Логічні змінні. Значення логічних виразів можна надавати
логічним змінним. Це скорочує текст програми.
Для роботи з логічними змінними є тип даних booleanНагадаємо, що логічних сталих є лише дві:true  і false.
Логічні змінні треба описувати у розділі оголошення змінних так:
var <список імен змінних>: boolean;

Наприклад, var z, z1, z2: boolean.
Нехай х = 2. Якого значення набуде змінна z2 після виконання таких трьох команд присвоювання:
:= х > 5;   z1:= not z;   z2 := z or z1 ?
Відповідь: тут z=false, a zl=true, тому змінна z2 матиме значення «істина» (true).
Довідка. Логічним змінним не можна надавати значення в діалоговому режимі командою read,однак їх можна виводити на екран командою write.
Задача. Нехай а, bс — коефіцієнти квадратного рівняння ax2+bх+с=0Відповісти на запитання: вислів «Квадратне рівняння має два дійсні різні корені» є істинний чи хибний?
Розглянемо програму Lohika.
program Lohika;
var a, b, с : real; L : boolean;
begin
write ('Введіть числа a,b,c: '); readln (a, b, c); L :== b*b-4*a*c> 0;
writeln ('Квадратне рівняння має два дійсні різні корені — ', L)
end.
Якщо під час виконання програми ввести три числа, наприклад, 2.5 8.1 -2.9, то на екрані отримаємо:
Квадратне рівняння має два дійсні різні корені — TRUE.
Висновок
Таблиця пріоритетів арифметичних і логічних операцій має такий вигляд:
  1. ( )   — спочатку виконуються дії в дужках
  2. Функції, логічна операція not
  3. *, /, div, mod, and
  4. +, -, or
  5. >, <, >=, <=, =, <>
Умовою безпомилкового виконання таких операторів є збігання типів, тобто змінні в лівій частині цих операторів повинні бути описані типом boolean.
По-друге, результат обчислення логічних виразів true та false можна ще трактувати як «так» та «ні». Це наводить на думку про використання логічних виразів для визначення оцінки деякої ситуації, що склалася, і прийняття рішення про те, що робити далі.
ІІІ. Закріплення теоретичного матеріалу
Дайте відповіді на запитання
І. Для чого використовують логічні вирази?
2Що таке простий логічний вираз?
  1. Які є символи відношень між величинами?
  2. Що таке складений логічний вираз?
5. Які є логічні операції?
6. Дайте означення логічної операції not.
7. Дайте означення логічної операції and.
8. Дайте означення логічної операції or.
9. Який пріоритет логічних операцій?
IV. Формування практичних навичок
Розвязати вправи та задачі
1.            Усно. Чи істинний простий логічний вираз х > 10, якщо:
а) х=0 (відповідь: ні);   б) х=2;   в) х=10;   г) х=5;   д) х=15?
2.            Усно. Чи буде хибним вираз х >= 10, якщо:
а) х=1 (відповідь: так);   б) х=3;   в) х=10;   г) х=12;  д) х=25?
3.          Чи істинний складений логічний вираз (х > 1) and (x < 5), якщо:
а) х=0 (відповідь: ні);   б) х=2;  в) х=10;   г) х=5;   д) х=15?
4.          Чи істинний складений логічний вираз (х <= 8) and (x > 3),   якщо:
а) х=0 (відповідь: ні);   б) х=2;   в) х=10;   г) х=5;   д) х=15?
5.          Якого значення (true чи falseнабуде вираз (х <= 2) or (x > 5),   якщо:
а) х=0 (відповідь: true); б) х=2; в) х=10; г) х=5; д) х=15?
6.          Запишіть логічні вирази для нерівностей:
а) 0<х<10 (відповідь: (х>=0) and (x<10) );    б) -5<х≤8;    в) 2<х≤7; г) х≤1 або х>9;    д) х≤2, х>12;   є) х≤0 і у³0.
Підсумок уроку.
Домашнє завдання.
Вивчити теоретичний матеріал уроку.
1. Запишіть логічний вираз для визначення, чи точка х належить відрізку:
а)  [0;   3)  (відповідь:   (х>=0)  and (х<3)  );  б)  [-5;   5);   в)  [10;  20];
г) [2;14] або [20;25];    д) [4;10] і [8; 12].
2.            Запишіть нерівності, які відповідають логічним виразам:
а)                   (х>2) and (x<=20) (відповідь:   2<х<20 );
б)                   (х<-2) or (х>15);        в) (х>=5) and (x<25);
г) (х>3) and not (х>5);   д) (х>=-5) and (x<5) or (x>0).


Урок 23. Обчислення значень логічних виразів
Мета: формувати практичні навички та вміння обчислювати значення логічних виразів.
Тип уроку: формування навичок
Хід уроку.
І. Актуалізація опорних знань учнів
Фронтальне опитування.
  1. Для чого використовують логічні вирази?
  2. Що таке простий логічний вираз?
  3. Які є символи відношень між величинами?
  4. Що таке складений логічний вираз?
  5. Які логічні операції ви знаєте?
  6. Дайте означення логічної операції not.
  7. Дайте означення логічної операції and.
  8. Дайте означення логічної операції or.
  9. Який пріоритет логічних операцій?
ІІ. Формування практичних навичок
Розвязування вправ та задач.
1. Запишіть умову того, що число а є: а) парне; б) ділиться без остачі на 3; в) не ділиться без остачі на 3; г) ділиться на 3 і на 5; д) ділиться на 3 або на 5.
2. Запишіть умову того, що деякий день року припадає на 6 травня.
3. Ціну товару позначено змінною с. Яка умова того, що ціна: а) не перевищує 20 грн.; б) є більшою, ніж 10 і меншою, ніж 15 грн.?
4. Складіть логічні вирази для перевірки, чи є точка (х;у):
а)                У другій чверті (відповідь: (х < 0) and (у > 0) );
б)                на координатних осях;
в)                у другій або третій чверті;
    г)                 у квадраті зі стороною,  що дорівнює  1,  побудованому на координатних осях у першій чверті;
д)      у крузі одиничного радіуса з центром у початку координат (підказка: умова належності точки кругу така: х2г<1).
5. Поставити у відповідність розташованим ліворуч виразам вирази, що розташовані праворуч:
l) not(x = y),                                а) х Î[0,1],
2)(х<у)ог(х = у),                           b) х ¹ у,
  1. (х< 0)ог(х> 1),                         с)х≤ у,
  2. (х >= 0) and (х <= 1),               d) хÏ [0, 1].
6. Обчислити значення логічних виразів:
  1. х < у при х = 2.5, у 0.1;
  2. and not (b = с) при a = false, false, с true;
  3. not (a and b) or b = при true, false;
  4. (not a and (x y)) or (x < 0) при = -0.1, у 0.7, a = true.
7. Записати у вигляді логічних виразів висловлювання, наведені нижче:
  1. значення х не належить інтервалу (0; 1);
  2. значення х належить відрізку [- 1; 0] або відрізку [2; 5];
  1. точка М(х; у) лежить у другій чверті координатної площини;
  2. точка М(х; у) лежить усередині або на межі одиничного круга з центром у початку координат;
  3. точка М(х; у) не лежить на одиничному колі з центром у початку координат;
  4. 0<А< 1,5;
  5. З >В>С> 0,1;
  6. 5<А<6<В<7,6.
. 8. Математична логіка - це розділ математики, який вивчає методи встановлення істинності або хибності висловлювань. У логіці визначені такі операції: «і» (Ù) - кон'юнкція, або логічне множення; «або» (Ú) - диз'юнкція, або логічне додавання; «не» (Ø) - інверсія, або заперечення. Ці логічні операції повністю відповідають логічним операціям «and», «or», «not», що використовуються в логічних виразах. Представити у вигляді логічних виразів такі записи:
     
      
Підсумок уроку.
Домашнє завдання
Розвязати задачу: Олексій, Борис і Григорій знайшли в землі амфору. Кожний з них висловив по два припущення:
А: Це амфора грецька, V століття.
Б: Це амфора фінікійська, ІІІ століття.
Г: Це амфора не грецька, IV століття.
Вчитель історії сказав хлопцям, що кожний з них висловив правильну думку тільки в одному з двох своїх припущень.
Де й у якім столітті була виготовлена амфора?


Урок 24 Вказівка розгалуження
Мета: ознайомити учнів з поняттями про структурні оператори, вказівку розгалуження (повну та скорочену форми) і поняттями про прості і складені умови; формувати навички використання вказівки розгалуження; виховувати інформаційну культуру учнів.
Тип уроку: вивчення нового матеріалу.
Хід уроку.
І. Актуалізація опорних знань учнів.
Розвяжіть задачу:
Віктор, Роман, Леонід та Сергій зайняли на математичній олімпіаді чотири перших місця. Коли їх запитали про розподіл місць, вони дали три відповіді:
  • Сергій – перший, Роман – другий;
  • Сергій – другий, Віктор – третій;
  • Леонід – другий, Віктор – четвертий.
Відомо, що у кожній відповіді тільки одне твердження вірне. Як розподілилися місця?
ІІ. Викладання нового навчального матеріалу.
1. Оператор умовного переходу. Повна та скорочена форми
Уявіть собі, що ви за кермом автомобіля і перед вами стоїть вибір дальшого руху: або їхати поганою, але коротшою дорогою, або ж гарною, але довшою. Звичайно, що ваш вибір буде залежати від певних умов: по-перше, чи є у вас зайвий час, по-друге, хто господар автомобіля?
Подібну проблему завжди вирішують оператори розгалуження.
Загальний вигляд повної форми оператора умовного переходу:
if <логічний вираз> then P1 else P2,
де логічний вираз - це вираз, який може набувати одного з двох значень true або falseР1 та Р2 - це оператори або процедури.
Робота оператора умовного переходу не викликає ніяких труднощів. Цей оператор використовує результат обчислення логічного виразу для вибору того чи іншого шляху наступного ви­конання алгоритму - виконання оператора Р1 або оператора Р2. Після цього робота алгоритму продовжується далі за вказаними операторами.
Після аналізу значення логічного виразу буде вибраний лише один з наступних напрямків виконання алгоритму (Р1 або Р2), після чого цей алгоритм буде виконуватися далі.
Загальний вигляд скороченої форми оператора умовного переходу:
if <логічний вираз> then P,
де значення вказаних параметрів такі самі, як і в повній формі.
Відмінність між двома фор­мами умовного оператора: в першій - повній - незалежно від значення логічного виразу якісь дії обов'язково будуть виконані, а вже потім продовжено виконання алгоритму далі, у другій - скороченій - у випадку, коли логічний вираз набуде значення trueбудуть виконані якісь дії, а потім продовжено виконання алгоритму, а у випадку, коли логічний вираз набуде значення falseалгоритм відразу буде продовжено далі.
2. Складений оператор
Розширимо поняття оператора в Pascal. Справа в тому, що ми з вами поки що мали справу лише зпростими операторами -присвоювання і умовного переходу. А що робити, коли після службових слівthen або else нам потрібно вказати не один такий оператор, а кілька? Для такого випадку в Pascal введене поняття складеного оператора.
Складеним оператором називають послідовність кількох операторів або викликів процедур, розділених символом «;» та взятих в операторні дужки begin ... end.
Складений оператор — це конструкція такого вигляду:
begin
<команда 1>;
<команда п>;
end;
Складена команда трактується як одна команда.
ІІІ. Формування практичних навичок
Тепер уже час переходити до прикладів. Розглянемо алгоритм пошуку найбільшого з двох заданих чисел А та В.
program max_А_В;
var a, b, max: real;
begin
write ('Задайте два будь-які числа: ');
readln (a, b);
if a > b then
begin
writeln ('Перше число більше за друге.');
max := а
end
 else
begin
writeln ('Друге число більше або дорівнює першому.');
max := b
end
writeln ('Це число -' , max:10:5);
readln
end.
Розглянемо детальніше наведену програму. По-перше, у ній чітко спостерігається принцип «вкладеності» операторів, тобто сходинкова структура. Наочність такої програми явно виграє! Для цього в ній навіть з'єднані вертикальними лініями оператори різного рівня. По-друге, перед закриваючою операторного дужкою (endне стоїть символ «;». І справді, ви ж не ставите кому в тексті перед закриваючою дужкою, коли перелічуєте в ньому в дужках декілька слів. Хоча в Pascal це помилкою. Саме через це не поставлено і символ «;» після останньої процедури readln.
Спробуйте відповісти на запитання: при виконанні якої умови буде виконано оператор max := b? Дійсно, за умовою, протилежною а > b, тобто при виконанні умови а <= b!
Розглянемо пошук найбільшої з трьох попарно різних величин а, b, с
program max_A_B_С;
vara, b, c, max: real;
 begin
write ('Задайте три будь-які числа: ');
 readln (a, b, с); if (a > b) and (a > с)
then
begin
writeln ('Перше число більше за інші два.');
 max := а
end
else
if (b > с) then
 begin
writeln ('Друге число більше за інші два.');
max := b
end
else
 begin
writeln (Третє число більше за інші два.');
max := с
end;
writeln ('Це число - ', max:10:5);
readln
end.
У цьому прикладі ми бачимо використання двох вкладених умовних операторів.
Внутрішній оператор умовного переходу буде виконано тоді і тільки тоді, коли значення логічного виразу зовнішнього умовного оператора матиме значення falseЦе означатиме, що значення змінної а не є найбільшим, тому у вкладеному умовному операторі перевіряється лише значення змінної bЯкщо ж і її значення не є найбільшим, то лишається визнати, що найбільшим є значення змінної с. Розглянемо схему цього алгоритму.
Спробуємо записати інший варіант алгоритму пошуку найбільшої з трьох величин.
program max ABC;
vara, b, с, max: real; begin
write ('Задайте три будь-які числа: ');
readln (a, b, с); if (a > b) and (a > с) then
begin
writeln {'Перше число більше за інші два.');
max := а end;
if (b > a) and (b > с) then
begin
writeln ('Друге число більше за інші два.');
max := b
end;
if (с > a) and (с > b) then
begin
writeln (Третє число більше за інші два.');
 max := с
end;
writeln ('Це число - ', max:10:5);
readln
end.
Отже, у першому алгоритмі внутрішній оператор розгалуження виконається тільки тоді, коли нас «пропустить» до нього зовнішній оператор розгалуження. Цей принцип можна порівняти із ситом.
У другому варіанті алгоритму всі оператори розгалуження є послідовними. Тобто всі вони виконуватимуться, перевірятимуть значення своїх логічних виразів і вирішуватимуть, виконувати чи ні вказані в них дії. Крім того, треба зауважити, що використані тут оператори розгалуження мають скорочену форму.
Звичайно, що з погляду ефективності виконання алгоритму перевагу має перший варіант - у ньому може бути виконано менше перевірок для досягнення необхідного результату. Але, зрештою, все залежить від конкретної умови задачі і вашого бачення її реалізації. Десь ви виграєте на етапі виконання програми, але програєте в її написанні, а десь програма буде зрозумілішою, але кількість виконуваних дій у ній буде більшою.
Розглянемо приклад. 1.
Обчислити і вивести значення складеної функції у.
program Myfunction;
uses Crt;
var x,y:real;
begin clrscr; writeln('Введіть х'); readln(x);
if x < -1 then y:=ln(abs(x)) else
if (x>=-l) and (x<l) then y:=sin(x) else y:=cos(x);
writeln('x=',x:5:2,'     y=",y:5:2); 
readln
 end.
2. Визначити, чи є задане тризначне число паліндромом (паліндром читається однаково ліворуч праворуч і праворуч ліворуч, наприклад,  паліндромами є числа 121, 282, слово «наган»). Для розв’язання  цієї задачі можна використати просту умову - перша цифра числа повинна рівнятися останній:
program palindrom;
var х   :   Integer;
begin
Wrіte ('Уведіть ціле число:');
readln(x) ;     {Уведення числа  х}
if  х mod  10 = х div  100    then
Write('Уведене число  є паліндромом')
else    Write('Уведене  число  не
є  паліндромом');                                                  
end.
Підсумок уроку.
Запитання для перевірки засвоєння знань
1. Який алгоритм називається розгалуженим?
  1. Які умови називаються складеними?
  2. Які логічні операції ви знаєте?
  3. Як записують скорочену форму команди розгалуження?
  4. Які операції відношення можна записувати в умові?
Домашнє завдання
  1. Уведіть вік користувача і його стать(1 - жіноча, 2 - чоловіча). Складіть
  2. програму, за допомогою якої красиво привітайтеся з користувачем залежно від його віку й статі.
  3. Уведіть дійсне число х. Складіть програму, за допомогою якої визначите, чи є воно коренем рівняння:
а). 15х + 100 = 0;
б). 105 х - 10,18 = 0;
в). 12 х3 -2х2 + 6х + 1 = 0;
г).  17 х4 -12х2 + 2х-1 = 0.
  1. Задано вік двох приятелів. Складіть програму, за допомогою якої визначите, хто з них старше.
  2. Задано вік трьох друзів. Складіть програму, за допомогою якої визначите, хто із друзів молодше.
  3. Задано число х. Складіть програму, за допомогою якої збільшить число х на 10, якщо воно від’ємне, у всіх інших випадках зменшить задане число на 5.
  4. Задано число х. Складіть програму, за допомогою якої збільшить число х на 15, якщо воно від’ємне.

Урок 25 Повне розгалуження
Мета уроку: формування навичок складання алгоритмів з використанням команди розгалуження та запису їх мовою програмування; виховання інформаційної культури.
Тип уроку: формування навичок
Хід уроку.
І. Актуалізація опорних знань учнів.
На початку уроку бажано зробити експрес-опитування за матеріалом попереднього уроку (поняття умови, умови прості та складені, поняття команди розгалуження, її форми, запис мовою програмування та мовою блок-схем). Далі пропонується розглянути типові задачі з використанням команди розгалуження.
ІІ. Формування навичок
Задача 1
Умова: Дано значення дійсних величин а, bс Знайти:
 Program Example_1;
Uses crt;
Var a,b,c   :   real;
Rez1, Rez2, Min   :   real;   {a,b,c - вхідні дані;   Rez1,  Rez2 -проміжні обчислення; Min - результат виконання програми}
Begin
Clrscr;   {Очищення екрану}
Write('Введіть числа а,b,с:   ') ;
Readln(а,b,с);
Rez1:=(a + b +  с)   /2;
Rez2:=sqrt(1/(sqr(a)+1)+ 1/ (sqr (b)+1)+1/(sqr(c)+1)) ;
If Rez1<Rez2 Then Min:=Rez1
Else Min:=Rez2;
Writeln('Min=',Min:8:2);
Readkey;   {Затримка зображення на екрані}
End.
Задача 2
 Умова: Дано значення дійсної величини х. Визначити:
Примітка: На перший погляд учні можуть не зрозуміти, навіщо у цій задачі команда розгалуження. Треба їм нагадати відоме правило: ділити на нуль неможна.  І тоді розв'язання стає очевидним.
Program Example_2;
Uses  crt;
Var X,Rezultat:real;
Begin
Clrscr;      {Очищення екрану}
Write('Введіть значення X: ');
Readln(X);
If  X*X*X+X-2<>0 Then
begin
Rezultat:=(X-5)/(X*X*X+X-2);
Writeln('Rezultat=',Rezultat:8:2);
end
Else
Writeln('Обчислення неможливі - ділення на нуль!');
Readkey;
End.
Задача 3 Умова: При даному значенні х обчислити: 
Для розв'язання цієї задачі необхідно пам'ятати, що не можна знайти квадратний корінь з від'ємного числа (зверніть увагу учнів на те, що у прикладі присутні два квадратних кореня).
Program Example_3;
Uses crt;
Var X, Rezultat: real;
Begin
Clrscr;
Write('Введіть значення X:   ') ;
Readln(X);
If  (X>=1)  and  (X*X*X-sqrt(X-1)>=0)  Then
begin
Rezultat:=sqrt(X*X*X-sqrt(X-1));
Writeln(,Rezultat=',Rezultat:8:2);
end
else
             Writeln('Обчислення неможливі - від' ємний підкореневий вираз!');
Readkey;
End.
Задача 4
За рейтинговою системою оцінка визначається таким чином: якщо загальний бал учня становить не менше 92% від максимального, то виставляється оцінка 12, якщо не нижче 70%, то — оцінка 8, якщо ж не нижче 50%, то — оцінка 5, в інших випадках оцінка 2, Визначте оцінку учня, якщо він набрав Nбалів, а максимальне значення загального балу становить SУ цій задачі можна використати повну або скорочену форму команди розгалуження. Пропонується розв'язування зі скороченою формою.
Program Example_4;
Uses crt;
Var N,S,Grade:integer;
{N   -   бали,    що   набрав   учень;    S   -   максимальне   значення сумарного балу;  Grade - оцінка учня}
Begin
Clrscr ;
Write(‘Введіть максимальне значення сумарного балу, що може набрати учень: ’);
Readln(S);
Write('Введіть кількість балів, що отримав учень: ');
Readln(N);
If (S<=0) or (N<=0) or (N>S)
Then writeln('Помилка вхідних даних')
Else
Begin
N:=round(N/S*100); {Знаходження %-відношення балів учня до максимально можливого}
If N>=92 then Grade:=12;
If (N<92) and (N>=70) then Grade:=8;
If (N<70) and (N>=50) then Grade:=5;
If (N<50) then Grade:=2;
Writeln(‘ Учень отримав оцінку - ' , Grade);
End;
Readkey;
End.
Задача 5
 Умова: На площині дано дві точки (xv ytта (х2, у2). Визначити, яка з них знаходиться далі від початку координат.
Для розв'язання цієї задачі необхідно скористатися теоремою Піфагора для знаходження відстані від початку координат до заданої точки (див. рисунок):                                y
                                                          (x,y)


                             0                                 X
Очевидно, що відстань від початку координат до точки з координатами (х,у) буде обчислюватись наступним співвідношенням:
Зверніть увагу: через те, що кожна з координат у формулі підноситься до квадрату, неважливо, в якій чверті координатної площини буде знаходитись точка. Програма для розв'язання даної задачі має вигляд:
Program Example_5;
Uses  crt;
Var X1, Y1, X2, Y2:real;
{X1,Y1, X2, Y2 - координати даних точок}
S1, S2:real;
{S1, S2 - відстані відповідно до першої та другої точки}
Begin
Clrscr;
Write('Введіть координати першої точки: ');
Readln(X1,Y1);
Write('Введіть координати другої точки: ');
Readln(X2,Y2);
S1:=sqrt(sqr(X1)+sqr(Y1));
S2:=eqrt(sqr(X2)+sqr(Y2)) ;
If  S1<S2
Then Writeln('Друга точка далі від початку координат')
Else Writeln('Перша точка далі від початху координат') ;
Readkey;
End.
Запитання для перевірки засвоєння знань
  1. Опишіть правила оформлення складних виразів.
  2. Назвіть пріоритети виконання операцій в програмах?
  3. Що таке вкладеність операторів?
  4. У яких випадках використовують логічні оператори orа у яких and?
  5. Поясніть відмінність у застосуванні команд Write і Writeln.
Підсумок уроку.
Домашнє завдання
  1. Задано число р. Складіть програму, за допомогою якої, якщо р менше нуля, значення уобчислите по формулі у = р3. Якщо р більше або дорівнює нулю, то значення у обчисліть по формулі у = 1 - р.
  2. Відомі: денний заробіток двірника й заробіток садівника за тиждень. Складіть програму, за допомогою якої визначите, хто з них більше заробляє в рік.
  3. Відомо, скільки в середньому за день заробляє інженер і скільки в середньому за місяць заробляє лікар. Складіть програму, за допомогою якої визначите, хто з них більше заробляє грошей за рік.
  4. Задано дійсне число х. Складіть програму, за допомогою якої перевірте виконання нерівності    3/4 <  X < 7/8.

Урок 26 Розвязування задач на використання вказівки розгалуження
Мета: формування навичок створювання математичних моделей задач, складання алгоритмів з використанням команди розгалуження та запису їх мовою програмування; виховання інформаційної культури.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опорних знань учнів.
На початку уроку повторити поняття умови, умови прості та складені, поняття команди розгалуження, її форми, запис мовою програмування та мовою блок-схем. На цьому уроці пропонується розглянути задачі з використанням команди розгалуження. Зверніть увагу на те, що перед розв 'язанням цих задач необхідно з учнями розібрати математичну модель задачі, довівши математичні співвідношення, що приведуть до отримання бажаного результату.
ІІ. Формування навичок.
Розв’язування задач.
Задача 86 (задачник Т.П.Караванової)
Чебурашка вирішив купити килими, щоб застелити кімнату, в якій він мешкав разом з Геною. Їхня прямокутна кімната виявилася розмірами А х В, де А та В — цілі числа. Коли Чебурашка запитав у магазині, які килими є у продажу, то продавець повідомив, що є квадратні килими зі стороною С, де С— ціле число. Яку кількість килимів потрібно придбати Чебурашці, щоб накрити максимальну площу кімнати? Килими неможна накладати та підгинати. Визначити, яка площа кімнати буде не накритою килимами. Передбачити ситуацію, коли розміри килиму перевищують розміри кімнати.
Очевидно, що якщо довжина сторони килиму більша за будь-яку зі сторін кімнати, то застелити її цими килимами неможливо. Крім того, для знаходження кількості килимів, що вміщуються по одній зі сторін кімнати без їх підгинання, необхідно поділити націло довжину кімнати на довжину килиму. Загальна кількість килимів знаходиться за формулою: К=К1·К2, де К1 та К2  — кількості килимів, що вміщуються вздовж двох суміжних сторін кімнати.
Площа, що не закрита килимами, визначається як різниця між площею кімнати та площею всіх куплених килимів,
Використані змінні: А, В — розміри кімнати; С—розмір килиму; К1К2 - кількість килимів вздовж однієї та другої стінки відповідно; К - загальна кількість килимів; S —площа кімнати, що не накрита килимами.
Програма, що реалізує алгоритм розв'язання даної задачі, має вигляд:
Program Example_86;
Uses ort;
Var  a,b,c,S:word; K,K1,K2   :   word;
Begin
Clrscr;   {Очищення екрану}
Write ( 'Введіть розміри кімнати:   ') ;,
Readln(a,b);
Write('Введіть розміри килима: ');
Readln(с);
If   (с > a)   or   (с > b)
Then writeln( 'Кімнату неможливо накрити такими килимами')
Else
Begin
K1:=а div с;  К2:=b div с;
К   := К1*К2;       S   := а*b - К*с*с;
Writeln( 'Кількість  куплених килимів   ',   К);
WriteIn('Площа кімнати,   що не накрита килимами  ',   S);
 End;
Readkey;
 End.
Задача  89
Від річкового вокзалу відійшли одночасно у протилежних напрямках теплохід та турист. Теплохід рухався зі швидкістю V1 км/год, а турист по стежці вздовж річки зі швидкістю V2 км/год. Якщо черезгодин турист передумає і вирішить попливти річкою назад за теплоходом зі швидкістю V3 км/год, то чи встигне він підсісти на теплохід, який має за графіком зупинку через Y годин після початку руху і стоїть на цій зупинці Z годин? Вважати на те, що всі події відбувалися протягом однієї доби.
Якщо турист протягом N годин рухався в протилежному напрямку від теплоходу, то відстань між ними в той момент, коли турист вирішив наздогнати теплохід, була наступна:
S=(V1 + V2N де V1 та V2 — швидкості теплоходу та туриста відповідно.
Швидкість, з якою турист почне наздоганяти теплохід, — (V3 – V1км за годину, де V3 — швидкість, з якою турист попливе навздогін теплохода. Час, який буде у туриста для наздоганяння, (Y-N Z)годин, тому що зупинка в теплохода буде за розкладом через У годин після початку руху, але годин він уже плив, a Z годин теплохід буде стояти на цій зупинці. Тоді за цей час турист пройде відстань: St=(V3 – V1)·(Y – N + Z)
 Отже, турист встигне підсісти на теплохід тільки в тому випадку, якщо відстань St буде не менше, ніж відстань, на яку теплохід перегнав туриста. Програма, що реалізує запропонований алгоритм, має вигляд:
Program Example_89;
 Uses crt;
Var V1,V2,V3:real;  N,Y,Z   :   real;
Begin Clrscr;
Write('Введіть швидкості теплоходу та туриста:   ') ;
Readln (VI, V2) ;
Write ('Введіть час, черев який турист підсів на теплохід:')
 Readln(N);
Write('Введіть швидкість,   з якою турист плив за тепло­ходом, час зупинки теплоходу, та тривалість зупинки:')
Readln(V3,Y,Z);
If  (V1<=0)or(V2<=0)or(V3<=0)or(N<=0)or(Y<=0)or(Z<=0) Then
 writeln('Помилкові вхідні дані')
 Else
Begin
S:=(V1+V2)*N;
St:=(V3-V1)*(Y-N+Z);
If  St >= S
Then writeln('Турист встигне на теплохід.')
Else
writeln('Турист не встигне на теплохід.');
End;                                                                          
Readkey;
End.
Задача № 90
 Жили собі дід і баба, і був у них город прямокутної форми. Довжина городу була А м, а ширина складала В м. Якось дід посварився з бабою і вирішив поділити город порівну. Тепер у діда квадратний город зі стороною С м, відрізаний скраю, а решта дісталася бабі. Визначити, чи не залишилася баба ошуканою та якої форми дістався їй город прямокутної чи квадратної?
Взагалі задача має дуже простий розв'язок: адже бабуся не буде ошуканою в тому випадку, якщо площа городу, що залишилася для неї, не буде меншою, ніж площа дідусевого городу, тобто С2<=А·В - С2. Та це тільки на перший погляд. Насправді в даній задачі може бути велика кількість винятків.
Наприклад, якщо дідусь захоче відрізати собі город зі стороною більшою, ніж сторона всього городу, то це неможливо зробити взагалі. Якщо ж він відріже, то город, що залишиться, може мати квад­ратну, прямокутну або іншу форми.
Програма, що реалізує запропонований алгоритм, має вигляд:
 Program Example_90;
Uses crt;
Var А,В,С:real;
Begin
Clrscr;
Write('Введіть розміри городу:   ');
Readln(А,В);
Write('Введіть довжину сторони дідусевого городу: ');
Readln(С);
If (A<=0)or(B<=0)or(C<=0) then writeln ('Помилкові вхідні дані')
Else
Begin
If (C>A) or (C>B)
then writeln('Дідусь не зможе відрізати город такого розміру')
else
begin
If A*B-sqr(С)<=sqr(С) then writeln('Бабуся ошукана.')
else writeln('Бабуся не ошукана.');
If (A<>C) and (B<>C)
Then writeln('Город залишився іншої форми')
Else
If ((A=C)and(B/2=C))or((B=C)and(А/2=С))
 then writeln('У бабусі квадратний город.')
else writeln('У бабусі прямокутний город.') ;
end;
 End;
 Readkey;
End.
Задача №91
Умова Трьом Товстунам подали на десерт кремові тістечка. Маса одного тістечка — Хкг, а маса Товстунів відповідно X1 кг, Х2 кг та Х3 кг. Перший Товстун з’їв  тістечок. Кожний наступний Товстун з’їдав у два рази більше від попереднього, але при цьому він не міг з’їсти більше половини своєї власної ваги. Скільки тістечок було з’їдено Товстунами за обідом?
Зверніть увагу на те, що другий та третій Товстуни за умовою можуть з'їсти тістечок у два рази більше, ніж попередній Товстун, але не можуть з'їсти більше половини своєї ваги. Тому фактично в задачі необхідно перевірити, чи не перевищує кількість тістечок, що може з'їсти кожний Товстун, дозволену масу, і у відповідності до цього підрахувати кількість тістечок, що були з'їдені.
Наприклад, якщо другий Товстун може з'їсти 2 • N тістечок, то вага цієї їжі буде N·X kгАле за умовою він не може з'їсти більше половини своєї ваги, тобто більше ніж X1/2 кг. Тому якщо вага тих тістечок, що Товстун може з'їсти, не перевищує поріг X1 /2 кг, то ми до загальної кількості тістечок додаємо всі можливі, тобто 2·Nякщо ж перевищує, то ми додаємо тільки ту кількість тістечок, що не дає змоги перевищити при­пустимий поріг, тобто X1/2/X (дозволена вага їжі поділена на вагу одного тістечка). Якщо в цьому випадку число вийде нецілим, то це означає, що Товстун з'їв тістечко не повністю. Щоб такого не трапилось, ми робимо відкидання дробової частини після ділення за допомогою функції trunc.
Програма, що реалізує цей алгоритм, має вигляд:
Program Example_91;
Uses crt;
Var X,X1,X2,X3:real; N,Counter : integer;
{N - кількість тістечок, що з’їв перший Товстун; Counter -загальна кількість з'їдених тістечок}
Begin
Clrscr;
Write('Введіть вагу тістечха:   ');
Readln(X);
Write('Введіть вагу Товстунів   (1-го,   2-го та 3-го):   ');
Readln(X1,   Х2,   ХЗ);
Write('Введіть кількість тістечок, що з''їв перший Товстун ') ;
Readln(N);
If   (X<=0)or(Х1<=0)or(X2<=0)or(X3<=0)or(N<=0) Then
 wrіteIn('Помилкові вхідні дані')
Else
 Begin
Counter:=N;   {З'їв перший Товстун)
If N*2*X<=X2/2     Then Counter:=Counter+2*N
Else
 Counter := Counters- trunc(X2/2/X);
If N*4*X<=X3/2    Then Counter:=Counter+4*N
Else
Counter:= Counter* trunc(X3/2/X);
Writeln('Кількість з''їдених тістечок:   ' , Counter);
End;
Readkey;
End.
Запитання для перевірки засвоєння знань
  1. Що таке глобальний блок програми?
  2. Поясніть особливості використання локальних змінних.
  3. Які операції можна виконувати зі змінними цілого типу?
  4. Для чого в програмах використовують коментарі?
  5. Поясніть використання функції trunc.
                Підсумок уроку.
Домашнє завдання:
  1. Задано довжини сторін трикутника. Складіть програму, за допомогою якої визначіть, чи є цей трикутник рівнобедреним, рівностороннім чи різностороннім.
  2. Задано три числа a, b, c. складіть програму, за допомогою якої визначіть, чи існує трикутник з такими довжинами сторін. Якщо да, то знайдіть його периметр.

Урок 27 Розвязання задач на використання вказівки розгалуження
Мета: формування навичок складання алгоритмів з використанням команди розгалуження та запису їх мовою програмування; виховання інформаційної культури.
Тип уроку: формування навичок.
Хід уроку.
І. Актуалізація опорних знань учнів
Фронтальне опитування
  1. Що називають логічними виразами? На які два типи вони поділяються?
  2. Які знаки співвідношень використовуються для запису простих логічних виразів?
  3. Назвіть логічні операції.
  4. Поясність використання логічних операцій за таблицями істинності.
  5. Що називають складеним оператором? Які правила його запису?
  6. Яким чином організоване розгалуження у Паскалі?
  7. Чим  відрізняються  повна  та  скорочена  форми  оператора умовного переходу?
  8. Запишіть загальний вигляд повної форми розгалуження.
  9. Запишіть загальний вигляд скороченої форми розгалуження.
  10. Намалюйте схеми алгоритмів обох варіантів розгалуження.
ІІ. Формування навичок
Розв’язування задач
Задача  120 (задачник Т.П.Караванової)
Дано натуральне число N (N k 1000). Визначити суму першої і останньої цифр даного числа.
Для розв'язання цієї задачі ми скористаємося стандартними операція­ми цілочисельного ділення та остачі від ділення цілих чисел (операції div та mod). Нагадаємо, що результатом ділення числа націло на 10 буде ефект відкидання «молодшої» цифри числа (відповідно при діленні на числа 100,
1000,10000 тощо будемо «відкидати» дві, три або чотири цифри числа). Результатом ж операції знаходження залишку від ділення на 10 буде остання цифра числа (відповідно при знаходженні залишку від ділення на 100, 1000, 10000 будемо отримувати дві останні, три останні, чотири останні цифри числа).
Наприклад:
234 div 10 = 23
9213 div 100 =  92
52 mod 10 = 2
2845 mod 1000 ■ 845.
Виходячи з усього сказаного, програма буде мати вигляд: Program Example_120_2;
Uses crt;
Var N,   First,  Last  :   word;
{First - перша цифра числа;  Last - остання цифра числа)
Begin
Clrscr;
Write('Введіть число: ');
Readln(N);
Last := N mod 10;
If (N>=0) and (N<10) then First:=0;
If (N>=10) and (N<100) then First:=N div 10;
If (N>=100) and (N<1000) then First:=N div 100;
If (N=1000) then First:=1;
Writeln ('Сума першої та останньої цифр дорівнює' , First+Last) ; Readkey;
End.
Задача.
 Популярність діалогових програм, що дозволяють зробити вибір із запропонованого користувачу «меню», всім відома. Розглянемо задачу, яка за генератором випадкових чисел визначає виграш в лотереї таким чином: 1 - відеомагнітофон; 2 -музичний центр; 3 - комп'ютер; 4 - комп'ютерний клас.
Основою даного алгоритму є перевірка значення цілої змінної, наприклад, сh, яке визначає порядковий номер виграшу. Наведемо словесний вигляд алгоритму:
  • Якщо значення змінної ch дорівнює 1, то виграно перший за номером приз і переходимо до п.5. У протилежному випадку переходимо до п.2.
  • Якщо значення змінної ch дорівнює 2, то виграно другий за номером приз і переходимо до п.5. У протилежному випадку переходимо до п.3.
  • Якщо значення змінної ch дорівнює 3, то виграно третій за номером приз і переходимо до п.5. У протилежному випадку переходимо до п.4.
  • Якщо значення змінної ch дорівнює 4, то виграно четвертий за номером приз і переходимо до п.5.
  • Кінець алгоритму.
 program prize;
uses CRT; var n: byte;
ch: char;
begin
writeln ('Призи лотереї:');
writeln ('1. Відеомагнітофон');
writeln ('2. Музичний центр');
writeln ('3. Комп'ютер');
 writeln ('4. Комп'ютерний клас');
writeln ('Натисніть будь-яку клавішу для запуску лототрона');
repeat until KeyPressed;
ch:=ReadKey; randomize; n:=random(3)+l;
write ('Ваш виграш під номером ', п,'. Це - ');
if n=l then writeln ('Відеомагнітофон')
else if n=2 then writeln ('Музичний центр')
else if n=3 then writeln ('Комп'ютер')
else writeln ('Комп'ютерний клас');
repeat until KeyPressed
end.
Прокоментуємо деякі моменти програми. Послідовність викликів стандартних процедури і функціїrandomizen:=random(3)+1 дозволяють за допомогою генератора випадкових чисел змінній п надати будь-якого випадкового значення в інтервалі від 1 до 4. Підключення модуля CRT дозволяє використати функції KeyPressed та ReadKeyЗа допомогою першої ми можемо затримати виконання програми до натискання користувачем будь-якої клавіші на клавіатурі. Але, оскільки код цієї клавіші буде залишатися в буфері клавіатури і це стане на заваді повторного використання цієї ж функції в кінці програми, то операція ch:=ReadKey допоможе «вичитати» цей код із буфера і спорожнити його.
Задача 130
 Дано дійсні додатні числа а, b, с, х, у. Визначити, чи пройде цеглина з ребрами а, b, с у прямокутний отвір зі сторонами х та у. Проштовхувати цеглину дозволяється лише так, щоб кожне з її ребер було паралельним чи перпендикулярним кожній зі сторін отвору.
Для розв'язання цієї задачі пропонується впорядкувати розміри отвору та розміри цеглини за зростанням, тобто досягти того, щоб було а<=b<=с та х <= у. Тоді перевірка зведеться до порівняння розмірів отвору з найменшими розмірами цеглини (адже ми можемо цеглину розвернути будь-яким боком, щоб проштовхнути її у отвір).
Program Example_130;
 Uses crt;
Var a,b,c,x,y,S:real;
{S - допоміжна змінна для обміну місцями значень двох змінних}
Begin Clrscr;
Write ( 'Введіть розміри цеглини: ') ; Readln (а,b,с) ;
Write (‘ Введіть розміри отвору: ') ; Readln (x, у) ;
If (a<=0)or(b<=0)or(c<=0)or(x<=0)or(y<=0)
Then writeIn ('Помилка вхідних даних.')
Else
Begin {Впорядкування розмірів цеглини)
If а>b  Then Begin S:=a; a:=b; b:=S; End;
If a>c  Then Begin S:=a; a:=c; c:=S; End;
If b>c  Then Begin S:=b; b:=c; c:=S; End;
{Впорядкування розмірів отвору}
If x>y  Then Begin S:=x; x:=y; y:=S; End;
If (a<=x) and (b<=y) Then writeln( 'Цеглина пройде у отвір.')
else writeIn('Цеглина не пройде у отвір.')
End;
Readkey;
End.
Запитання для перевірки засвоєння знань
1. Чим відрізняється застосування функцій Read і Readln.
  1. Як можна перетворити змінну дійсного типу у змінну цілого типу?
  2. Над якими типами даних можна виконати операцію div?
  3. Чим відрізняються операції div і mod?
  4. Коли використовують підпрограми?
Підсумок уроку.
Домашнє завдання:
Складіть програму, за допомогою якої обчисліть значення функції:
Урок 28Практична робота №3 «Програми з розгалуженнями»
Мета: закріплення навичок складання програм з розгалуженнями.
Запитання для перевірки володіння теоретичним матеріалом:
  1. У чому полягає відмінність виконання вкладених та послідовно розташованих розгалужень?
  2. Яку роль відіграють складені логічні вирази в розгалужених алгоритмах?
  3. Чи   можна   алгоритм   у   прикладі   3   записати   за   допомогою послідовних розгалужень?Якої форми вони будуть?
  4. Чи   можна   алгоритм   у   прикладі   4   записати   за   допомогою послідовних розгалужень?Якої форми вони будуть?
  5. Наведіть     власний     приклад    алгоритму    з     використанням послідовних розгалужень.
  6. Наведіть власний приклад алгоритму з використанням вкладених розгалужень.
За наведеним сценарієм виконайте завдання по створенню та налагодженню розгалужених алгоритмів та програм.
  1. Визначити кількість і типи вхідних даних відповідно до умови задачі.
  2. Визначити кількість і типи вихідних даних відповідно до умови задачі.
  3. Визначити тип алгоритму, побудувати математичну модель.
  4. Визначити необхідність введення проміжних даних, їх кількість та типи.
  5. Розробити словесний опис алгоритму та побудувати його схему.
  6. Визначити форми розгалуження, які необхідно застосувати для створення алгоритму відповідно до умови задачі.
  7. Визначити послідовність введення початкових та виведення результуючих даних з використанням відповідних комента­рів і форматування.
  1. Визначити коректність використання послідовних та вкладених розгалужень.
  2. Записати алгоритм мовою програмування.
  3. Набрати текст програми, використовуючи середовище програмування та виконати налагодження програми, виправивши синтаксичні помилки.
  4. Виконати програму, підготувавши систему тестів.
Завдання для практичної роботи:
  1. Задано значення х. Скласти програму, за допомогою якої обчисліть значення функції:

2. Задано сторону квадрата і радіус круга. Складіть програму, за допомогою якої визначіть, що більше – площа квадрата чи площа круга.
Тексти програм та результати обчислень записати в зошит.

Урок 29 Самостійна робота №2
Мета: перевіри вміння учнів застосовувати вказівку розгалуження для розв’язування задач.
Запитання
  1. Який загальний вигляд має команда повного розгалуження?
  2. Яка дія команди повного розгалуження?
  3. Чи можна ставити ";" перед словом else?
  4. Що таке складена команда і коли її застосовують?
  5. Що означає удосконалити програму?
  6. Чому важливо зменшувати кількість змінних під час складання програм?
Складіть програми, використовуючи повну команду if.
1.  Уведіть значення аргументу і обчисліть значення складеної функції
3. Уведіть число. Виведіть повідомлення чи число кратне 9.
  1. Уведіть два числа. Менше замініть сумою цих чисел, більше — їх різницею. Виведіть результати.
  2. Уведіть два числа. Чи належить більше число проміжку [10; 20]?
  3. Уведіть значення аргументу і обчисліть значення складеної функції
  1. Уведіть значення аргументу і обчисліть значення складеної функції
8. Уведіть число. Виведіть повідомлення: число додатне, від’ємне чи нуль.

Урок 30 Оператор вибору
Мета: ознайомлення з поняттями вказівки вибору; формування навичок використання вказівки вибору; виховання інформаційної культури.
Тип уроку: вивчення нового матеріалу.
Хід уроку.
І. Організаційний момент.
ІІ. Викладання нового матеріалу.
1. Вказівка вибору
Вказівка вибору це оператор який є узагальненням оператора if і дає змогу зробити вибір із довільного числа наявних варіантів. Він складається з виразу, що називається селектором, і списку параметрів, кожному з яких передує список констант вибору (список може складатися і з однієї константи). Як і в операторі ifтут може бути присутнім слово elseщо має той же зміст. Формат опису:
case < вираз-селектор > of
  • список констант вибору1 >  :  < оператор 1 >;
  • список констант вибору 2 >  :  < оператор 2 >;
  • список констант вибору п >   :   < оператор п >
[else < оператор п+1 > ] end;
Оператор case працює наступним чином: спочатку обчислюється значення виразу-селектора, потім забезпечується реалізація того оператора, константа вибору якого дорівнює поточному значенню селектора. Якщо жодна з констант не дорівнює поточному значенню селектора, виконується оператор, що знаходиться за словом elseЯкщо слово else відсутнє, активізується оператор, що знаходиться за словом endтобто перший оператор за межею дії caseСелектор має належати до одного з перелічувальних типів (цілого, булівського або літерного). Дійсні та рядкові типи використовувати в якості селектора заборонено. Список констант вибору складається з довільної кількості значень або діапазонів, відділених один від одного комами. Межі діапазону записуються двома константами через складений символ діапазону «..». Тип констант у будь-якому випадку повинен збігатися з типом селектора. Щоб краще зрозуміти використання оператора вибору, розглянемо кілька типових задач.
Задача 134   
Розробити діалогову програму, яка запитує вік користувача і визначає, до якої вікової категорії він належить:
  1. від до 10 років дитина;
  2. від 11 до 15 років підліток;
  3. від 16 до 20 років юнак (юнка);
  4. від 21 до ЗО років молода людина;
  5. після 31 року доросла людина.
Особливих пояснень ця задача не потребує, адже її можна розв'язати і за допомогою команди розгалуження. Однак зробимо її за допомогою команди вибору, причому, щоб скористатися гілкоюElseбудемо вважати,що людина може мати вік не більше 150 років (не зафіксовано рекордів коли людина прожила понад 150 років). Якщо ж користувач введе число, що не входить у дозволений діапазон, будемо вважати, що він пожартував.
Program Example_134 ;
Uses crt;
Var Years:byte;   {Years  - вік користувача}
Begin
Clrscr;   {Очищення екрану}
Write('Введіть Ваш вік:   ');
Readln(Years);
Write('Ви ');
Case Years of
0..10:   Writeln (' - дитина.') ;
11..15:   Writeln('- підліток.');
16..20:   Writeln('- юнак   (юнка).');
21..ЗО:   Writeln('- молода людина.') ;
31..150: Writeln('- доросла людина.')
Else writeln(', пожартували? Людина стільки не живе!') ;
End;
Readkey;   {Затримка зображення на екрані}
End.
Задача№151   
Розробити програму виведення інформації про день тижня, (вихідний чи робочий), якщо задано його номер від до 7 (1 понеділок).
 Program Example_151;
Uses  crt;
Var Day:byte;   {Day - номер дня тижня}
Begin
Clrscr;
Write('Введіть номер дня тижня:   ') ;
Readln(Day);
Case Day of
1..5:   Write('Це робочий день   ');
6,7:    Write('Це вихідний день ')
Else     write('Це не день  ');
End;
Writeln('тижня.');
Readkey;
End.
Розглянемо ще один приклад застосування команди вибору.
 Нехай населені пункти позначені номерами від 1 до 8. Вартість одного квитка до конкретного пунктуk визначається так:
Скільки коштуватимуть т квитків до населеного пункту, номер якого вводять з клавіатури?
program Kvytky; uses Crt;
var k,m,cina:integer;
begin
clrscr;
writeln('Введіть номер пункту та кількість квитків:');
readln(k.m);
case k и
1           : cina:=22;
2..4        : cina:=25;
5,6          : cina:=30
else          cina:=35
end;
write(m,  ' квитків до пункту ', k,  ' коштують ');
writeln(m*cina);
readln
end.
Якщо під час виконання програми ввести дані так: 3    5,   то на екрані отримаємо: 5 квитків до пунку 3 коштують 125.
ІІІ. Перевірка засвоєних знань.
Дайте відповідь на запитання:
  1. Чим константи відрізняються від змінних?
  2. Який тип даних в програмах використовують найчастіше?
  3. Коли можна використовувати діапазон даних?
  4. Яке призначення алгоритмічної конструкції вибір?
  5. Який вигляд має команда case і як вона працює?
Виконайте вправи:
  1. Запишіть у вигляді діапазону: а) 2, 3, 4, 5, 6; б) 121, 122, 123, 124; в) ‘a’, ‘b’, ‘c’; г) ‘a’, ‘б’,’в’,’г’.
  2. Запишіть діапазон у вигляді списку: а) 10..15; б) -5..2; в) ‘k’..’m’.
  3. Для заданого номера дня тижня вивести його назву.
IVПідсумок уроку.
Домашнє завдання:
Вивчити теоретичний матеріал уроку.
Задайте відстані до міст А, В, С, D. Нехай на 100 км потрібно 7 л бензину. Комп’ютер запитує водія про пункт призначення (треба буде ввести одну букву) і повідомляє про небхідну кількість бензину.

Урок 31. Розв’язування задач на використання оператора вибору.
Мета: формування навичок використання вказівки вибору, виховання інформаційної культури.
Тип уроку: формування навичок
Хід уроку.
І Актуалізація опорних знань учнів.
  1. Напишіть інструкцію CASE, яка виводить на екран назву пори року. Змінна month містить номер місяця.
  2. Замініть інструкцію
if day=7
then write('Неділя') else
if day=6
then write('Субота')
else       write('Робочий день');
інструкцією CASE. Відповіді:
1.        case month of
12,1,2:write ('Зима! ' ) ; 3..5:write('Весна!');
6. .8:write(‘ЛіTo! ') ;
9. .11:write('Осінь!') ; end;
2.        case day of
7:write('Неділя');
6:write('Субота');
else write('Рoбочий день');
end;

ІІ. Формування навичок.
Розв’язування задач.
 Задача1. Ціна купальника у травні становить а грн. У червні ціна буде збільшена на р%, у липні дорівнюватиме травневій, а в серпні буде зменшена на qпорівняно з травневою. Скласти програму, яка після введення номера літнього місяця (month) визначатиме ціну (с) купальника.
Розв'язок задачі запишемо у такому вигляді:
Розглянемо програму. Змінну month оголосимо не як integer, а як діапазон 6..8 — звуження типу integer згідно з умовою задачі.
program Shopping;
var month : 6..8; a,p,q,c : real; when:string;
begin
write('Введіть ціну, відсотки р та q, номер місяця: ');
readln(a,p,q,month);
case month of
6: begin с := a * (1 + p/100); when :='червні" end;
7: begin с := a; when := 'липні' end;
8: begin с := a * (1 - q/100); when := 'серпні' end end;
writeln('Купальник у  ', when, ' коштує   ', с)
end.
Виконаємо програму. Нехай нас цікавить ціна купальника в серпні (month=8). Введемо дані так: 9.8 20 30 8.
Отримаємо результат: Купальник у серпні коштує 6.86.
Задача 2. Виконайте програму Dialog. Уведіть число — кількість років — і прочитайте відповідне повідомлення.
program Dialog; var Vik : integer; begin
write ('Скільки Вам років? ');
read(Vik);
case Vik of
12,13:writeln('Baм ще рано читати цей розділ');
14,15:writeln('Baм ще не можна дивитися фільми для
дорослих');
16,17:writeln('Добре вчіться - батьки будуть пишатися Вами'); 18,19:writeln('Miнздоров’я  попереджає...');
20..23:writeln('Паскаль вивчати вже пізно - пора заміж!')
else
writeln('Закрийте цю книжку! Читайте Н.Вірта!');
end ; readln
end.
У програмі Dialog використано діапазон значень 20..23 замість списку чисел 20, 21, 22, 23.
Завдання. Поекспериментуйте з однією з наведених вище програм, модифікувавши її на свій розсуд та ввівши свої дані.
Спробуйте розв’язати самостійно:
  1. Дано ціле число n (1 < n < 12), яке визначає порядковий номер місяця в році. За введеним значенням n надрукувати назву відповідного місяця.
  2. Розробити програму виведення кількості днів у місяці, якщо останній задається цілим числом від 1 до 12.
  3. Розробити програму видачі текстового варіанта шкільних оцінок:
  1. 1, 2, 3 - початковий рівень;
  2. 4, 5, 6 - середній рівень;
  3. 7, 8, 9 - достатній рівень;
  4. 10, 11, 12 - високий рівень.
Підсумок уроку.
Домашнє завдання:
  1. Дано ціле число n (1 < n < 4), яке визначає порядковий номер кварталу року (січень, лютий, березень -1 квартал і т. д.). За вказаним значенням n надрукувати перелік місяців, які відносяться до цього кварталу.
  2. За даним цілим значенням змінної k (1 < k < 6), яка визначає день тижня, надрукувати свій розклад уроків.
  3. Дано ціле число га (1 < n < 4), яке визначає пору року. За вказаним значенням n надрукувати перелік місяців, які відносяться до цієї пори року.



Урок 57-58. Тематична атестація «Організація циклів»
Варіант 1
  1. Обчисліть а, якщо а:=6; for і:=1 to 2 do а:=а*і-2; а:=а+1;
  2. Обчисліть р, якщо р:=2; while p<=10 do begin р:=2*р+1; р:=р+1 end;
  3. 1дюйм=2,54 см =1/12 фута. Складіть програму для виведення таблиці цих мір для перших дванадцяти дюймів. Нарисуйте графічну схему алгоритму.
  4. Нарисуйте графічну схему і складіть програму для табулювання функції у= x2sin2x на проміжку [-1;1] з кроком 0,2 і обчислення суми та кількості додатних значень. Додаткове завдання: обчисліть добуток першого і макси­мального значень.
Варіант 2
  1. Обчисліть а, якщо а:=2; for i:=1 to 3 do begin a:=a+i; a:=a-1 end;
  2. Обчисліть р, якщо р:=1; while p<10 do p:=2*p+1; р:=р+1 ;
  3. Нарисуйте графічну схему і напишіть програму для виведення на екран номерів і значень лише додатних елементів послідовності isini, і=1,2,...,20.
  4. Нарисуйте графічну схему і складіть програму для табулювання функції у=x3sin3x: на проміжку [-2; 2] з кроком 0,4 і обчислення добутку та кількості значень, що задовольняють умову -1<у<2. Додаткове завдання: обчисліть суму мінімального й останнього значень функції.

ії.

1 коментар:

  1. Я ЗАРАЗ ФІНАНСОВО ПОВЕРНУТЬСЯ Кредиту, який я отримав від LFDS. Я хотів би донести це до відома громадськості про те, як я вступив у контакт з паном Бенджаміном після того, як я втратив роботу та отримав відмову в кредиті мого банку та інших фінансова установа завдяки моєму кредиту. Я не міг платити збори за своїх дітей. Мене було поза рахунками, що збираються викинути з дому через неможливість платити свою оренду. Саме в цей період моїх дітей брали у мене прийомну допомогу. Тоді я вирішив шукати гроші в Інтернеті, де я втратив 3670 доларів, які я позичив у друзів, яких я вирвав у двох інтернет-кредитних компаніях. Поки я не прочитав про: кредит в Інтернеті (247officedept@gmail.com) десь в Інтернеті, все ще не переконав, через що я пережив, поки мій родич, який є духовенством, також не розповів мені про поточну схему позик у дуже низька процентна ставка в розмірі 1,9 %% та прекрасні умови погашення без штрафних санкцій за невиконання платежу. У мене немає іншого вибору, ніж зв’язатися з ними, що я зробив за допомогою тексту + 1-989-394-3740, і містер Бенджамін відповів мені назад. Цей день був найкращим і найкращим днем ​​мого життя, який ніколи не можна забути, коли я отримувати кредитне сповіщення в розмірі 400 000,00 доларів США за суму позики, на яку я звернувся. Я ефективно використала позику, щоб погасити свої борги та створити бізнес, і сьогодні я та мої діти так раді й виконуємо. Ви також можете зв’язатися з ними електронною поштою: (247officedept@gmail.com) Телефон довідки WhatsApptext: + 1-989-394-3740 Чому я це роблю? Я роблю це, щоб врятувати стільки тих, хто потребує позики, щоб не стати жертвою афери в Інтернеті. Дякую і Бог вас усіх благословив, я Олександр Артем із парку Горизонт до н.е., Україна.

    ВідповістиВидалити