Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
kamchatgtu246.pdf
Скачиваний:
50
Добавлен:
23.02.2016
Размер:
1.2 Mб
Скачать

3.В открывшемся окне набрать текст программы: Program Lab_1;

Begin

WriteLn (‘Good luck’); ReadLn;

End.

4.Программу Lab_1 надо сохранить в вашем корневом каталоге, который находится на диске H. Для того чтобы сменить каталог, необходимо:

вызвать команду Change dir;

перейти на строку Drives и выбрать диск H;

нажать OK.

5.Созданный файл сохранить под именем Lab_1.PAS. Для этого надо вызвать меню File, в открывшемся меню выбрать команду Save As. В появившемся диалоговом окне ввести в поле Name имя программы Lab_1.PAS.

ЛАБОРАТОРНАЯ РАБОТА № 2

ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЛИНЕЙНОЙ СТРУКТУРЫ

Цели работы

1.Освоение построения программы линейной структуры.

2.Знакомство с простыми типами данных (real, integer, boolean, char).

3.Знакомство с работой оператора присваивания, арифметическими операциями и встроенными функциями для работы с числовыми типами данных.

4.Получение навыков в организации ввода/вывода значений стандартных типов данных.

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

6.Подключение модуля CRT, изучение порядка действий при выводе данных на экран дисплея (управление курсором, задание цвета фона экрана и цвета текста, выводимого на экран).

Теоретический материал

1. Структура программы на Паскале

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

заголовок программы;

раздел объявления типов;

15

РROGRAM < ИМЯ >
ОПИСАНИЕ ДАННЫХ
BEGIN
РАЗДЕЛ ОПЕРАТОРОВ
END.
Рис. 7. Схематичное изображение структуры программы на Паскале

– раздел объявления переменных;

раздел операторов (обязательная

часть).

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

1.1. Операторные скобки

В языке Паскаль под операторными скобками понимают два служебных слова: Begin (открывающая скобка) и End (закрывающая скобка).

Составной оператор – это последовательность произвольных операторов программы, заключенная в операторные скобки BEGIN и END. Следует отметить, что составные операторы – важный инструмент языка, дающий возможность писать программы по современной технологии структурного программирования.

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

Количество слов «Begin» совпадает с количеством слов «End». Для того чтобы избежать ошибки при составлении программы, пишите каждую пару «Begin–End» с одной позиции. При наличии большого количества подобных пар можно ставить номера в комментарии так, как показано на схеме.

2. Структура данных на Паскале. Типы данных

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

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

Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.

Переменная (англ. variable) – это некоторая величина, значения которой могут изменяться, принимая в процессе изменения некоторые значения.

16

Приступая к решению задач , следует помнить, что:

каждая переменная программы должна быть объявлена;

объявления переменных помещают в раздел описания переменных, который начинается словом Var;

инструкция объявления переменной выглядит так: Имя Перемен-

ной: Тип;

в имени переменной можно использовать буквы латинского алфавита

ицифры (первым символом должна быть буква);

основными числовыми типами языка Turbo Pascal являются Integer (целый), Real (вещественный);

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

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

Кпростым относятся:

целые типы – Shortint, Integer, Longint, Byte, Word;

вeщественныe типы – Real, Single, Double, Extended, Comp;

логические типы – Boolean;

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

Простые типы данных можно разделить на порядковые и вещественные. Все простые типы, кроме вещественных, называются порядковыми. Здесь каждое значение можно сопоставить с некоторым целым числом – порядковым номером значения.

2.2. Целые типы данных

В Pascal 7.0 введено 5 стандартных целых типов, которые отличаются форматами и диапазонами допустимых значений (табл. 4).

 

 

 

Таблица 4

 

 

 

 

 

Тип

Значение

Формат

Характеристика

Shorint

–128…127

Знаковый

Короткое целое (8 бит)

 

Integer

–32 768…32 767

Знаковый

Целое (16 бит)

 

Longint

–2 147 483 648…2 147 483 647

Знаковый

Длинное целое (32 бит)

 

Byte

0…255

Беззнаковый

Короткое целое (8 бит)

 

Word

0…65 535

Беззнаковый

16 бит

 

В последней колонке табл. 4 показано, что числу каждого диапазона отводится фиксированное количество разрядов в памяти ЭВМ. Это позволяет эффективно использовать память и влиять на скорость вычислений. Все целые типы являются упорядоченными, поэтому к их значениям применимы две специальные функции Succ(I) и Pred(I), где I – целое, возвращающие следующее и предшествующее I целые числа.

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

17

сложение (+);

вычитание (–);

умножение (*)

частное от деления (div);

остаток от деления (mod).

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

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

15 div 2 = 7;

3 div 7 = 0; (–9) div 4 = –2;

(–9) div (–4 ) = 2.

Операция mod дает остаток при делении двух целых чисел: 15 mod 2 = 1;

3 mod 7 = 3; (–9) mod 4 = –1; 9 mod 3 = 0.

