Учебное пособие_Алгоритмизация
.pdfВ. М. Паклина
Е. М. Паклина
Основы алгоритмизации
и программирования
Министерство образования и науки Российской Федерации Уральский федеральный университет
имени первого Президента России Б. Н. Ельцина
В. М. Паклина, Е. М. Паклина
Основы алгоритмизации и программирования
Учебное пособие
Научный редактор – кандидат технических наук И. Н. Обабков
Екатеринбург
УрФУ
2010
УДК 004.4(075.8)
ББК 32.973-018я73
П13
Рецензенты: кафедра математики и информатики Урал. гуманит. ин-та
(завкафедрой канд. техн. наук, доц. С. В. Федулов); А. А. Поморцева – замдиректора по учеб. работе, канд. техн. наук, доц. (ФГОУ ДПО «КПК ТЭК)
Паклина В. М.
П13 Основы алгоритмизации и программирования : учебное пособие /
В. М. Паклина, Е. М. Паклина. Екатеринбург : УрФУ, 2010. 92 с.
ISBN 978-5-321-01811-8
Учебное пособие предназначено для студентов, изучающих базовый курс
«Информатика», и отражает раздел «Основы алгоритмизации и технологии программирования».
В учебном пособии рассматривается понятие алгоритма, его свойства,
основные алгоритмические конструкции. Большое внимание уделяется изучению среды программирования Turbo Pascal 7.0. Учебное пособие содержит указания по выполнению расчетно-графической работы и индивидуальные задания к ней.
Библиогр.: 5 назв. Рис. 28. Табл. 9. Прил. 1.
УДК 004.4(075.8)
ББК 32.973-018я73
ISBN 978-5-321-01811-8 |
© УрФУ, 2010 |
|
© Паклина В. М., Паклина Е. М., 2010 |
Оглавление |
|
ПОНЯТИЕ АЛГОРИТМА И ЕГО СВОЙСТВА .............................................. |
6 |
Понятие алгоритма и его свойства ............................................................................ |
6 |
Способы описания алгоритмов .................................................................................. |
7 |
ОСНОВНЫЕ АЛГОРИТМИЧЕСКИЕ КОНСТРУКЦИИ............................... |
11 |
Линейная алгоритмическая конструкция ............................................................... |
11 |
Разветвляющаяся алгоритмическая конструкция .................................................. |
12 |
Алгоритмическая структура «выбор» ..................................................................... |
15 |
Циклическая алгоритмическая конструкция.......................................................... |
17 |
Цикл с параметром ....................................................................................................................... |
17 |
Цикл с предусловием.................................................................................................................... |
18 |
Цикл с постусловием.................................................................................................................... |
20 |
ОБРАБОТКА МАССИВОВ ......................................................................... |
23 |
Одномерный массив.................................................................................................. |
23 |
Двумерный массив .................................................................................................... |
24 |
Задания для самостоятельной работы ..................................................................... |
27 |
ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ PASCAL .......................................... |
30 |
Приемы работы в интегрированной среде Турбо Паскаль ................................... |
30 |
Алфавит языка ........................................................................................................... |
32 |
Данные в языке Турбо Паскаль ............................................................................... |
33 |
Константы и переменные............................................................................................................. |
33 |
Типы данных ................................................................................................................................. |
33 |
Операции и функции в языке Турбо Паскаль ........................................................ |
36 |
Структура программы............................................................................................... |
39 |
Простейшие операторы языка Паскаль................................................................... |
39 |
Оператор присваивания ............................................................................................................... |
39 |
Операторы ввода-вывода ............................................................................................................. |
40 |
Составной оператор...................................................................................................................... |
41 |
Задания для самостоятельной работы ..................................................................... |
42 |
Структурные операторы языка Паскаль ................................................................. |
43 |
Условный оператор ...................................................................................................................... |
43 |
Оператор выбора........................................................................................................................... |
44 |
Оператор цикла с параметром ..................................................................................................... |
45 |
Оператор цикла с предусловием ................................................................................................. |
47 |
Оператор цикла с постусловием ................................................................................................. |
48 |
Задания для самостоятельной работы ..................................................................... |
51 |
Одномерные массивы ............................................................................................... |
52 |
Двумерные массивы .................................................................................................. |
54 |
Задания для самостоятельной работы ..................................................................... |
56 |
Строки......................................................................................................................... |
57 |
Подпрограммы в Турбо Паскале ............................................................................. |
58 |
Процедуры..................................................................................................................................... |
58 |
Функции......................................................................................................................................... |
60 |
Задания для самостоятельной работы ..................................................................... |
62 |
ТРЕБОВАНИЯ К ОФОРМЛЕНИЮ РАСЧЕТНО-ГРАФИЧЕСКОЙ |
|
РАБОТЫ ..................................................................................................... |
63 |
ПРИМЕР ОФОРМЛЕНИЯ ЗАДАНИЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ |
|
РАБОТЫ ..................................................................................................... |
66 |
Линейная алгоритмическая конструкция ............................................................... |
66 |
Разветвляющаяся алгоритмическая конструкция .................................................. |
68 |
Цикл с параметром .................................................................................................... |
70 |
Цикл с предусловием ................................................................................................ |
72 |
Цикл с постусловием................................................................................................. |
74 |
Одномерные массивы ............................................................................................... |
76 |
Двумерные массивы .................................................................................................. |
78 |
ВАРИАНТЫ ЗАДАНИЙ РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ .............. |
82 |
Линейная алгоритмическая структура .................................................................... |
82 |
Разветвляющаяся алгоритмическая конструкция .................................................. |
83 |
Циклы.......................................................................................................................... |
85 |
4
Одномерные массивы ............................................................................................... |
87 |
Двумерные массивы .................................................................................................. |
89 |
БИБЛИОГРАФИЧЕСКИЙ СПИСОК ........................................................... |
91 |
ПРИЛОЖЕНИЕ. ОБРАЗЕЦ ОФОРМЛЕНИЯ ТИТУЛЬНОГО ЛИСТА |
|
РАСЧЕТНО-ГРАФИЧЕСКОЙ РАБОТЫ ..................................................... |
92 |
5
ПОНЯТИЕ АЛГОРИТМА И ЕГО СВОЙСТВА
Понятие алгоритма и его свойства
Алгоритм – упорядоченная совокупность системы правил, определяющая содержание и порядок действий над некоторыми объектами, строгое выполнение которых приводит к решению любой задачи из рассматриваемого класса задач за конечное число шагов.
Слово «алгоритм» появилось в IX веке, когда европейцы познакомились с работами выдающегося узбекского математика Муххамеда бен аль-Хорезми
(«algorithmi» – латинская форма записи имени аль-Хорезми). В своей книге «Об индийском счете» он сформулировал правила выполнения арифметических действий над десятичными числами. В дальнейшем понятие «алгоритм» стали использовать для обозначения любой последовательности действий,
приводящей к решению поставленной задачи.
При всем разнообразии алгоритмов можно выделить общие для них
свойства: дискретность, массовость, определенность и результативность.
Дискретность (разрывность) – это свойство алгоритма, характеризующее его структуру: каждый алгоритм состоит из отдельных законченных действий
[4, с. 292].
Массовость – применимость алгоритма ко всем задачам рассматриваемого типа, при любых исходных данных [4, с. 292].
Определенность – свойство алгоритма, указывающее на то, что каждый шаг алгоритма должен быть строго определен и не допускать различных толкований; также строго должен быть определен порядок выполнения отдельных шагов [4, с. 292].
Результативность – конечность действий алгоритма решения задач,
позволяющая получить желаемый результат при допустимых исходных данных за конечное число шагов.
6
Способы описания алгоритмов
Разработанный алгоритм можно записать несколькими способами:
на естественном языке (словесное описание);
с помощью псевдокода;
в виде блок-схемы;
в виде программы.
Словесное описание представляет структуру алгоритма на естественном языке. Примерами такой записи алгоритма являются инструкции по эксплуатации приборов бытовой техники, кулинарные рецепты, правила дорожного движения и т.д.
Словесная форма имеет ряд недостатков:
строго не формализуема;
страдает многословностью записей;
допускает неоднозначность толкования отдельных предписаний.
Эта форма обычно используется на начальных стадиях разработки алгоритма.
Псевдокод – пошагово-словесная запись алгоритма по определенным правилам или соглашениям. В псевдокоде используется общепринятая математическая символика и конструкции. Он занимает промежуточное место между естественным и формальным языками.
Рассмотрим алгоритм умножения двух чисел, записанный с помощью псевдокода:
1.Ввод a, b.
2.P=a b.
3.Вывод P.
4.Конец.
Примером псевдокода является школьный алгоритмический язык (АЯ).
Основные служебные слова этого языка представлены в табл. 1.
7
Таблица 1
Служебные слова школьного алгоритмического языка
алг (алгоритм) |
сим |
цел (целый) |
для |
вывод |
ввод |
|
(символьный) |
||||||
|
|
|
|
|
||
|
|
|
|
|
|
|
арг (аргумент) |
лит (литерный) |
кц (конец |
от |
нет |
или |
|
цикла) |
||||||
|
|
|
|
|
||
|
|
|
|
|
|
|
рез (результат) |
лог |
дано |
до |
при |
пока |
|
(логический) |
||||||
|
|
|
|
|
||
|
|
|
|
|
|
|
нач (начало) |
вещ |
надо |
и |
выбор |
иначе |
|
(вещественный) |
||||||
|
|
|
|
|
|
|
кон (конец) |
нц (начало |
все |
если |
то |
знач |
|
цикла) |
||||||
|
|
|
|
|
||
|
|
|
|
|
|
Пример записи алгоритма на школьном АЯ:
алг Сумма квадратов (арг цел n, рез цел S)
дано | n > 0
надо | S = 1*1 + 2*2 + 3*3 + ... + n*n
нач цел i
ввод n; S:=0
нц для i от 1 до n S:=S + i*i
кц
вывод "S = ", S
кон
Блок-схема – это наглядное графическое представление алгоритма с помощью геометрических фигур, соединенных линиями-связями,
показывающими порядок выполнения инструкций.
Рассмотрим основные фигуры, которые используются для построения блок-схем (табл. 2).
8
Таблица 2
Графические объекты блок-схем
Вид графического объекта |
Название блока. Комментарии |
|
|
Начало |
Начало алгоритма |
|
Конец |
Конец алгоритма |
|
Процесс. Внутри блока записывается
<Действие>
действие, вычислительная операция или группа
Ввод/вывод данных с неопределенного
Ввод /
Вывод носителя. Надпись внутри блока: ввод
(вывод) и список вводимых (выводимых)
переменных
Ручной ввод (ввод с клавиатуры)
|
|
|
Дисплей (вывод на монитор) |
|
|
|
Документ (вывод на печатающее |
|
|
|
устройство) |
|
|
|
Решение (условный блок). Условие |
Нет |
|
Да |
записывается внутри блока. В результате |
Условие |
|
||
|
|
проверки условия осуществляется выбор |
|
|
|
|
|
|
|
|
одного из возможных путей |
|
|
|
вычислительного процесса |
9