Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lection_Met_inf_8_algoritm.doc
Скачиваний:
9
Добавлен:
22.02.2016
Размер:
171.01 Кб
Скачать

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

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

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

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

КЕНГУРЕНОК. реалізований фірмою КУДИЦ для 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 ? (немає)

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

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

В = « Х > З »

всі

всі

кін

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]