Метод последовательной детализации. Конспект урока по информатике на тему "Ветвление и последовательная детализация алгоритма" (9 класс). Неполная форма ветвления

Цели:

Знакомство с новыми понятиями: вспомогательный алгоритм, метод последовательной детализации алгоритма, формирование навыка работы со вспомогательными алгоритмами; закрепление навыков по составления линейных алгоритмов,

Задачи:

  • учебная – изучить понятия: вспомогательный алгоритм детализация алгоритма, формирование навыков составления основных и вспомогательных алгоритмов;
  • развивающая – развитие алгоритмического мышления, памяти, внимания, логического мышления, познавательного интереса, коммуникативной культуры, учебно-познавательной компетенции;
  • воспитательная – развитие познавательного интереса, способствовать воспитанию в детях милосердия, ответственности, взаимопонимания, взаимоуважения, взаимопомощи и поддержки.

Скачать:

Предварительный просмотр:

Чтобы пользоваться предварительным просмотром презентаций создайте себе аккаунт (учетную запись) Google и войдите в него: https://accounts.google.com


Подписи к слайдам:

«Черепаха» - графический учебный исполнитель. « Черепаха» - графический учебный исполнитель.

Алгоритм – понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.

Е Программа – это алгоритм, записанный на языке исполнителя.

1 = Н Точность. Свойство алгоритма. Точность алгоритма означает, что каждая команда должна пониматься однозначно

Алгоритм: 1.Сесть в лодку двум туристам 2.Переплыть 3.Высадить одного туриста 4.Переплыть 5.Сесть в лодку одному туристу 6.Переплыть 7.Высадить одного туриста 8.Переплыть 9.Сесть в лодку одному туристу 10.Переплыть 11.Высадиться всем туристам

Вспомогательные алгоритмы. Метод последовательной детализации и сборочный метод

Цель урока: формирование у учащихся понятий вспомогательный алгоритм, подпрограмма (процедура) ; умений практического применения этих понятий в среде графического учебного исполнителя. Обучающи е: знать понятия: вспомогательный алгоритм, подпрограмма (процедура) ; уметь строить алгоритмы с использованием процедуры в среде учебного исполнителя Черепашка; Развивающи е: развитие алгоритмического мышления, памяти, внимания, логического мышления, познавательного интереса, коммуникативной культуры, учебно-познавательной компетенции; Воспитательные: формировать познавательную активность; способствовать воспитанию в детях ответственности, взаимопонимания, взаимоуважения, взаимопомощи и поддержки. Задачи урока:

Основной Алгоритм алгоритм: Переправа: Сесть в лодку двум туристам Выполнить алгоритм Переправа Выполнить алгоритм Переправа Переплыть Высадиться всем туристам. Переплыть Высадить одного туриста Переплыть Сесть в лодку одному туристу

Вспомогательный алгоритм - это алгоритм решения некоторой подзадачи из исходной (основной) задачи. Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой Вспомогательный алгоритм – алгоритм, снабженный таким заголовком, который позволяет вызвать его из других алгоритмов (должен иметь свое имя). Из основной подпрограммы происходит обращение к вспомогательному алгоритму по его имени.

Основная программа: «Число 1717» нач сделай ЕДИНИЦА сделай СЕМЬ сделай ЕДИНИЦА сделай СЕМЬ кон

Описание вспомогательного алгоритма (процедуры) Определение процедуры в программе называется ее описанием. Формат описания процедуры: процедура нач кон

Процедура ЕДИНИЦА выучи единица { вперёд 100 налево 120 вперёд 30 назад 30 налево 60 вперёд 100 налево 90 перо_подними вперёд 40 налево 90 перо_опусти } Процедура СЕМЬ выучи семь { вперёд 100 налево 90 вперёд 30 налево 90 вперёд 5 назад 5 направо 90 назад 30 налево 90 вперёд 100 налево 90 перо_подними вперёд 40 налево 90 перо_опусти } единица семь единица семь

Метод программирования, при котором сначала составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним, называется сборочным методом, или программированием снизу вверх. Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами. Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации, или программированием сверху вниз. . Последовательная детализация, сборочный метод

