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

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

.pdf
Скачиваний:
10
Добавлен:
01.05.2022
Размер:
925.77 Кб
Скачать

Продолжение табл. 1.1

Длинное це-

 

-2147483648..

 

лое со зна-

LongInt

4 байта

ком

 

2147483647

 

 

 

 

Короткое

 

 

 

целое

Byte

0..255

1 байт

без знака

 

 

 

Целое

Word

0..65535

2 байта

без знака

 

 

 

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

Таблица 1.2 Процедуры и функции, применимые

к данным целого типа

Обраще-

 

Тип

Действие

ние

 

результата

 

 

Функции (возвращают результат)

chr(b)

 

Char

возвращает символ по его ко-

 

 

 

ду b

odd(l)

 

boolean

возвращает true, если аргу-

 

 

 

мент — нечетное число, false

 

 

 

— если четное

random(w)

 

совпадает с

возвращает псевдослучайное

 

 

типом w

число x, равномерно распре-

 

 

 

деленное на интервале

 

 

 

0<=x<w

sqr(x)

 

совпадает с

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

 

 

типом x

та

succ(x)

 

совпадает с

возвращает следующее целое

 

 

типом x

число, т.е. х+1

pred(x)

 

совпадает с

возвращает предыдущее це-

 

 

типом x

лое число, т.е. х-1

10

Продолжение табл. 1.2 Процедуры (не возвращают результат)

dec(x,i) уменьшает значение x на i, при отсутствии i - на 1

inc(x,i) увеличивает значение x на i, при отсутствии i- на 1

Здесь х — выражение любого из целых типов, b, l, i, w — выражения типов byte, longint, integer, word соответственно.

Над данными целых типов допустимы следующие арифметические операции: +(сложение), –(вычитание), *(умножение), /(деление), div (деление нацело), mod (вычисление остатка от целочисленного деления), а также операции отношения: =(равно), <>(не равно), <(меньше), >(больше), <=(меньше или равно), >=(больше или равно).

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

В группу вещественных типов входят пять типов, показанных в табл. 1.3.

Таблица 1.3

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

 

 

 

Зна-

 

Название

Идентифи-

Диапазон

чащие

Размер

представле-

цифры

типа

катор

памяти

 

 

ния чисел

ман-

 

 

 

 

тиссы

 

Вещественное

Single

от 1.5*10-45

 

 

одинарной

до 3.4*1038

7..8

4 байта

точности

 

 

 

 

вещественное

Real

от 2.9*10-39

11..12

6 байтов

до 1.7*1038

вещественное

Double

от 5.0*10-324

 

 

двойной

до 1.7*10308

15..16

8 байтов

точности

 

 

 

 

вещественное

Extended

от 3.4*10-4932

 

10 бай-

повышенной

до 1.1*104932

19..20

тов

точности

 

 

 

 

11

 

 

Продолжение табл.1.3

Целое в

 

от –263 +1

 

 

 

формате

Comp

до 263 –1

19..20

8 байтов

 

вещественного

 

 

 

 

 

Над переменными этих типов определены арифметические операции: +(сложение), –(вычитание), *(умножение), /(деление), а также операции отношения: : =(равно), <>(не равно), <(меньше), >(больше), <=(меньше или равно), >=(больше или равно).

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

 

 

 

 

Таблица 1.4

 

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

Обращение

 

Тип ар-

Тип ре-

Действие

 

 

гумента

зультата

 

abs(x)

 

real,

совпадает

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

 

 

 

integer

с типом х

 

 

 

 

 

 

Возвращает псевдослучайное

 

random(x)

 

Word

Word

число, равномерно распреде-

 

 

 

 

 

ленное на интервале 0<=i<x

 

sqr(x)

 

real,

совпадает

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

 

 

 

integer

с типом х

 

 

exp(x)

 

real,

real

ex

 

 

 

integer

 

 

 

sqrt(x)

 

real,

real

Возвращает квадратный ко-

 

 

integer

рень из х

 

 

 

 

 

sin(x)

 

real,

real

sin x

 

 

integer

 

 

 

 

 

 

cos(x)

 

real,

real

cos x

 

 

integer

 

 

 

 

 

 

ln(x)

 

real,

real

ln x

 

 

integer

 

 

 

 

 

 

arctg(x)

 

real,

real

arctg x

 

 

integer

 

 

 

 

 

 

frac(x)

 

real

real

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

 

12

 

 

 

Продолжение табл. 1.4

int(x)

real,

integer

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

 

integer

 

 

 

 

 

pi

real

Пи=3.14159265...

 

trunc(x)

real

integer

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

 

round(x)

real

integer

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

 

целого

 

 

 

 

 

randomize

Инициация датчика псевдо-

 

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

 

 

 

 

 

 

 

 

Возвращает псевдослучайное

 

Random

real

число, равномерно распреде-

 

 

 

 

ленное на интервале 0<=x<1

 

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

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

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

функция ord(s) возвращает значение кода требуемого символа s. Например, результат ord(‘5’) равен 53;

функция chr (i) возвращает символ, которые имеет код i. Например, результат chr(66) равен ‘B’.

2)Операции отношения:

сравнение между собой символьных данных равносильно сравнению их кодов, то есть при ord(a)>ord(b) считается что a>b, где a и b — символьные данные.

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

pred(с) — возвращает предыдущий символ (по порядку кода). succ(с) — возвращает следующий символ.

Логический тип Boolean. Переменные логического типа могут хранить значение истинности какого-либо высказывания или условия. Возможных значений у таких переменных только два: true (истина) и false (ложь).

13

Переменные. Операция присваивания

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

Список переменных : Тип; Список переменных : Тип;

и т.д.

Здесь список переменных — перечисленные через запятую имена переменных.

