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

Лабораторный практикум по информатике

.pdf
Скачиваний:
157
Добавлен:
18.03.2015
Размер:
8.8 Mб
Скачать

имя файла программы на диске;

полосы прокрутки;

координаты положения курсора в тексте программы.

Основное меню среды Borland Pascal 7.0 for Windows

содержит следующие команды:

file – набор команд для работы с файлами (открытие, сохранение программы);

edit – набор команд для работы с текстом;

search – команды поиска по тексту программы;

run – команды, управляющие выполнением программы;

compile – команды компиляции программы, то есть получение исполняемого файла;

tools – дополнительные утилиты;

options – настройки среды;

window – команды навигации между открытыми программами;

help – помощь.

Сохранение программы на диске. Набранный текст программы можно сохранить на диске, выбрав пункт меню FileSave. Появится окно сохранения программы (Рис. 3).

В появившемся окне следует выбрать каталог и ввести имя файла программы, под которым она будет сохранена на диске и нажать OK.

Запуск программы. Для запуска программы необходимо ее скомпилировать, то есть получить исполняемый (exe) файл. Это делается командой меню CompileMake или клавишей F9. Запуск программы – командой меню RunRun (сочетание клавиш Ctrl+F9).

Borland Pascal 7.0 позволяет компилировать программы под различные платформы. Выбор платформы производится командой меню CompileTarget, в котором предложены следующие варианты

(Рис. 4):

реальный режим (стандартные DOS-приложения);

защищенный режим;

Windows-приложение (требует подключение модуля Wincrt).

41

Рис. 3 Сохранение программы

Рис. 4 Выбор платформы

В процессе компиляции программы выявляются синтаксические ошибки. При наличии таких ошибок программа не может быть скомпилирована. При возникновении ошибки такого рода среда сообщает тип ошибки и указывает место в тексте программы, где она присутствует. В случае затруднения пользователь может посмотреть помощь через пункт меню HelpTopic Search или используя сочетание клавиш Ctrl+F1.

3.2. Структура алгоритмов

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

42

алгоритма может быть представлена комбинацией трех базовых структур: следование, ветвление, цикл.

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

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

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

3.3. Структура программы на языке Pascal

Программа состоит из заголовка и блока.

В заголовке указывается имя программы и список параметров. Общий вид:

program n (input, output, x, y,…);

здесь n – имя программы; input – файл ввода; output – файл вывода; x, y – внешние файлы, используемые в программе.

Заголовка может и не быть или он может быть без параметров. Блок программы состоит из шести разделов, следующих в

строго определенном порядке:

раздел меток (label);

раздел констант (const);

раздел типов (type);

раздел переменных (var);

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

раздел действий (операторов).

Каждый из первых четырех разделов начинается с соответствующего ключевого слова (label, const, type, var), которое записывается один раз в начале раздела и отделяется от последующей информации только пробелом, либо концом строки, либо комментарием.

Раздел констант (const). Если в программе используются константы, имеющие достаточно громоздкую запись, либо сменные константы (для задания варианта программы), то такие константы обычно обозначаются какими-либо именами и описываются в разделе

43

const, а в программе используются только имена констант. Это делает программу более наглядной и удобной при отладке и внесении изменений.

Пример: const

pi = 3.14; c = 2.7531;

Раздел типов (type). Если в программе вводится тип, отличный от стандартного, то этот тип описывается в разделе type.

Пример. type

color = (red, yellow, green, blue);

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

Пример. var

k, i, j: integer; a, b: real;

Каждая переменная должна быть описана до ее использования в программе и отнесена к одному и только одному типу. Названия разделов (const, type, var…) указываются только один раз.

Раздел процедур и функций. Здесь присутствуют заголовки и тела пользовательских процедур и функций.

Раздел действий (операторов). Эта часть программы начинается с ключевого слова begin и заканчивается словом end, после которого должна стоять точка. Раздел действий есть выполняемая часть программы, состоящая из операторов. Раздел действий должен присутствовать всегда, остальные разделы могут отсутствовать.

3.4. Пунктуация в программах на языке Pascal