Домашнее задание: Выучить конспект. параграф 5, № 7 стр.32 (рисунки1,2,6).

Предварительный просмотр:

Тема урока: Вспомогательные алгоритмы. Метод последовательной детализации и сборочный метод

Цели:

Знакомство с новыми понятиями: вспомогательный алгоритм, метод последовательной детализации алгоритма, формирование навыка работы со вспомогательными алгоритмами; закрепление навыков по составления линейных алгоритмов,

Задачи:

  • учебная – изучить понятия: вспомогательный алгоритм детализация алгоритма, формирование навыков составления основных и вспомогательных алгоритмов;
  • развивающая – развитие алгоритмического мышления, памяти, внимания, логического мышления, познавательного интереса, коммуникативной культуры, учебно-познавательной компетенции;
  • воспитательная – развитие познавательного интереса, способствовать воспитанию в детях милосердия, ответственности, взаимопонимания, взаимоуважения, взаимопомощи и поддержки.

Тип урока : урок закрепления знаний и изучение нового материала.

Вид урока : комбинированный урок (лекция и практика).

Оборудование и программное обеспечение: презентации PowerPoint .

Структура урока:

  1. Организационный момент

II. Актуализация знаний

Групповая форма работы.

III. Теоретическая часть

Постановка проблемной ситуации. Объяснение с помощью презентации.

IV. Закрепление знаний Практическое задание.

V. Итог урока Рефлексия.

VI. Домашнее задание

ХОД УРОКА

I. Организационный момент

Приветствие. Проверка присутствующих. Установление психологического и эмоционального контакта с детьми. Проверка домашнего задания.

ІІ. Актуализация опорных знаний

Учитель : мы продолжаем работать с учебным исполнителем «Черепаха». И прежде чем мы будем решать новые задачи, давайте вспомним, что мы проходили на прошлых уроках. Для этого я вам раздам листы, на которых нарисованы ребусы. Ваша задача в парах разгадать свой ребус и написать определение к получившемуся слову.

Выполнение 2 минуты.

Учитель : Давайте проверим, что получилось. (Учащиеся говорят свои ответы, учитель параллельно демонстрирует на экране ребусы).

Черепаха – графический учебный исполнитель.

Алгоритм – понятное и точное предписание исполнителю выполнить конечную последовательность команд, приводящую от исходных данных к искомому результату.

Точность. Свойство алгоритма.

Точность алгоритма означает, что каждая команда должна пониматься однозначно.

Какие свойства алгоритмов вы знаете еще (ответы учащихся)

Программа – это алгоритм, записанный на языке исполнителя.

II. Мотивация, целеполагание, постановка проблемы

Давайте попробуем представить себе, как мы с вами совершим поход к реке. Нам предстоит переплыть реку на лодке. Необходим алгоритм переправы через реку, учитывая, что в лодку помещаются только два человека. Давайте попробуем его составить.

Вот ты (ученик) проговаривай команд, а я буду показывать вам на доске.

Алгоритм:

  1. Сесть в лодку двум туристам
  2. Переплыть
  3. Высадить одного туриста
  4. Переплыть
  5. Сесть в лодку одному туристу
  6. Переплыть
  7. Высадить одного туриста
  8. Переплыть
  9. Сесть в лодку одному туристу
  10. Переплыть
  11. Высадиться всем туристам

Какую особенность в этом алгоритме вы можете отметить?

(Учащиеся отмечают повторение команд 2-9 .)

Давайте подумаем, какой недостаток этого алгоритма.

(Потрачено много времени на написание повторяющихся команд )

Очень много времени мы потеряли на запись повторяющихся команд. Как же можно сократить запись данного алгоритма? Ответить мы сможем на данный вопрос после рассмотрения сегодняшней темы урока:

(Учащиеся записывают в тетради число и тему урока )

«Вспомогательные алгоритмы». Итак, кто сможет сказать, о чем будет идти речь на сегодняшнем уроке (ответы учащихся)

Сегодня мы узнаем, какие алгоритмы называются вспомогательными и как оформляются такие алгоритмические структуры.

III. Объяснение нового материала.

