Смекни!
smekni.com

Основы языка Паскаль (стр. 3 из 4)

Необходимо помнить, что для правильной записи конструкции оператора переменные i, n, k могут быть только как называемого “порядкового типа”. Это тип, в котором каждое данное имеет свой номер, свое расположение среди других данных этого типа.

Если требуется повторить группу действий, то оператор выглядит следующим образом:

FOR i : = n TO k DO

BEGIN

оператор 1;

оператор 2;

…………..

оператор n;

END;

Пример: Вывести на экран все натуральные делители числа n.

PROGRAM DELITEL;

VAR

n: integer;

i: integer;

t: real;

BEGIN

writeln (‘введите натуральное число n’);

read (n)

FOR i: =1 TO N DO
BEGIN

T : = n/i;

IF T = INT (T) THEN writeln (T);

END;

END.

Конструкция

FOR i: =n DOWNTO k DO

оператор;

используются для того случая, когда счетчик уменьшается на 1 при каждом следующем шаге.

Пример: Вывести на экран все четные числа от 100 до 1


PROGRAM CHISLO;

VAR

i: integer;

BEGIN

FOR i:= 100 DOWNTO 1 DO

IF I/2= INT (I/2) THEN writeln (i);

END.

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

Конструкция цикла с предварительной проверкой условия

WHILE <условие> DO

оператор;

{или группа операторов в операторных скобках BEGIN-END}.

Эта фраза обозначает следующее: « До тех пор пока условие является истиной, выполняются операторы цикла».

При этом необходимо помнить, что:

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

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

Пример.

Вычислить y= sin2x +2,5x при x [-1; 1] с шагом ∆x= 0,25.

PROGRAM ZIKL;

VAR

x, y : real;

BEGIN

x: = -1;

WHILE x<= 1 DO

BEGIN

Y: = sin(x)*sin(x)+ 2,5*x;

writeln (‘при x =’,x, ‘y= ‘,y);

x: = x + 0,25;

END;

END.

Алгоритм вычисления суммы

Пример 1:

Вычислить

.


PROGRAM SUM;

VAR

X, S : real;

n : integer;

sl : real;

BEGIN

Write (‘введите значение x’);

Read (x);

S : = 0;

FOR N : = 1 TO 20 DO

BEGIN

SL : = (2*x)/N;

S : = S + SL;

END;

writeln (‘суммаряда =’, S);

END.

Пример 2. Найти количество чисел, сумма которых превысит 100.


PROGRAM PRIM;

VAR

K: integer;

S : integer;

BEGIN

S: =0;

K: =0;

WHILE S<=100 DO

BEGIN

K: = K+1;

S: = S+ K;

END;

writeln (‘кол-во слагаемых равно’, K);

END.

Конструкция цикла с последующей проверкой условия

Формат данного оператора следующий:

REPEAT

тело цикла

UNTIL <условие>;

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

Переводится конструкция так: «Повторять до тех пор, пока условие не станет истиной».

Необходимо помнить, что:

1. тело цикла выполняется хотя бы один раз в любом случае;

2. в ходе выполнения цикла должны прийти к истинности условия.

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

PROGRAM ZIKL_DO;

VAR

s: integer;

n: integer;

BEGIN

s: =0;

n: =1;

REPEAT

s: = s + n*n;

n: = n + 1;

UNTIL N*N>100;

writeln (‘s =’, s);

END.
-

+

Алгоритм вычисления произведения

Пример: Вычислить n!


PROGRAM PROIZW;

VAR

n: integer;

p, i: integer;

BEGIN

writeln (‘введите значение n’);

readln (n);

p: = 1;

FOR i: = 1 TO N DO

P: = P*I;

writeln (‘произведение =’,P);

END.

Однако при n= 8, в данной программе Р = -25216, хотя в действительности Р = 40320. P необходимо присвоить формат longint.