Лекція № 7

 

Тема: Методика навчання основ алгоритмізації. Ідеї і методи структурного програмування в шкільному курсі інформатики. Метод послідовного уточнення алгоритму. Методика навчання учнів побудові алгоритмів методом послідовного уточнення.

 

Питання

1.      Алгоритм, виконавець алгоритму, система команд виконавця.

2.      Методичні рекомендації щодо розвязування завдань.

3.      Алгоритмічна мова, команди алгоритмічної мови.

4.      Розширення поняття величини, типи величин.

5.      Виконання алгоритмів за допомогою таблиць значень або протоколів.

6.      Допоміжні алгоритми.

 

Основні вимоги до учнів, що випливають із необхідності опановування базовими поняттями:

  1. Виконавець. Розуміти, що таке виконавець алгоритмів (як сполучення «робочого інструмента» і пристрою керування). Мати уяву про властивості виконавця (система команд, елементарна дія); розуміння змісту формального виконання команд; уявляти собі процес керування зі зворотним зв'язком.
  2. Алгоритм. Знати поняття алгоритму (як організованої послідовності дій деякого виконавця), властивості алгоритму, способи запису алгоритму. Знати основні способи організації дій і основні способи організації даних (змінні й таблиці). Уміти виконувати готові алгоритми, складати протоколи виконання алгоритмів, знаходити в них помилки, оцінювати області застосування, вміти складати алгоритми й записувати їх у зручній формі.
  3. Алгоритмічна мова. Знати основні конструкції мови, вміти складати алгоритми й записувати їх на шкільній алгоритмічній мові. Вміти використовувати метод покрокової деталізації алгоритмів.

Цілі.

2 сторони в навчанні алгоритмізації :

навчання структурній методиці побудови алгоритму;

навчання методам роботи з величинами.

 

Основний зміст навчальної діяльності при вивченні даного розділу - складання й аналіз алгоритмів.

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

Однак алгоритмізація не зводиться до програмування. Ціль навчання - не підготовка майбутніх програмістів, а прищеплювання школярам навичок алгоритмічного мислення, що виходить далеко за рамки програмування.

Логічний підхід, прийнятий у шкільному курсі математики, встановлює взаємозв'язок фактів. На відміну від нього, алгоритмічний підхід розглядає взаємозв'язок дій, у картині миру з'являється динаміка. Алгоритмічний підхід дозволяє передавати від людини не тільки знання, але й уміння.

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

Засоби.

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

  1. Національна лексика. Службові слова зрозумілі учневі. Іноземні слова створюють додаткову складність, вивчення іноземної лексики часто затуманює основну проблему - механізм роботи й використання алгоритмічних конструкцій.
  2. Структурність. Внутрішня структурна одиниця алгоритмічної мови - складена команда - забезпечує єдність структури алгоритму і його запису. Зовнішня структура - ієрархія алгоритмів.
  3. Незалежність від ЕОМ. В алгоритмічній мові немає деталей, пов'язаних з будовою машини, що дозволяє зосередитися на алгоритмічній суті розв'язуваного завдання.

Методи.

  1. Вивчення основних алгоритмічних понять відбувається з мінімальним залученням математики на прикладах керування в автоматичних пристроях. У той же час учитель може варіювати математичну складність курсу в широких межах.
  2. За традиційною методикою вивчення мов програмування спочатку розглядається чергова алгоритмічна конструкція, а потім демонструється її застосування при рішенні завдань. Такий підхід (від теорії до практики) виправданий тільки при наявності стійкої мотивації, інтересу до предмета. Можна використовувати проблемний підхід (від практики до теорії). Алгоритмічні конструкції вводяться по мірі необхідності при розвязуванні конкретних завдань, а потім - у загальному вигляді.
  3. Форми й методи навчання істотно залежать від можливості доступу учнів до ЕОМ.

 

Поняття алгоритму.

Розглядається поняття, що пронизує весь курс інформатики.

Виклад матеріалу повинне йти за наступною схемою:

Поняття алгоритму вводиться після розгляду декількох прикладів. На перший погляд все просто, але в процесі вивчення цього матеріалу можуть зустрічатися «підводні камені». До вибору прикладів з життя треба підходити обережно. Справа в тому, що чіткий запис навіть дуже простої і зрозумілої ситуації може викликати труднощі.

Типова методична помилка - пропозиція скласти алгоритм про перехід через вулицю. Школярі стикаються із труднощами: 1) відсутність настрою на чіткість мислення - у голові в школяра є цілісний образ даної дії, а потрібно дати формальний, препарований опис. 2) Вони не мають у своєму розпорядженні необхідних засобів для організації дій (вони не знають конструкцій розгалуження, циклів. 3) У завданнях подібного типу важко виділити елементарні дії. Звідси в школяра виникає відчуття, що його змушують викладати складною мовою прості речі.

Учитель повинен насамперед настроїти мислення учнів на максимальну чіткість. Тут найкраще застосувати рольовий метод навчання. Коли від людини потрібно докладного й точного пояснення? Тому можна попросити учня представити себе в ролі пояснюючого, а іншу частину учнів - у ролі людини, яка маже скористатися алгоритмом.

Перші алгоритми повинні бути лінійні й короткі. Алгоритми повинні бути такими, щоб найпростіша зміна порядку дій приводила до невиконання або до невірних результатів.

Приклади:

1.      Пояснити молодшому братові, як відкрити двері ключем.

2.      Вас запросили в гості, а ви не знаєте як проїхати.

 

У кожному прикладі необхідно звертати увагу на :

·        те, що ми описуємо складається з послідовності команд, що випливають одна за одною;

·        кожна команда зрозуміла чи ні;

·        черговість;

·        порядок дій;

·        те, що ми сказали, розраховано на схему поводження взагалі.

Тобто підводимо учнів до формулювання властивостей алгоритму.

Вводимо поняття алгоритму.

 

Властивості алгоритму.

1.      Результативність. Кожний алгоритм повинен привести до рішення завдання за кінцеве число кроків. Приклад: підбирається така послідовність дій, одна з яких не зрозуміла учням й попросити їх виконати алгоритм. Виходимо на 2 властивість.

2.      Зрозумілість (точність). Покласти кілька ложок цукру - не точна вказівка.

3.      Побудувати приклад, де б дія розривалася. Пройти на 4 поверх, не піднімаючись на 3 поверх. Дискретність. Не закінчивши виконання одної дії, не можна переходити до наступної.

4.       Визначеність. Після виконання кожного кроку, ми повинні знати, до якого кроку переходити.

5.      Масовість. Правила поведінки в театрі.

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

6.      Формальність

 

Форми подання алгоритму.

Текстова

Формула

Таблиця

Блок-схема

Мови програмування

 

Порівняння різних форм подання. Зупинитися докладніше на блок-схемах.

 

Методика розробки алгоритмів – структурний підхід (алгоритм збирається з 3 основних базових структур).

Послідовність, Розгалуження, Цикл.

Послідовність

 

 


Розгалуження

 

 

 

 

 

 

 

Неповне розгалуження

 

 

 

 

 

 

 

 

Цикли

Цикл – До (з предумовою)                                     Цикл – Поки (з постумовою)       

 

 

 

 

 

 

 

 

 

 


Виконавці алгоритмів.

Давайте повернемося до визначення алгоритму – точне й зрозуміле приписання виконавцеві…... Тобто центральний об'єкт цієї системи – виконавець – це той об'єкт або суб'єкт для керування яким складається алгоритм. Основна характеристика виконавця - система команд (СКВ).

Розглядається команда виконавця (те, що розуміє виконавець і може виконати за 1 раз) і система команд (безліч всіх команд виконавця).

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

Для виконання будь-якої роботи, рішення завдання виконавець на вході одержує алгоритм і вихідні дані, а на виході виходять необхідні результати.

 

Приклад:

черепашка, що вміє малювати.

Будуємо систему команд.