Давайте повторяющиеся действия выведем в отдельный алгоритм, который назовем – Переправа. Посмотрите как будет выглядеть наш алгоритм:

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

Учащиеся записывают в тетради

Вспомогательный алгоритм - это алгоритм решения некоторой подзадачи из исходной (основной) задачи.

Вспомогательный алгоритм, записанный на языке программирования, называется подпрограммой или процедурой

Вспомогательный алгоритм – алгоритм, снабженный таким заголовком, который позволяет вызвать его из других алгоритмов (должен иметь свое имя).

Из основной подпрограммы происходит обращение к вспомогательному алгоритму по его имени.

IV. Закрепление

Составим алгоритм написания числа 1717 для исполнителя «Черепашка». В языке программирования Лого ключевым словом, обозначающим начало подпрограммы, является, выучи.

Учащиеся за компьютерами пишут подпрограммы для число один и семь, и сверяют написанное с программой на экране.

Здесь главная программа - это команда сброс и все что идет после закрывающей фигурной скобки. От команды выучи и до закрывающей скобки включительно - это подпрограмма.

Метод программирования, при котором сначала составляется множество подпрограмм, которые могут понадобиться при решении задачи, а затем пишется основная программа, содержащая обращения к ним, называется сборочным методом , или программированием снизу вверх .

Подпрограммы могут быть объединены в библиотеку подпрограмм и сохранены в долговременной памяти компьютера. Такую библиотеку можно постепенно пополнять новыми подпрограммами.

Метод программирования, при котором сначала записывается основной алгоритм, а затем описываются использованные в нем вспомогательные алгоритмы, называется методом последовательной детализации , или программированием сверху вниз .

Физминутка

Давайте немного отдохнём.

Упражнения для рук и плечевого пояса:

1. Поднять плечи, опустить плечи. Повторить 6 – 8 раз. Расслабить плечи.

2. Руки согнуть перед грудью. На счет 1 – 2 – пружинящие рывки назад согнутыми руками, на счет 3 – 4 – то же, но прямыми. Повторить 4 – 6 раз. Расслабить плечи.

Упражнения для туловища и ног:

1. На счет 1-2-шаг влево, руки к плечам, прогнуться. На счет 3 – 4 – то же, но в другую сторону. Повторить 3 - 4 раза.

2. Ноги врозь, руки за голову. На счет 1 – резкий поворот налево, на счет 2 – направо. Повторить 3 - 4 раза.

Гимнастика для глаз:

1. Сядьте на стул, закройте глаза, расслабьте мышцы лица, свободно, без напряжения откиньтесь на спинку стула, положите руки на бедра (10 – 15 секунд).

2. Откройте глаза и посмотрите вдаль перед собой (2 – 3 секунды). Переведите взгляд на кончик НОСА (3 – 5 секунд). Повторите 2 раза.

Практическое задание

Написать с использованием процедур программу вывода на экран число 333

  1. Итог урока

1. Какие вопросы были поставлены перед нами?

2. Получены ли ответы на поставленные вопросы?

Рефлексия

Облако "тегов", которые необходимо дополнить. сегодня я узнал...

  • было трудно…
  • я понял, что…
  • я научился…
  • я смог…
  • было интересно узнать, что…

Каждый ученик выбирает по 1-2 предложения и заканчивает их.

Оценивание работы учеников на уроке.

  1. Домашнее задание

Выучить конспект.

параграф 5, № 7 стр.32 (рисунки1,2).


19. Как называется способ многократного выполнения действий в зави-симости от заданного условия?

а) выбор; б) ветвление;

в) цикл; г) линейный алгоритм;

д) подпрограмма.

20. Метод последовательной детализации позволяет разработать сле-дующую структуру:

а) выбора; б) ветвления;

в) цикла; г) линейную структуру;

д) подпрограмму.

Ответы к тесту:

Урок 61 Наполнение базы данных с использованием формы

Цели урока :

Освоить способы ввода и редактирования данных с использованием формы;

Иметь представление о способах создания форм.

Ход урока

Актуализация знаний

Что такое база данных?

Для чего созданы системы управления базами данных?

Какими объектами управляет база данных?

Перечислите этапы создания базы данных.

Теоретическая основа урока

