Flatik.ru

Перейти на главную страницу

Поиск по ключевым словам:

страница 1

Операторы языка Паскаль. Простые и составные операторы.


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

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

Синтаксис:

<имя переменной>:=<выражение>

Выполнение: вычисляется значение выражения, стоящего в правой части оператора, и полученное значение присваивается переменной, имя которой указано в левой части оператора.

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



  1. Вызов процедуры.

Синтаксис:

<имя процедуры>[(<список значений параметров>)];

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

Организовать ввод и вывод данных в языке Паскаль можно с помощью стандартных процедур read, readln, write, writeln.

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

Синтаксис:

read([<имя устройства ввода>,]<список имен переменных>);

readln([<имя устройства ввода>,]<список имен переменных>);

write([<имя устройства вывода>,]<список значений>);

writeln([<имя устройства вывода>,]<список значений>);

Выполнение:

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

вывод данных: значения, указанные в списке, последовательно выводятся на устройство вывода данных.

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


Составные операторы.

Составной оператор представляет собой последовательность операторов, заключенных в операторные скобки begin и end.

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

  1. Структурные операторы.


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

Синтаксис:

if <условие>

then <оператор>

[else <оператор>];

где <условие> - выражение булевского типа;

<оператор> - любой оператор языка Паскаль (в том числе и составной).

Выполнение: вычисляется значение выражения, стоящего в условии. Если это значение истинно, то выполняется оператор, следующий за служебным словом then. Если условие ложно, то выполняется оператор, стоящий за служебным словом else.

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

if x>y | if x>y

then | then



begin | x:=0;

x:=0; | y:=0;

y:=0;

end;


В условном операторе за служебными словами then и else могут следовать любые операторы языка Паскаль, в том числе и условные. Поэтому возможны «вложенные» условные операторы. Например,

if x>y


then x:=x-y

else if x=y

then x:=0

else y:=y-x;

Условие может быть составным. В этом случае каждая его часть заключается в скобки. Например:

if (x>5) and (x<15)

if (a=b) or (not(t))


  1. Оператор варианта

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

Синтаксис:

case <выражение> of



<значение 1>: <оператор>;



<значение n>: <оператор>;

[else <оператор>]

end;


где <выражение> - выражение любого скалярного типа (кроме real);

<оператор> - любой оператор языка Паскаль.

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

Пусть m – номер месяца, y – порядковый номер года. Определить d – количество дней в соответствующем месяце.

case m of

1,3,5,7,8,10,12: d:=31;

4,6,9,11: d:=30;

2: if (y mod 4=0) and (y mod 100 <>0)

then d:=29

else d:=28

end;

Структурные операторы.


  1. Оператор цикла

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

а) оператор цикла с предусловием

Синтаксис:

while <условие> do



<оператор>;

где <условие> - булевское выражение;



<оператор> - любой оператор языка Паскаль, называемый «телом цикла».

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

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



Замечание.

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



б) оператор цикла с постусловием

Синтаксис:

repeat


<оператор>

until <условие>;

где <условие> - булевское выражение;

<оператор> - любой оператор языка Паскаль.

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

Для оператора цикла с постусловием справедливо замечание, сделанное выше.

Отличие циклов с предусловием и с постусловием:


  • при выполнении цикла с предусловием тело цикла выполняется, если условие истинно, а в цикле с постусловием повторение осуществляется, если значение условия ложно;

  • тело цикла с постусловием обязательно будет выполнено хотя бы один раз независимо от значения условия, тогда как тело цикла с предусловием может быть не выполнено ни разу;

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

в) оператор цикла с параметром

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



1. Синтаксис:

for <имя перем.>:= <выражение 1> to <выражение 2> do



<оператор>;

где <имя переменной> - идентификатор переменной целого типа, называемой параметром цикла;



<выражение 1> и <выражение 2> - выражения, задающие начальное и конечное значения параметра цикла;

<оператор> - любой оператор языка Паскаль.

Для объяснения выполнения обозначим:

i – имя переменной, z1 и z2 – выражения 1 и 2 соответственно, s – оператор, образующий тело цикла.

Тогда цикл имеет вид:

for i:= z1 to z2 do s;

Выполнение: вычисляются значения выражений z1 и z2. Если z1>z2, то выполнение оператора цикла завершается. Если z1<=z2, то переменной i присваивается значение z1 и выполняется оператор s. Затем значение переменной I увеличивается на 1 и вычисляется значение булевского выражения i<=z2. Если это значение истинно, то вновь выполняется оператор s, берется следующее значение параметра цикла и т.д. Выполнение оператора цикла с параметром завершается тогда, когда станет ложным значение булевского выражения i<=z2.

2. Синтаксис:

for <имя перем.>:= <выражение 1> downto <выражение 2> do



<оператор>;

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

for i:= z1 downto z2 do s;

В этом случае z1>z2 и значение параметра цикла при каждом повторении цикла не увеличивается, а уменьшается на 1.



Выполнение: вычисляются значения выражений z1 и z2. Если z1=z2, то переменной i присваивается значение z1 и выполняется оператор s. Затем значение переменной i уменьшается на 1 и вычисляется значение булевского выражения i>=z2. Если это значение истинно, то вновь выполняется оператор s, берется следующее значение параметра цикла и т.д. Выполнение оператора цикла с параметром завершается тогда, когда станет ложным значение булевского выражения i>=z2.

Замечание.

После завершения выполнения оператора цикла значение параметра цикла не определено.



  1. Примеры использования структурных операторов.

  1. Вычислить значение факториала числа.

Program factorial;

uses crt;

var n, i:integer; p:longint;

Begin


clrscr;

readln(n);

p:=1;

for i:=1 to n do



p:=p*i;

write(n,’! = ’, p);

End.


  1. Вычислить наибольший общий делитель двух целых чисел a и b.

Program NOD;

uses crt;

var a,b: integer;

Begin


clrscr;

readln(a,b);

a1:=a;

b1:=b;


while a<>b do

if a>b then a:=a-b

else b:=b-a;

writeln(‘НОД(’,a1,’,’,b1,’) = ‘,a);

readln;

End.


  1. Вычислить наименьшее из 20 целых чисел.

Program min_of_20;

uses crt;

var n, min, i: integer;

Begin


clrscr;

writeln(‘Введите первое число’);

readln(n);

min:=n;


for i:=2 to 20 do

begin


writeln(‘Введите ’,i , ‘-е число’);

readln(n);

if n

end;


writeln(‘min = ‘, min);

readln;


End.

Операторы языка Паскаль. Простые и составные операторы

Выполнение: вычисляется значение выражения, стоящего в правой части оператора, и полученное значение присваивается переменной, имя которой указано в левой части оператора

109.26kb.

15 09 2014
1 стр.


Программа по математике на базе 11 классов Требования к абитуриенту

Натуральные числа. Простые и составные числа. Разложение составных чисел на простые числа. Наибольший общий делитель. Наименьшее общее кратное

240.51kb.

24 09 2014
1 стр.


1. Среда языка программирования Pascal abc

Блеза Паскаля. На основе языка Паскаль в 1985 г фирма Borland выпустила версию Turbo Pascal версии с этого времени язык Паскаль используется во всем мире в учебных заведениях в кач

537.72kb.

02 10 2014
4 стр.


Түсінік беру операторы

Мектептің информатика курсындағы алгоритм тақырыбында келесі деректер келтірілген

101.15kb.

10 10 2014
1 стр.


Вопросы к экзамену по курсу лекций «Вариационное исчисление и оптимальное управление»

Пространство линейных непрерывных операторов. Сопряженные операторы. Лемма о сопряженном пространстве к произведению пространств

20.36kb.

14 12 2014
1 стр.


Операторы связи, транслирующие телеканал Москва 24

Москва, Балашиха, Химки, Королев, Мытищи, Люберцы, Одинцово, Железнодорожный, Щелково, Монино, Красногорск, Пушкино, Юбилейный Московской обл

54.8kb.

03 09 2014
1 стр.


Простое присваивание

Операторы присваивания задают новое значение переменной. Присваивание делится на две категории: простое и сложное

372.77kb.

15 09 2014
1 стр.


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

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

40.64kb.

01 10 2014
1 стр.