- •Лабораторная работа №1 Программирование алгоритмов линейной структуры
- •1. Программирование на Турбо-Паскале
- •Семь основных элементов программирования
- •2. Стандарт Турбо Паскаля Основные символы языка
- •Идентификаторы
- •Строки символов
- •Комментарии
- •Типы данных Целочисленный тип
- •Вещественный тип
- •Строковые типы
- •Операции
- •Операция присваивания
- •Операции отношений
- •Задания для самостоятельной работы
- •Задачи для самостоятельного решения
- •Лабораторная работа №2 Программирование алгоритмов с разветвляющейся структурой и с циклическими структурами.
- •Операторы языка Турбо-Паскаль Составной оператор
- •Условный оператор
- •Пример. Отыскание наибольшего числа.
- •Операторы цикла
- •Оператор цикла с параметром for
- •Пример. Расчёт факториала числа n с помощью оператора цикла с параметром
- •Оператор цикла whilEс предпроверкой условия
- •Пример. Расчёт факториала числа Nс помощью оператора цикла с предусловием.
- •Оператор цикла repeat…untiLс постпроверкой условия
- •Пример. Расчёт факториала числа Nс помощью оператора цикла с постусловием.
- •Задания для самостоятельной работы
- •Лабораторная работа №3 Программирование алгоритмов с разветвляющейся структурой и с циклическими структурами. Массивы
- •Массивы
- •Описание типа (type)
- •Но!!! Type mismatch
- •Контрольные вопросы
Условный оператор
Условный оператор позволяет проверить некоторое условие и в зависимости от результатов проверки выполнить то или иное действие. Условный оператор – средство ветвления вычислительного процесса.
Структура условного оператора имеет следующий вид:
IF <условие> THEN <оператор1> ELSE <оператор2>
где IF,THEN,ELSE– зарезервированные слова (если, то, иначе);
<условие> – произвольное выражение логического типа;
<оператор1>, <оператор2> – любые операторы Турбо Паскаля.
Алгоритм работы условного оператора:
Вычисляется выражение <условие>,
Если результат есть TRUE, то выполняется <оператор1>, а <оператор2> пропускается;
Если результат есть FALSE, то выполняется <оператор2>, а <оператор1> пропускается.
Пример:
var
x, y, max: real;
begin
... {ввод значений x, y, max}
if x>max then
y := max
else
y := x;
...
end.
Часть ELSE<оператор2> может быть опущена. Тогда при значении логического выраженияTRUEвыполняется <оператор1>. В противном случае этот оператор опускается.
Пример:
var
x, y, max: real;
begin
... {ввод значений x, y, max}
y := x;
if y>max then
y := max;
...
end.
<Оператор1> и <оператор2> могут быть условными операторами. В этом случае может возникнуть неоднозначность трактовки условий. В Турбо Паскале любая встретившаяся часть ELSEсвязывается с ближайшей к ней «сверху» частиTHEN.
Пример. Отыскание наибольшего числа.
var a, b, c, max: integer; begin ... if a>b then if b>c then max := a else if a>c then max := a else max := c else {b>a} if b>c then max := b else max := c; wirteln(‘Max = ‘, max); end. |
Разумная альтернатива:
var a, b, c, max: integer; begin ... max := a; if b>max then max := b; if c>max then max := c; wirteln(‘Max = ‘, max); end.
|
Операторы цикла
В языке Турбо Паскаль имеются три различных оператора, с помощью которых можно запрограммировать повторяющиеся фрагменты программ.
Оператор цикла с параметром for
Оператор цикла с параметром имеет такую структуру:
FOR <парам. цикла> := <нач. знач.> TO <кон. знач.> DO <оператор>;
Здесь FOR,TO,DO– зарезервированные слова (для, до, выполнить)
<парам. цикла> – переменная целого типа (например, INTEGER);
<нач. знач.> и <кон. знач.> – выражения целого типа;
<оператор> – произвольный оператор Турбо Паскаля.
При выполнении оператора FORсначала вычисляется выражение <нач. знач.> и осуществляется присваивание
<парам. цикла> := <нач. знач.>.
После этого циклически повторяется последовательность действий:
Проверка условия <парам. цикла> <= <кон. знач.>. Если условие не выполняется, оператор FORзавершает работу.
Выполнение оператора <оператор>.
Наращивание переменной <парам. цикла> на единицу.
По завершению оператора FORпеременная <парам. цикла> принимает значение <кон. знач.>.
Пример. Расчёт факториала числа n с помощью оператора цикла с параметром
var
i, N, fact: integer;
begin
write(‘ВведитеN:’);
readln(N);
fact := 1;
for i := 1 to N do
fact := fact*i;
writeln(‘N!=’,fact);
end.
Шаг наращивания параметра цикла строго постоянен и равен +1. Существует другая форма оператора
FOR <парам. цикла> := <нач. знач.> DOWNTO <кон. знач.> DO <оператор>;
Замена зарезервированного слова TOнаDOWNTOозначает, что шаг наращивания параметра цикла равен –1, а управляющее условие принимает вид <парам. цикла> >= <кон. знач.>.
Для предыдущего примера можем записать:
for i := N downto 1 do
fact := fact*i;