На предыдущем занятии мы рассматривали возможность ввода и редак-тирования данных в режиме таблицы. Таблица включала в себя небольшое количество полей, что позволяло уместить ее на экране монитора. Часто используются таблицы, которые имеют такое количество полей, которое не умещается на экране и приходится использовать ползунок, отчего бывает сложно соотнести записи различных полей.

Проблемы эти могут быть решены с использованием специальной кар-точки (формы), в которой отображается отдельная запись с соответствую-щими полями. Программная среда позволяет организовать удобный и ин-туитивно понятный интерфейс пользователя для работы с данными с по-мощью форм. Формами называются настраиваемые диалоговые окна, со-храняемые в базе данных в виде объектов специального типа. Для работы в режиме формы необходимо, чтобы структура таблицы была уже создана, тогда выбор вкладки Форма автоматически запускает Мастер форм с ис-ходной структурой. Ввод данных в режиме формы автоматически вносит все данные, которые моментально отображаются в таблице. Вид формы можно выбрать из совокупности предлагаемых Мастером, либо разработать самому.

Отработаем навыки на примере созданной таблицы «Байкал». Для этого выполним последовательность действий:

1. Открыть базу данных «Байкал».

2. Активизировать вкладку Форма.

3. Двойным щелчком активизировать функцию Создание формы с помощью мастера.

4. В появившемся окне выбрать нужные поля (в данном случае все).

5. Выбрать внешний вид формы из числа предложенных.

6. Выбрать требуемый стиль.

5. Задать имя формы (по умолчанию используется имя таблицы) и по-лучаем форму:

Перемещение между записями возможно с использованием кнопок «>» следующая запись, также можно перейти сразу к последней записи, либо запустить страницу для ввода новой записи. Аналогично можно двигаться и в обратном направлении, к предыдущей записи и переход к первой записи.

Практическое задание

Создать структуру таблицы «Школа» и ввести данные с помощью соз-данной с помощью Мастера формы.

Урок 62 Фильтрация данных

Цели урока:

Освоить приемы фильтрации данных;

Освоить способы сортировки данных.

Ход урока

Теоретическая основа урока

При открытии таблицы Access выводит записи в последовательности, определенной значениями первичного ключа этой таблицы. Если ключ не определен, то записи выходят в последовательности их ввода. Для измене-ния последовательности записей в таблице используется сортировка. Для сортировки таблицы по значениям только одного поля используются кноп-ки Сортировка по возрастанию и Сортировка по убыванию:

ип

Нужно установить курсор в любом месте поля, по которому произво-дится сортировка, и нажать соответствующую кнопку. Таблица будет от-сортирована по значениям указанного поля.

Для числовых значений сортировка определяется значением каждого разряда числа. Для текстовых данных сортировка осуществляется по сим-волам, определяемым последовательностью букв в алфавите. Курсор уста-навливается в любое место поля и нажимается соответствующая кнопка, сортируются значения находящиеся в этом поде и соответственно меняют значения и все остальные записи.

Сортировка таблицы по нескольким полям выполняется с помощью фильтра. Для этого нужно открыть таблицу и выполнить команду Запи-си/Фильтр/Расширенный фильтр. Появится окно Фильтр. В этом окне в строке Поле из списка полей таблицы нужно выбрать поле, сортировка по которому должна производиться в первую очередь. В строке Сортировка в этом же столбце бланка выбрать тип сортировки (по возрастанию или убы-ванию). В следующем столбце бланка выбирается поле, по которому будет проводиться сортировка во вторую очередь, и для него указывается тип сортировки. И так далее для всех полей, по которым будет проведена сор-тировка. После заполнения бланка сортировки выполнить команду Запи-си/Применить фильтр.

Фильтрация данных необходима для построения записей в нужной по-следовательности, это особенно актуально, если сортируем по одному по-лю, а там находятся одинаковые значения. (Здесь нужно обратить внимание учащихся на то, что окно фильтрации не должно закрываться. Первона-чально задаются условия сортировки, затем с переходом в окно таблицы выбрать команду Записи/Применить фильтр.)

