
- •ЛАБОРАТОРНАЯ РАБОТА № 1
- •Теоретический материал
- •1.2. Интерфейс IDE
- •1.3. Комбинации клавиш
- •2. Подготовка текста программы
- •2.5. Удаление фрагмента текста
- •ЛАБОРАТОРНАЯ РАБОТА № 2
- •Теоретический материал
- •Константа (англ. constant) – это величина, значения которой не изменяются в период ее существования. Значения переменных предварительно описываются в разделе описания переменных CONST.
- •2.1. Простые типы данных
- •5. Вычисление выражений
- •Задача 2
- •Задача 3
- •Необходимо ввести и вывести на печать два целых числа и два вещественных числа:
- •ЛАБОРАТОРНАЯ РАБОТА № 3
- •Теоретический материал
- •Допускается опускать служебное слово ELSE:
- •Задача 2
- •Задача 3
- •Program Lab3_3_2; {Случай 2}
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •ЛАБОРАТОРНАЯ РАБОТА № 5
- •ОРГАНИЗАЦИЯ РАБОТЫ ПРОГРАММ ЦИКЛИЧЕСКОЙ СТРУКТУРЫ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*A < = 3*N +1.
- •Program Lab5_2;
- •Задача 4
- •6. Вложенные циклы
- •8. Практическое задание – решение задач с использованием операторов цикла
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •ОРГАНИЗАЦИЯ ИТЕРАЦИОННЫХ ЦИКЛОВ В ПРОГРАММЕ
- •Теоретический материал
- •Задача 1
- •Задача 2
- •Пояснения к задаче 2
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант 16
- •Теоретический материал
- •Таблица 14
- •Задача 3
- •Задача 4
- •Задача 5
- •Умножить на 3 каждый элемент массива и получить результат на экране дисплея распечатанным по строкам.
- •5. Практическое задание – решение задач с использованием массивов
- •Вариант 1
- •Вариант 2
- •Вариант 3
- •Вариант 4
- •Вариант 5
- •Вариант 6
- •Вариант 7
- •Вариант 8
- •Вариант 9
- •Вариант 10
- •Вариант 11
- •Вариант 12
- •Вариант 13
- •Вариант 14
- •Вариант 15
- •Вариант16
- •ПРАКТИКУМ ПО ПРОГРАММИРОВАНИЮ НА ЯЗЫКЕ TURBO PASCAL
1.Если < Условие > равно False, то вход в цикл не выполняется, управление передается оператору, следующему непосредственно за операторами тела цикла. Так что при определенной ситуации цикл может ни разу не выполниться.
2.Если же < Условие > равно True, то происходит вход в цикл и однократное выполнение операторов его тела. Как только достигнем конца тела цикла, управление снова передается на его заголовок, где снова вычисляется
<Условие >.
3.Если значение < Условия > все еще равно True (что зависит от изменения значений переменных во время предыдущего выполнения операторов цикла), то тело цикла выполняется еще один раз, и так далее. Как только очередное вычисление < Условия > цикла достигнет значения False, работа цикла завершается.
Рассмотрим работу цикла while в задачах 1–2.
Задача 1
При вводе осуществить проверку длины вводимой последовательности. Program Lab5_1;
Var
N: integer; BEGIN {1} ReadLn (N);
While N < = 0 Do Begin {2}
WriteLn ('Bведите длину последовательности N = '); ReadLn (N);
End; {2}
WriteLn ('Длина последовательности N = ', N); END. {1}
Пояснения к задаче 1
До первого входа в цикл переменной N уже должно быть присвоено начальное значение соответственно условию решаемой задачи.
N – длина последовательности, что влечет за собой необходимость выполнения логического условия N > 0 (длина не может быть отрицательной). До тех пор пока мы будем вводить отрицательное или равное нулю число, цикл будет работать и требовать «Bведите длину последовательности N = ».
Так как в цикле имеем два оператора, необходимо ставить операторные скобки Begin – End. В фигурных скобках {2} стоит номер операторных скобок. Напоминаем, что в фигурных скобках ставится комментарий, служащий для пояснения работы программы. Комментарий не вызывает никаких действий в программе, и его можно убрать без последствий для работы программы.
Задача 2
Рассмотрим программу с использованием оператора цикла с предусловием, когда в качестве логического < Условия > стоит выражение 2*A < = 3*N +1.
60
Program Lab5_2;
Var
N, А: integer;
Begin {1}
A: = 1;
N: = 2;
While 2 * A < = 3 * N + 1 Dо
Begin {2}
A: = A + 2;
N: = N + 1;
End; {2}
WriteLn (‘A = ‘, A =, ‘B = ‘,B =);
End. {1}
Пояснения к задаче 2
Пока условие 2 * A < = 3 * N + 1 является истинным (т. е. 2 * A оказывается меньше или равно 3 * N + 1), выполняются операторы циклической части: значение А увеличивается на 2 и результат вновь присваивается переменной А; значение N увеличивается на 1 и результат снова помещается в переменную N. Начальные значения переменных присвоены до начала опера-
тора цикла (N: = 1; A: = 1).
Переменные А и N, а также логическое выражение 2 * A < = 3 * N + 1 в процессевыполненияпрограммыпринимаютзначения, которыемывидимвтабл. 11.
|
|
|
|
Таблица 11 |
|
|
|
|
|
Идентификаторы |
|
Проходы цикла |
|
|
и выражение |
Первый |
Второй |
Третий |
Четвертый |
A |
1 |
3 |
5 |
7 |
N |
1 |
2 |
3 |
4 |
2 * A < = 3 * N + 1 |
2 < = 4 |
6 < = 7 |
10 < = 10 |
14 < = 13 |
Условие True |
True |
True |
True |
False |
или False |
Истинно |
Истинно |
Истинно |
Ложно |
Всего цикл проработает четыре раза. При А = 7 и N = 4 логическое выражение 2 * A < = 3 * N + 1 становится ложным (False) и управление передается за пределы цикла (за End {2}).
3. Оператор цикла REPEAT ... UNTIL
Этот оператор организует так называемый цикл «ДО», или цикл с постусловием, так как проверка логического < Условия > завершения цикла осуществляется после каждого выполнения тела цикла (количество повторений
цикла неизвестно). Вид цикла: |
|
REPEAT |
(Повторять) |
< тело цикла > |
|
UNTIL |
(До тех пор) |
< условие >; |
|
61