Заголовок завершается точкой с запятой. В любом объявлении каждый список завершается точкой с запятой. Операторы отделены один от другого точкой с запятой. Слова begin и end не являются операторами – они служат знаками пунктуации. Слово begin выступает в качестве левой, а end – правой скобки. Так как они сами знаки пунктуации, то точка запятой после begin и перед end не

44

обязательна. В программах на Pascal слова begin и end используются преимущественно для образования составных операторов.

Операторы разделены знаками пунктуации, поэтому расположение программы на странице с точки зрения компилятора значения не имеет. Вполне достаточно придерживаться двух правил: 1) не писать слова вместе, 2) не разрывать слово пробелами или переходом на новую строку. Однако рекомендуется соблюдать отступы, они должны делать структуру программы максимально наглядной.

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

3.5. Основные типы данных в языке Pascal

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

Таблица 1

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

Идентифи-

 

Диапазон допустимых

Отводимая

 

 

память

Операции

катор

 

 

значений

 

 

(в байтах)

 

 

 

 

 

 

Целые типы

 

 

 

 

 

shotint

 

-128…127

1

 

integer

 

-32 768…32 767

2

+,–,/,*,Div,Mod,

longint

 

-2 147 483 648…2 147 483 647

4

 

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

byte

 

0…255

1

 

 

word

 

0…65 535

2

 

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

 

 

real

 

2,9×10-39 – 1,7×1038

6

 

single

 

1,5×10-45 – 3,4×1038

4

+,–,/,*,

double

 

5×10-324 – 1,7×10308

8

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

extended

 

3,4×10-4932 – 1,1×104932

10

 

Логический тип

 

 

 

 

 

 

 

Not,And,Or,Xor,

boolean

 

true, false

 

1

 

 

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

 

 

 

 

 

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

 

 

char

 

все символы кода ASCII

1

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

 

45

 

 

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

исостоящая из фиксированного числа компонентов одного типа

(array).

Строки представляет собой последовательность символов. Причем количество этих символов не может быть больше 255 включительно (string).

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

Множества – это совокупность любого числа элементов одного

итого же перечисляемого типа (set).

Файлы для Pascal представляют собой последовательности однотипных данных, которые хранятся на устройствах внешней памяти (file).

3.6. Операции в языке Pascal

Основные математические операции в языке Pascal представлены в табл. 2.

 

 

 

Таблица 2

 

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

Символ операции

 

Название операции

Пример

 

*

 

умножение

2*3 (результат: 6)

 

/

 

деление

30/2 (результат: 1.5E+01)

 

+

 

сложение

2+3 (результат: 5)

 

 

вычитание

5–3 (результат: 2)

 

div

 

целочисленное деление

5 div 2 (результат: 2)

 

mod

 

остаток от деления

5 mod 2 (результат: 1)

 

Логические операции. Над логическими аргументами в Turbo Pascal определены следующие операции:

NOT - логическое отрицание («НЕ»);

AND - логическое умножение («И»);

OR - логическое сложение («ИЛИ»);

XOR - логическое «Исключающее ИЛИ».

Результаты выполнения этих операций над переменными А и В логического типа приведены в табл. 3.

46

Таблица 3

Таблица истинности

A

B

not A

A and B

A or B

A xor B

true

true

false

true

true

false

true

false

 

false

true

true

false

true

true

false

true

true

false

false

 

false

false

false

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

Таблица 4

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

Символ операции

Название операции

>

больше

<

меньше

=

равно

<>

не равно

>=

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

<=

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

В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.

Приоритет операций. Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций:

1.вычисляются подвыражения, заключенные в скобки;

2.выполняются операции с наибольшим приоритетом; уровни приоритетов (в порядке убывания):

унарные операции: +, –, abs, not;

мультипликативные операции: *, /, div, mod, and;

аддитивные операции: +, –; or; xor

операции отношения: = , <>, <, >, <=, >=;

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

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

47

3.7. Стандартные функции языка Pascal

Стандартные функции языка Pascal представлены в табл. 5.

 

 

 

Таблица 5

 

Стандартные функции языка Pascal

Обращение

Тип

Тип

Примечание

аргумента

результата

 

 

 

 

 

 

abs(x)

действ., целый

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

Модуль аргумента

 

 

 

 

arctan(x)

действ., целый

действ.

Арктангенс (значение в

 

 

 

радианах)

 

 

 

 

cos(x)

