Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСНОВЫ АЛГОРИТМИЗАЦИИ.doc
Скачиваний:
188
Добавлен:
16.03.2015
Размер:
1.82 Mб
Скачать

1.3.2. Правила вычисления выражений

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

Доминантным моментом в вычислении выражения выступает порядок обработки элементов, составляющих выражение.

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

Уровень приоритета

Операции, входящие в группы с данным приоритетом

1

()

2

Функции

3

@, not, унарный +, унарный -

4

*, /, div, mod, and, shl, shr

5

+, -, or, xor

6

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

1.3.3. Встроенные функции в Турбо Паскаль

Кроме этих стандартных операций, в Паскаль встроены специальные подпрограммы-функции, которые программисты могут использовать в выражениях как готовые элементы. Библиотека Турбо Паскаля содержит значительный набор внешних функций, которые подключаются автоматически при компиляции или при исполнении программы. Эти внешние процедуры и функции сгруппированы в системный блок – модуль System. Для пользователя внешний блок System, входящий в состав библиотеки Турбо Паскаль, - «прозрачный», то есть его функции применяются аналогично встроенным операторам. Функции системного блока System, применяемые при обработке числовых значений приведены в таблице 4.

Таблица 4

Математические функции

Функции Турбо Паскаля

|X|

ABS (X)

Arctg (X)

ARCTAN (X)

Cos (X)

COS (X)

XA

EXP (A*LN (X))

EX

EXP (X)

Ln (X)

LN (X)

Число 3,14159

Pi

Sin (X)

SIN (X)

Tg (X)

SIN (X) / COS (X)

X2

SQR (X)

SQRT (X)

Рассмотрим дополнительные операции над вещественными числами:

Trunc (x) – дробная часть вещественного числа отбрасывается и выдается целый остаток;

Int (x) – возвращает целую часть аргумента;

Round (x) – округляет вещественное число до целого порядкового типа;

Frac (x) – результатом является дробная часть значения аргумента.

1.3.4. Описание констант и переменных

Описание констант имеет вид:

const <имя_константы> = <значение_константы>;

Например.

CONST C1 = 17; // INTEGER

С2 = 3.14; // REAL

С3 = ‘A’; // CHAR

C4 = ‘APPLE’; // STRING

C5 = FALSE; // BOOLEAN

Описание переменных имеет вид:

VAR <имя_переменной> : <тип_переменной>;

Типы переменных:

  1. integer – целый;

  2. real – вещественный;

  3. char – символьный;

  4. string – строковый;

  5. Boolean – логический:

          1. false – ложь;

          2. true – истина.

Например,

{ОБЪЯВЛЕНИЕ ПЕРЕМЕННЫХ}

VAR A : INTEGER;

B : REAL;

C : CHAR;

{ОБЪЯВЛЕНИЕ КОНСТАНТ}

CONST C1 = 17; // INTEGER

С2 = 3.14; // REAL

С3 = ‘A’; // CHAR

C4 = ‘APPLE’; // STRING

C5 = FALSE; // BOOLEAN

1.3.5. Операторы в Турбо Паскаль

Операторы языка программирования Турбо Паскаль можно разделить на следующие операторы:

  1. простые:

    1. оператор присваивания;

    2. пустой оператор;

    3. оператор ввода;

    4. оператор вывода;

    5. составной оператор;

  2. сложные:

    1. условный оператор;

    2. циклические операторы;

    3. оператор выбора (варианта);

    4. оператор присоединения в записях;

    5. оператор перехода.

Оператор присваивания

Оператор присваивания обозначается знаком “:=”.

Формат оператора присваивания:

V := A;

где V – имя переменной, := - знак присваивания, A – выражение.

Тип выражения должен соответствовать типу переменной. Допускается присваивание переменной вещественного типа значения выражения целого типа, но не наоборот! Для преобразования значения вещественного типа в значение целого типа предназначены функции TRUNC(X) – нахождение целой части X и ROUND(X) – округление X в сторону ближайшего целого.

Например,

A := 5;

B := A*A-2;

C := ‘A’;

Операторы ввода и вывода

Операторы ввода и вывода служат для организации обмена информацией между внешними устройствами (дисплей, клавиатура, принтер) и памятью ЭВМ.

Оператор ввода имеет следующие форматы:

  1. READ (a1, a2,.., ak), где a1, a2,.., ak – список вводимых параметров. Здесь, каждое вводимое значение присваивается последовательно данным переменным.

  2. READLN (a1, a2,.., ak) – каждое вводимое значение присваивается последовательно переменным a1, a2,.., ak, после чего происходит переход на новую строку.

  3. READLN – обеспечивает пропуск одной строки и переход к началу новой строки.

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

Например, ввести данные A=5, B=1.7, C = ‘L’.

READ (A, B, C);

5_1.7_L /после запуска программы на выполнение/

Оператор вывода имеет следующие форматы:

  1. WRITE (b1, b2,.., bk), где b1, b2,.., bk – список переменных подлежащих выводу. Выводимые значения размещаются в одной строке.

  2. WRITELN (b1, b2,.., bk) – осуществляется вывод значений b1, b2,.., bk и после вывода последнего значения осуществляется переход на новую строку.

  3. WRITELN – обеспечивает пропуск строки в файле и переход к новой строке.

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

Пример 1.1. Вычислить значение выражения по формуле.

Рекомендуется числитель и знаменатель вычислить как отдельные выражения:

A := exp (abs(x-z)) + sqr (sin (sqr(z)*z));

B := sin (x) / cos (x) – sqrt (abs(cos (sqr(x))-exp(z)));

Y := A/B;

Задача1.1. Рассмотрим разработку алгоритма и программы вычисления площади треугольника по формуле Герона.

Блок-схема алгоритма

Листинг программы

PROGRAMTREUG;

USESCRT; {РАЗДЕЛ ПОДКЛЮЧЕНИЯ БИБЛИОТЕКИCRT}

VAR A, B, C, P, S : REAL;

BEGIN

CLRSCR;

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

READLN (A, B, C);

P := (A+B+C)/2;

S := SQRT(P*(P-A)*(P-B)*(P-C));

WRITELN(‘Площадь треугольника равна - ’,S);

READLN; {ОСТАНОВ ПРОГРАММЫ}

END.

Задача 1.2. Ввести с клавиатуры четырёхзначное число и найти произведение цифр этого числа.

Листинг программы

PROGRAM PRIMER1;

USES CRT;

VAR A, A1, A2, A3, A4, A5, A6, A7 : INTEGER;

BEGIN

WRITELN(‘Введите целое 4-хзначное число’);

READLN (A); // 4375

A1 := A MOD 10; // 5

WRITELN (A1);

A2 := A DIV 10; // 437

A3 := A2 MOD 10; // 7

WRITELN (A3);

A4 := A2 DIV 10; // 43

A5 := A4 MOD 10; // 3

WRITELN (A5);

A6 := A DIV 1000; // 4

WRITELN (A6);

A7 := A1 * A3* A5*A6; // 420

WRITELN (A1, ‘*’, A3, ‘*’, A5, ‘*’, A6, ‘=’, A7);

WRITELN;

END.