Оператор присваивания переменной какого-либо значения имеет следующий формат:

ИмяПеременной:=Значение;

В качестве значения могут быть константы, переменные или выражения. Например, x:=10.5; a:=b; d:=sqrt(b*b- 4*a*c); Здесь sqrt — функция вычисления квадратного корня. Для переменной b логического типа допустимо, например, такое присваивание: b:=(x>y).

Арифметические и логические операции

Суть действий, выполняемых арифметическими операциями +, –, *, / особых пояснений не требует. Следует только помнить, что если операнды различных типов, то тип результата будет более охватывающим, а тип результата операции деления (/) всегда будет вещественным. Результатом операции div будет целочисленное значение, равное целой части результата деления первого операнда на второй. Результатом операции mod будет целочисленное значение, равное остатку от деления (но не дробной части!) первого операнда на второй. В табл. 1.5 приведены сведения об арифметических операциях.

14

 

Арифметические операции

Таблица 1.5

 

 

 

Операция

Действие

Тип

Тип

 

операндов

результата

 

 

 

 

+

Сложение

Целый

Целый

 

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

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

 

Вычитание

Целый

Целый

 

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

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

 

*

Умножение

Целый

Целый

 

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

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

 

/

Деление

Целый

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

 

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

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

 

div

Целочисл.

Целый

Целый

 

деление

 

 

 

 

 

mod

Остаток от

Целый

Целый

 

деления

 

 

 

 

 

В табл. 1.6 приведены операции отношения. Действие их соответствует математическому пониманию. Результатом этих операций является логическое значение true или false.

Таблица 1.6

Операции отношения

Операция

Действие

=

Равно

<>

Не равно

<

Меньше

>

Больше

<=

Меньше или равно

>=

Больше или равно

В табл. 1.7 перечислены логические операции (not, and, or, xor), с помощью которых можно составлять логические выражения.

15

 

 

Логические операции

Таблица 1.7

 

 

 

 

Операнды

 

Операции

 

 

А

В

not A

A and B

A or В

A xor B

 

false

false

true

false

false

false

 

false

true

true

false

true

true

 

true

false

false

false

true

true

 

true

true

false

true

true

false

 

Вывод на экран

Для вывода информации на экран служит процедура

Write.

Write('Сообщ1','Сообщ2',

ИмяПерем1,Выражение1,...);

Существует модификация процедуры Write — проце-

дура WriteLn

WriteLn('Сообщ1','Сообщ2',

ИмяПерем1,Выражение1,...);

Она отличается от Write тем, что после вывода на экран всех своих аргументов переводит курсор на следующую строку, и следующий вывод на экран будет осуществлён с начала следующей строки.

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

16

Например:

WriteLn('Дискриминант квадратного уравнения равен',b*b-4*a*c);

WriteLn('x1=',x1,' x2=',x2);

Допускается использование WriteLn без аргументов. Тогда вывода на экран не происходит, а курсор переводиться на следующую строку.

Ввод с клавиатуры

Для ввода значений переменных с клавиатуры служит процедура Read и её модификация ReadLn.

Read(Список имён вводимых переменных);

Например,

Read(a,b,c,d);

Если имеется суффикс Ln, то курсор после ввода значений всех переменных дополнительное переводится на новую строку. Допускается использование ReadLn без аргументов для остановки работы программы до нажатия пользователем клавиши Enter.

Виды алгоритмов

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

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

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

17

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

Пример. Рассмотрим процесс создания простейшей программы с линейным алгоритмом на примере следующей задачи.

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

1.Запускаем Free Pascal.

2.Создаём новое окно File New.

3.Пишем программу.

4.Сохраняем программу на диске F2. При этом в диалоговом окне необходимо указать имя программы.

5.Пытаемся запустить программу на выполнение Ctrl+F9.

6.При обнаружении ошибки курсор устанавливается в ту строку, где предположительно находится ошибка и выдаётся сообщение о характере ошибки.

7.После устранения всех ошибок программа запускается.

8.По окончании выполнения происходит возврат в окно программы, а окно выполнения программы остаётся под окном программы. Чтобы вернуть окно выполнения программы нужно нажать Alt+F5.

9.Выходим из ТР Alt+X.

Программа:

Program Vklad;

Var sum

: real; {сумма вклада}

srok

: real; {срок вклада}

stavka

: real; {процентная ставка}

dohod

: real; {доход по вкладу}

Begin

 

18

WriteLn(‘Вычисление дохода по вкладу’); WriteLn(‘Введите исходные данные:’); Write(‘Величина вклада (руб) ->’); ReadLn(sum);

Write(‘Срок вклада (дней) ->’); ReadLn(srok); WriteLn(‘Процентная ставка ->’); ReadLn(stavka); dohod:=(sum*stavka/100)/365*srok; sum:=sum+dohod;

WriteLn; WriteLn(‘-------------------------’); WriteLn(‘Доход:’,dohod:9:2,’руб’); WriteLn(‘Сумма окончания срока вкла-

да:’,Sum:9:2,’руб’); ReadLn;

End.

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

Для записи разветвляющихся алгоритмов в языке Паскаль предусмотрены два оператора ветвления if и Case.

Оператор if осуществляет ветвление по двум направлениям и в общем виде выглядит так:

if Логическое выражение then Оператор1 else Оператор2;

При выполнении оператора if сначала вычисляется значение логического выражения. Если оно приняло значение true выполняется Оператор1, в противном случае — оператор2.

Допускается сокращенный вариант оператора if:

if Логическое выражение then Оператор1;

Тогда при истинности логического выражения выполняется Оператор1, в противном случае выполняется следующий после if оператор.

Если по смыслу задачи вместо первого или второго оператора необходима последовательность из нескольких опера-

19