Міняючи параметри, вона малює квадрат, трикутник... .

Конкретний малюнок потрібно тому, хто її програмував.

Обговоримо питання побудови середини відрізка.

Що відбулося? - Черепашка формально виконувала алгоритм.

Що вийшло? - Середина відрізка.

 

Висновок: Формальне виконання алгоритму.

 

Методичні рекомендації з рішення завдань.

Для закріплення понять даної теми доцільно розглянути кілька вправ наступного змісту:

·        виконати роль виконавця: даний алгоритм, формально виконати його;

·        визначити виконавця й систему команд для даного виду роботи;

·        у рамках даної системи команд побудувати алгоритм;

·        визначити необхідний набір вихідних даних для рішення завдання.

Як приклад завдання першого типу можна розглянути алгоритм гри Баше. Після того, як діти пограли в гру, можна запропонувати кілька завдань аналітичного характеру. Завдання можна задати додому.

Завдання 1.

1.      Розгадати загадку алгоритму, тобто пояснити чому 2-й гравець завжди виграє?

Відповідь - 2-й гравець завжди виграє, якщо загальне число каменів визначається формулою: N=5k+1, де k - будь-яке натуральне число.

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

Відповідь – потрібно перехопити ініціативу, тобто виявитися в положенні 2 гравці, що доповнює попередній хід суперника на 5 каменів. Це можливо у випадку помилки суперника.
- взяти 1 камінь

- хід суперника, він взяв n каменів

- якщо n+1<5, то взяти 5-(n+1)
- хід суперника
 - грати по виграшному алгоритмі для 2 гравці.

 

Завдання 2.

Назвати виконавця наступного виду роботи - видача заробітної плати, визначити систему команд виконавця (СКИ).

У завданнях такого типу потрібно вчити учнів розбивати роботу виконавця на порівняно прості дії, які вимагають формального виконання.

При побудові СКИ вирішуються 2 проблеми: проблема елементарності команд і проблема повноти системи команд.

 

Завдання 3.

Описати систему команд виконавця «Геометр», що міг би виконувати геометричні побудови за допомогою лінійки й циркуля. Записати алгоритм побудови окружності, для якої заданий відрізок є діаметром.

На прикладі алгоритму проаналізувати яким властивостям задовольняє даний алгоритм.

 

Алгоритмічна мова.

Навчання методам побудови алгоритмів - один з найбільш відпрацьованих розділів шкільної інформатики. Традиційно застосовуваним дидактичним засобом у цьому розділі є навчальні виконавці алгоритмів.

Більші можливості при вивченні алгоритмізації надають виконавці, що працюють за принципом «черепашачої графіки». Ідея черепашачої графіки походить із навчальної мови програмування ЛОГО, створеного С.Пейпертом для роботи з молодшими школярами.

Може бути виконавцем КРЕСЛЯР з пакета програм для курсу Гейна,

КЕНГУРЕНОК. реалізований фірмою КУДИЦ для   IBM PC

РОБОТ з пакета Кумир

КУКАРАЧА з РОБОТЛАНДИИ

Підійде будь-який виконавець, що задовольняє наступним умовам6

1.      це повинен бути виконавець, що працює «в обстановці»

2.      виконавець повинен імітувати процес керування деяким реальним об'єктом (черепаха, робот)

3.      у системі команд виконавця повинні бути всі структурні керування (розгалуження, цикли)

4.      виконавець дозволяє використовувати допоміжні алгоритми.

 

Головна мета роздягнула алгоритмізації: оволодіння учнями структурною методикою побудови алгоритму й поняттям величини.

Послідовність вивчення матеріалу повинна визначатися принципами:

·        від простого до складного: поступове ускладненння завдань

·        новизна: кожне завдання вносить якийсь новий елемент знань (нова команда, новий прийом)

·        спадкування: наступне завдання вимагає використання знань, отриманих при рішенні попередніх завдань.

 

Порядок вивчення тим:

1.      складання лінійних алгоритмів

2.      використання розгалужень в алгоритмах

