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

Практикум ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ_Янченко Д.В

.pdf
Скачиваний:
15
Добавлен:
13.03.2016
Размер:
786.83 Кб
Скачать

Д.В. Янченко

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ

Практикум

Новочеркасск 2006

Министерство сельского хозяйства Российской Федерации

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

«НОВОЧЕРКАССКАЯ ГОСУДАРСТВЕННАЯ МЕЛИОРАТИВНАЯ АКАДЕМИЯ»

Д.В. Янченко

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ ПАСКАЛЬ

Практикум

для самостоятельной подготовки и выполнения контрольных заданий по дисциплине «Информатика» студентами заочной формы обучения по специальностям

270104, 280401, 280402, 280301, 280302, 190207

Новочеркасск 2006

УДК 004.4 Я 662

Рецензенты: канд. техн. наук, проф. каф. МиОВ А.А.Ткачев канд. экон. наук, доц. каф. высшей математики М.Е.Васильева

Янченко, Д.В.

Я 622 Программирование на языке Паскаль [Текст]: практикум для сам. подготовки и вып. контр. заданий по дисц. «Информатика» студ.

заоч. формы обучения по спец. 270104, 280401, 280402, 280301, 280302, 190207 / Д.В.Янченко; Новочерк. гос. мелиор. акад. – Новочеркасск, 2006. – 93 с.

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

Предназначено для студентов заочной формы обучения

по

специальностям

270104

«Гидротехническое

строительство»,

280401

«Мелиорация, рекультивация и охрана земель», 280402 «Природоохранное обустройство территорий», 280301 «Инженерные системы сельскохозяйственного водоснабжения, обводнения и водоотведения», 280302 «Комплексное использование и охрана водных ресурсов», 190207 «Машины и оборудование природообустройства и защиты окружающей среды», а так же для студентов очных факультетов всех специальностей для самостоятельной работы по курсу информатики.

ОГЛАВЛЕНИЕ

с.

ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1 ОСНОВНЫЕ ОБЪЕКТЫ ЯЗЫКА ПАСКАЛЬ . . . . . . . . . . . . . . . . . . . 6 1.1 Общая характеристика языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 Алфавит языка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3 Идентификаторы языка, константы и переменные . . . . . . . . . . 6 1.4 Стандартные типы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.5 Стандартные функции . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.6 Оператор . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 1.7.Арифметические выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.8 Структура Паскаль-программы . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.8.1 Заголовок программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.8.2 Раздел описаний . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.8.3 Раздел операторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

2 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЛИНЕЙНОЙ СТРУКТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.1 Понятие алгоритма линейной структуры . . . . . . . . . . . . . . . . . . . 15 2.2 Оператор присвоения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3 Операторы ввода и вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ РАЗВЕТВЛЯЮЩЕЙСЯ СТРУКТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

3.1 Понятие разветвляющегося процесса . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Оператор безусловного перехода . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3 Оператор условного перехода . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4 Оператор выбора . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4 ПРОГРАММИРОВАНИЕ АЛГОРИТМОВ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.1 Понятие об алгоритмах циклической структуры . . . . . . . . . . . . . 23 4.2 Операторы цикла с предусловием . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.3 Оператор цикла с постусловием . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.4 Оператор цикла с параметром (целочисленный цикл) . . . . . . . . 26 4.5 Программирование циклической структуры в случае задания

аргумента в виде арифметической последовательности (задача табулирования функции) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 ПРОГРАММИРОВАНИЕ ЗАДАЧ С ОДНОМЕРНЫМИ МАССИВАМИ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.1 Понятия массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.2 Описание размерности массива . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 5.3 Порядок индексации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.4 Обработка массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 5.5 Характерные приемы программирования задач с

одномерными массивами (стандартные алгоритмы) . . . . . . . . . 33 5.5.1 Ввод элементов массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

с.

5.5.2 Вывод элементов из массива . . . . . . . . . . . . . . . . . . . . . . . . . 35 5.5.3 Сумма элементов массива . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.5.4 Сумма элементов массива удовлетворяющих какому либо

критерию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.5.5 Произведение элементов массива . . . . . . . . . . . . . . . . . . . . . 38 5.5.6 Произведение элементов массива удовлетворяющих