Для выделения отдельных записей используется Фильтр по выделенно-му и Фильтр с исключением выделенного. Устанавливается курсор на оп-ределенной записи и выполняется команда Записи/Фильтр по выделен-ному, на экране останется лишь одна запись. Команда Записи/Исключить выделенное выдает записи без выделенной записи. Отказ от фильтрации возможно с использованием команды Записи/Удалить фильтр.

Для выборки необходимых данных используется команда Запи-си/Фильтр/Изменить фильтр. В появившемся окне на имени требуемого поля задается условие выбора. Здесь могут быть выбраны значения соот-ветствующие данным в поле, могут использоваться знаки «*», либо знаки неравенств. Знак «*» заменяет собой любую последовательность символов, знак «?» замещает один символ.

Практическое задание

Открыть" базу данных «Пруды Пермской области». Найти в базе данных все пруды, находящиеся на территории г. Березников. Выделить записи, имеющих площади больше 4 квадратных километров. Выбрать записи всех прудов появившихся в 20 столетии. Отсортировать записи по значениям объема воды.

Суть метода была описана выше. Сначала анализируется исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач (рис. 48).

Затем составляются алгоритмы (или программы), начиная с основного алгоритма (основной программы), далее - вспомогательные алгоритмы (подпрограммы) с последовательным углублением уровня, пока не получим алгоритмы, состоящие из простых команд.

Вернемся к задаче «Интерпретатор», которая рассматривалась в разд. 3.16. Напомним условие: дана исходная символьная строка, имеющая следующий вид:

На месте а и b стоят десятичные цифры; значком

обозначен один из знаков операций: +, -, *. Нужно, чтобы машина вычислила это выражение и после знака = вывела результат. Операция деления не рассматривается для того, чтобы иметь дело только с целыми числами.

Сформулируем требования к программе Interpretator, которые сделают ее более универсальной, чем вариант, рассмотренный в разд. 3.16:

1. Операнды а и b могут быть многозначными целыми положительными числами в пределах MaxInt.

2. Между элементами строки, а также в начале и в конце могут стоять пробелы.

3. Программа осуществляет синтаксический контроль текста. Ограничимся простейшим вариантом контроля: строка должна состоять только из цифр, знаков операций, знака = и пробелов.

4. Проводится семантический контроль: строка должна быть построена по схеме а

b =. Ошибка, если какой-то элемент отсутствует или нарушен их порядок.

5. Осуществляется контроль диапазона значений операндов и результата (не должны выходить за пределы MaxInt).

Уже из перечня требований становится ясно, что программа будет непростой. Составлять ее мы будем, используя метод последовательной детализации. Начнем с того, что представим в самом общем виде алгоритм как линейную последовательность этапов решения задачи:

1. Ввод строки.

2. Синтаксический контроль (нет ли недопустимых символов?).

3. Семантический контроль (правильно ли построено выражение?).

4. Выделение операндов. Проверка операндов на допустимый диапазон значений. Перевод в целые числа.

5. Выполнение операции. Проверка результата на допустимый диапазон.

6. Вывод результата.

Этапы 2, 3, 4, 5 будем рассматривать как подзадачи первого уровня, назвав их (и будущие подпрограммы) соответственно Sintax, Semantika, Operand, Calc

В свою очередь, для их реализации потребуется решение следующих подзадач: пропуск лишних пробелов (Propusk), преобразование символьной цифры в целое число (Cifra). Кроме того, при выделении операндов понадобится распознавать операнд, превышающий максимально допустимое значение (Error). Обобщая все сказанное в схематической форме, получаем некоторую структуру подзадач. Этой структуре будет соответствовать аналогичная структура программных модулей (рис. 49).

Первый шаг детализации. Сначала наметим все необходимые подпрограммы, указав лишь их заголовки (спецификации). На месте тела подпрограмм запишем поясняющие комментарии (такой вид подпрограммы называется «заглушкой»). Напишем основную часть программы. А потом вернемся к детальному программированию процедур и функций. На первом этапе программирования вместо тела подпрограммы опишем ее назначение в форме комментария. Окончательно объединив тексты подпрограмм с основной программой, получаем рабочий вариант программы Interpretator. Теперь ее можно вводить в компьютер.

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

