Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
35
Добавлен:
04.01.2020
Размер:
259.78 Кб
Скачать

Типы данных в Pascal:

Операции задают действия над операндами. Бывают операции бинарные и унарные. Унарные операции содержат 1 операнд, перед которым стоит знак операции. Бинарные операции имеют 2 операнда, между которыми ставится знак или символ операции.

В языке Pascal используются основные операции: арифметические, логические, отношения, строковые.

Арифметические операции: унарная присвоения знака + или -, бинарные сложение (+), вычитание (-), умножение (*), вещественное деление (/), целочисленное деление (div), остаток от целочисленного деления (mod).

Логические операции: унарная отрицание (not), бинарные конъюнкция (and), дизъюнкция (or).

Операции отношения: бинарные равно (=), больше (>), меньше (<), не равно (<>), меньше или равно (<=), больше или равно (>=). Результатом операций отношения может быть только переменная логического типа. Операндами в операциях отношения могут быть числовые типы или типы, сводимые к числовым.

Строковая операция: бинарная операция конкатенация (+).

Последовательность выполнения операций в выражении определяется: приоритетом, порядком расположения, использованием скобок.

Каждая операция имеет приоритет от 1 до 4. Операции приоритета 1 выполняются в первую очередь. Затем выполняются операции приоритета 2, за ними приоритета 3, в последнюю очередь приоритета 4. Операции с равными приоритетами выполняются слева направо в порядке их записи.

Для изменения приоритета (его повышения) служат скобки. Сначала вычисляется выражение в скобках, а затем – за скобками.

Выражения – это конструкции языка, которые задают порядок выполнения действий над элементами данных.

Выражение состоит из операндов (элементов данных, участвующий в операции), объединенных знаками операций. Операндами могут быть константы, переменные и вызовы функций. Тип значения выражения определяется типом его операндов и выполняемыми над ними операциями. Величины в выражении должны быть совместимых типов.

Выражение, составленное из операндов целочисленных или вещественных типов, объединенных знаками арифметических операций и круглыми скобками, называется арифметическим. Результат арифметического выражения может принимать целое или вещественное значение.

Выражение, состоящее из операндов, связанных операцией отношения, называется выражением отношения.

Выражение, состоящее из операндов, связанных логическими операциями, называется логическим выражением. Операндами логического выражения могут быть только данные типа boolean, результатом - значение истина (true) или ложь (false).  

К арифметическим величинам могут быть применены стандартные арифметические функции, приведенные в таблице. В ней I обозначает целые типы, R - вещественные типы.

Для ввода данных в языке Pascal служат процедуры Read() и Radln(). По умолчанию ввод данных осуществляется с клавиатуры. В качестве параметров в процедурах ввода указываются имена переменных, в которые записываются вводимые данные. Например, при вызове процедуры Readln(a, b, c, d) для целочисленных переменных a, b, c, d программа ожидает ввод четырех чисел, которые будут записаны в эти переменные. При использовании процедуры Readln() вводимые числа разделяются нажатием клавиши Enter. При использовании процедуры Read() числа могут разделяться пробелом, табуляцией или Enter.

Для вывода данных в языке Pascal служат процедуры Write() и Writeln(). По умолчанию вывод данных осуществляется на монитор. В качестве параметров в процедурах вывода указываются выводимые символьные строки, выводимые переменные или выражения. Например, для вывода суммы введенных чисел служит процедура Write(‘Сумма чисел = ‘, a+b+c+d). Эта запись эквивалентна процедурам: Write(‘Сумма чисел = ‘); Write (a+b+c+d). При использовании процедуры Writeln() после вывода данных курсор переходит на новую строку. Процедура Writeln() без параметров переводит курсор на новую строку.

Основные операторы (присваивания, условный, выбора, цикла, перехода)

Оператор является неделимым элементом программы, который выполняет определенные алгоритмические действия. Операторы языка Pascal делятся на 2 группы: простые и структурированные.

Простые операторы не содержат в себе других операторов. Например: оператор присваивания (:=).

Структурированные операторы содержат в себе другие операторы. К ним относятся: условный оператор (If); оператор выбора (Case); операторы цикла (For, While, Repeat).

Оператор присваивания предназначен для определения нового значения переменной или значения, возвращаемого функцией. Формат оператора: <имя>:=<выражение>.

Примеры: z:=5; x:=a+b; sum:=sum+a; d:=b*b-4*a*c; x1:=(-b+sqrt(d))/(2*a).

Оператор безусловного перехода служит для прерывания последовательного выполнения операторов и перехода к выполнению указанного оператора. Формат оператора: GoTo <метка>. Метка ставится перед оператором и отделяется от него точкой с запятой. Меткой может быть число от 0 до 9999 или любой идентификатор.

Условный оператор If используется в программе для реализации алгоритмической структуры ветвления, в которой вычислительный процесс может продолжаться по одному из возможных направлений. Выбор направления осуществляется проверкой условия.

Полная форма оператора:

If <логическое_выражение> Then <оператор_1>; Else <оператор_2>;