какому либо критерию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.5.7 Нахождение количества элементов массива отвечающих

заданному критерию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 5.5.8 Нахождение минимального (максимального) элемента

массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.5.9 Нахождение порядкового номера элемента в массиве,

отвечающего какому либо признаку . . . . . . . . . . . . . . . . . . 43 5.5.10 Среднее значение всех элементов массива . . . . . . . . . . . . 44 5.5.11 Среднее значение элементов массива удовлетворяющих

заданному критерию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 6 ПРИМЕРЫ ВЫПОЛНЕНИЯ КОНТРОЛЬНЫХ ЗАДАНИЙ. . . . . . . . 47 6.1 Пример решения задания № 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 6.2 Пример решения задания № 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 6.3 Пример решения задания № 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 6.4 Пример решения задания № 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 6.5 Пример решения задания № 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 7 ВАРИАНТЫ КОНТРОЛЬНЫХ ЗАДАНИЙ . . . . . . . . . . . . . . . . . . . . . 79 7.1 Варианты задания № 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 7.2 Варианты задания № 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 7.3 Варианты задания № 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.4 Варианты задания № 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 7.5 Варианты задания № 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

ЛИТЕРАТУРА . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ПРИЛОЖЕНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

5

ВВЕДЕНИЕ

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

Рассматриваемая версия языка разработана американской корпорацией Borland во главе с А. Хейлсбергом. Версия Turbo Pascal 6.0 является мощным расширением стандартного языка Паскаль, учитывающее архитектурные особенности операционной системы для платформы IBM PC, снабженное разнообразными пакетами стандартных процедур.

Практикум и контрольные задания предназначены для выполнения студентами заочной формы обучения контрольной работы. Все пять заданий требуют разработки блок-схемы алгоритма и составления программы на языке Паскаль, сопровождаемой необходимыми пояснениями. Перед выполнением заданий следует внимательно ознакомиться с теоретическими аспектами программирования и разобрать приведенные примеры задач. Блоксхема алгоритма должна изображаться с применением чертежных инструментов аккуратно и четко и соответствовать требованиям стандартов. Размер наименьшей стороны (а) блока рекомендуется принимать равной 10, 15 или 20 мм. Величина наибольшей стороны b = 1,5(2,0) а.

Номера вариантов заданий выбираются по таблице 3 в зависимости от номера зачетной книжки студента. При этом в заданиях №1, №3 и №5 номер варианта определяется по значениям двух последних цифр шифра, а в заданиях №2 и №4, соответственно, суммой и разностью этих цифр. Например, если шифр равен 100052, то выполняется задание №1 и №3 по варианту 12, задание №2 – вариант 7, задание №4 – 13, задание №5 – 4.

6

1 ОСНОВНЫЕ ОБЪЕКТЫ ЯЗЫКА ПАСКАЛЬ

1.1 Общая характеристика языка

Язык программирования Паскаль назван в честь французского ученого Блейза Паскаля (1623-1662) и разработан профессором Цюрихского Института информатики (Швейцария) Никлаусом Виртом в 70-х годах.

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

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

Внастоящее время существуют множество разновидностей языка. Например, TURBO PASCAL версии 5.0, разработанный фирмой Borland (Turbo Basic, Turbo Ci) который является расширением стандарта ANSI PASCAL для операционной платформы MS DOS.

1.2 Алфавит языка

Алфавит языка Паскаль использует следующие символы:

1.Буквы - 26 латинских букв от A до Z. Разницы между прописными и заглавными буквами нет.

2.Цифры: от 0 до 9.

3.Специальные символы: ; : = + - * / _ ( ) [ ] { } , . ‘ “ < > # $ ^ &

4.Ключевые (зарезервированные) слова: AND, BEGIN, END, ARRAY и

т.д.

5.Знаки операций:

-арифметические: +, -, *, /, DIV ( целочисленное деление), MOD (нахождение остатка от деления)

-отношения: <, >, =, <=, >=, <>;

-логические: NOT (отрицание), AND (логическое умножение), OR (логическое сложение).

1.3 Идентификаторы языка, константы и переменные

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

