Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Простые операторы




ОБЩИЕ СВЕДЕНИЯ

ОПЕРАТОРЫ

Begin

Begin

Подпрограмма - процедура

Begin

Begin

<имя функции>:=<выражение>; {Тело подпрограммы}

end;

 

Пример: Оформить в виде функции алгоритм возведения в целочисленную степень y=xn.

function stepen(n:integer; x:real):real;

var i:integer;

stepen:=1;

for i:=1 to n do stepen:=stepen*x;

end;

Вызов функции stepen(9,alfa);

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

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

Формат:

Procedure <имя > (<имя перем.1 >,<имя перем.2 >,... <имя перем.n >);

<Раздел описания локальных меток, констант, переменных >;

{Список формальных параметров с указанием типа}

<Раздел операторов >; {Тело подпрограммы}

end;

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

Procedure summa(n:integer; a,b:massiv; Var summa:real);

Var i,j,k:integer;

S:=0;

For i:=1 to n do S:=S+a[i]*b[i];

end;

Основная часть программы на языке Turbo Pascal представляет собой последовательность операторов, каждый из которых производит некоторое действие над данными. Разделителем операторов служит точка с запятой “; “. Все операторы языка Turbo Pascal подразделяются на две группы: простые и сложные (структурные).

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

Арифметическое выражение не является оператором, а представляет собой правило (формулу), в соответствии с которым может быть вычислено некоторое значение. Оно может использоваться как составная часть различных операторов, в частности, оператора присваивания.

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

Оператор присваивания:= предписывает выполнить выражение, заданное в его правой части, и присвоить результат переменной, идентификатор который расположен в левой части. Переменная и выражение должны быть совместимы по типу. Оператор присваивания является важнейшим оператором любого языка программирования. С его помощью можно присвоить переменой значение выражения. Выражение оценивается, то есть определяется его значение. И это значение присваивается переменной. В результате прежнее значение переменной перезаписывается, а потому старое значение утрачивается. Знаком присваивания в Паскале является совокупность знаков (:=).

Формат:

<идентификатор переменной>:=<выражение>;

Пример: alfa_67:= (sqrt(a)-exp((b-c)*ln(2.5+1/a)))/(d+ln((a+b)*c)/ln(3));

Оператор безусловного перехода goto означает “ перейти к ” и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.

Формат записи:

GOTO <МЕТКА>;

Пример: goto 36; goto beta8;

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

Формат записи:

<имя процедуры>(аргументы процедуры);

Пример: ClrScr; { Вызов стандартной процедуры}

InitWork(a,b,c,d); { Вызов пользовательской процедуры }

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

Для ввода данных в языке Паскаль предусмотрены стандартные встроенные программы (процедуры) – READ и READLN. Оператор ввода служит для ввода данных в процессе выполнения программы. Процедура READ используется в виде:

а) read (a1, a2, a3, …, an) – каждое вводимое значение присваивается последовательности переменных a1, a2, a3, …, an;

б) readln(a1, a2, a3, …, an) – каждое вводимое значение присваивается последовательности переменных a1, a2, a3, …, an, после чего происходит переход на новую строку (следующий оператор ввода будет вводить данные с новой строки);

в) readln – переход на новую строку при вводе данных.

Логические данные в Паскале вводить не разрешается.

При вводе числовые данные должны разделяться пробелом или символом окончания ввода (клавиша ENTER).

Пример ввода:

Var a, b, c: real;

K, t: integer;

read(a, b, c);

readln;

read(k, t);

После набора на экране дисплея всей программы и запуска ее на выполнение происходит остановка машины при встрече read (a, b, c). На клавиатуре ЭВМ необходимо набрать три действительных числа, затем новой строки (выполняется оператор readln) – два целых числа соответственно оператору read(k, t). Например,

0.5  6.23   -7.1

3  48

При этом переменные получат следующие значения: а = 0.5, b = 6.23, c = -7.1, k = 3, t = 48, и выполнение программы продолжится.

Числа можно отделять друг от друга не только пробелами, но и символом окончания ввода (клавиша enter), то есть каждое число вводится с новой строки.

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

Пусть имеется фрагмент программы

var a, b, c: char;

………………..

read(a, b, c);

Данные вводятся в виде: SNR. Переменные a, b, c получат следующие значения:

a = ‘S’, b = ‘N’, c = ‘R’.

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

С вводом данных связан стандартная функция EOLN. Она принимает значение true, если достигли конца строки; в противном случае – значение – false.

Операторы вывода допускают использование указания о ширине поля, отводимого под значение выводимой величины, в явном виде. Ширина поля вывода определяется типом устройства, использующимся в данном ЭВМ. Форма представления выводимых переменных определяется типом переменных: значения величин целого типа выводится в обычной форме; значения величин действительного типа – в виде нормализованного числа действительного типа с порядком: значения логического типа – в виде логических значений TRUE и FALSE; значения символьных переменных – в виде соответствующих символов.

Общий вид записи операторов при выводе значений целого типа:

Write(b:m); writeln(b:m);

где b – имя выводимой переменной; m – константа или выражение целого типа, отводимое под значение.

Например:

Write(dd:5, ir:8);

Значения переменных dd и ir размещаются в одной строке и занимают соответственно шесть и восемь позиций. При этом незаполненные позиции остаются свободными, образуя пробелы. Если значение переменной не размещается в отведенном поле, то увеличивается число позиций.

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

Write(b:n:n); writeln(b:m:n);

где m - поле, отводимое под запись значения; n – часть поля, отводимого под дробную часть числа.

Например:

Write(a:8:3);

В данном случае под значение а выделяется восемь позиций, три из которых отводится под дробную часть числа. Если при выводе действительных значений не указывается количество позиций, отведенных под дробную часть числа, то результат получается в нормализованном виде с десятичным порядком.

Можно задавать количество пробелов. Для этого необходимо записать оператор вывода в виде

Write(‘ ‘:q);

где q – константа целого типа, указывающая число пробелов.

Пример размещения информации при выводе:

Program;




Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 584; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.