Оператор If работает следующим образом: вычисляется логическое выражение. Если результат True, то выполняется <оператор_1>, а <оператор_2> пропускается. Если результат False, то выполняется <оператор_2>, а <оператор_1> пропускается. Операторы 1 и 2 могут быть составными, т. е. состоять из нескольких операторов. Составной оператор заключается в операторные скобки Begin … End.

В неполной форме оператора If часть Else отсутствует.

Пример полной формы: If (x > 0) And (y > 0) Then

Begin x := x + y; y := 0 End;

Else

Begin x := x – y; y := -y End;

Оператор выбора предназначен для реализации множественного ветвления в программе. Формат оператора:

Case <ключ_выбора> Of

<константа_выбора_1>: <оператор_1>;

… . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;

<константа_выбора_N>: <оператор_N>;

Else <оператор>;

End;

Порядок работы оператора: вычисляется значение параметра <ключ_выбора>, который может быть переменной или выражением, это значение последовательно сравнивается с константами выбора. При равенстве выполняется соответствующий оператор, и работа оператора выбора заканчивается. Если равенство не достигнуто и есть конструкция Else, то выполняется оператор, записанный после Else. Если не достигнуто равенство и нет Else, то оператор выбора ничего не делает. Все операторы могут быть составными. Типы данных ключа выбора и констант выбора должны совпадать.

Пример:

Program Svetofor;

Var

color: char;

Begin

Writeln(‘Введите символ цвета’);

Read(color);

Case color Of

‘з’: Writeln(‘Зеленый цвет, движение разрешено’);

‘ж’: Writeln(‘Желтый цвет, внимание’);

‘к’: Writeln(‘Красный цвет, движение запрещено’);

Else Writeln(‘Это не первый символ цвета светофора’);

End;

End.

В циклической алгоритмической структуре некоторые действия выполняются несколько раз. Эти действия называются телом цикла. Имеются два вида циклических структур: арифметический цикл с параметром и итерационный цикл. В итерационном цикле число повторений неизвестно до выполнения цикла. Он выполняется до тех пор, пока выполняется условие продолжения цикла. В итерационном цикле с предусловием While условие продолжения цикла проверяется перед каждым выполнением тела цикла.

Формат записи оператора While:

While <условие> Do <оператор>;

В качестве условия используется выражение логического типа. Оператор может быть составным. Оператор While сначала проверяет результат логического условия. Если результат True, то выполняется оператор, записанный после Do, после чего следует возврат на проверку условия с новым значением параметров в логическом выражении условия. Если результат False, то производится завершение цикла. В теле цикла обязательно должны изменяться параметры условия.

Пример: найти минимальное число, которое больше 200 и кратно 17.

Var n: integer;

Begin

n := 201;

While (n mod 17 <> 0) Do n := n + 1;

Writeln(‘Искомое число равно ', n);

End.

В итерационном цикле с постусловием Repeat условие продолжения цикла проверяется после каждого выполнения тела цикла.

Формат записи оператора Repeat:

Repeat <тело_цикла >; Until <условие>;

Оператор Repeat сначала выполняет тело цикла, а затем проверяет результат логического условия. Если результат False, то производится возврат к очередному выполнению операторов тела цикла. Если результат True, то производится завершение цикла. Даже если тело цикла содержит более одного оператора, операторные скобки не требуются. В теле цикла обязательно должны изменяться параметры условия.

Пример: Найти минимальное число, которое больше 200 и кратно 17.

Var n: integer;

Begin n := 200;

Repeat n := n + 1;

Until (n mod 17 = 0);

Writeln(‘Искомое число равно ', n);

End.

Арифметический оператор цикла используется, когда число повторений цикла известно или вычислено и записано в переменную. Форматы записи оператора For:

For <счетчик> := <начальное_значение> To <конечное_значение> Do

<тело_цикла>;

For <счетчик> := <начальное_значение> Downto <конечное_значение> Do <тело_цикла>;

Счетчик – это переменная целого, символьного или логического типа. Начальные и конечные значения могут быть представлены значениями, константами и выражениями, возвращающими типы данных, совместимые с типом данных счетчика. Если между начальным и конечным выражением указано To, то на каждом шаге цикла значение счетчика будет увеличиваться на 1, поэтому для выполнения тела цикла хотя бы 1 раз начальное значение должно быть не больше конечного. Если указано Downto, то значение счетчика будет уменьшаться на 1, поэтому для выполнения тела цикла хотя бы 1 раз начальное значение должно быть не меньше конечного. Если тело цикла содержит более одного оператора, то оно заключается в операторные скобки. Переменную счетчика нельзя изменять в теле цикла.

Пример:

Вычислить значения функции y=sin(x) для x от 10 до 100 градусов с шагом 10 градусов.

For i := 1 To 10 Do

Begin y := sin(10*i*pi /180);

Writeln(‘Для x = ', x:3:0, ‘ функция y = ‘, y:6:3);

End;

Соседние файлы в папке ИТ