7

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

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

Примеры записи имен: X, X1, SUMMA, SUMMA2, MAX_ALFA. MIN и min - одно и тоже.

Константа представляет собой значение, которое известно заранее и не изменяется в ходе выполнения программы.

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

1.4 Стандартные типы данных

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

Кстандартным типам данных относятся данные целочисленного типа, вещественного, булевского, литерные (строковые и символьные).

Данное является ЦЕЛОЧИСЛЕННЫМ, если оно представляет собой целое число в диапазоне от -32768 до +32767. Для описания целочисленного данного в Паскале используется слово INTEGER.

Кданным целого типа можно применять битовые операции, т.е. работать напрямую с байтами. Можно прибавлять, отнимать, умножать. Для этого используют специальные функции.

Данные ВЕЩЕСТВЕННОГО типа, по своей сути представляют десятичные дроби, которые в ЭВМ представлены в форме с плавающей точкой, т.е. в виде мантиссы и порядка:

X = M q p или X = M 10p ,

где Х - число с плавающей точкой, М - мантисса, q - основание системы

(10), р- порядок.

Для описания используют служебное слово REAL. Данные работают в диапазоне от 2.9 Е -39 до 1.7 Е +38 (положительные и отрицательные). Воспринимается 11-12 цифра после десятичной точки (без сопроцессора).

8

Переменные и константы БУЛЕВСКОГО типа могут иметь 2 значения: TRUE (истина) и FALSE (ложь). Для описания используют слово

BOOLEAN.

ЛИТЕРНЫЙ тип данных. Переменные и константы этого типа могут содержать любые символы латинского и русского алфавита. Значения переменных литерного типа заключаются в кавычки.

Строковый тип данных содержит строку литеров и описывается словом STRING[n], где n - длина строки.

Символьный тип данных содержит один символ и описывается словом

CHAR.

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

1.5 Стандартные функции

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

-арифметические;

-функции преобразования типа переменной;

-функции для обработки величин порядкового типа.

При обращении к стандартной функции необходимо записать имя функции и в круглых скобках указать аргумент (аргументы). Наиболее часто встречаемые функции приведены в таблице 1.

Таблица 1 – Часто встречаемые стандартные (встроенные) функции

Обращение

Действие

Тип данных

Входной

Выходной

 

 

 

 

 

 

1

2

 

 

 

3

4

ABS(X)

 

x

 

 

 

Real или Integer

Real или Integer

 

 

 

SQR(X)

x2

 

Real или Integer

Real или Integer

SIN(X)

sin

x

Real или Integer

Real

COS(X)

cos

x

Real или Integer

Real

EXP(X)

ex

 

Real или Integer

Real

LN(X)

ln x

Real или Integer

Real

SQRT(X)

 

x

 

Real или Integer

Real

ARCTAN(X)

arctg x

Real или Integer

Real

 

 

 

 

 

 

 

 

9

Окончание таблицы 1

TRUNC(X)

Выделение целой

Real

Integer

 

части

 

 

ROUND(X)

Округление числа

Real

Integer

INC(X)

Увеличение Х на 1

Integer

Integer

DEC(X)

Уменьшение Х на 1

Integer

Integer

INC(X,N)

Увеличение Х на N

Integer

Integer

DEC(X,N)

Уменьшение Х на N

Integer

Integer

ODD(X)

Определение

LongInt

BOOLEAN

 

нечетности числа

 

 

1.6 Оператор

Оператор - это предписание в данном языке программирования, предназначенное для задания некоторого завершающего действия в процессе обработке информации на ЭВМ.

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

- присвоения;

- составной оператор;

- ввода - вывода;

- оператор варианта;

- перехода;

- оператор цикла.

- определения функций и процедур;

В языке Паскаль по своему составу определены операторы двух типов: простые и структурные.

Простым считается оператор, который не содержит других операторов. Структурный - содержащий в качестве компонентов один или

несколько операторов.

К простым оператором относятся: присвоения, перехода. Структурные: условные, выбора, цикла, составные.

Составной оператор представляет собой последовательность операторов, заключенных в ключевые слова BEGIN и END - операторные скобки.

1.7 Арифметические выражения

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