Файл: 1. Лекции Паскаль (Часть 1).doc

Добавлен: 19.10.2018

Просмотров: 5022

Скачиваний: 11

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Оглавление

1.Стандартные типы данных

1.1.Структура программы

1.2.Описание стандартных типов данных

Целый тип

Вещественный тип

Символьный тип

Булевский тип

Перечисляемый тип

1.3.Выражения

Лабораторная работа №1

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

Лабораторная работа № 1.

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

Постановка задачи

Описание используемых стандартных функций.

Программы № 15.а

Программы № 15.б

Варианты заданий

2. Операторы языка.

2.1. Составной и пустой операторы.

2.2.Условный оператор.

2.3.Операторы повторений.

2.4.Оператор выбора

2.5.Практические задания.

Лабораторная работа № 2

Решение уравнений и неравенств с использованием условного оператора.

Лабораторная работа № 2, вариант № 8.

Решение уравнений и неравенств с использованием условного оператора.

Варианты заданий

Лабораторная работа № 3.

Построение таблиц функций.

Лабораторная работа № 3, вариант № 8.

Построение таблиц функций.

Варианты заданий

Лабораторная работа № 4.

Организация циклов в программе.

Лабораторная работа № 4, вариант № 8.

Организация циклов в программе.

Варианты заданий

3.Численные методы.

3.1.Метод итераций

3.2.Метод Ньютона

3.3. Метод половинного деления.

Лабораторная работа № 5

Решение нелинейных уравнений.

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом итераций.

Описание метода итераций:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом Ньютона.

Описание метода Ньютона:

Блок-схема метода Ньютона:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Лабораторная работа № 5, вариант № 3.

Решение нелинейных уравнений методом половинного деления.

Описание метода половинного деления:

Блок-схема метода половинного деления:

Текст программы.

Распечатка результатов работы программы в следующем виде:

Метод Монте-Карло (метод статистических испытаний)

5. Массивы.

5.1. Процедуры и функции.

5.2. Одномерные массивы.

5.2.1. Описание массивов.

5.2.2. Классы задач по обработке массивов.

5.2.2.1. Однотипная обработка всех или указанных элементов массивов.

5.2.2.2. Задачи, в результате решения которых изменяется структура массива.

5.2.2.3. Обработка нескольких массивов одновременно.

5.2.2.4. Поисковые задачи для массивов.

5.2.2.5. Сортировка массивов.

5.2.2.5.1. Сортировка вставкой

5.2.2.5.2. Сортировка выбором

5.2.2.5.3. Сортировка обменом («пузырьковая сортировка»)

5.2.2.5.4. Сортировка фон Неймана (слиянием)

5.2.2.5.5. Шейкер-сортировка

5.3. Двумерные массивы.

5.3.1. Описание двумерных массивов.

5.3.2. Сортировка двумерных массивов

Лабораторная работа № 4.

Работа с массивами чисел.

Образец выполнения задания.

Лабораторная работа № 4.

Работа с массивами чисел.

Варианты заданий.

6. Обработка строк.

6.1. Функции обработки строк.

6.2. Процедуры обработки строк.

Лабораторная работа № 7.

Обработка строк.

Лабораторная работа № 7, вариант № 8.

Обработка строк.

7. Комбинированные типы. Оператор присоединения

7.1. Записи

7.2. Оператор присоединения

Лабораторная работа № 8.

Работа с комбинированными типами данных.

Лабораторная работа № 8, вариант № 8.

Работа с комбинированными типами данных.

8. Множественные типы данных.

8.1. Множества.

Лабораторная работа № 9.

Работа с множественными типами данных.

Лабораторная работа № 9, вариант № 3.

Работа с множественными типами данных.

Варианты заданий.

Лабораторная работа № 10.

Операции над множествами.

Лабораторная работа № 10.

Операции над множествами.

Варианты заданий.

Министерство образования и науки Российской Федерации


Федеральное государственное бюджетное образовательное учреждение высшего образования

«Пермский национальный исследовательский политехнический университет»


Кафедра «Информационные технологии и автоматизированные системы»







Полякова О.А.


«Информатика 1».

«Информатика 2».




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


4-5 ЗЕ

7 ЗЕ




Часть 1













Пермь 2017


Оглавление

Оглавление 2

1.Стандартные типы данных 4

1.1.Структура программы 4

1.2.Описание стандартных типов данных 5

