- •Информатика
- •Введение
- •Алгоритм и программа
- •Интегрированная инструментальная среда turbo pascal 7.0.
- •Начало работы
- •Клавиатура
- •Диалоговые окна
- •Подготовка текста программы Начало работы
- •Ввод текста и внесение изменений в текст программы
- •Компиляция
- •Пробный запуск программы на выполнение
- •Буфер промежуточного хранения
- •Использование справочной системы
- •Сохранение текста программы в файле
- •Отладка программы
- •Завершение работы
- •Алфавит языка
- •Символы, используемые в идентификаторах
- •Разделители
- •Специальные символы
- •Знаки пунктуации
- •Основные типы данных
- •Описание переменных
- •Инструкция присваивания
- •Выражение
- •Тип выражения
- •Выполнение инструкции присваивания
- •Константы
- •Целые константы
- •Вещественные константы
- •Строковые и символьные константы
- •Константные выражения
- •Типизированные константы
- •Стандартные функции
- •Арифметические функции
- •Функции преобразования типа
- •Функции для величин порядкого типа
- •Ввод и вывод информации
- •Инструкции write и writeln
- •Инструкции read и readln
- •Общая структура программы
- •Раздел объявлений и соглашений
- •Заголовок
- •Глобальные директивы компилятора
- •Оператор uses
- •Объявления глобальных меток, констант, типов и переменных
- •Процедуры и функции
- •Заголовок процедуры или функции
- •Объявления локальных меток, констант, типов и переменных
- •Тело процедуры/функции
- •Основной блок программы
- •Управляющие структуры
- •Условие
- •Условный оператор if
- •Условный оператор case
- •Оператор цикла for
- •Оператор цикла repeat
- •Оператор цикла while
- •Оператор безусловного перехода goto
- •Пустой оператор
- •Составной оператор
- •Массивы
- •Объявление массива
- •Некоторые типичные действия с массивами
- •Вывод массива
- •Ввод массива
- •Сортировка массива
- •Сортировка методом прямого выбора
- •Сортировка методом прямого обмена
- •Поиск в массиве
- •Поиск минимального (максимального) элемента массива
- •Операции с матрицами
- •Сложение матриц
- •Транспонирование матрицы
- •Умножение матриц
- •Символы и строки
- •Символы
- •Массив символов
- •Функция length
- •Процедура delete
- •Функция pos
- •Функция copy
- •Процедуры и функции
- •Процедура
- •Функции
- •Параметры-процедуры и параметры-функции.
- •Процедура exit
- •Директивы подпрограмм
- •Директива forward
- •Директивы far и near
- •Директива external
- •Директива assembler
- •Директива inline
- •Директива interupt
- •Рекурсия Понятие рекурсии
- •Пример программы: поиск пути
- •Вывод в файл
- •Объявление файла
- •Назначение файла
- •Инструкции вывода в файл
- •Открытие файла для вывода
- •Ошибки открытия файла
- •Закрытие файла
- •Ввод из файла
- •Открытие файла
- •Чтение из файла
- •Конец файла и конец строки
- •Введение в структурное программирование
- •Рекомендательный библиографический список Основной:
- •Дополнительный:
Условный оператор case
С помощью этого оператора можно выбрать вариант из любого количества вариантов. Структура этого оператора в Turbo Pascal:
Case S of
C1: Instruction_1 ;
C2: Instruction_2 ;
. . . . . . . . . . . . . . . . . . . .
CN: Instruction_N ;
else Instruction
end.
В этой структуре:
S выражение порядкового типа, значение которого вычисляется:
C1, C2, . . . , CN константы, с которыми сравнивается значение выражения S;
Instruction_1, Instruction_2, Instruction_N операторы, из которых выполняется тот, с константой которого совпадает значение выражения S;
Instruction оператор, который выполняется, если значение выражения S не совпадает ни с одной из констант C1, C2, . . . , CN.
Ветвь оператора else является необязательной. Если она отсутствует и значение выражения S не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора IF перед словом else точку с запятой можно ставить.
Если для нескольких констант нужно выполнить один и тот же оператор, их можно перечислить через запятую (или даже указать диапазон, если возможно) сопроводив их одним оператором.
Пример 2.
Program Example_2 ;
Var i : Integer ;
Begin
ReadLn( i ) ;
Case i of
0, 2, 4, 6, 8 : WriteLn(‘Четная цифра ‘) ;
1, 3, 5, 7, 9 : WriteLn(‘Нечетная цифра ‘) ;
10 .. 100 : WriteLn(‘Число от 10 до 100 ‘) ;
else
WriteLn(‘Отрицательное число или больше 100 ‘)
end
end.
Циклы
При решении многих задач некоторую последовательность действий приходится выполнять несколько раз. Такие повторяющиеся действия называются циклами и реализуются в программе с использованием инструкций циклов. В языке Паскаль циклические вычисления реализуются при помощи операторов FOR, WHILE и REPEAT.
Оператор цикла for
Оператор цикла FOR организует выполнение одного оператора заранее известное число раз.
Существует два варианта оператора:
For I := I1 to I2 do Instruction ;
For I := I1 downto I2 do Instruction ;
В этих операторах:
I параметр цикла, являющийся переменной порядкового типа;
I1 выражение, определяющее начальное значение параметра цикла;
I2 выражение, определяющее конечное значение параметра цикла;
Instruction выполняемый оператор.
I1 и I2 должны быть совместимы для присваивания с параметром цикла.
Алгоритм, соответствующий инструкции FOR для первого варианта оператора представлен на рис. 12а, для второго варианта на рис. 12б.
Рис.12. Блок-схема, соответствующая инструкции FOR.
Цикл действует таким образом. Сначала вычисляются и запоминаются начальное I1 и конечное I2 значения параметра цикла. Далее параметру цикла I присваивается начальное значение I1. Затем значение параметра цикла сравнивается со значением I2. Далее, пока параметр цикла меньше или равен конечному значению (в первом варианте) или больше или равен, конечному значению (во втором варианте), выполняется очередная итерация цикла; в противном случае происходит выход из цикла. Выполнение очередной итерации включает в себя сначала выполнение оператора Instruction, а затем присваивание параметру цикла следующего большего значения (в первом варианте оператора) или следующего меньшего значения (во втором варианте).
Естественно, если в первом варианте значение I1 больше I2 или во втором варианте меньше I2, оператор не выполняется ни разу.
После выхода из цикла параметр цикла становится неопределенным, за исключением случая, когда выход из цикла был осуществлен с помощью оператора GOTO или стандартной процедуры BREAK.
Пример 3. Вычислить значения выражений
и при
Рис.13. Блок-схема примера 3.
Программа:
Program Example_3 ;
Var I : Integer ;
x, y, d, z : Real ;
Begin
For I := 1 to 4 do
Begin
d := sqr(x) + 1 ;
y := sqrt(d) / ln(abs(x)) ;
z := exp((1/3)*ln(d)) / exp(-sqr(x)) ;
WriteLn(‘x=‘,x,’ y=‘,y);
x := x + 0.2 ;
end
end.
Пример 4. Вычислить значения функции
при
Рис.14. Блок-схема примера 4.
Программа:
Program Example_4 ;
Var x : Integer ;
y : Real ;
Begin
For x := 6 downto 1 do
Begin
If ( x > 3 ) Then y := sqr(sin(x))
else If ( x = 3 ) Then y := 1
else y := cos(x*sqr(x)) ;
WriteLn(‘x=‘,x,’ y=‘,y);
end
end.