Конспект урока "Изучение основ программирования. Алгоритмизация"
1. Тема: Изучение основ программирования. Алгоритмизация.
2. Цель: овладение практическими навыками представления программ в виде
алгоритмов.
3. Задачи обучения:
1. разрабатывать алгоритмы обработки информации
2. представлять алгоритмы в различных формах
3. использовать осмысленные имена переменных, функций, процедур
4. контролировать входные данные
5. различать типы диалоговых сред
4. Основные вопросы темы
1. Понятие программы.
2. Разновидности программ.
3. Языки программирования.
4. Среды программирования
5. Виды данных
5. Методы обучения и преподавания объяснительно, фронтальный опрос
6. Литература
1. «Информатика» Б.С. Ахметов,т.ғ.,проф., М.М.Ерекешова, ф-м.ғ.,доц., Актобе, 2003
2. Е.Қ.Балапанов, Б.Бөрібаев, А.Даулетқұлов. «Информатикадан 30сабақ»
Алматы,1998.
3. Боровиков В.П., Боровиков И.П. Statistica Статистический анализ и обработка
данных в среде Windows. М. “Филинъ”, 1998.-592с.
4. Богумирский Б. Энциклопедия Windows98., 2-е изд.., -СПб, «Питер», 2001, - 816 с.
Дополнительно:
1. В.Э. Фигурнов. IBM PC для пользователя. М. «Компьютер». – 1993.
2. В. Настасенко, О. Настасенко. Практическая работа на IBM PC: PC Shell 5,1 и
Norton Commander.
3. Клаус Фаненштих, Райнер Г. Хаселир Операционная среда Windows. М. «Эком»,
1996.
7. Контроль (тесты и пр.)
1. Перечислите основные характеристики алгоритма.
2. Назовите основные типы алгоритмических структур.
3. Какие формы представления алгоритма вы знаете?
4. Какие задачи относятся к детерминированным?
5. В чем отличие интеллектуальных задач от эвристических?
6. Перечислите основные правила программирования
7. Назовите основные типы диалоговых сред.
Информационно-дидактический блок
Решение задач на компьютере основано на понятии алгоритма. Алгоритм – это
точное предписание, определяющее вычислительный процесс, ведущий от
варьируемых начальных данных к исходному результату.
Алгоритм означает точное описание некоторого процесса, инструкцию по его
выполнению. Разработка алгоритма является сложным и трудоемким процессом.
Алгоритмизация – это техника разработки (составления) алгоритма для решения задач
на ЭВМ.
Изобразительные средства для описания (представление) алгоритма
Для записи алгоритма решения задачи применяются следующие изобразительные
способы их представления:
Словесно- формульное описание
Блок-схема (схема графических символов)
Алгоритмические языки
Операторные схемы
Псевдокод
Для записи алгоритма существует общая методика:
Каждый алгоритм должен иметь имя, которое раскрывает его смысл.
Необходимо обозначить начало и конец алгоритма.
Описать входные и выходные данные.
Указать команды, которые позволяют выполнять определенные действия над
выделенными данными
Общий вид алгоритма
Алгоритм: Название алгоритма
Описание данных
Начало
Команды
Конец
Формульно-словесный способ записи алгоритма характеризуется тем, что описание
осуществляется с помощью слов и формул. Содержание последовательности этапов
выполнения алгоритмов записывается на естественном профессиональном языке
предметной области в произвольной форме.
Графический способ описания алгоритма (блок - схема) получил самое широкое
распространение. Для графического описания алгоритмов используются схемы
алгоритмов или блочные символы (блоки), которые соединяются между собой линиями
связи.
Каждый этап вычислительного процесса представляется геометрическими фигурами
(блоками). Они делятся на арифметические или вычислительные (прямоугольник),
логические (ромб) и блоки ввода-вывода данных (параллелограмм).
Схемы алгоритмов:
Порядок выполнения этапов указывается стрелками, соединяющими блоки.
Геометрические фигуры размещаются сверху вниз и слева на право. Нумерация блоков
производится в порядке их размещения в схеме.
Алгоритмические языки - это специальное средство, предназначенное для записи
алгоритмов в аналитическом виде. Алгоритмические языки близки к математическим
выражениям и к естественным языкам. Каждый алгоритмический язык имеет свой
словарь. Алгоритм, записанный на алгоритмическом языке, выполняется по строгим
правилам этого конкретного языка.
Операторные схемы алгоритмов. Суть этого способа описания алгоритма заключается в
том, что каждый оператор обозначается буквой (например, А – арифметический
оператор, Р – логический оператор и т.д.).
Операторы записываются слева направо в последовательности их выполнения, причем,
каждый оператор имеет индекс, указывающий порядковый номер оператора. Алгоритм
записывается в одну строку в виде последовательности операторов.
Псевдокод – система команд абстрактной машины. Этот способ записи алгоритма с
помощью операторов близких к алгоритмическим языкам.
Принципы разработки алгоритмов и программ
Типы алгоритмических процессов
По структуре выполнения алгоритмы и программы делятся на три вида:
а) линейная б) разветвляющая в) циклическая
Линейный алгоритм (линейная структура) – это такой алгоритм, в котором все
действия выполняются последовательно друг за другом и только один раз. Схема
представляет собой последовательность блоков, которые располагаются сверху вниз
в порядке их выполнения. Первичные и промежуточные данные не оказывают
влияния на направление процесса вычисления.
Алгоритмы разветвляющейся структуры
На практике часто встречаются задачи, в которых в зависимости от первоначальных
условий или промежуточных результатов необходимо выполнить вычисления по
одним или другим формулам.
Такие задачи можно описать с помощью алгоритмов разветвляющейся структуры. В
таких алгоритмах выбор направления продолжения вычисления осуществляется по
итогам проверки заданного условия. Ветвящиеся процессы описываются
оператором IF (условие).
Циклические вычислительные процессы
Для решения многих задач характерно многократное повторение отдельных участков
вычислений. Для решения таких задач применяются алгоритмы циклической структуры
(циклические алгоритмы). Цикл – последовательность команд, которая повторяется до
тех пор, пока не будет выполнено заданное условие. Циклическое описание
многократно повторяемых процессов значительно снижает трудоемкость написания
программ.
Существуют две схемы циклических вычислительных процессов.
Особенностью первой схемы является то, что проверка условия выхода из цикла
проводится до выполнения тела цикла. В том случае, если условие выхода из цикла
выполняется, то тело цикла не выполняется ни разу.
Особенностью второй схемы является то, что цикл выполняется хоты бы один раз, так
как первая проверка условия выхода из цикла осуществляется после того, как тело
цикла выполнено.
Существуют циклы с известным числом повторений и итерационные циклы. При
итерационном цикле выход из тела цикла, как правило, происходит при достижении
заданной точности вычисления.
Основы алгоритмизации
Этапы решения задач на ЭВМ.
Решение задачи разбивается на этапы:
1. Постановка задачи
2. Формализация (математическая постановка)
3. Выбор (или разработка) метода решения
4. Разработка алгоритма
5. Составление программы
6. Отладка программы
7. Вычисление и обработка результатов
1. При постановке задачи выясняется конечная цель и вырабатывается общий
подход к решению задачи. Выясняется сколько решений имеет задача и имеет ли их
вообще. Изучаются общие свойства рассматриваемого физического явления или
объекта, анализируются возможности данной системы программирования.
2. На этом этапе все объекты задачи описываются на языке математики,
выбирается форма хранения данных, составляются все необходимые формулы.
3. Выбор существующего или разработка нового метода решения (очень важен и, в
то же время личностный этап).
4. На этом этапе метод решения записывается применительно к данной задаче на
одном из алгоритмических языков (чаще на графическом).
5. Переводим решение задачи на язык, понятный машине.
Свойства алгоритмов.
Алгоритм - это определенным образом организованная последовательность действий,
за конечное число шагов приводящая к решению задачи.
Свойства алгоритмов:
1. Определенность
2. Дискретность
3. Целенаправленность
4. Конечность
5. Массовость
Порядок выполнения алгоритма:
1. Действия в алгоритме выполняются в порядке их записи
2. Нельзя менять местами никакие два действия алгоритма
3. Нельзя не закончив одного действия переходить к следующему
Для записи алгоритмов используются специальные языки:
1. Естественный язык (словесная запись)
2. Формулы
3. Псевдокод
4. Структурограммы
5. Синтаксические диаграммы
6. Графический (язык блок-схем)
1. Естественный язык:
если условие то действие1 иначе действие2
2. Структурограмма:
3. Синтаксическая диаграмма:
4. Графический язык:
Составление алгоритмов графическим способом подчиняется двум ГОСТам:
1. ГОСТ 19.002-80, соответствует международному стандарту ИСО 2636-73.
Регламентирует правила составления блок-схем.
2. ГОСТ 19.003-80, соответствует международному стандарту ИСО 1028-73.
Регламентирует использование графических примитивов.
Название
Символ (рисунок)
Выполняемая функция (пояснение)
1. Блок вычислений
Выполняет вычислительное действие
или группу действий
2. Логический блок
Выбор направления выполнения
алгоритма в зависимости от условия
3. Блоки ввода/вывода
Ввод или вывод данных вне зависимости
от физического носителя
Вывод данных на печатающее
устройство
4. Начало/конец
(вход/выход)
Начало или конец программы, вход или
выход в подпрограмму
5. Предопределенный
процесс
Вычисления по стандартной или
пользовательской подпрограмме
6. Блок модификации
Выполнение действий, изменяющих
пункты алгоритма
7. Соединитель
Указание связи между прерванными
линиями в пределах одной страницы
8. Межстраничный
соединитель
Указание связи между частями схемы,
расположенной на разных страницах
Правила построения блок-схем:
1. Блок-схема выстраивается в одном направлении либо сверху вниз, либо слева
направо
2. Все повороты соединительных линий выполняются под углом 90 градусов
1.3. Алгоритмическая конструкция ветвления.
Ветвление - управляющая структура, организующая выполнение лишь одного из двух
указанных действий в зависимости от справедливости некоторого условия.
Условие - вопрос, имеющий два варианта ответа: да или нет.
Запись ветвления выполняется в двух формах: полной и неполной.
Полная форма:
Неполная форма:
Пример: найти наименьшее из трех чисел.
1 вариант решения:
2 вариант решения:
Алгоритмическая конструкция цикла.
Цикл - управляющая структура, организующая многократное выполнение указанного
действия.
Цикл "пока":
Выполнение цикла "пока" начинается с проверки условия, поэтому такую
разновидность циклов называют циклы с предусловием. Переход к выполнению
действия осуществляется только в том случае, если условие выполняется, в противном
случае происходит выход из цикла. Можно сказать что условие цикла "пока" - это
условие входа в цикл. В частном случае может оказаться что действие не выполнялось
ни разу. Условие цикла необходимо подобрать так, чтобы действия выполняемые в
цикле привели к нарушению его истинности, иначе произойдет зацикливание.
Зацикливание - бесконечное повторение выполняемых действий.
Цикл "до":
Исполнение цикла начинается с выполнения действия. Таким образом тело цикла будет
реализовано хотя бы один раз. После этого происходит проверка условия. Поэтому
цикл "до" называют циклом с постусловием. Если условие не выполняется, то
происходит возврат к выполнению действий. Если условие истинно, то осуществляется
выход из цикла. Таким образом условие цикла "до" - это условие выхода. Для
предотвращения зацикливания необходимо предусмотреть действия, приводящие к
истинности условия.
Цикл с параметром, или цикл со счетчиком, или арифметический цикл - это цикл с
заранее известным числом повторов.
В блоке модификации указывается закон изменения переменной параметра.
Xo - начальное значение параметра
h - шаг
Xn - последнее значение параметра
Для создания циклов с параметром необходимо использовать правила:
1. Параметр цикла, его начальное и конечное значения и шаг должны быть одного
типа
2. Запрещено изменять в теле цикла значения начальное, текущее и конечное для
параметра
3. Запрещено входить в цикл минуя блок модификации
4. Если начальное значение больше конечного, то шаг - число отрицательное
5. После выхода из цикла значение переменной параметра неопределенно и не
может использоваться в дальнейших вычислениях
6. Из цикла можно выйти не закончив его, тогда переменная параметр сохраняет
свое последнее значение
Использование циклов с параметром для обработки массивов.
Массив - упорядоченная структура, предназначенная для хранения однотипных
данных.
Упорядочение элементов в массиве происходит по их индексам.
Индекс - порядковый номер элемента.
Массив задается именем (заглавные латинские буквы), типом данных и размерностью.
Размерность - максимально возможное количество элементов в массиве. В один момент
времени можно обратиться только к одному элементу массива. Для этого указывается
имя массива и в скобках индекс элемента.
Массивы делятся на одномерные (линейные) и двумерные.
Прообразом в математике для одномерного массива является вектор. Для двумерного -
матрица.
Пример: вычислить n!
Пример: вычислить a
n
Пример: ввести элементы массива:
а)одномерного, размерности 10
б)двумерного, 5x5
Из перечисленных этапов самым важным является первый. Чем труднее задача -
тем сложнее найти решение. Поэтому решение сложных задач требует кроме глубоких
знаний в соответствующих областях науки и техники, еще творческие способности.
Содержание занятия:
Контроль исходного уровня знаний
В начале занятия преподаватель оценивает исходный уровень знаний студентов,
используя тесты, представленные в приложении 1.
Работа с преподавателем
Преподаватель объясняет студентам основные правила программирования и
составления алгоритмов, приводит примеры составления линейных, разветвляющихся
и циклических алгоритмов.
Самостоятельная работа
Преподаватель раздаёт студентам варианты заданий для самостоятельного выполнения.
Студенты должны составить алгоритм (нарисовать блок-схему) решения предложенной
задачи. Варианты заданий представлены ниже:
Линейные алгоритмы:
1. Вычислить сумму, разницу и произведение двух чисел a и b.
2. Рассчитать объём и площадь поверхности куба со стороной a. Объём
рассчитывается по формуле
3
Va
, площадь поверхности –
2
6Sa
.
3. Рассчитать среднее арифметическое четырёх чисел.
Разветвляющиеся алгоритмы:
1. Найти корни квадратного уравнения ax
2
+bx+c=0. Принять во внимание, что любой
из коэффициентов может быть равен нулю. Вывести результат или сообщение об
ошибке.
2. Найти квадрат наибольшего из двух чисел a и b. Вывести наибольшее число и его
квадрат.
3. Определить, является ли число чётным или нечётным. Вывести результат.
4. Упорядочить 3 введённых числа по возрастанию и убыванию. Вывести результат.
Циклические алгоритмы:
1. Найти количество цифр во введённом числе.
2. Найти
b
ai
i
2
.
3. Найти
))...(3)(2)(1( naaaaa
.
4. Найти
naaa
1
...
1
11
.
5. Вывести все целые числа от a до b.
Контроль итогового уровня знаний
В конце занятия преподаватель проверяет выполнение студентами заданий для
самостоятельной работы и проводит устный опрос по вопросам, представленным в
приложении 2
Тестовые вопросы для оценки исходного уровня знаний
Вариант 1
1. Алгоритм – это:
А) указание на выполнение действий
В) система правил, описывающая последовательность действий, которые необходимо
выполнить для решения задачи
С) процесс выполнения вычислений, приводящих к решению задачи
D процесс решения задачи
Е) все ответы верны
2. Характеристика линейного алгоритма
А) содержит один или несколько циклов
В) не содержит логических условий и имеет одну ветвь вычислений
С) содержит одно или несколько логических условий
D) не содержит вычислений;
Е) все ответы верны.
3 Характеристика разветвлённого алгоритма:
А) содержит один или несколько циклов
В) не содержит логических условий и имеет одну ветвь вычислений
С) содержит одно или несколько логических условий
D) не содержит вычислений
Е) все ответы верны
4. Характеристика циклического алгоритма:
А) содержит один или несколько циклов
В) не содержит логических условий и имеет одну ветвь вычислений
С) содержит одно или несколько логических условий
D) не содержит вычислений
Е) все ответы верны
5. Программа – это:
А) система правил, описывающая последовательность действий, которые необходимо
выполнить для решения задачи
В) указание на выполнение действий из заданного набора
С) область внешней памяти для хранения текстовых, числовых данных и другой
информации
D) последовательность команд, реализующая алгоритм решения задачи
Е) все ответы верны
6. Программа, позволяющая сжать большой объем информации.
А) оболочка
В) операционная система
С) драйвер
D) архиватор
Е) все ответы верны
Приложение 2
Контрольные вопросы для заключительного контроля знаний
1. Что такое алгоритм?
2. Назовите исполнителей алгоритмов?
3. Как кодируется звук в компьютере?
4. Что понимается под командой алгоритма?
5. Какими свойствами должен обладать алгоритм?
6. В каком виде можно представить алгоритм?
7. Какие алгоритмы называются линейными?
6. Что такое детерминированные задачи?
7. Перечислите основные правила программирования
8. Назовите основные типы диалоговых сред.