Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







Выражения и стандартные функции языка TP





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

 

Таблица 2 – Используемые в TP арифметические операции

Операция Действие Тип операндов Тип результата
+ Сложение Целый действительный Целый действительный
- Вычитание -“- -“-
* Умножение -“- -“-
/ Деление -“- -“-
Div Целочисленное деление Целый Целый
Mod Остаток от деления -“- -“-

Результат вычисления выражения заносится в переменную с помощью оператора присваивания: Z:=(SUMMA + 5) * ADR – REZINTER / (ZNAM - 2.6);.

Рекомендуется следить за тем, чтобы тип переменной совпадал с типом выражения. При несовпадении типов ПК попытается преобразовать тип результата вычисления арифметического выражения к типу переменной. Если переменная действительного типа (REAL), а выражение целого типа (INTEGER), то оператор присваивания выполнится успешно. Если переменная целого типа (INTEGER), а выражение действительного типа (REAL), ПК выведет сообщение об ошибке преобразования типа.

Пример 1. Записать оператордля вычисления выражения:

Y = a 4 + b 3.

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

y:=a * a * а * а + b * b * b.

В выражениях могут использоваться функции TP. Некоторые наиболее часто используемые функции языка TP приведены в таблице 3.

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

- для вычисления логарифма с произвольным основанием a используется соотношение

;

- для возведения положительного числа x в действительную степень a используется соотношение

.

 


Таблица 3 – Основные функции алгоритмического языка ТР

Математическая запись Действие Запись на ТР Пример
| х | Вычисление абсолютного значения х ABS(X) ABS(-4)=4
х 2 Вычисление квадрата х SQR(X) SQR(5)=25
Вычисление квадратного корня из х SQRT(X) SQRT(25)=5
ех Вычисление экспоненты х EXP(X) EXP(1)=2.7183…
ln x Вычисление натурального логарифма LN(X) LN(EXP(1))=1
sin x Вычисление синуса х SIN(X) SIN(PI/6)=0.5
cos x Вычисление косинуса х COS(X) COS(PI/3)=0.5
arctg x Вычисление арктангенса х ARCTAN(X) ARCTAN(1)= PI/4=0.7854
  Округление х до целого ROUND(X) ROUND(2.5)=3
  Вычисление целой части х, результат – действительный INT(X) INT(2.5)=2.0
  Вычисление целой части х, результат – целый TRUNC(X) TRUNC(2.5)=2
  Вычисление дробной части х FRAC(X) FRAC(2.5)=0.5
  True, если х – нечетный; False, если х – четный ODD(X) ODD(3)=TRUE

 

 

Пример 2. Вычислить значение выражения:

,

при a = 0,.56, b = 2,734, x = 1,8·10–3, результат y = 0,35 × 102.

Так как функция arcsin в языке TP отсутствует, для ее вычисления используем известное соотношение:

.

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

A:= 0.56; B:= -2.734; X:= 1.8e-3; Y:= 0.35e2;

FI:= (EXP(B*LN(Y)) + ABS(B) – EXP(LN(A)/3));

FI:= FI*(EXP(A) - SQRT(A) + COS(Y));

FI:= FI/(LN(A)/LN(10) - X*X* LN(Y) + ARCTAN(A/SQRT(1-A*A)));

В этих операторах переменные А, В, Х, Y являются исходными данными, а переменная FI – результатом вычислений. Наиболее часто численные значения исходных данных вводятся с клавиатуры, а результаты вычислений выводятся на экран дисплея. Такие действия выполняют операторы ввода и вывода.

Операторы ввода данных

Для ввода данных в Паскале применяют операторы READ или READLN, которые имеют одинаковый формат записи:

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

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

VAR A,B,C: REAL;

.............

READ (A,B,C);.

После запуска программы на выполнение осуществляется ввод данных, например 0.5 6.25 -2.5E-2.

При выполнении оператора READ программа приостанавливает свои действия в ожидании ввода значений, которые по очереди в соответствии с приведенным в операторе списком будут присвоены переменным. Значения переменных могут вводиться с клавиатуры во время исполнения программы или читаться из файла. При вводе числовых значений (типы INTEGER, REAL, BYTE) их отделяют друг от друга как минимум одним пробелом или размещают в разных строках. В пределах одного числа пробелы между цифрами недопустимы. Тип вводимых значений должен соответствовать типу переменных, которым они будут присвоены. В Паскале допускается ввод данных типов INTEGER, REAL, CHAR, BYTE.

Оператор READLN по своим действиям аналогичен оператору READ, за исключением того, что по окончании чтения значения последней переменной из списка ввода он дает указание на переход к началу новой строки для чтения данных последующими операторами READ или READLN. Когда оператор READLN может быть применен и без списка переменных, тогда будет произведен переход на новую строку. Например:

VAR A,B: REAL;

I,K: INTEGER;

........................

READ (A, B);

READLN; или READLN (A, B);

READ (I, K); READ (I, K);

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

1.5 7.48

6 -1

Операторы вывода данных

Вывод данных организуется операторами WRITE и WRITELN, форматзаписи которых имеет вид: WRITE (список вывода);.

В списке вывода приводят разделенные запятыми переменные и выражения (типа INTEGER, REAL, CHAR и BOOLEAN), заключенные в кавычки строки символов. Например:

WRITE (DAY[3], Alfa/Sin(X), LETTERS, ‘Результат =’);

По умолчанию в строке вывода для данных целого типа отводится 13 позиций (мест для размещения цифр и знака “±” числа). Вещественные числа выводятся в экспоненциальном виде с плавающей точкой по формату ± #. ###### Е± ## (знаком # отображено место для цифр мантиссы и степени числа). Формат выводимых данных может быть изменен явным указанием числа отводимых позиций. Для этого после идентификаторов переменных (выражений, констант) в списке вывода указывается отведенная ширина поля для выводимой информации и точность представления числа (только для вещественных чисел). Эти две величины должны быть целыми и положительными, отделяться от имен переменных (выражений, констант) и друг от друга двоеточием. Они соответственно указывают количество позиций в строке, отводимых под значение переменной (выражения, константы), и количество мест – под цифры дробной части числа. Например, WRITE (‘I=’, I:3, ‘K=’, K:4:2); – на экране появится I=-12 K=3.25

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

WRITELN (‘ЗАДАЧА’);

WRITELN (‘I=’, I:3, ‘K=’, K:4:2);

WRITELN (‘Z=’, Z:4:1);

WRITELN (‘Y=’, Y);

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

 

ЗАДАЧА

I=-12 K= 3.25

Z=-9.5

Y=3.7800E+02.

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

Структура программы

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

PROGRAM имя;

LABEL метка [, метка ]…;

CONST имя константы = значение константы;

TYPE имя типа = значение констант типа;

VAR имя [, имя ]…: тип данных;

PROCEDURE имя процедуры [ список формальных параметров с указанием типа ];

[ Блок процедуры ];

FUNCTION имя функции [ список формальных параметров с

указанием типа ]: тип значения функции;

[ Блок функции ];

BEGIN { начало тела программы }

оператор [; оператор ]…

END.

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

В Паскале в обязательном порядке указывается тип всех используемых в программе данных.Область описания данных включает разделы описания меток (LABEL), констант (CONST), типов (TYPE) и переменных (VAR). Каждый из них, а также операторы внутри разделов отделяются друг от друга точкой с запятой “; ”. Если в программе данные каких-либо типов отсутствуют, то и соответствующий раздел описания данных не приводится.

Любой оператор в программе может быть выделен меткой, которая обозначается либо натуральным числом, либо именем, образованным по тем же правилам, что и имя переменной. Метка отделяется от оператора двоеточием, например: 30: WRITELN (‘C=’, C);.

На метки в программе могут быть сделаны ссылки, в частности в операторе безусловного перехода. Все используемые метки должны быть перечислены в разделе LABЕL области описания данных, например: LABЕL 5, 20, 30, 100;.

Если в программе используются константы, имеющие достаточно громоздкую запись, либо сменные константы (для разных вариантов программы), то такие константы целесообразно описать в разделе CONST, например: CONST N=100;.

Следует отметить, что в разделе CONST используется знак равенства “=”, а не присваивания “:=”.

Все переменные, встречающиеся в программе, должны быть описаны в разделе VAR, где после имени переменной (или разделенных запятыми нескольких имен) и двоеточия приводится одно из служебных слов: INTEGER (целочисленный), REAL (вещественный), BOOLEAN (логический), CHAR (символьный).

В разделе TYPE описываются типы переменных, отличные от стандартных. Например: TYPE COLOR=(RED, GREEN, BLUE, YELLOW);.

За областью описания данных следует раздел операторов. Он начинается с ключевого слова BEGIN и заканчивается словом END, после которого ставится точка. Программа при отсутствии явных команд, изменяющих последовательность ее действий, выполняется построчно по мере следования операторов (слева-направо и сверху-вниз). В каждой строке программы может присутствовать несколько операторов, отделенных друг от друга точкой с запятой “;”. Перед END (после последнего используемого оператора) разделитель операторов “;”, как правило, не ставят, но его наличие не является ошибкой.

Раздел описания переменных VAR и раздел операторов должны присутствовать всегда, остальные разделы могут отсутствовать.

Лекция 3







Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор...

ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования...

ЧТО ПРОИСХОДИТ, КОГДА МЫ ССОРИМСЯ Не понимая различий, существующих между мужчинами и женщинами, очень легко довести дело до ссоры...

Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.