1. Простейшие программы
[ Скачать с сервера (30.1 Kb) ]2019-04-05, 8:54 PM

Структура Паскаль-программы

Программа состоит из заголовка и блока, за которым следует точка. Заголовок имеет вид:  

PROGRAM <идентификатор>;

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

Блок состоит из следующих разделов:

1) раздел объявления используемых модулей (USES);

2) раздел объявления меток (LABEL);

3) раздел объявления именованных констант (CONST);

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

5) раздел объявления переменных (VAR);

6) раздел объявления процедур и функций (PROCEDURE, FUNCTION);

7) раздел операторов.

Основным разделом является раздел операторов. Он обязательно присутствует в программе, так как именно с помощью операторов записывают инструкции, которые должен выполнить компьютер. Раздел состоит из операторных скобок BEGIN и END, между которыми записывается последовательность операторов, разделенных точкой с запятой. Остальные разделы необязательны и используются по мере надобности. Они носят описательный характер: объявляют все элементы, необходимые для работы программы. Порядок расположения разделов произвольный, за исключением раздела USES (если он присутствует, то обязательно раньше остальных разделов) и раздела операторов, который всегда находится в конце программы. Для остальных разделов одно единственное правило: если описанный в каком-либо разделе элемент используется в другом разделе, то этот элемент должен объявляться выше.

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

Данные и тип данных

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

В Турбо-Паскале имеется ряд стандартных типов, например,

REAL (вещественный);

BYTE (целый, диапазон: 0…255);

INTEGER (целый, диапазон: -32768...32767);

CHAR (символьный);

BOOLEAN (логический) и другие.

Пользователь может задать собственный тип данных. В этом случае его надо определить в разделе TYPE. Типы бывают простые и сложные. Данные простых типов могут принимать только одно значение одновременно, сложные – более одного. Все переменные объявляются в разделе программы VAR с указанием идентификатора и типа. На физическом уровне описание переменных означает резервирование места в оперативной памяти. Константы могут использоваться в программе как по имени (в этом случае они должны быть предварительно описаны в разделе CONST), так и непосредственно по значению.

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

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

Выражения

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

1) унарные: унарный +, унарный -, Not;

2) мультипликативные: *, /, And, Div, Mod;

3) аддитивные: +, -, Or;

4) операции отношения: <, >, =, <=, >=, <>, In.

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

Организация простейших программ

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

Оператор присваивания используется для задания переменной некоторого значения. Формат: <переменная>:=<выражение>

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

Процедуры ввода данных с клавиатуры имеют две формы:

1) READ (<список ввода>);

2) READLN (<список ввода>)

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

Процедуры вывода данных на экран дисплея имеют две формы:

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

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

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

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

1) использование текстовых констант (последовательностей символов, заключенных в апострофы);

2) использование формата вывода: V:n[:m], где V – выражение, n – минимальное количество позиций, отводимых под  значение выражение V, m – количество позиций для дробной части (только для выражений вещественного типа).

Эти способы можно также комбинировать.

Модуль CRT

Модуль CRT представляет собой библиотеку подпрограмм управления текстовым выводом на экран дисплея, звуковым генератором и чтения с клавиатуры. 

В режиме текстового вывода используется следующая система координат: левая верхняя точка с координатами (1,1) является началом координат; горизонтальная координата Х возрастает слева направо, вертикальная Y – сверху вниз (1  Х  80, 1  Y  25). Если на экране определяется окно, то все координаты задаются относительно границ окна, за исключением координат процедуры WINDOW, которые всегда задаются относительно границ экрана. Рассмотрим некоторые процедуры модуля CRT:

1) TextColor (Color:Byte); - установка текущего цвета символов.

2) TextBackGround (Color:Byte); - установка текущего цвета фона.

3) ClrScr; - очистка экрана (окна) с одновременным закрашиванием текущим цветом фона и установкой курсора в верхнюю левую точку экрана (окна).

4) GotoXY (X,Y:Byte); - установка курсора в позицию с координатами (X,Y) экрана (окна);

5) Window(X1,Y1,X2,Y2:Byte); - определение текстового окна на экране, которое становится текущим. Здесь (X1,Y1) – координаты левой верхней точки окна, (X2,Y2) – правой нижней точки.

6) Delay(D:Word); - задержка работы программы на указанное число D миллисекунд.

 

Пример 1. Вычислить площадь треугольника по трем заданным сторонам. Программу оформить с помощью модуля CRT.

Program Example_1;

{Для нахождения площади треугольника используется формула Герона}

Uses CRT; {подключение модуля к программе}

Var a, b, c, p, s: Real; {a,b,c – стороны, p – полупериметр, s - площадь}

Begin

TextBackGround(1); {установка текущего цвета фона экрана}

ClrScr; { очистка экрана с одновременным окрашиванием текущим цветом }

Window(10,10,70,20); {установка размеров текстового окна}

TextBackGround(3); {установка текущего цвета фона окна}

ClrScr; { очистка окна с одновременным окрашиванием текущим цветом }

TextColor(4); {установка текущего цвета символов}

GotoXY(2,4); {установка курсора в заданную позицию окна}

Write(‘Введи длины сторон треугольника:’);

Readln(a,b,c); {ввод с клавиатуры значений длин сторон треугольника}

p:=(a+b+c)/2; {вычисление периметра}

s:=Sqrt(p*(p-a)*(p-b)*(p-c)); {вычисление площади}

GotoXY(2,6);

Writeln(‘Площадь треугольника равна ’,s:6:2); {вывод значения площади на экран}

Delay(3000) {задержка работы программы на 3 секунды}

End.

 

ЗАДАНИЯ ДЛЯ САМОСТОЯТЕЛЬНОЙ РАБОТЫ

Составить программы, используя для оформления модуль CRT. На экране отобразить два окна: в одном произвести ввод исходных данных, в другом – вывести результаты. Ввод и вывод снабдить пояснениями.

Варианты заданий :

1. Прямоугольный треугольник задан гипотенузой и одним из катетов. Найти второй катет и площадь треугольника.

2. Треугольник задан величинами своих углов (в градусах) и радиусом описанной окружности. Найти длины сторон треугольника.

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

4. Вычислить длину окружности, площадь круга и объем шара одного и того же заданного радиуса.

5. Вычислить периметр и площадь прямоугольного треугольника по заданным катетам треугольника.

6. Вычислить периметр и площадь треугольника по заданным координатам трех его вершин.

7. Треугольник задан длинами своих сторон. Найти длины его высот.

8. Треугольник задан длинами своих сторон. Найти длины его медиан.

9. Треугольник задан длинами своих сторон. Найти длины его биссектрис.

10. Треугольник задан длинами своих сторон. Найти радиусы описанной и вписанной окружностей треугольника.

11. По длинам двух сторон треугольника и углу (в градусах) между ними найти длину третьей стороны и площадь этого треугольника.

12. Найти сумму цифр заданного трехзначного  числа.

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

14. Определить угол в градусах между положением часовой стрелки в начале суток и ее положением в h часов, m минут и s секунд  (0  h  11; 0  m, s  59).

Категория: Pascal теория | Добавил: shadrinuro
Просмотров: 339 | Загрузок: 3 | Рейтинг: 0.0/0
Всего комментариев: 0
avatar