Ошибки могут быть «языковые», могут быть алгоритмические. Первый тип ошибок, как правило, помогает обнаружить компилятор с Паскаля. Это ошибки, связанные с нарушением правил языка программирования. Их еще называют ошибками времени компиляции, ибо обнаруживаются они именно во время компиляции. Алгоритмические ошибки приводят к различным последствиям. Во-первых, могут возникнуть невыполнимые действия. Например, деление на нуль, корень квадратный из отрицательного числа, выход индекса за границы строки и т.п. Это ошибки времени исполнения. Они приводят к прерыванию выполнения программы. Как правило, имеются системные программные средства, помогающие в поиске таких ошибок.

Другая ситуация, когда алгоритмические ошибки не приводят к прерыванию выполнения программы. Программа выполняется до конца, получаются какие-то результаты, но они не являются верными. Для окончательной отладки алгоритма и анализа его правильности производится тестирование. Тест - это такой вариант решения задачи, для которого заранее известны результаты. Как правило, один тестовый вариант не доказывает правильность программы. Программист должен придумать систему тестов, построить план тестирования для исчерпывающего испытания всей программы.

Мы уже говорили о том, что качественная программа ни в каком варианте не должна завершаться аварийно.

Успешное прохождение всех тестов есть необходимое условие правильности программы. Заметим, что при этом оно необязательно является достаточным. Чем сложнее программа, тем труднее построить исчерпывающий план тестирования. Опыт показывает, что даже в «фирменных» программах в процессе эксплуатации обнаруживаются ошибки. Поэтому проблема тестирования программы - очень важная и одновременно очень сложная проблема.

Суть метода была описана выше. Сначала анализируется исходная задача. В ней выделяются подзадачи. Строится иерархия таких подзадач (рис. 48).

Затем составляются алгоритмы (или программы), начиная с основного алгоритма (основной программы), далее - вспомогательные алгоритмы (подпрограммы) с последовательным углублением уровня, пока не получим алгоритмы, состоящие из простых команд.

Вернемся к задаче «Интерпретатор», которая рассматривалась в разд. 3.16. Напомним условие: дана исходная символьная строка, имеющая следующий вид:

На месте а и b стоят десятичные цифры; значком

обозначен один из знаков операций: +, -, *. Нужно, чтобы машина вычислила это выражение и после знака = вывела результат. Операция деления не рассматривается для того, чтобы иметь дело только с целыми числами.

Сформулируем требования к программе Interpretator, которые сделают ее более универсальной, чем вариант, рассмотренный в разд. 3.16:

1. Операнды а и b могут быть многозначными целыми положительными числами в пределах MaxInt.

2. Между элементами строки, а также в начале и в конце могут стоять пробелы.

3. Программа осуществляет синтаксический контроль текста. Ограничимся простейшим вариантом контроля: строка должна состоять только из цифр, знаков операций, знака = и пробелов.

4. Проводится семантический контроль: строка должна быть построена по схеме а

b =. Ошибка, если какой-то элемент отсутствует или нарушен их порядок.

5. Осуществляется контроль диапазона значений операндов и результата (не должны выходить за пределы MaxInt).

Уже из перечня требований становится ясно, что программа будет непростой. Составлять ее мы будем, используя метод последовательной детализации. Начнем с того, что представим в самом общем виде алгоритм как линейную последовательность этапов решения задачи:

1. Ввод строки.

2. Синтаксический контроль (нет ли недопустимых символов?).

3. Семантический контроль (правильно ли построено выражение?).

4. Выделение операндов. Проверка операндов на допустимый диапазон значений. Перевод в целые числа.

5. Выполнение операции. Проверка результата на допустимый диапазон.

6. Вывод результата.

Этапы 2, 3, 4, 5 будем рассматривать как подзадачи первого уровня, назвав их (и будущие подпрограммы) соответственно Sintax, Semantika, Operand, Calc

В свою очередь, для их реализации потребуется решение следующих подзадач: пропуск лишних пробелов (Propusk), преобразование символьной цифры в целое число (Cifra). Кроме того, при выделении операндов понадобится распознавать операнд, превышающий максимально допустимое значение (Error). Обобщая все сказанное в схематической форме, получаем некоторую структуру подзадач. Этой структуре будет соответствовать аналогичная структура программных модулей (рис. 49).

