Неактивна зіркаНеактивна зіркаНеактивна зіркаНеактивна зіркаНеактивна зірка
 

ПЛАН ЗАНЯТТЯ No3

Дата: група: Дисципліна: Алгоритми та структури даних. Тема: Поняття структурного програмування Мета:

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

Вид заняття: лекційне заняття. Форми та методи проведення заняття: інформаційно-рецептивні, фронтальне опитування, викладання нового матеріалу.

Міжпредметні зв’язки:

  • Дисципліни, що забезпечують: математичний аналіз, лінійна алгебра та аналітична геометрія.
  • Дисципліни, що забезпечуються: алгоритмічні мови та програмування, об'єктно-орієнтоване програмування.

Науково-методичне забезпечення:

  1. Алтухов Е.В., Рыбалко Л.А., Савченко В.С. Основы информатики и

вычислительной техники: Учеб. пособие для учащ. средн. спец. уч. заведений. – М.: Высш. шк., 1992. – 303 с. 2. Савченко В.С. Разработка алгоритмов: от простого к сложному.

Учебное пособие для классов с углубленным изучением информатики. – Донецк, 1996 – 320 с.

ХІД ЗАНЯТТЯ.

  1. Організаційний момент: перевірка відсутніх, зовнішнього вигляду,

готовності аудиторії. 2. Повідомлення теми, формування мети та основних завдань. 3. План викладання нового матеріалу: надано в конспекті лекції. 4. Актуалізація опорних знань:

  • Дати визначення похідної;
  • Дати визначення первісної, невизначеного інтегралу;
  • Дати визначення диференціалу;
  • Визначити зв’язок неперервності та диференційованості;
  • Необхідні умови інтегрованості функції;
  • Таблиця похідних, таблиця інтегралів основних елементарних функцій. 5. Вивчення нового матеріалу: Тема лекції: Поняття структурного програмування.
  • Мотивація вивчення матеріалу: диференціальні рівняння – це основний сучасний засіб розв’язання прикладних задач, який дає змогу описати математичну модель на зрозумілій мові. Тому, сучасному студенту необхідно вміти не тільки розв’язувати основні типи звичайних диференціальних рівнянь, але моделювати за допомогою диференціальних рівнянь текстові задачі.
  • План вивчення нового матеріалу: надається в конспекті лекції. 6. Виклад нового матеріалу: конспект лекції надається. 7. Закріплення нового матеріалу: обговорення окремих питань алгоритмів. 8. Підведення підсумків заняття. 9. Домашнє завдання:

Викладач М.П.Леверя

Лекція No3. Тема: Поняття структурного програмування.

План 1. Поняття структурного програмування.

  1. Поняття структурного програмування.

Починати вирішення задачі необхідно з осмислення її умови. Задачу необхідно зрозуміти: Що гласить задача? Що дано? Що слід знайти? Першим кроком в вирішенні цих питань є запис заголовку алгоритму. Заголовок алгоритму відповідає на питання: «Що дано?», «У якому виді дано?», «Що знайти?», «У якому виді представити результат?». Фактично ми виконаємо частину етапу формалізації задачі (відносно структури даних).

Можна вважати, що задачу ми зрозуміли, якщо вдається записати алгоритм в наступному вигляді:

АЛГ <Назва> (<Список аргументів і результатів з описом типів, розмірностей масивів та

т.ін>) АРГ <Список аргументів> РЕЗ <Список результатів> ПОЧ

<Короткий словесний опис того, що слід робити> КІН

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

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

Якщо пошук «схожої» розв’язаної задачі не закінчився успіхом, то можна спробувати сформувати задачу інакше. Спробувати вирішити частину задачі, використовуючи тільки частину умови і відкинувши іншу частину умови.

Перевірити, чи можна змінити невідоме, чи дані, чи і те і інше так, щоб нове невідоме і нові дані опинилися ближче один до одного. Впевнитися в

тому, що всі умови і обмеження задачі ми вже врахували. Які початкові дані допустимі, чи може бути ситуація, що задача не може мати розв’язку.

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

Такий метод конструювання алгоритмів прийнято називати «низхідним» (зверху вниз – від більш загальної, більш складної задачі до поодиноких, більш простих та легко вирішаємих задач) або методом послідовного уточнення алгоритму.

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

Розв’язок 1.

  1. А:=В 2. В:=А Цей розв’язок невірний, так як після першої же команди присвоювання значення величини А буде знищено. Друга команда присвоювання присвоює величині В нове поточне значення величини А (яка вже дорівнює величині В).

Розв’язок 2. Скористаємось допоміжною моделлю даної задачі. Припустимо, що А – це стакан з чаєм (тут «стакан» - ім’я величини, а «чай» - її значення), а В – чашка з кавою (тут «чашка» - ім’я другої величини, а «кава» - її значення). Необхідно перелити каву в стакан, а чай в чашку так, щоб напої не перемішалися.

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

  1. Зміст стакана перелити у кружку (кружка := стакан) 2. Зміст чашки перелити у стакан (стакан := чашка) 3. зміст кружки перелити в чашку (чашка := кружка)

Повертаючись до початкової задачі, та вводячи допоміжну (проміжкову) величину Р (такого же типу як А та В), отримаємо правильний розв’язок:

  1. Р:=А или 1. Р:=В 2. А:=В 2. В:=А 3. В:=Р 3. А:=Р

Спеціалісти програмування радять при виборі алгоритму дотримуватись так званого KISS – принципа:

Keep It Simple, Stuped (роби простіше, дурень!)

Витончене програмування може обійтися надто дорого. Навіть автору програми часто складно відладити чи модифікувати таки програму і довести її до робочого стану.

 

Для перегляду тексту необхідно залогінитись.