- •1.1. Основные этапы создания программы
- •1.2. Алгоритмы
- •2.1. Структура типов в Turbo Pascal
- •Стандартные скалярные типы. Типы целых чисел
- •2.3. Операции побитовой обработки
- •2.4. Представление вещественных чисел в эвм
- •2.5. Символьный тип
- •2.6. Булевский тип
- •2.7. Перечисленный тип
- •2.8. Интервальный тип (диапазон)
- •3.1. Структура программы на turbo pascal
- •3.2. Основные операторы языка
- •3.2.1. Простые операторы
- •3.2.2. Операторы ввода-вывода
- •3.2.3. Структурные операторы
- •3.2.4. Условные операторы
- •3.2.5. Операторы повтора (цикла)
- •4.1. Массивы
- •4.2. Строковый тип
- •4.3. Множества
- •5.1. Процедуры и функции
- •5.2. Процедуры и функции пользователя
- •5.3. Передача параметров по значению и по ссылке
- •5.4. Рекурсивные процедуры и функции
- •6.1. Структура модулей
- •6.2. Компиляция и использование модулей
- •7.1. Записи
- •7.2. Вложенные записи
- •7.3. Записи с вариантами (вариантные записи)
- •7.4. Файлы
- •7.5. Подпрограммы для работы с файлами
- •7.5.1. Процедуры
- •7.5.2. Функции
- •7.6. Примеры программ для обработки файлов
- •7.7. Текстовые файлы
- •8.1. Структура оперативной памяти для программ на Turbo Pascal
- •8.2. Динамические структуры данных
- •8.3. Основные процедуры и функции для работы с динамическими переменными
- •8.4. Динамика выделения памяти в куче
- •8.5. Линейные списки. Способы создания и обработки
- •8.6. Нелинейные списки. Способы создания и обработки
- •Библиографический список
- •Оглавление
- •394026 Воронеж, Московский просп., 14
3.2.2. Операторы ввода-вывода
Для обеспечения ввода информации используются операторы Read и Readln, а для вывода - Write и Writeln. Различие между операторами Read и Readln, а также Write и Writeln состоит в том, что первые из них после выполнения оставляют курсор на той же самой строке, а вторые переводят его на следующую строку
Пример использования операторов ввода-вывода:
var
a: integer;
b: real;
c: char;
begin
{Оператор writeln выводит на экран фразу, }
{заключенную в апострофы, и переводит курсор на}
{другую строку}
writeln(‘Ведите значения переменных’);
{Оператор read обеспечивает ввод данных}
{данные вводятся минимум через один пробел}
{ в соответствии с порядком написания и типом}
{курсор остается на той же строке}
read(a,b,c);
writeln(‘Переменная a = ‘, a);
36
writeln(‘Переменная b = ‘, b);
writeln(‘Переменная c = ‘, c);
end.
Если последовательность вводимых символов на экране будет выглядеть так:
35 105.43 ‘d’ , то после выполнения программы на экране появится сообщение:
Переменная a = 35
Переменная b = 105.43
Переменная c = d
При вводе последовательности символов:
‘d’ 105.43 35 появится сообщение об ошибке, так как введенные символы не соответствуют заданному типу.
В операторах вывода возможна такая форма записи:
Writeln((a+b/2);
После вычисления значения выражения в скобках оно будет напечатано.
Для операторов вывода возможно задание формата вывода.
Writeln(a:6); _ _ _ _ 35
Writeln(b:6:2); 105.43
Writeln(c:4); _ _ _d
Первая цифра после имени переменной означает количество позиций, отводимых под все число. Вторая цифра указывает на требуемое количество десятичных знаков после запятой.
В том случае, если число не умещается в заданном формате, то недостающие позиции заполняются символом *. Например, число a = 13267 при выводе в формате writeln(a:3) будет представлено так: **267.
37
3.2.3. Структурные операторы
Структурные операторы представляют собой конструкции, построенные из других операторов по строго определенным правилам.
Составной оператор – группа из произвольного числа операторов, заключенных в операторные скобки begin и end.
begin
Группа операторов
end;
Этот оператор позволяет писать программы по современной технологии программирования (без использования оператора goto).
3.2.4. Условные операторы
Оператор условия if может быть использован в двух видах:
-
if <условие > then <оператор_1>
else <оператор_2>;
-
if <условие > then <оператор_1 >
<Условие> - это выражение булевского типа. Сложные условия образуются с помощью логических операций and, or, not, xor. При записи условий могут быть использованы все возможные операции отношения. Результат будет иметь булевский тип.
Если условие является истинным, то при использовании первого вида условного оператора управление передается оператору 1, в противном случае выполняется оператор 2.
При использовании второго вида условного оператора управление передается оператору 1, если условие истинно, в противном случае управление передается оператору, следующему за данным условным оператором.
38
Примеры.
-
С простым оператором:
if a > b then d: = a + b
else d: = a – b;
writeln(‘d = ‘,d);
-
С составным оператором:
If a < b then
begin
writeln(‘ a меньше b’);
d:=a*b;
end
else
begin
writeln(‘a b’);
d:=a/b;
end;
3. C использованием сложного условия:
if (a = b) and (c >=d) then
begin
f: = 0;
writeln(f);
end
else
begin
f: = 100;
writeln(f);
end;
Оператор выбора case является обобщением оператора if и позволяет сделать выбор из множества условий.
Оператор выбора case имеет такую структуру:
Case <выражение-селектор> of
<константа выбора 1>: оператор_1;
39
<константа выбора 2>: оператор_2;
. . .
<константа выбора >: оператор_;
else <оператор>
end; {end case}
Оператор выбора работает следующим образом. Вначале вычисляется значение селектора. Затем отыскивается оператор, константа выбора которого совпадает с вычисленным значением селектора. Этот оператор выполняется, после чего оператор выбора прекращает свою работу. Если же ни одна из констант выбора не равна значению селектора, то выполняется оператор, следующий за else, а если else отсутствует, то управление передается на конец оператора выбора и он прекращает свою работу.
Выражение-селектор может иметь любой скалярный тип, кроме вещественного. Использование строкового типа в качестве селектора также запрещено.
Селектор интервального типа:
case i of
1.. 10: writeln(‘Число в диапазоне 1..10’);
11..20: writeln(‘Число в диапазоне 11..20’);
21..30: writeln(‘Число в диапазоне 21..30’);
else writeln(‘Число вне пределов контроля;);
end;
Селектор целочисленного типа:
case i of
5: z: = i + 10;
8: z: = i + 100;
3: z: = i +1000;
end;
Селектор перечисленного типа:
var
s: (au, fe, cu);
begin
40
case s of
au: writeln(‘золото’);
fe: writeln(‘железо’);
cu: writeln(‘медь’);
end
end.
С помощью селектора перечисленного типа можно выводить на экран значения переменных перечисленного типа.
Селектор символьного типа:
case i of
‘A’, ’a’: writeln(‘Вычисление абсолютной величины’);
‘S’, ’s’: writeln(‘Вычисление синуса ’);
‘C’, ‘c’: writeln(‘Вычисление косинуса’);
‘V’, ‘v’: begin
writeln(‘Работа закончена’);
halt;
end
else writeln(‘Указанного имени нет в меню’);
end; {end case}