- •Содержание
- •Перечень, наименование, обозначение блоков и отображаемые ими функции.
- •Интегрированная инструментальная оболочкаPascalAbc. Работа с главным меню системыPascalAbc
- •Среда программирования Pascal abc.
- •Общая структура программ в Pascal.
- •Основные части программы.
- •Оператор ввода-вывода в Pascal. Описание некоторых стандартных типов данных и встроенные операции и функции, применимые к ним
- •Операторы ввода/вывода данных
- •Стандартные типы данных
- •Программирование линейных алгоритмов
- •Понятие линейного алгоритма. Примеры написания программ.
- •Программирование с помощью операторов условного и безусловного перехода
- •Условный оператор If
- •Оператор безусловного перехода GoTo
- •Оператор выбора Case
- •Циклические программы
- •Оператор For
- •Оператор Repeat
- •Оператор While
- •Массивы
- •Линейные массивы. Описание типа
- •Многомерные массивы. Двухмерные массивы – матрицы.
- •Расчет отметок проектной линии на вертикальной выпуклой или вогнутой кривой
- •Индивидуальные задания
- •Процедуры и функции, определенные пользователем. Параметры процедур и функций
- •Глобальные и локальные переменные, параметры процедур и функций
- •Процедуры пользователя
- •Функции пользователя
- •Символьные массивы. Строки
- •Символьный тип
- •Символьные массивы
- •Строки. Объявление строчных типов и переменных
- •Определения значения строковой переменной
- •Длина строки. Операция конкатенации
- •Функции для работы со строками
- •Процедуры для работы со строками
Оператор безусловного перехода GoTo
Оператор безусловного перехода GoToозначает«перейти к»и применяется в случаях, когда после выполнения некоторого оператора надо выполнить не следующий по порядку, а какой-либо другой, отмеченный меткой оператор.
Формат:
GoTo <метка>;
Метка в Pascal – это произвольный идентификатор, позволяющий именовать некоторый оператор программы и таким образом ссылаться на него. Вкачестве метки можно использовать целое число без знака (исключение в правилах написания идентификаторов).Метка располагается непосредственно перед помечаемым оператором и отделяется от него двоеточием. Оператор можно помечать несколькими метками, которые в этом случае отделяются друг от друга двоеточием. Перед тем как появится в программе, метка должна быть описана (в разделе описания меток). За словомLabel(метка) следуют имена меток, разделенные запятыми. За последним именем ставится точка с запятой. Максимальная длина метки ограничена 127 символами.
Формат:Label<имя1, имя2,... >;
Label lb1, lb2;
Begin
<операторы>
GoTo lb1;
lb2:<операторы>;
lb1: <операторы>;
<операторы>;
GoTo lb2;
<операторы>
End.
Действие оператора GoToсостоит в передаче управления соответствующему меченному оператору.
При использовании меток необходимо руководствоваться следующими правилами:
метка, на которую ссылается оператор GoTo, должна быть описана в разделе описаний и она обязательно должна встретиться где-нибудь в теле программы;
метки, описанные в процедуре (функции), локализуются в ней, поэтому передача управления извне процедуры (функции) на метку внутри нее невозможна.
Например, в результате выполнения программы:
label 1,2; //метки
var i:integer;
begin
i:=6;
2: if i<0 then goto 1; //условиепереходакметке1
write(i); //выводим значение i
Dec(i); //увеличиваем i на 1
goto 2; //переходим к метке 2
1: //метка 1
end.
будет выведено 6543210.
Оператор выбора Case
Цель лабораторной работы:изучить оператор выбора, применять его в программировании для организации алгоритмов с ветвлениями наряду с условным оператором.
Оператор выбора Case часто используют для замены конструкций из вложенных условных операторов. Управляющая конструкция «выбор» является идеальным средством для обработки ситуаций со многими (более чем двумя) исходами, т.е. в случае, когда условие может принимать более двух значений. Оператор «выбор» имеет следующую структуру:
Case <параметр: порядковая переменная> OF
<значение 1>: <оператор 1>;
<значение 2>: <оператор 2>;
…
<значение N>: <оператор N>;
[ELSE <оператор N+1>];
END; {для Case}
В этой структуре: < параметр: порядковая переменная> – порядковая переменная, значение которой проверяется; <значение *> – константы, с которыми сравнивается значение порядковой переменной; <оператор *> – операторы, из которых выполняется тот, с константой которого совпадает значение порядковой переменной.
Ветвь оператора else является необязательной. Если она отсутствует и значение порядковой переменной не совпадает ни с одной из перечисленных констант, весь оператор рассматривается как пустой. В отличие от оператора If перед словом else точку с запятой можно ставить.
Если для нескольких констант нужно выполнять один и тот же оператор, их можно перечислить через запятую, сопроводив их одним оператором. Существует возможность указать диапазон возможных значений. Например, диапазон от 1 до 100 включительно указывается так: 1 .. 100.
Пример
CASE i of
0, 2, 4, 6, 8: Writeln('Чётная цифра');
1, 3, 5, 7, 9: Writeln('Нечётная цифра');
10 .. 100: Writeln('Число от 10 до 100');
ELSE
Writeln('Отрицательное число или больше 100');
END;
В операторе выбор после двоеточия может указываться только один оператор. Для того, чтобы выполнить несколько операторов, так же как и в условном операторе, применяют составной оператор.
CASE <порядковая переменная> OF
<значение 1>:
begin
<оператор 1_1>;
<оператор 1_n>
end;
<значение 2>:
begin
<оператор 2 _1>;
<оператор 2_n>
end;
<значение N>:
begin
<оператор N_1>;
…
<оператор N_n>
end;
ELSE
begin
<оператор Е_1>;
…
<оператор Е_n>
end;
END;
Необходимо заметить, что из всех возможных ветвей операторов управляющей конструкции выбор, выполняется только одна ветвь, даже если значение порядковой переменной совпадает с несколькими возможными значениями, отвечающими за разные ветви операторов. Выполняется та ветвь, которая расположена раньше. Значение порядковой переменной сравнивается последовательно со всеми возможными значениями, и как только найдётся значение, которому равна порядковая переменная, выполняется ветвь операторов, сравнения прекращаются и управляющая конструкция прекращает свою работу. Поэтому при составлении программ с использованием управляющей конструкции выбор, раньше необходимо располагать более «строгие» последовательности операторов.