Первый шаг детализации. Сначала наметим все необходимые подпрограммы, указав лишь их заголовки (спецификации). На месте тела подпрограмм запишем поясняющие комментарии (такой вид подпрограммы называется «заглушкой»). Напишем основную часть программы. А потом вернемся к детальному программированию процедур и функций. На первом этапе программирования вместо тела подпрограммы опишем ее назначение в форме комментария. Окончательно объединив тексты подпрограмм с основной программой, получаем рабочий вариант программы Interpretator. Теперь ее можно вводить в компьютер.

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

Ошибки могут быть «языковые», могут быть алгоритмические. Первый тип ошибок, как правило, помогает обнаружить компилятор с Паскаля. Это ошибки, связанные с нарушением правил языка программирования. Их еще называют ошибками времени компиляции, ибо обнаруживаются они именно во время компиляции. Алгоритмические ошибки приводят к различным последствиям. Во-первых, могут возникнуть невыполнимые действия. Например, деление на нуль, корень квадратный из отрицательного числа, выход индекса за границы строки и т.п. Это ошибки времени исполнения. Они приводят к прерыванию выполнения программы. Как правило, имеются системные программные средства, помогающие в поиске таких ошибок.

Другая ситуация, когда алгоритмические ошибки не приводят к прерыванию выполнения программы. Программа выполняется до конца, получаются какие-то результаты, но они не являются верными. Для окончательной отладки алгоритма и анализа его правильности производится тестирование. Тест - это такой вариант решения задачи, для которого заранее известны результаты. Как правило, один тестовый вариант не доказывает правильность программы. Программист должен придумать систему тестов, построить план тестирования для исчерпывающего испытания всей программы.

Мы уже говорили о том, что качественная программа ни в каком варианте не должна завершаться аварийно.

Успешное прохождение всех тестов есть необходимое условие правильности программы. Заметим, что при этом оно необязательно является достаточным. Чем сложнее программа, тем труднее построить исчерпывающий план тестирования. Опыт показывает, что даже в «фирменных» программах в процессе эксплуатации обнаруживаются ошибки. Поэтому проблема тестирования программы - очень важная и одновременно очень сложная проблема.

Функции пользователя

ü познакомиться с приемами построения алгоритмов;

ü получить представление о пользовательских функциях, освоить методику их написания.

I. Приёмы построения алгоритмов

Для создания работающей программы разработчик должен пройти три основных этапа:

проектирование – построение алгоритма решения поставленной задачи;

кодирование – перевод алгоритма на язык программирования;

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

Существуют разные способы создания алгоритмов. Известна доказанная теорема о том, что любой алгоритм можно построить при помощи трех алгоритмических структур: следования, развилки и цикла. Объединяя различным образом эти структуры можно разработать алгоритм, а по нему составить программу для решения любой логической задачи на компьютере. В этом случае говорят о структурном программировании .

Одним из приемов структурного программирования является разбиение (декомпозиция ) решаемой задачи на логически завершенные подзадачи. Для каждой подзадачи строится так называемый вспомогательный алгоритм . В связи с этим можно представить два способа построения алгоритмов:

метод последовательной детализации;

Сборочный метод предполагает, что при решении задачи у программиста должна быть библиотека модулей (модуль содержит подпрограмму, которая позволяет решать общие, но небольшие задачи). При решении достаточно сложной задачи алгоритм можно составить и таких модулей. Недостаток метода заключается в том, что для решения конкретной задачи необходимо наличие алгоритмов решённых задач.

Метод последовательной детализации можно разбить на три этапа:

1. Строится основной алгоритм решения общей задачи, т.е. исходная задача разбивается на логически завершённые подзадачи.

2. Для каждой подзадачи определяются входные данные, от которых функционально будет зависеть решение конкретной подзадачи; выходной параметр, который должен быть получен на выходе решения конкретной подзадачи; описывается вспомогательный алгоритм решения этой подзадачи.

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

Метод последовательной детализации используется для решения задач большой сложности. При этом к построению алгоритмов можно привлечь целый коллектив программистов.