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

Методичка Паскаль

.pdf
Скачиваний:
101
Добавлен:
30.04.2015
Размер:
592.26 Кб
Скачать

Министерство образования и науки РФ Федеральное агентство по образованию

Государственное образовательное учреждение высшего профессионального образования «Уральский государственный педагогический университет»

Институт математики, информатики и информационных технологий Кафедра информатики, информационных технологий и методики обучения информатике

А.И. Газейкина

Основы структурного программирования на языке Паскаль

Учебно-методическое пособие

Екатеринбург – 2014

УДК 681.142.1 (075.8) ББК З973.2-018я7 Г 13

Печатается по решению кафедры информатики и ВТ протокол № 6 от 07.02.06

Рецензенты:

И.В. Рожина, кандидат педагогических наук, доцент (Нижне-Тагильская государственная социально-педагогическая академия), М.В. Лапенок, кандидат технических наук, доцент (Уральский государственный педагогический университет).

Газейкина А.И.

Основы структурного программирования на языке Паскаль: Учебнометодическое пособие / Урал. гос. пед. ун-т. – Екатеринбург, 2006. – с.

Г 13

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

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

Газейкина А.И., 2006

Содержание

 

Тема 1. Линейные программы ...............................................................................

5

Краткое изложение теоретического материала................................................

5

Примеры решаемых задач...................................................................................

8

Контрольные задания........................................................................................

10

Тема 2. Разветвляющиеся программы.................................................................

12

Краткое изложение теоретического материала..............................................

12

Примеры решаемых задач.................................................................................

14

Контрольные задания........................................................................................

16

Тема 3. Циклические программы ........................................................................

18

Краткое изложение теоретического материала..............................................

18

Примеры решаемых задач.................................................................................

20

Контрольные задания........................................................................................

26

Тема 4. Обработка данных строкового типа ......................................................

30

Краткое изложение теоретического материала..............................................

30

Примеры решаемых задач.................................................................................

32

Контрольные задания........................................................................................

37

Тема 5. Система типов языка Паскаль................................................................

39

Краткое изложение теоретического материала..............................................

39

Тема 6. Перечисляемый тип.................................................................................

40

Краткое изложение теоретического материала. .............................................

40

Тема 7. Тип-диапазон............................................................................................

41

Краткое изложение теоретического материала. .............................................

41

Тема 8. Множество (множественный тип) .........................................................

42

Краткое изложение теоретического материала..............................................

42

Примеры решаемых задач.................................................................................

43

Контрольные задания........................................................................................

44

Тема 9. Массивы в языке Паскаль.......................................................................

46

Краткое изложение теоретического материала..............................................

46

Примеры решаемых задач.................................................................................

51

Контрольные задания........................................................................................

55

Тема 10. Графика в языке Паскаль......................................................................

58

Краткое изложение теоретического материала..............................................

58

Контрольные задания........................................................................................

60

Тема 11. Подпрограммы в языке Паскаль ..........................................................

63

Краткое изложение теоретического материала..............................................

63

Примеры решаемых задач.................................................................................

66

Контрольные задания........................................................................................

68

Тема 12. Тип данных запись (Record) .................................................................

69

Краткое изложение теоретического материала..............................................

69

Примеры решаемых задач.................................................................................

70

Контрольные задания........................................................................................

72

Тема 13. Работа с файлами в языке Паскаль......................................................

74

Краткое изложение теоретического материала..............................................

74

3

 

Текстовые файлы............................................................................................

75

Примеры решаемых задач.............................................................................

77

Типизированные файлы.................................................................................

82

Примеры решаемых задач.............................................................................

84

Контрольные задания........................................................................................

88

Тема 14. Динамические переменные в языке Паскаль......................................

90

Краткое изложение теоретического материала..............................................

90

Примеры решаемых задач.............................................................................

95

Контрольные задания........................................................................................

96

Список литературы ...............................................................................................

98

4

Тема 1. Линейные программы

