Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VT_PAS1.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
202.24 Кб
Скачать

Операторы повторений (циклов) счетный цикл

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

FOR <параметр цикла>:=<нач.знач.> TO <кон.знач.> DO <оператор>;

FOR <параметр цикла>:=<нач.знач.> DOWNTO <кон.знач.> DO <оператор>;

где <параметр цикла> - счетчик - переменная целого типа;

<нач.знач.>,<кон.знач.> - ее начальное и конечное значение;

<оператор> - произвольный оператор Паскаля.

Оператор FOR работает также, как и аналогичный оператор языка Quick Basic. Отличие же состоит в том, что шаг изменения счетчика может быть равен только +1 в первом случае или -1 - во втором.

Следующая программа подсчитывает сумму S всех целых чисел от 1 до произвольного N, вводимого с клавиатуры:

Program No5;

Var

i, N, S : integer;

BEGIN

write('N='); readln(N);

S:=0;

FOR i:=1 TO N DO S:=S+i;

writeln('Сумма = ',S);

END.

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

Формат этого оператора

WHILE <условие> DO <оператор>;

где <оператор> - произвольный оператор Паскаля, выполняемый до тех пор пока <условие> является истинным. Следующая программа выполняет ту же операцию, что и приведенная выше.

Program No6;

Var

i, N, S : integer;

BEGIN

write('N='); readln(N);

S:=0; i:=1;

WHILE i<=N DO

begin S:=S+i; i:=i+1; end;

writeln('Сумма = ',S);

END.

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

Формат этого оператора

REPEAT <тело цикла> UNTIL <условие>;

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

Program No7;

Var

i, N, S : integer;

BEGIN

write('N='); readln(N);

S:=0; i:=1;

REPEAT

S:=S+i;

i:=i+1;

UNTIL i>N;

writeln('Сумма = ',S);

END.

Использование массивов

МАССИВ - это несколько элементов, имеющих одно имя и принадлежащих к одному типу данных. Элементы массивов имеют индексы, которые указывают в КВАДРАТНЫХ скобках за именем массива. По правилам Паскаля все массивы предварительно должны быть описаны. Это можно сделать несколькими способами. Очень часто используется следующее описание:

<имя массива>:ARRAY[<диапазон>] OF <тип>;

где ARRAY  OF - зарезервированные слова;

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

<тип> - тип данных;

Пример:

VAR

a: array [1..10] of real;

b: array [0..50] of char;

c: array [-3..4] of boolean;

d: array [1..3,1..3] of integer;

Здесь приведено описание одномерных массивов a, b и с различных типов и двумерного массива d. Нижнюю и/или верхнюю границы можно задать с помощью констант. Например:

CONST nmax=50;

VAR a: array[1..nmax] of real;

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

Const

Day: array[0..6] of string[11]=

('воскресенье','понедельник','вторник','среда','четверг','пятница','суббота');

Возможен и еще один способ описания массивов, который удобен при определении нескольких однотипных массивов. При этом используется так называемое описание ТИПА, о котором мы еще будем говорить подробнее. Сейчас же ограничимся лишь примером:

TYPE

massiv = array[1..3] of integer;

VAR

a,b,c: massiv;

В данном случае мы сначала определили нестандартный тип данных massiv как одномерный массив целых переменных, а далее объявили три переменные a,b и c, как принадлежащие к этому типу данных. Таким образом, мы фактически определили три массива: a[1..3], b[1..3], c[1..3].

Правила использования массивов проиллюстрируем простым примером. Составим программу заполнения массива случайными числами. При этом мы будем использовать встроенную функцию Паскаля RANDOM(maх). Эта функция возвращает случайное целое число, заключенное в диапазоне от 0 до max -1.

Program No8;

Const N=100;

Nmax=101;

Var

m: array[1..N] of integer;

i: integer;

BEGIN

for i:=1 to N do

begin

m[i]:=random(Nmax);

writeln(m[i])

end;

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]