действ., целый

действ.

Косинус, угол в радианах

 

 

 

 

dec(x,y)

целый

целый

Уменьшает переменную x на

 

 

 

величину переменной y. При

 

 

 

отсутствии 2-го параметра (y)

 

 

 

уменьшает переменную x на

 

 

 

1.

 

 

 

 

exp(x)

действ., целый

действ.

Экспонента

 

 

 

 

frac(x)

действ.

действ.

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

 

 

 

 

inc(x,y)

целый

целый

Увеличивает переменную x

 

 

 

на величину переменной y.

 

 

 

При отсутствии 2-го

 

 

 

параметра (y) увеличивает

 

 

 

переменную x на 1.

 

 

 

 

int(x)

действ., целый

действ.

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

 

 

 

 

ln(x)

действ., целый

действ.

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

 

 

 

 

odd(x)

целый

логический

Значение true, если x –

 

 

 

нечетное число; false – если

 

 

 

четное

 

 

 

 

pi

нет

действ.

Число π (3,141592653)

 

 

 

 

random

нет

действ.

Псевдослучайное число в

 

 

 

интервале [0, 1]

 

 

 

 

random(x)

целый

целый

Псевдослучайное число в

 

 

 

интервале [0, x]

 

 

 

 

round(x)

действ.

целый

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

 

 

 

целого

 

 

 

 

sin(x)

действ., целый

действ.

Синус, угол в радианах

 

 

 

 

sqr(x)

действ., целый

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

Квадрат аргумента

 

 

 

 

sqrt(x)

действ., целый

действ.

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

 

 

 

 

 

 

48

 

Обращение

Тип

Тип

Примечание

аргумента

результата

 

 

 

 

 

 

trunc(x)

действ.

целый

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

 

 

 

числа

 

 

 

 

3.8. Ввод и вывод данных в Pascal

Вывод данных на экран в языке Pascal осуществляется с помощью процедур Write и WriteLn.

Общий вид: Write(A1,A2,...AK); Writeln(A1,A2,...AK);

Первый из этих операторов производит вывод значений переменных А1, А2,...,АК в строку экрана. Второй оператор не только производит вывод данных на экран, но и производит переход к началу следующей экранной строки. Если процедура writeln используется без параметров, то она просто производит пропуск строки и переход к началу следующей строки.

Оператор вывода позволяет задать ширину поля вывода для каждого элемента списка вывода. В этом случае элемент списка вывода имеет вид А:К, где А – выражение или строка, К – выражение либо константа целого типа. Если выводимое значение занимает в поле вывода меньше позиций, чем К, то перед этим значением располагаются пробелы. Если выводимое значение не помещается в ширину поля К, то для этого значения будет отведено необходимое количество позиций.

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

Для ввода исходных данных чаще всего используется процедура Read и ReadLn.

Общий вид: Read(A1,A2,...AK); ReadLn(A1,A2,...AK);

Процедуры производят чтение К значений исходных данных и присваивают эти значения переменным А1, А2, ..., АК.

49

Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter. Не допускается разделение вводимых чисел запятыми.

Часто процедуру ReadLn без параметров применяют в конце программы для задержки: до нажатия на клавишу <Enter> результат выполнения программы остается на экране.

3.9. Примеры программы на языке Pascal

Пример 1. Составить программу, позволяющую пользователю вводить возраст. В результате работы программы на экран должен выводиться его возраст в прошлом году в соответствии с правилами русского языка. После вывода программа ожидает нажатия клавиши для завершения работы.

Решение

uses wincrt; var x: integer; begin

{ввод данных}

write('Введите возраст (до 21 года): '); readln(x);

{вычисления} x := x – 1;

{использование оператора ветвления для вывода на экран в корректном падеже}

case x of

{1 год}

1: writeln('В_прошлом_году_вам_был_1_год');

{2 года, 3 года, 4 года}

2, 3, 4: writeln('В_прошлом_году_вам_было_', x, '_года');

{все остальные} else begin

{проверка корректности ввода} if (x <= 20)and(x >= 5) then

writeln('В_прошлом_году_вам_было_', x, '_лет') else writeln('Введенные_данные_некорректны');

end;

end;

{вывод сообщения}

write('Нажмите любую клавишу...');

50