3.      складання циклічних алгоритмів

4.      величини, відношення між величинами

5.      опис і використання допоміжних алгоритмів

6.      використання методу послідовної деталізації при складанні складних алгоритмів.

 

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

Примітка: При описі алгоритму у вигляді блок-схеми або на АЯ строге дотримання синтаксичних правил не є обов'язковим. Алгоритм програміст пише для себе, як попередній етап роботи перед наступним складанням програми. Тому досить, щоб зміст алгоритму був зрозумілий його авторові. У той же час, у навчальному процесі потрібно деяка уніфікація способу опису алгоритму для взаєморозуміння. Але ця уніфікація не так жорстоко формалізована, як у мовах програмування.

Т.е. не слід вимагати від учнів строгості в описі алгоритму з точністю до крапки або коми. Наприклад, їли кожна команда в алгоритмі на АЯ записується в окремому рядку, те не обов'язково ставити наприкінці крапку з коми.

 

Виконання алгоритмів.

Учнів необхідно навчити швидко становити наочні протоколи ручного виконання алгоритмів.  Іноді рекомендується заповнювати спеціальну таблицю значень. Цей вид роботи має як позитивні, так і негативні сторони:

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

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

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

Велика навчальна роль виконання алгоритму. У процесі виконання учень змушений неодноразово програвати досліджувані команди, невміння виконувати той або інший крок змушує його згадувати відповідний матеріал. Це приводить до свідомого й міцного засвоєння конструкцій і правил алгоритмічної мови. Представляючи себе виконавцем алгоритму, уч-ся поступово починає розуміти логікові алгоритмів, суть язика й засобу опису алгоритмів.

Виконання алгоритму – ефективна форма контролю знань учнів, з'ясування того, чи розуміє учень весь алгоритм або хоча б окремі команди.

 Виконання алгоритму - засіб активізації класу. Для цього до виконання треба залучати якнайбільше дітей. Наприклад, виконання алгоритму по різним вихідним даним, або виконання окремих повторень циклу доручати різним учням.

Виховне значення  - регулярне виконання алгоритмів привчає уч-ся до акуратності й уважності, умінню доводити почата справа до кінця. Розвиває логічне, раціональне мислення.

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

·        лінійні: обчислення по формулах, усілякі пересилання значень змінних

·        ветвящиеся: пошук найменшого або найбільшого значень із декількох даних, сортування 2-3 значень, діалог з розгалуженням;

·        циклічні: обчислення сум і добутків числових послідовностей, циклічне уведення даних з послідовною обробкою.

 

Лінійні алгоритми.  Схема виконання лінійних алгоритмів проста.

Приклади завдань, пропоновані учням.

Приклад 1.

Замість многоточия вписати в алгоритм кілька команд:

уведення А...... висновок А

У результаті повинен вийти алгоритм зведення числа А в 4 ступінь. Додаткові змінні, крім А не використовувати.

   Відповідь:

уведення А

А:=А*А             2)

А:=А*А             4)

висновок А

 

Приклад 2.

Написати на АЯ алгоритм обчислення по формулі:

в = (1 - х2 + 5х4)2

Урахувати, що х – ціле число. В арифметичних вираженнях можна використовувати тільки операції додавання, вирахування й множення. Вираження може містити тільки 1 арифметичну операцію.

Виконати трасування при х=2.

Зауваження: учні можуть запропонувати різні варіанти алгоритмів. Корисно розглянути варіант рішення без використання проміжних змінних, тобто обійтися всього 2 змінними х и в.

уведення х

х:=х*х

в:= 1-х

х:=х*х

х:=5*х

в:=в+х

в:=в*в

висновок в

Приклад 3.

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

в = х8                  в = х10               в = х15                 в = х19

 

Приклад 4.

Записати алгоритм циклічного обміну значеннями 3 змінних А, В, С. Схема обміну
 А          В        С

 

                        ідея : для обміну потрібна додаткова змінна. ыполнить трасування.

Зауваження:

Для трасування становимо таблицю:

 

Команда

А

В