Операции *, div, mod имеют одинаковый, более высокий приоритет, а операции (+) и (–) имеют также одинаковый, но более низкий приоритет. Приоритеты можно менять с помощью круглых скобок.

2.3. Вещественный тип данных

В Pascal 7.0 определено 5 стандартных вещественных типов, которые отличаются форматами и диапазонами допустимых значений (табл. 5).

 

 

 

Таблица 5

 

 

 

 

 

Тип

Значение

Число значащих цифр

Длина байт

Real

2.9*10–39…1.7*1038

11–12

6

 

Single

1.5*10–45 ...3.4*1038

7–8

4

 

Double

5.0*10–324...1.7*10308

15–16

8

 

Extended

3.4*10–4932..1.1*104932

19–20

10

 

Comp

–2–63+1...2 +63–1

19–20

8

 

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

Областью значений вещественного типа является подмножество множества всех вещественных чисел. Оно не является упорядоченным. Для представления чисел из широкого диапазона, от очень маленьких до очень больших, привычное представление с фиксированной запятой не подходит, так как любой вещественный тип в ЭВМ должен иметь ограничение на количество знаков. Если выводятся числа шириной 12 знаков, то, например, число

18

2 001 000 000 000 555 уже не будет изображено. Поэтому вещественные числа

представляются в ЭВМ в форме с плавающей точкой, называемой экспонен-

циальной. Они имеют цифровую часть (мантиссу) и порядок, следующий за знаком е. Приведенное выше число примет вид 2.001е + 15. Ясно, что такая форма представления чисел дает возможность выполнять операции над веще-

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

Стандартный вещественный тип Real используется без математического сопроцессора, а типы Single, Double, Extended относятся к расширенному на-

бору вещественных типов и рассчитаны на работу с сопроцессором, приме-

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

Новый знак ( / ) вводится только для операции деления вещественных чисел, причем результат операции всегда вещественный, даже когда оба операнда – целые числа (9/3).

Операции возведения в степень в Паскале нет. Значение степени ax = (elna)x дает выражение exp (x*ln (a)), использующее две встроенные функции Exp и Ln, например:

37 = Exp(7*Ln(3));

(–4)5 = –Exp(5*Ln(4)), так как Ln(–4) не существует.

3. Математические (встроенные) функции

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

функциями.

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

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

нельзя делить на ноль;

не существует квадратный корень из отрицателъного числа;

не существует логарифм числа, которое меньше или равно нулю.

Для числовых данных стандартные функции представлены в табл. 6.

19

 

 

 

Таблица 6

 

 

 

 

 

Функция

Обозначение

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

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

Абсолютное значение x

Abs(x)

Integer или Real

Integer или Real

 

Арктангенс x

Arctan(x)

Integer или Real

Real

 

Косинус x

Cos(x)

Integer или Real

Real

 

Экспонента

Еxp(x)

Integer или Real

Real

 

Выделение дробной части

Frac(x)

Real

Real

 

аргумента

 

 

 

 

Выделение целой части

Int(x)

Real

Real

 

аргумента

 

 

 

 

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

Ln(x)

Real

Real

 

Значение

Pi

 

PI = 3.1415926535897932385

 

 

 

 

Проверка четности

Odd(x)

Longint

Boolean(true, если

 

 

 

 

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

 

Предшествующее значение

Pred(x)

INTEGER

Integer

 

аргумента

 

 

 

 

Инициализация датчика

Randomize

 

случайных чисел

 

 

 

 

Формирование случайного

Random(x)

Word

Integer

 

числа

 

 

 

 

Формирование случайного

Random

Аргумент не задан

Real

 

числа

 

 

 

 

Округление вещественного

Round(x)

Real

Integer

 

числа до целого

 

 

Longint

 

Синус х

Sin(x)

Integer или Real

Real

 

Квадрат х

Sqr(x)

Integer или Real

Integer или Real

 

Квадратный корень x

Sqrt (x)

Integer или Real

Real

 

Следующее значение аргу-

Susc(x)

Integer

Integer

 

мента

 

 

 

 

Выделение целой части ве-

Trunc(x)

Real

Integer

 

щественного числа

 

 

Longint

 

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

Функции Int(x) и Frac(x) похожи на математические функции [х] и {х}, обозначающие соответственно целую и дробную части числа, но совпадают с ними только на множестве неотрицательных чисел. Если аргумент отрицательный, то они просто отбрасывают дробную или целую часть: [–5,8] = –6, Int (–5.8) = –5; {–5,8} = 0,2, Frac(–5.8) = –0.8.

Функция Trunc(x) отличается от Frac(x) типом возвращаемого значения, Round(x) – функция округления, Odd(x) возвращает логическое значение true, если аргумент х – нечетное число.

Функции Random, Random(x) и сопутствующая им процедура Randomize предназначены для получения псевдослучайных чисел.

Целочисленные значения можно присваивать вещественным перемен-

ным, а присваивание вещественного значения целочисленной переменной яв-

20

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