Оператор цикла с постусловием состоит из ключевого слова repeat, за которым следуют операторы тела цикла, и замыкающего ключевого слова until, после которого указывается < Условие > окончания цикла.
Логическое < Условие > выполнения цикла должно быть False, и как только < Условие > станет True (истинным), цикл прерывается.
Блок-схема цикла repeat приведена на рис. 22. Упрощенно общую структуру оператора repeat можно представить так:
REPEAT
Оператор; Оператор;
………….
Логическое
условие
Рис. 22. Цикл «До» с постусловием
Оператор;
UNTIL < Условие >;
Оператор repeat не требует использования операторных скобок Begin – End, когда в его теле необходимо записать более одного оператора. Кроме того, оператор repeat является не столь универсальным, как оператор while, поскольку его логическое < Условие > располагается в конце тела цикла и операторы его тела будут всегда выполняться как минимум один раз. Выражение, используемое в качестве логического < Условия > окончания цикла, должно давать результат булевского типа.
Общий принцип работы цикла с постусловием repeat такой же, как у цикла с предусловием while. Но логическое < Условие > проверяется не перед выполнением тела цикла, а после него, и управление циклом repeat прямо противоположно управлению циклом while. To есть цикл repeat продолжается, пока логическое < Условие > ложно (False), и заканчивается, когда логическое < Условие > становится истинным (True). В задаче 3 рассмотрим, как выглядит проверка длины вводимой последовательности при использовании оператора repeat (задача уже была рассмотренанами при использовании оператора while).
Задача 3
При вводе осуществить проверку длины вводимой последовательности. Program Lab5_3;
Var
N: integer; BEGIN {1}
Repeat
WriteLn ('Bведите длину последовательности N = '); ReadLn (N);
Until N > 0;
WriteLn ('Длина последовательности N = ' , N); END. {1}
62