С

Х

Уведення А, В, З

1

2

3

 

Х:=З

 

 

 

3

С:=В

 

 

2

 

В:=А

 

1

 

 

А:=Х

3

 

 

 

Висновок А, В, З

3

2

1

 

 

Приклад 5. Визначити, до якого століття ставиться даний рік нової ери.

Рішення V= (G + 99) div 100.

 

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

-        лінійні алгоритми

-        ветвящиеся алгоритми;

-        циклічні алгоритми.

 

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

Приклади:

1.      Корінь квадратного рівняння,

2.      рішення нерівності ах>b,

3.      правопис приставок на «з», «з»

4.      порівняння 2 дітей по їхньому віці

5.      сортування А, В, З

 

Циклічні алгоритми. При виконанні циклічних алгоритмів треба мати на увазі, що при великій кількості повторень циклу всі їх виконувати вручну важко. У цьому немає необхідності. т.к. ручне виконання виробляється не для того, щоб одержати кінцевий результат, а щоб розібратися в алгоритмі й перевірити його. Однак виконати перші 2-3 повторення й останній оборот циклу треба обов'язково. Т.е. переконатися, що цикл правильно починається й так, як треба, закінчується. Оптимально буде, якщо вчитель небагато змінивши умову, приведе до того, що повторювати цикл треба 3-4 рази, що можна зробити повністю, і це буде методично більше коштовно. Наприклад, замість розгляду таблиці А[1:100] взяти таблицю A[1:3]. Циклічні алгоритми треба писати компактно, бажано на переверненій набік сторінці.

Уч-Ся повинні пам'ятати, що виконання тіла циклу (чергового повторення) закінчується лише при виході на слово кц. Потім виконавець обов'язково вертається до заголовка циклу, тобто до пропозицій поки…або длявіддокрок…... Ці дії також треба відзначати стрілкою.

Приклади:

1.        Дано речовинне число x і натуральне n. Обчислити xn.

2.      Послідовно вводяться n цілих чисел. Знайти максимальне з них.

 

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

Необхідно звернути увагу уч-ся на те, що принципового розходження між основним і допоміжним алгоритмами ні, однак, після закінчення виконання допоміжного алгоритму (тобто при виході на слово кін) виконавець обов'язково вертається в основний алгоритм до того місця, де було зроблене обіг. І продовжує виконувати основний алгоритм. Відхід у допоміжний алгоритм і повернення відзначається стрілками. Для наочності протоколу основний і допоміжний алгоритм бажано розташовувати друг під другом.

Приклад: знаходження більшого із трьох.

У курсі шкільної інформатики уведений у розгляд один з видів допоміжного алгоритму - алгоритм обчислення значень функцій. Це аналоги програм обчислення значень стандартних функцій, убудовані в ЕОМ і функцій користувача.

Приклад: обчислити значення функції В=|2A+1|-|3A+7|. Допоміжний алгоритм - знаходження модуля числа  Х=|X|.

 

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

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

Хоча б один приклад з факторіалом (3) розібрати з уч-ся треба. Уч-Ся глибше вникнуть у суть допоміжних алгоритмів, розширять свої подання про можливості алгоритмів і одержать эстетическое насолода від такої гарної процедури.

 

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

Наприклад, алгоритм креслення спирали (ксерокс).

Для текстової інформації - приклад: чи є слово «сік» частиною даного слова А. Відповідь  у вигляді - «так», «ні» (ксерокс).

 

Величина. Властивості величин.

Інформація, оброблювана комп'ютерною програмою, називається даними.

Величина – це окрема одиниця даних. Команди в комп'ютерній програмі визначають дії, виконувані над величинами.

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

Наприклад, при рішенні квадратного рівняння ax2+bx+c=0,

вихідними даними є коефіцієнти a, b, c,

результатами – корінь рівняння х1, х2,

проміжними даними – дискримінант рівняння D=b2-4ac.

 

Найважливіше поняття, що повинні засвоїти учні, є наступне: усяка величина займає своє певне місце в пам'яті комп'ютера.

