- •Аннотация
- •Содержание
- •Интегрированная среда программирования Turbo Pascal 7.0
- •Основные понятия языка Turbo Pascal 7.0
- •Алфавит языка
- •Структура программы
- •Раздел объявления меток
- •Раздел объявления констант
- •Строковые и символьные константы
- •Простые типы данных
- •Выражения Арифметические выражения
- •Математические функции
- •Условные выражения и операции отношения
- •Логические выражения и операции
- •Процедуры ввода – вывода информации Процедуры ввода информации Read, ReadLn
- •Процедуры записи Write, WriteLn
- •Форматы процедуры вывода Write
- •Простые операторы
- •Оператор присваивания
- •Примеры решения задач
- •Оператор безусловного перехода Goto
- •Структурированные операторы
- •Составной оператор
- •Условный оператор If
- •Примеры решения задач
- •Условный оператор Case
- •Примеры решения задач
- •Оператор цикла For
- •Особенности выполнения оператора For
- •Примеры решения задач
- •Оператор цикла Repeat…Until
- •Особенности выполнения оператора Repeat
- •Примеры решения задач
- •Оператор повтора While
- •Особенности выполнения оператора While
- •Примеры решения задач
- •Вложенные циклы
- •Массивы
- •Одномерные массивы Основные понятия
- •Описание массива
- •Заполнение массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы поиска и присвоения значений элементам массива
- •2. Алгоритмы нахождения суммы, произведения и количества элементов массива. Работа с индексами элементов массива
- •3. Алгоритмы нахождения наибольшего или наименьшего элемента массива и его индекса
- •6.2 Двумерные массивы
- •6.2.1 Основные понятия
- •6.2.2 Описание массива
- •6.1.3 Заполнение и вывод элементов двумерного массива
- •6.1.4 Примеры решения задач
- •1. Алгоритмы действий над элементами двумерного массива
- •2 Алгоритмы формирования одномерного массива
- •3 Алгоритмы нахождения наибольшего и наименьшего элементов двумерного массива
- •7. Множества
- •7. 1 Операции над множествами
- •7.2 Примеры решения задач
- •8. Строки
- •8.1 Строковые выражения
- •8.2 Стандартные процедуры и функции для обработки строковых данных
- •Обнаруживает первое появление в строке St2 подстроки St1. Результат равен номеру той позиции, где находится первый символ подстроки St1.
- •8.3 Примеры решения задач
- •1.Задачи на подсчет символов.
- •2. Задачи на замену символов.
- •3. Задачи на удаление символов.
- •4. Задачи на вставку символов.
- •9. Процедуры и функции, определенные пользователем
- •9.1 Процедуры пользователя
- •1 Вариант
- •2 Вариант
- •9.2 Функции пользователя Формат описания функции:
- •9.3 Параметры
- •9.3.1 Параметры – значения
- •9.3.2 Параметры - переменные
- •10 Модуль crt. Процедуры и функции модуля crt
- •11 Модуль Graph
- •11.1 Классификация типов драйверов и видеорежимов
- •11.2 Инициализация графики
- •11.3 Переключение между текстовым и графическим режимами
- •11.4 Система координат
- •Отображение строк
- •11.5 Управление текущим указателем
- •11.6 Отображение точки на экране
- •11.7 Определение параметров пикселов
- •11.8 Отображение отрезков прямых линий
- •11.9 Вычерчивание линий различных стилей
- •11.10 Построение прямоугольников
- •11.10.1 Построение прямоугольника на плоскости
- •11.10.2 Построение закрашенного прямоугольника
- •11.11 Установка стиля заполнения
- •11.13 Построение заполненных областей изображения
- •11.13.1 Построение заполненного сектора эллипса
- •11.13.2 Построение заполненного эллипса
- •11.13.3 Построение заполненных сложных геометрических фигур
- •Список литературы
Оператор цикла For
Циклы позволяют многократно выполнять отдельный оператор или последовательность операторов, причем при этом нет необходимости записывать в тексте программы одинаковые операторы несколько раз.
Оператор цикла For организует выполнение одного оператора (или несколько операторов) заранее известное число раз. Оператор For может быть представлен в двух форматах:
-
For <параметр цикла>:=<S1> To <S2> Do
<тело цикла>;
-
For <параметр цикла>:=<S1> DownTo <S2> Do
<тело цикла>;
<параметр цикла> - переменная цикла, которая может быть целочисленного или символьного типа. Параметр цикла изменяется, увеличиваясь до конечного значения (1 формат). Параметр цикла может изменяться в противоположном направлении - убывать (2 формат);
S1 – начальное значение параметра цикла, которое она получает при первом выполнении цикла;
S2 - конечное значение параметра цикла, достигнув которое повторение цикла прекращается;
For…Do – заголовок цикла;
< тело цикла > - оно может быть простым, состоящим из одного оператора или составным оператором.
Например:
For I:=1 To 20 Do Write(‘*’);
20 раз выведется на экран в одной строке «*»
Особенности выполнения оператора For
-
Начальное и конечное значения параметра цикла должны принадлежать к одному и тому же типу данных.
-
В операторе For не допускается изменения параметра цикла на величину, отличную от единицы.
Например:
For I:=10 To 14 Do Write(I:3); {Результат выполнения - 1011121314}
For I:=14 DownTo 10 Do Write(I:3); {Результат выполнения - 1413121110}
-
В операторе For после Do может находиться составной оператор, в теле которого запрещены операторы, меняющие значение параметра цикла.
Например:
For I:= 1 To 10 Do Begin
Rez:=A/Pi;
I:=I+1; {ошибка, попытка изменить параметр цикла}
End;
-
После нормального завершения оператора For значение параметра цикла равно конечному значению. Если оператор For не выполнялся, значение параметра цикла не определено.
-
Чтобы прервать выполнение оператора For досрочно, необходимо использовать процедуру Break, которая прерывает выполнение циклов. Процедура Continue начинает новую итерацию цикла, даже если предыдущая не была завершена.
Примеры решения задач
1. Найти произведение положительных, сумму и количество отрицательных из 10 введенных целых значений.
USES Crt;
VAR
X: INTEGER; S, K, P: INTEGER; I: BYTE;
Begin
Clrscr; {чистка экрана}
P:=1; S:=0; K:=0;
FOR I:=1 TO 10 DO Begin
WriteLn(‘Введите ‘,I,’ -е значение’); ReadLn(x);
IF X>0 Then P:=P*X; { произведение положительных }
IF X<0 Then Begin
S:=S+X; { сумма отрицательных }
K:=K+1; { количество отрицательных }
End;
End;
WriteLn(‘ Произведение положительных значений = ‘,p);
WriteLn(‘ Сумма отрицательных значений = ‘,s);
WriteLn(‘ Количество отрицательных значений = ‘,k);
END.
2. Из N целых чисел найти минимальное значение.
USES Crt;
VAR MI, X: INTEGER; I,N: BYTE;
BEGIN
WriteLn('Введите количество значений'); ReadLn(n);
WriteLn('Введите первое значение'); ReadLn(mi);
FOR I:=2 TO N DO Begin
WriteLn(‘Введите ‘,I,’ -е значение’); ReadLn(x);
IF X<MI Then MI:=X;
End;
WriteLn(‘Минимальное значение = ‘,MI);
END.
3. Из N целых чисел найти минимальное среди положительных и максимальное среди отрицательных значений.
USES Crt;
VAR
MI, MA, N, I, X: INTEGER; FL, FL1: BYTE;
BEGIN
Clrscr;
WriteLn('Введите количество значений'); ReadLn(N);
FL:=0; FL1:=0;
FOR I:=1 TO N DO Begin
WriteLn('Введите ',I,' значение'); ReadLn(X);
IF (FL=0) AND (X<0) Then Begin
MA:=X; FL:=1;
End;
IF (FL1=0) AND (X>0) Then Begin
MI:=X; FL1:=1;
End;
IF (X<0) AND (X>MA) Then MA:=X;
IF (X>0) AND (X<MI) Then MI:=X;
End;
IF FL=1 Then WriteLn('максимальное среди отрицательных = ',ma)
Else WriteLn('отрицательных нет');
IF FL1=1 Then WriteLn('минимальное среди положительных = ',mi)
Else WriteLn('положительных нет');
END.
Примеры для самостоятельного решения:
-
Найти среднее арифметическое минимального и максимального элементов из 10 введенных.
-
Найти сумму 2/3+3/4+…+n/(n+1).
-
Из n введенных чисел найти максимальное значение среди положительных элементов.
-
Вычислить сумму первых n слагаемых 12+22-32+42+52-62+…(каждое третье слагаемое берется со знаком «минус»).