1.3.Выражения 7

Лабораторная работа №1 8

Вычисление выражений с использованием стандартных функций 8

Лабораторная работа № 1. 8

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

Описание используемых стандартных функций. 9

2. Операторы языка. 15

2.1. Составной и пустой операторы. 15

2.2.Условный оператор. 16

2.3.Операторы повторений. 16

2.4.Оператор выбора 17

2.5.Практические задания. 17

Лабораторная работа № 2 17

Решение уравнений и неравенств с использованием условного оператора. 17

Лабораторная работа № 2, вариант № 8. 18

Решение уравнений и неравенств с использованием условного оператора. 18

Лабораторная работа № 3. 19

Построение таблиц функций. 19

Лабораторная работа № 3, вариант № 8. 20

Построение таблиц функций. 20

Лабораторная работа № 4. 21

Организация циклов в программе. 21

Лабораторная работа № 4, вариант № 8. 22

Организация циклов в программе. 22

3.Численные методы. 25

3.1.Метод итераций 25

3.2.Метод Ньютона 26

3.3. Метод половинного деления. 29

Лабораторная работа № 5 32

Решение нелинейных уравнений. 32

Лабораторная работа № 5, вариант № 3. 33

Решение нелинейных уравнений методом итераций. 33

Лабораторная работа № 5, вариант № 3. 35

Решение нелинейных уравнений методом Ньютона. 35

Лабораторная работа № 5, вариант № 3. 37

Решение нелинейных уравнений методом половинного деления. 37

4. Случайные числа. 40

Метод Монте-Карло (метод статистических испытаний) 40

5. Массивы. 41

5.1. Процедуры и функции. 41

5.2. Одномерные массивы. 43

5.2.1. Описание массивов. 43

5.2.2. Классы задач по обработке массивов. 43

55

55

5.3. Двумерные массивы. 59

5.3.1. Описание двумерных массивов. 59

5.3.2. Сортировка двумерных массивов 60

Лабораторная работа № 4. 66

Работа с массивами чисел. 66

Образец выполнения задания. 66

Лабораторная работа № 4. 66

Работа с массивами чисел. 66

Варианты заданий. 68

6. Обработка строк. 71

6.1. Функции обработки строк. 71

6.2. Процедуры обработки строк. 72

Лабораторная работа № 7. 73

Обработка строк. 73

Лабораторная работа № 7, вариант № 8. 73

Обработка строк. 73

7. Комбинированные типы. Оператор присоединения 75

7.1. Записи 75

7.2. Оператор присоединения 75

Лабораторная работа № 8. 77

Работа с комбинированными типами данных. 77

Лабораторная работа № 8, вариант № 8. 78

Работа с комбинированными типами данных. 78

8. Множественные типы данных. 81

8.1. Множества. 81

Лабораторная работа № 9. 83

Работа с множественными типами данных. 83

Лабораторная работа № 9, вариант № 3. 84

Работа с множественными типами данных. 84

Лабораторная работа № 10. 86

Операции над множествами. 86

Лабораторная работа № 10. 86

Операции над множествами. 86




Введение


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

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

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

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

Данное пособие состоит из 8 разделов. Каждый раздел включает в себя краткие теоретические сведения и лабораторные работы по соответствующей теме. Пособие “Практикум по программированию на языке Турбо Паскаль” можно использовать при изучении курсов “Информатика”, “Алгоритмические языки программирования”, “Основы программирования” и т.п. для студентов электротехнического (специальности АСУ, ЭВТ, КРЭС и др.) и гуманитарного (специальность ЭУП) факультетов.

В подготовке данного пособия активное участие принимали инженеры Лобанова Е.В. и ПавленкоТ.М.


1.Стандартные типы данных

1.1.Структура программы


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

1. Раздел меток;

2. Раздел констант;

3. Раздел типов;

4. Раздел переменных;

5. Раздел процедур и функций;

6. Раздел операторов.

Раздел операторов заключается в операторные скобки begin ... end. В нем указывается последовательность действий, которые должны выполняться ЭВМ. Все остальные разделы носят описательный характер.


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

В любое место программы могут быть включены комментарии. При этом смысл программы не меняется. Комментарии включаются в фигурные скобки.

1.2.Описание стандартных типов данных

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

Язык ТР дает возможность строить сложные типы данных, которые основываются на следующих элементарных:

1) целый “integer”;

2) вещественный “real”;