Засвоєнню цього поняття ефективно сприяє вивчення теми «Пристрій комп'ютера», а саме, пам'ять комп'ютера – актуалізація. У свідомості учнів повинен закріпитися образ комірки пам'яті, що зберігає величину. У величини є 3 основні властивості:

ім'я

значення

тип.

На рівні машинних команд усяка величина ідентифікується адресою комірки пам'яті, у якій вона зберігається, а її значення - двійковий код у цій комірці. Це потрібно повідомляти учнів тільки в 11 класі, коли вони вивчають програмування й добре знають матеріал по темі «Як працює комп'ютер».

 В алгоритмах і мовах програмування величини діляться на константи й змінні.

Константа – незмінна величина,  в алгоритмах вона представляється власним значенням, наприклад 23, 5.7, ‘н'. Змінні величини можуть змінювати свої значення в ході виконання програми й представляються символічними іменами – ідентифікаторами. Приклади.

Однак і константи й змінні займають комірку пам'яті, а значення цих величин визначається двійковим кодом у цій комірці.


Лінійна нерівність   а*x>b

 

алг  ЛНЕР   ( вещ  А, В, З,  літ В )

2, -1

0, 1

         арг  А, В

 

 

         рез  ІЗ, В

 

 

нач

 

 

         якщо   А ¹ 0

2 ¹ 0 ? (так)

0 ¹ 0 ? (немає)

                  те  З := В/А

З = -1/2

 

                     якщо  А > 0

2 >0 ? (так)

 

                            те  В := « Х > З »

В = « Х > З »

 

                            інакше  В := « Х < C »

 

 

                     всі

 

 

         інакше   якщо  В < 0

 

1 < 0 ? (немає)

                            те  В := « Х – будь-яке число »

 

 

                     інакше В := « рішень ні »

 

В = « Х > З »

                     всі

 

 

         всі

 

 

кін

 

 

 

 

 

 

 

Знаходження факторіала натурального числа

 

 

алг  нат  ФКТРЛ ( нат  ДО )

ФКТРЛ(3)=?

ФКТРЛ(2)=?

ФКТРЛ(1)=?

нач

 

 

 

      якщо   ДО = 1

3 = 1 ?

2 = 1 ?

1 = 1 ?

              те  знач := 1

 

 

знач:=1

      інакше знач :=ФКТРЛ(ДО-1)*ДО

знач:=1*2*3

знач:=1*2

 

      всі

 

 

 

кін

 

 

 

 

 

 


Знаходження більшого із трьох (підпрограма - більше із двох)

 

алг  БИД   ( вещ  Р, ДО, М )

6, 7

7, 3

         арг  Р, ДО

 

 

         рез  М

 

нач

 

 

         якщо   Р ³  ДО

6 ³ 7 ?

7 ³ 3 ?

                  те  М := Р

 

М = 7

         інакше   М := ДО

М = 7

 

         всі

 

 

кін

 

 

 

 

алг  БІТ   ( вещ  А, В, З, В )

6, 7, 3

         арг  А, В, З

 

         рез  В

 

нач    вещ   Х

 

           БИД (А, В, Х)

                        Х = 7

           БИД (Х, З, В)

                                                        В =7

кін

 

 


Знаходження суми ряду

 


алг Сума (вещ таб А[1:3], вещ ІЗ)

 

 

 

 

         арг  А

 

 

 

 

         рез  ІЗ

 

 

 

 

нач  цілий  ДО

 

 

 

 

         К:= 1

ДО = 1

 

 

 

         С:= 0

З = 0

 

 

 

         поки ДО £ 3

1£ 3 ? (так)

2 £ 3 ? (так)

3 £ 3 ? (так)

 4 £ 3 ? (немає)

         нц

 

 

 

 

              С:= З + А[ДО]

З=А[1]

З=А[1]+A[2]

З=А[1]+A[2]+A[3]

 

               К:= ДО + 1

K=2

K=3

 K=4

 

         кц

 

 

 

 

кін