Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Информатика. Основы процедурного программирования на Паскале. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
770 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

КЕМЕРОВСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ ПИЩЕВОЙ ПРОМЫШЛЕННОСТИ

Г.И. Станевко, Т.Г. Колесникова, В.А. Давыденко

ИНФОРМАТИКА

ОСНОВЫ ПРОЦЕДУРНОГО ПРОГРАММИРОВАНИЯ НА ПАСКАЛЕ

Учебное пособие

Для студентов вузов

Рекомендовано Сибирским региональным учебно-методическим центром высшего профессионального образования

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

и специальностям подготовки инженерно-технических вузов

Кемерово 2012

2

УДК 004.43(075) ББК 32.973-018.1я7

С76

Рецензенты:

В.Я. Карташов, доктор техн. наук, профессор; В.С. Черкасов, канд. физ.-мат. наук, доцент

Рекомендовано редакционно-издательским советом Кемеровского технологического института пищевой промышленности

Станевко, Г.И.

С76 Информатика: основы процедурного программирования на Паскале: учеб. пособие / Г.И. Станевко, Т.Г. Колесникова, В.А. Давыденко; Кемеровский технологический институт пищевой промышленности. – Кемерово, 2012. – 117 с.

ISBN 978-5-89289-728-0

В предлагаемом пособии изложены основы программирования. Приведены практические рекомендации по разработке программ. Рассмотрено большое количество примеров.

Предназначено для студентов всех специальностей инже- нерно-технических вузов.

УДК 004.43(075) ББК 32.973-018.1я7

ISBN 978-5-89289-728-0

Охраняется законом об авторском

 

праве, не может быть использовано

 

любым незаконным способом

© КемТИПП, 2012

без письменного договора

3

ОГЛАВЛЕНИЕ

ПРЕДИСЛОВИЕ ........................................................................

5

ЧАСТЬ 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ ...................

6

 

Переменная...................................................................................

6

 

Классы переменных .....................................................................

9

 

Типы переменных.......................................................................

13

 

Оператор......................................................................................

13

 

Алгоритм.....................................................................................

14

 

Программа...................................................................................

19

 

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

20

 

Классификация вычислительных процессов...........................

20

ЧАСТЬ 2. ОСНОВЫ ПРОГРАММИРОВАНИЯ

 

НА ПАСКАЛЕ...........................................................................

21

ГЛАВА 1. АЛФАВИТ ................................................................................

22

 

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

22

 

Специальные символы...............................................................

23

Символы, используемые в строках икомментариях..................

23

ГЛАВА 2. ДАННЫЕ..................................................................................

24

 

Простые типы данных................................................................

24

 

Константы и переменные...........................................................

25

 

Числа............................................................................................

26

 

Выражения и операции..............................................................

26

Ещё о простых типах..................................................................

29

 

Строки.........................................................................................

31

 

Структурированные типы..........................................................

32

Математические функции и процедуры...................................

39

 

Ввод – вывод...............................................................................

40

ГЛАВА 3. СТРУКТУРА ПРОГРАММЫ............................................

43

 

Заголовок программы ................................................................

43

 

Предложение Uses......................................................................

43

 

Описательная часть....................................................................

43

 

Тело программы (исполнительная часть).................................

45

Рекомендации по написанию программ...................................

46

ГЛАВА 4. ОПЕРАТОРЫ ............................................................................

47

 

Общие сведения..........................................................................

47

 

Простые операторы....................................................................

48

 

Структурные операторы............................................................

49

4

ЧАСТЬ 3. РАЗРАБОТКА АЛГОРИТМОВ

 

И ПРОГРАММ..........................................................................

56

ГЛАВА1.ОБРАБОТКАДАННЫХ,ПРЕДСТАВЛЕННЫХПРОСТЫМИ

56

ПЕРЕМЕННЫМИ........................................................................................

Обмен значениями двух переменных X и Y .............................

57

Определение целой части и остатка частного X / Y (Y 0).....

58

Определение суммы цифр натурального числа N ...................

60

Вывод натурального числа в обратном порядке .....................

63

Вывод строки по заданному натуральному числу N (N > 2) ..

64

Определение принадлежности точки R (X, Y) прямоугольнику

ABCD ...........................................................................................

67

Определение всех простых чисел, расположенных в интервале

 

от натурального числа N до натурального числа М................

68

 

Нахождение суммы степенного ряда........................................

71

Вычисление значения функции y = f (x) при изменении

 

аргумента x на интервале [a, b] с шагом h (a < b)...................

75

ГЛАВА2. ТИПОВЫЕАЛГОРИТМЫОБРАБОТКИОДНОМЕРНЫХМАССИВОВ.......

79

 

Задание значений и вывод элементов массива........................

79

 

Вычисление суммы и произведения всех элементов массива ..

86

 

Обработка элементов массива по условию..............................

87

Нахождение наибольшего (наименьшего) элемента массива и

 

его номера...................................................................................

95

 

Сортировка элементов массива.................................................

96

 

Вставка в массив новых элементов.........................................

100

 

Удаление элемента из массива................................................

101

ГЛАВА3.ТИПОВЫЕАЛГОРИТМЫОБРАБОТКИДВУМЕРНЫХМАССИВОВ............

102

 

Задание значений и вывод элементов массива......................

103

 

Нахождениесуммы, произведениявсехэлементовмассива......

107

 

Обработка элементов массива по условию............................

108

 

Нахождениенаибольшего(наименьшего) элементамассива.........

108

 

Обработкасцельюполученияодномерныхмассивов...............

109

 

Обработка части массива.........................................................

110

 

Перестановка элементов и частей массива............................

111

Приложение.............................................................................

114

БИБЛИОГРАФИЧЕСКИЙ СПИСОК ................................

116

5

ПРЕДИСЛОВИЕ

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

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

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

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

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

6

ЧАСТЬ 1. ОСНОВЫ ПРОГРАММИРОВАНИЯ

Переменная

Классы переменных

Типы переменных

Оператор

Алгоритм

Программа

Подпрограмма

Классификация вычислительных процессов

Переменная

Фундаментальным понятием программирования является понятие переменной. Это понятие неразрывно связано со значениями данных решаемой задачи и оперативной памятью компьютера, которая состоит из пронумерованных ячеек. Поэтому, если воспринимать имя переменной как номер ячейки, пере-

менная – это поименованная область памяти, хранящая значение этой переменной в конкретный момент времени.

Значение переменной сохраняется в ячейке до тех пор, пока в эту ячейку не поступит новое значение. Условимся процесс передачи значения в ячейку записывать в виде:

<имя переменной>:= <значение>;

В программировании эта структура называется оператором присваивания. Совокупность символов := означает присво-

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

Например, X:= 2 следует читать:

• переменной X присвоить значение, равное 2;

7

X положить равным 2;

в ячейку X записать 2.

В отличие от математической формулы оператор присваивания выражает краткую запись действий компьютера над содержимым ячеек.

Благодаря этому записи вида:

Х:= Х + А;

(1)

Х:= Х * А;

(2)

Х:= Х / А;

(3)

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

мяти ЭВМ это означает, что соответствующее действие выполняется над числом А и числом, находящимся в ячейке Х

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

уже результатом.

Например, последовательный счёт по формулам:

Х:= –2; Х:= Х + А; Х:= Х + С;

при С = 4 и А = 3

изменяет содержимое ячейки с именем X:

X = –2; X = –2 + 3 = 1; X = 1 + 4 = 5

и завершается записью в неё числа 5.

Значения переменной Х, стоящие в правых частях формул (1), (2), (3), называются её предыдущими значениями,

а в левых последующими. Таким образом, в формуле (1) последующее значение переменной X равно сумме её предыдущего значения и значения переменной A; в формуле (2) – произведению её предыдущего значения и значения переменной A; в

8

формуле (3) – частному от деления её предыдущего значения на значение переменной A. Повторяя счёт по формулам:

Х:= Х + 1;

Р:= Р * Х;

при начальном значении X = 0, P = 1, будем получать последовательно:

X = 0 + 1 = 1;

P = 1 * 1 = 1;

X = 1 + 1 = 2;

P = 1 * 2 = 2;

X = 2 + 1 = 3;

P = 2 * 3 = 6;

X = 3 + 1 = 4;

P = 6 * 4 = 24.

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

Имя переменной. В программировании приняты свои правила образования имён. В отличие от математических обозначений, в которых могут использоваться буквы любого алфавита, в Паскале используется только латинский алфавит.

Имя переменной представляет собой идентификатор, т.е. последовательность букв, цифр и знака подчёркивания,

начинающуюся с буквы или знака подчёркивания.

Таким образом, имена

S, RY, x5, v6M45, _Turbo_Pascal идентификаторы, а

8R, X 24, AH-24 – идентификаторами не являются, так как:

9

первое начинается с цифры;

второе содержит пробел между X и 24;

третье записано через тире.

При решении конкретных задач можно:

обозначать переменные общепринятыми именами, например, путь через S, скорость через V, а время через t; длины сторон треугольника – через A, B, C;

связывать имена со смысловыми значениями переменных решаемой задачи; так, переменную, являющуюся значением интеграла, назвать Integral, периметр треугольника назвать составным именем Perim_Tr, а многоугольника – Perim_Mn;

или выбирать имена по своему желанию.

Длина идентификатора. Количество символов в идентификаторе, воспринимаемое компьютером, называется его длиной. На длину идентификатора в каждом языке программирования установлены ограничения. Так, максимальная длина идентификатора в Turbo Pascal версии 5.0 равна 8, а версии 7.0 – 63. Если в идентификаторе больше символов, чем допускается конкретным языком, то символы, выходящие за пределы допустимой длины, компьютером не учитываются.

Классы переменных

Переменные могут существовать самостоятельно или объединяться в группы под общим именем.

Самостоятельно существующие переменные называ-

ются простыми. Простые переменные обозначаются просто идентификаторами.

Упорядоченные группы переменных называются масси-

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

Порядковые номера называются индексными выражениями или просто индексами, а элементы массивов – индексными переменными.

10

Встаёт вопрос: как же ЭВМ различает простые и индексные переменные? Она различает их только по написанию:

если в записи переменной указано только имя, то для ЭВМ это простая переменная. Например, Y2

читается: игрек два;

если запись состоит из имени и скобок [ ], внутри которых указано индексное выражение (число, переменная или арифметическое выражение), то это индексная пе-

ременная. Например, Y[2] – читается: игрек вторая или как второй элемент массива Y.

Такая классификация весьма существенна. Она позволяет по-разному размещать переменные в памяти компьютера, поразному записывать их в программах и манипулировать с ними при решении задач.

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

В программировании группа-столбец или группа-строка называется одномерным массивом. Матрица представляет двумерный массив. В некоторых языках программирования массивы могут иметь размерность больше двух.

Для выбора элемента из одномерного массива достаточно указать в качестве индекса только один номер, например T[i]. Для выбора элемента из двумерного массива – два номера: номер строки и номер столбца, на пересечении которых находится требуемый элемент, например Z[i, j], где i – номер строки, j – номер столбца.

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

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]