Гипермаркет знаний>>Информатика>>Информатика 9 класс>>Информатика: Программирование циклов
§ 39. Программирование циклов
Основные темы параграфа: ♦ этапы решения расчетной задачи на компьютере; Вы научились составлять линейные и ветвящиеся программы на Паскале. Теперь нужно освоить программирование циклов. Снова будем учиться на примере конкретной задачи. Но, в отличие от предыдущих примеров, подход к ее решению будет несколько другим.
Этапы решения расчетной задачи на компьютере Часто задача, которую требуется решить, сформулирована не на математическом языке. Для решения на компьютере ее сначала нужно привести к форме математической задачи, а потом уже программировать. Работа по решению таких задач с использованием компьютера проходит через следующие этапы: 1. Постановка задачи. Эту последовательность называют технологией решения задачи на компьютере. В чистом виде программированием, т. е. разработкой алгоритма и программы, здесь являются лишь 3-й, 4-й и 5-й этапы. На этапе постановки задачи должно быть четко определено, что дано и что требуется найти. Второй этап — математическая формализация. Здесь задача переводится на язык математических формул, уравнений, отношений. Далеко не всегда эти формулы очевидны. Нередко их приходится выводить самому или отыскивать в специальной литературе. Если решение задачи требует математического описания какого-то реального объекта, явления или процесса, то формализация равносильна получению соответствующей математической модели. Третий этап — построение алгоритма. Вы знаете два способа описания алгоритмов: блок-схемы и Алгоритмический язык (АЯ). Первые три этапа — это работа без компьютера. Дальше следует собственно программирование на определенном языке в определенной системе программирования. Последний (шестой) этап — это использование уже разработанной программы в практических целях.
Задача о перестановке букв. Программирование цикла на Паскале Проследим все этапы технологии на примере конкретной задачи. 1. Постановка задачи. Дано N кубиков, на которых написаны разные буквы. Сколько различных N-буквенных слов можно составить из этих кубиков (слова не обязательно должны иметь смысл)? Искомую целочисленную величину обозначим буквой F. Тогда постановка задачи выглядит так: Дано: N 2. Математическая формализация. Получим расчетную формулу. Сначала рассмотрим несколько конкретных примеров. Имеются два кубика с буквами «И» и «К». Ясно, что из них можно составить два слова: ИК КИ. Добавим к ним третью букву С. Теперь число разных слов будет в три раза больше предыдущего, т. е. равно 6: ИКС КИС ИСК СКИ КСИ СИК. Если добавить четвертую букву, например «А», то число слов возрастет в четыре раза и станет равным 24: КИСА КИАС КСИА КСАИ КАИС КАСИ ИКСА ИКАС Попробуйте записать все варианты слов из пяти букв: И, К, С, А, У. Сделать это непросто. Ясно лишь, что количество таких слов будет в пять раз больше 24, т. е. равно 120. Из шести букв можно составить 720 различных слов. С ростом числа букв число слов быстро растет. Например, для 10 букв получается 3 628 800 слов. Подобные задачи решает раздел математики, который называется комбинаторикой. Количество различных комбинации из N предметов, получаемых изменением их порядка, называется числом перестановок. Это число выражается функцией от которая называется факториалом и записывается так: N! Читается: «N факториал». Для любого натурального N значение N! вычисляется как произведение последовательности натуральных чисел от 1 до N. Например: 1! = 1; Теперь вернемся к формулировке задачи. Если N обозначает количество букв, а F — количество слов из этих букв, то расчетная формула такова: F = N! = 1·2·…·N. 3. Построение алгоритма. Поскольку алгоритм должен быть независимым от данного значения N, то его нельзя сделать линейным. Дело в том, что для разных N надо выполнить разное число умножений. В таком случае с изменением N линейная программа должна была бы менять длину. Алгоритм решения данной задачи будет циклическим. С циклическими алгоритмами вы уже познакомились, работая с графическим исполнителем.
Цикл — это команда исполнителю многократно повторить указанную последовательность команд. Рассмотрим блок-схему на рис. 6.7 и алгоритм на АЯ. Здесь применена знакомая вам алгоритмическая структура «цикл с предусловием». Выполняется она так: пока истинно условие цикла, повторяется выполнение тела цикла. Тело цикла составляют две команды присваивания, заключенные между служебными словами нц и кц. Условие цикла — это отношение R<=N (R меньше или равно N). В данном алгоритме переменная R выполняет роль множителя, значение которого меняется от 1 до N через единицу. Произведение накапливается в переменной F, начальное значение которой равно 1. Цикл заканчивается, когда R становится равно N + 1. Это значение в произведение уже не попадет. Для проверки правильности алгоритма построим трассировочную таблицу (для случая N = 3):
Из этой таблицы хорошо видно, как менялись значения переменных. Новое значение, присвоенное переменной, стирает ее старое значение (в данной таблице не повторяется запись значения переменной, если оно не изменяется; в таком виде таблица менее загромождена числами). Последнее значение F равно 6. Оно выводится в качестве результата. Очевидно, что результат верный: 3! = 6. 4. Составление программы. Чтобы составить программу решения нашей задачи, нужно научиться программировать циклы на Паскале, Основной циклической структурой является цикл с предусловием (цикл-пока). С помощью этой структуры можно построить любой циклический алгоритм. Оператор цикла с предусловием в Паскале имеет следующий формат: while <логическое выражение> dо <оператор>; Служебное слово while означает «пока», dо — «делать», «выполнять». Оператор, стоящий после слова dо, называется телом цикла. Тело цикла может быть простым или составным оператором, т. е. последовательностью операторов между служебными словами begin и end. А теперь запрограммируем на Паскале алгоритм решения нашей задачи (добавим к нему организацию диалога). Снова бросается в глаза схожесть алгоритма на АЯ и программы на Паскале. Обратите внимание на то, что в Паскале нет специальных служебных слов для обозначения конца цикла (так же как и конца ветвления). Во всех случаях, где это необходимо, используются слова begin и end.
5. Отладка и тестирование. Под отладкой программы понимается процесс испытания работы программы и исправления обнаруженных при этом ошибок. Обнаружить ошибки, связанные с нарушением правил записи программы на Паскале (синтаксические и семантические ошибки), помогает используемая система программирования. Пользователь получает сообщение об ошибке, исправляет ее и снова повторяет попытку исполнить программу. Проверка на компьютере правильности алгоритма производится с помощью тестов. Тест — это конкретный вариант значений исходных данных, для которого известен ожидаемый результат. Прохождение теста — необходимое условие правильности программы. На тестах проверяется правильность реализации программой запланированного сценария. Нашу программу, например, можно протестировать на значении N = 6. На экране должно получиться: Введите число букв: 6 6. Проведение расчетов и анализ полученных результатов — этот этап технологической цепочки реализуется при разработке практически полезных (не учебных) программ. Например, программы «Расчет прогноза погоды». Ясно, что ею будут пользоваться длительное время, и правильность ее работы очень важна для практики. А поэтому в процессе эксплуатации эта программа может дорабатываться и совершенствоваться.
Коротко о главном Последовательность этапов работы программиста при решении задачи на компьютере называется технологией решения задачи на компьютере. Таких этапов шесть: 1) постановка задачи; 2) математическая формализация; 3) построение алгоритма; 4) составление программы на языке программирования; 5) отладка и тестирование программы; 6) проведение расчетов и анализ полученных результатов. Количество различных комбинаций из N предметов, получаемых изменением их порядка, называется числом перестановок. Число перестановок равно N! (N-факториал): N! = 1·2·...·N. Любой циклический алгоритм может быть построен с помощью команды «цикл-пока» (цикл с предусловием). Оператор цикла с предусловием в Паскале: while <логическое выражение> dо <оператор>; Оператор, составляющий тело цикла, может быть простым или составным.
Вопросы и задания 1. Как блок-схемой и на алгоритмическом языке представляется команда цикла с предусловием?
И. Семакин, Л. Залогова, С. Русаков, Л. Шестакова, Информатика, 9 класс
Содержание урока конспект урока опорный каркас презентация урока акселеративные методы интерактивные технологии Практика задачи и упражнения самопроверка практикумы, тренинги, кейсы, квесты домашние задания дискуссионные вопросы риторические вопросы от учеников Иллюстрации аудио-, видеоклипы и мультимедиа фотографии, картинки графики, таблицы, схемы юмор, анекдоты, приколы, комиксы притчи, поговорки, кроссворды, цитаты Дополнения рефераты статьи фишки для любознательных шпаргалки учебники основные и дополнительные словарь терминов прочие Совершенствование учебников и уроков исправление ошибок в учебнике обновление фрагмента в учебнике элементы новаторства на уроке замена устаревших знаний новыми Только для учителей идеальные уроки календарный план на год методические рекомендации программы обсуждения Интегрированные уроки
Если у вас есть исправления или предложения к данному уроку, напишите нам. Если вы хотите увидеть другие корректировки и пожелания к урокам, смотрите здесь - Образовательный форум. |
Авторські права | Privacy Policy |FAQ | Партнери | Контакти | Кейс-уроки
© Автор системы образования 7W и Гипермаркета Знаний - Владимир Спиваковский
При использовании материалов ресурса
ссылка на edufuture.biz обязательна (для интернет ресурсов -
гиперссылка).
edufuture.biz 2008-© Все права защищены.
Сайт edufuture.biz является порталом, в котором не предусмотрены темы политики, наркомании, алкоголизма, курения и других "взрослых" тем.
Ждем Ваши замечания и предложения на email:
По вопросам рекламы и спонсорства пишите на email: