Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОАиП.docx
Скачиваний:
16
Добавлен:
31.05.2015
Размер:
93.35 Кб
Скачать

4. Операции сдвига.

(k Shl n) - восстанавливает в качестве результата значение, полученное путем сдвига на n позиций влево двоичной формы числа k. Дает тот же результат, что и умножение на .

(k Shr n) – выполняется аналогично, но вправо. Результат как при делении на .

5. Побитовые операции «и», «или», «исключающее или».

And – производит логическое побитовое умножение операндов в соответствии с таблицей истинности:

And

0

1

0

0

0

1

0

1

Or – производит побитовое сложение операндов в соответствии с таблицей истинности:

Or

0

1

0

0

1

1

1

1

Xor – производит побитовое сложение операндов в соответствии с таблицей истинности:

Xor

0

1

0

0

1

1

1

0

6. Простые операторы языка Pascal.

Оператор присваивания: <переменная>:=выражение.

Безусловный переход, оператор goto.

Оператор вызова процедуры: Имя Процедуры (Параметр 1,…,ПараметрN);

7. Операторы для реализации перехода по условию.

if <условие> then <оператор1> else <оператор2>

Здесь if, then, else  ключевые слова (перев. с англ. если, то, иначе соответственно);

<условие>  логическое выражение типа сравнения (например, a>b, c<=d, f=1), логическому типу посвящен следующий раздел пособия;

<оператор1> и <оператор2>  любой оператор Паскаля.

Существует сокращенная форма условного оператора, в которой отсутствует ветвь else:

if <условие> then <оператор1>.

Нахождение максимума:

uses crt;

var a, b, c, d, max:integer;

begin

read(a, b, c);

if a>=b then d:=a

else d:=b;

if d>=c then max:=d

else max:=c;

writeln(max);

end.

8. Операторы для реализации повторяющихся действий.

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

repeat <операторы> until <условие>

Здесь repeat, until – ключевые слова (перев. с англ. повторять и до тех пор пока);

<операторы> – любые операторы Паскаля (их называют телом цикла);

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

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

while <условие> do <оператор>;

Здесь while, do – ключевое слово (перев. с англ. пока и делать);

<оператор> – любой оператор Паскаля, в том числе и составной (этот оператор называют телом цикла);

<условие> – логическое выражение типа сравнения, используемое для выхода из цикла.

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

Оператор цикла со счетчиком:

for <п.ц.>:=<н.з> to <к.з.> do <оператор>; (с увеличением счетчика).

Здесь for, to, do – ключевые слова (перев. с англ. для, к, выполнить соответственно);

<п.ц.> – переменная цикла, которая может быть только порядкового типа;

<н.ц.> – начальное значение, выражение такого же порядкового типа, как и переменная цикла;

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

<оператор> – любой оператор Паскаля, в том числе и составной.

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

for <п.ц.>:=<н.з.> downto <к.з.> do <оператор>; (с уменьшением счетчика).

uses crt;

var i, p, n: integer;

begin

read(n);

p:=2;

for i:=3 to n do

p:=p*i;

writeln(p);

end.

uses crt;

var i, p, n: integer;

begin

read(n);

p:=2;

i:=3;

while (i<=n) do

begin

p:=p*i;

i:=i+1;

end;

writeln(p);

end.

uses crt;

var i, p, n: integer;

begin

read(n);

p:=2;

i:=3;

repeat

p:=p*i;

i:=i+1;

until(i>n);

writeln(p);

end.

uses crt;

var i, n: integer;

x, p: real;

begin

readln(x);

readln(n);

p:=1;

for i:=1 to n do

p:=p*x;

writeln(p);

end.