Краткое изложение теоретического материала

Программа на языке Паскаль имеет следующую структуру:

Program <имя>;

{заголовок программы }

<блок описаний>;

{ описание данных (модулей, констант, типов, пе-

 

ременных, процедур и функций) }

begin

{ начало исполняемой части программы }

<оператор 1>;

{ исполняемая часть – тело программы }

<оператор 2>;

 

 

<оператор N>

 

end.

{ конец программы }

В фигурные скобки заключаются комментарии к программе – это по-

ясняющий текст произвольного содержания. Комментарии не обрабатывают-

ся транслятором.

Имя программы является идентификатором. Идентификатор может состоять из латинских букв, цифр и символа ‘_’ (подчеркивание) и начинать-

ся не с цифры.

В блоке описаний описываются:

1.) модули, используемые программой:

Uses <имя модуля>;

2.) константы (данные, не изменяющиеся в ходе исполнения про-

граммы):

Const <имя>=<значение>;

3.) типы данных, конструируемые программистом:

Type <имя типа>=<описание>;

4.) переменные (данные, которые могут изменяться в ходе исполнения программы):

Var <имя переменной>:<тип>;

5

Тип может быть стандартным, а также сконструированным и описан-

ным в разделе описания типов.

Базовые стандартные типы:

-Integer – целочисленный тип;

-Real – вещественный тип (действительные числа);

-Char – символьный тип;

-Boolean – логический тип (данные этого типа принимают только два значения: True ( истина) и False (ложь));

-String – строковый тип.

5.) процедуры и функции, определяемые программистом:

Procedure <описание процедуры>;

Function <описание функции>;

Исполняемая часть программы представляет собой составной опера-

тор – несколько операторов языка, заключенных в операторные скобки –

Begin и End.

Все операторы языка можно условно разделить на команды и конст-

рукции.

Команда (оператор) присваивания:

<имя переменной> := <выражение>;

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

определенные программистом) функции, а также скобки.

Например: X:=10; - в переменную Х будет записано число 10; Y:=X+6; - в переменную Y будет записано число 16; Y:=Y+1; - в переменную Y будет записано число 17 (число

16 будет стерто из памяти).

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

рены следующие операции: + (сложение), (вычитание), * (умножение), /

6

(деление). Для обработки целых чисел: + (сложение), (вычитание), * (ум-

ножение), div (целочисленное деление), mod (остаток от деления нацело).

Наиболее часто используемые стандартные функции перечислены в Таблице 1. Аргумент функции (константа, переменная или выражение) при ее вызове заключается в круглые скобки.

Таблица 1

Некоторые стандартные функции языка Турбо Паскаль

Имя функции

Описание функции

 

 

Abs (x)

Модуль (абсолютная величина) числа x

 

 

Sqrt (x)

Извлечение квадратного корня из числа x

 

 

Sqr (x)

Возведение числа x в квадрат (во вторую степень)

 

 

Exp (x)

Экспонента числа x (т.е. ex)

 

 

Sin (x)

Синус угла x (значение угла должно быть представлено в

радианах)

 

 

 

Cos (x)

Косинус угла x (значение угла должно быть представле-

но в радианах)

 

 

 

Arctan (x)

Арктангенс числа x

 

 

Ln (x)

Натуральный логарифм числа x

 

 

 

Датчик случайных чисел – возвращает случайное число

Random (x)

из интервала от 0 до x-1. Инициализация датчика слу-

чайных чисел выполняется командой Randomize (стан-

 

 

дартная процедура).

 

 

Round (x)

Округление вещественного числа x до целого

 

 

Trunc (x)

Целая часть вещественного числа x

 

 

Frac (x)

Дробная часть вещественного числа x

 

 

Команда (оператор) вывода:

Write (<список вывода>);

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

7

Writeln (<список вывода>);

Выводит информацию на экран, после чего переводит курсор в начало следующей строки (т.е. выводит специальный символ «конец строки»).

Команда (оператор) ввода:

Readln (<имя переменной>);

Приостанавливает работу программы и ожидает ввода данных с кла-

виатуры. После набора данных и нажатия клавиши <Enter> производится проверка соответствия типов введенных данных и указанной переменной.

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

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

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

Примеры решаемых задач Пример 1. Составить программу, которая вычислит площадь и пери-

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

Составим модель данной задачи. Исходными данными являются длины катетов A и B. Это числа (могут быть как целыми, так и вещественными). Ре-

зультат: площадь S и периметр P (действительные числа). Для вычисления периметра необходимо предварительно вычислить длину гипотенузы C (дей-

ствительное число).

Алгоритм решения: ввод исходных данных, необходимые вычисления,

вывод результатов на экран.

Программа:

Program Triangle; {Заголовок программы}

Uses Crt; {Подключение модуля CRT}

Var A, B : Integer; {Описание всех переменных}

8

{Заголовок программы} {Подключение модуля CRT} {Описание всех переменных}

S, P, C : Real;

Begin { Начало исполняемой части программы }

Clrscr; { Очистка экрана }

Write(‘Введите длину 1-го катета’); { Ввод исходных данных }

Readln (A);

Write(‘Введите длину 2-го катета’);

Readln (B);

C:=Sqrt (Sqr (A)+Sqr (B)); { Вычисление длины гипотенузы }

S:=A*B/2; { Вычисление площади треугольника }

P:=A+B+C; { Вычисление периметра }

Writeln (‘Площадь ’, S:7:2); { Вывод результатов на экран }

Writeln (‘Периметр ’, P:7:2); { (:7:2 – формат вывода – 7 позиций на эк-

ране будет отведено на вывод всего числа, 2 позиции – на вывод его дроб-

ной части)}

Readln { Задержка программы до нажатия клавиши <Enter> }

End.

Пример 2. Составить программу, которая вычислит сумму цифр вве-

денного четырехзначного целого числа.

Составим модель данной задачи. Исходными данными является целое число A. Результат: сумма цифр S. Для вычисления сумы цифр необходимо сначала выделить четыре цифры введенного числа: первая цифра – количест-

во тысяч (результат деления числа на 1000 нацело), последняя цифра вычис-

ляется как остаток от деления введенного числа на 10 и т.п.

Алгоритм решения: ввод исходных данных, необходимые вычисления,

вывод результатов на экран.

Программа:

Program Digits;

Uses Crt;

Var A, D1,D2,D3,D4,S : Integer;

9

Begin

{Начало исполняемой части про-

 

граммы}

Clrscr;

{Очистка экрана}

Write (‘Введите 4-значное число’);

 

Readln (A);

{Ввод исходного числа}

D1:=A div 1000;

{Вычисление первой цифры}

D2:=A div 100 mod 10;

{Вычисление второй цифры}

D3:=A div 10 mod 10;

{Вычисление третьей цифры}

D4:=A mod 10;

{Вычисление четвертой цифры}

S:=D1+D2+D3+D4;

{Вычисление суммы цифр}

Writeln (‘Сумма цифр числа ’, S);

{Вывод результата на экран}

Readln

{Задержка до нажатия <Enter>}

End.

{Конец программы}

Контрольные задания

1.1.Составить программу, которая вычислит длину окружности и площадь круга заданного радиуса.

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

дит число-перевертыш (т.е. число, полученное из введенного перестановкой цифр слева направо).

1.3.Составить программу вычисления площади треугольника, задан-

ного

 

длинами

своих

 

сторон

 

(по

формуле

Герона

 

 

 

 

, где p =

a + b + c

).

 

 

S =

 

p( p a)( p b)( p c)

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

1.4. Составить программу вычисления площади треугольника, задан-

ного

 

координатами

своих вершин на

плоскости

(по формуле

Герона

 

 

 

, где p =

a + b + c

).

 

 

S =

 

p( p a)( p b)( p c)

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

1.5. Составить программу,

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

переменных:

10