3) символьный “char”;

4) булевский “boolean”;

5) перечислимые.

Целый тип

Обеспечивает задание целых чисел. Существует несколько видов целых типов: byte, shortint, integer, longint.

Встроенные процедуры и функции, применимые к целым типам.

Обращение

Тип результата

Действие

abs(x)

x

Возвращает модуль х

chr(b)

Char

Возвращает символ по его коду

dec(vx[,i])

процедура

Уменьшает значение vx на i, при отсутствии i- на 1

inc(vx[,i])

-/-

Увеличивает значение vx на i, при отсутствии i- на 1

odd(l)

boolean

Возвращает TRUE, если аргумент - нечетное число, FALSE - если четное

random(w)

как у параметра

Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=x<w

sqr(x)

-/-

Возвращает квадрат аргумента

exp(x)

real

ex

sqrt(x)

real

Возвращает квадратный корень из х

sin(x)

-/-

sin x

cos(x)

-/-

cos x

ln(x)

-/-

ln x

arctan(x)

-/-

arctg x

succ(x)

как у параметра

Возвращает следующее целое число, т.е. х+1

pred(x)

-/-

Возвращает предыдущее целое число, т.е. х-1

х - выражение любого из типов.

b, l, i, w - выражения соответствующих типов: byte,

longint, integer, word.

vx - переменная типа х.

Арифметические операции: +(сложение), -(вычитание), *(умножение), /(деление), DIV(деление нацело), MOD(вычисление остатка от целочисленного деления).

Операции отношения: =(равно), <>(не равно), <(меньше), >(больше), <=(меньше или равно), >=(больше или равно).

Вещественный тип

Запись вещественного числа в ТР возможна:

в виде числа с фиксированной точкой: 12.3, 0.67;

в экспоненциальной форме: 1.4 Е-8 (1.4*10), 9.7 Е3 (9.7*10).

Над переменными этого типа определены арифметические операции: +(сложение), -(вычитание), *(умножение), /(деление), а также операции отношения (см. выше).

Встроенные процедуры и функции.


Обращение

Тип параметра

Тип результата

Действие

abs(x)

real, integer

x

Возвращает модуль х

random(x)

integer

integer

Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=i<x

sqr(x)

real, integer

тип аргумента

Возвращает квадрат аргумента

exp(x)

real

real

ex

sqrt(x)

real

real

Возвращает квадратный корень из х

sin(x)

-/-

-/-

sin x

cos(x)

-/-

-/-

cos x

ln(x)

-/-

-/-

ln x

arctg(x)

-/-

-/-

arctg x

frac(x)

-/-

-/-

Дробная часть числа

int(x)

-/-

-/-

Целая часть числа

pi

---

real

Пи=3.14159265...

trunc(x)

real

integer

Отбрасывание дробной части

round(x)

real

integer

Округление до ближайшего целого

randomize

---

---

Инициация датчика псевдослучайных чисел

random

---

real

Возвращает псевдослучайное число, равномерно распределенное на интервале 0<=x<1


Символьный тип

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

Символ, заключенный в апострофы, обозначает константу символьного типа, например: ‘5’, ‘d’.

Над переменными символьного типа определены следующие функции:

1) функции преобразования:

ORD (s) - дает порядковый номер символа s в упорядоченном множестве символов: ORD(‘5’)=53.

CHR (i) - дает символ, стоящий под номером i в упорядоченном множестве символов: CHR(66)=‘B’.

2) операции отношения (см. выше):

если С1 и С2 - символьные переменные, то С1>С2 истинно только тогда, когда ORD(C1)>ORD(C2).

3) стандартные функции:

PRED (s) - возвращает предыдущий символ.

SUCC (s) - возвращает следующий символ.

Булевский тип

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

Над ними определены:

1) логические операции:

AND(и или конъюнкция), OR(или или дизъюнкция),

NOT(не или отрицание).

2) операции отношения (см. выше):

причем TRUE>FALSE.


Перечисляемый тип

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

Пример: type tree=(birch, oak, pine);

или

var tr=(birch, oak, pine);

1.3.Выражения

Значения выражений вычисляются с учетом расставленных скобок и старшинства операций.

Ниже приведены операции в порядке убывания их приоритета, причем операции в одной строке имеют одинаковый приоритет:

NOT

*, /, MOD, DIV, AND

+, -, OR

<, >, <=, >=, <>, =


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