
- •Лабораторный практикум
- •Лабораторный практикум
- •Содержание
- •Введение
- •61002, Харків, вул. Фрунзе, 21.
- •61002, Харків, вул. Фрунзе, 21.
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Примеры решения задач
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Примеры решения задач
- •Индивидуальные задания
- •Константы цвета
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Примеры решения задач
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Текст программы
- •Примеры решения задач
- •Индивидуальные задания
- •Порядок выполнения работы
- •Теоретические сведения
- •Пример решения задачи
- •Текст программы
- •Примеры решения задач
- •Индивидуальные задания
Порядок выполнения работы
Выберите метод решения задачи.
Выберите стандартные функции, необходимые для решения задачи.
Выберите форму представления данных.
Разработайте алгоритм решения задачи. Для ввода данных используйте диалоговый режим или вводите с помощью генератора случайных чисел. Результат решения задачи выведите на экран дисплея.
Теоретические сведения
Операторы цикла
Операторы цикла служат для того, чтобы выполнять какие-либо действия в программе повторно.
В Паскале различают три типа операторов цикла в зависимости от того, стоит ли некоторое условие в начале, середине или в конце цикла.
Оператор цикла с предусловием – WHILE
Перед каждым очередным выполнением внутреннего оператора производится проверка значения булевского выражения, которое служит критерием повторения.
Если это выражение имеет значение true, то выполняется очередная итерация, в противном случае (значение выражения есть false) выполнение оператора цикла заканчивается. Если выражение с самого начала имеет значение false, то цикл не выполнится ни разу.
Примеры:
1). WHILE M [I] < > 0 DO I := I + 1 ;
2). WHILE X < = N DO
BEGIN
FACT := FACT X ;
X := X + 1 ;
END ;
Оператор цикла с параметром – FOR
Такие операторы обычно используют, когда число повторений цикла может быть определено перед его началом.
На использование управляющей переменной налагаются следующие ограничения:
1). В качестве управляющей переменной должна использоваться простая переменная, описанная в текущем блоке.
2). Управляющая переменная должна иметь дискретный тип.
Все скалярные типы кроме вещественных называются также дискретными |
Стандартные скалярные типы в Паскале делятся на четыре группы:
|
3). Начальные и конечные значения диапазона должны иметь тип, совместимый с типом управляющей переменной.
4). В теле цикла запрещается явное изменение значения управляющей переменной (например оператором присваивания).
5). После завершения оператора значение управляющей переменной становится неопределенным, если только выполнение оператора цикла не было прервано оператором перехода. Однако при нормальном выходе из цикла в большинстве случаев сохраняется последнее значение управляющей переменной.
При использования служебного слова to значение управляющей переменной увеличивается на 1 при каждом повторении.
При использовании downto – значение управляющей переменной уменьшается на 1.
Примеры:
1). FOR I := 10 TO 20 DO ....
FOR I := 20 DOWNTO 10 ....
2). FOR I := 1 TO 10 DO M[I] := I 2 ;
3). FOR I := 2 TO 63 DO
IF DATA[I] > MAX THEN MAX := DATA[I]
4). FOR I := 1 TO 10 D
FOR Y := 1 TO 10 DO
BEGIN
X := 0 ;
FOR K := 1 TO 10 DO
X := X + MAT1[I,K] MAT2[K,J] ;
MAT [I,J] := X ;
END ;
Оператор цикла с постусловием – REPEAT
Этот оператор аналогичен предыдущему оператору WHILE и отличается от него, во-первых, тем, что условие проверяется после выполнения очередной итерации (таким образом гарантируется хотя бы однократное выполнение цикла), а, во-вторых, тем, что критерием прекращения цикла является равенство выражения константе true. Если выражение равно false, то цикл повторяется.
Например:
REPEAT
PROC1(X, Y+ I) ;
I := I - 1 ;
UNTIL
I = 0;
Этот цикл будет выполняться до тех пор, пока I не будет = 0.
Примеры:
1). REPEAT
K := I MOD J ;
I := J ;
J := K;
UNTIL J = 0 ;
2). REPEAT
WRITE ( ‘ Введите целое число :’) ;
READLN (I) ;
PROCESS (I) ;
UNTIL (I < 0) AND (I > 9)
Вложенные циклы
Циклы могут быть вложены один в другой. Иногда их называют сложными циклами. При использовании вложенных циклов необходимо составлять программу таким образом, чтобы внутренний цикл полностью укладывался в циклическую часть внешнего цикла. Внутренний цикл может в свою очередь содержать другой внутренний цикл и так далее.
Пример 1:
Вычислить значение переменной Y=2K+N при всех значениях переменных N=1,2,3 и K=2,4,6
Program Lr3 ;
Uses CRT ;
Var N, K, Y : integer ;
Begin
Clrscr ;
For N := 1 to 3 do
begin
K := 2 ;
while K <= 8 do
begin
Y := 2K+N ;
Writeln( N:4, K:4, Y:4 ) ;
K := K + 2 ;
end ;
end ;
readln
end .
Пример 2:
Программа вычисления n!
1-й вариант программы:
Program Fact1 ;
Uses CRT ;
Var n, i, p : integer ;
Begin
Read(n) ;
p:=1 ; i:=0 ;
While i < n do
Begin
i := i + 1 ;
p := p i ;
End ;
Write ( ‘n! = ’, p ) ;
Readln
End .
2-й вариант программы:
Program Fact2 ;
Uses CRT ;
Var n, p : integer ;
Begin
Read(n) ;
p:=1 ;
While n < 0 do
Begin
p := p i ;
n := n - 1 ;
End ;
Write ( ‘n! = ’, p ) ;
Readln
End .