Условный оператор в Паскале

Pascal – язык программирования высокого уровня. Его разработал Никлаус Вирт в 1970 году. Вирт преследовал цель создать высокоуровневый ЯП, который можно было бы преподавать студентам. В итоге из университетов Паскаль вышел «в люди». Профессионалы стали писать на нём сложные программы, а сам язык поддерживается до сих пор. Итак, перейдём к знакомству с языком.

Алфавит и пунктуация

Паскаль включает набор символов, знакомый каждому:

  • Буквы латинского алфавита от A до Z (строчные и заглавные);
  • Арабские цифры от 0 до 9;
  • Символы-разделители: запятая, точка с запятой, точка, двоеточие, апостроф, кавычки, скобки, пробел;
  • Арифметические знаки: + (сложение), — (вычитание), * (умножение), / (деление);
  • Знаки отношений: > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно), = (равно).

Типы данных

Тип определяет способ внутреннего представления компьютера для объекта, а также действия, которые можно с ним выполнять. Данные могут носить переменное (variable) или постоянное (constant) значение.

  • Integer – целое число. Числа в интервале от -32768 до 32767
  • Real – вещественное число. Числа от 2.9 * 10-39 до 1.7 * 1038
  • Char — символ. Включает 1 символ
  • String — строка. Включает до 256 символов
  • Boolean – логический тип. True / False

Структура программы на Паскале

Напишем простую программу, которая выводит сообщение.

Program myMessage;
Const Message = “Я программирую на Паскале”;
Begin
WriteLn(Message);
End.

Разберём по строкам.

  • Program – зарезервированное слово с именем (идентификатором) программы.
  • Const Message – объявляем неизменяемое значение Message с идентификатором «Я программирую на Паскале».
  • Begin – старт программы.
  • WriteLn(Message) – оператор вывода на экран с заранее объявленной константой, которую мы хотим вывести.
  • End. – конец программы

Как видите, всё просто. Зарезервированные слова пишутся на простом английском языке.

Обратим внимание на то, что идёт перед Begin … End. Это – описательная часть программы. Она содержит нестандартные идентификаторы, используемые в исполняемых операторах.

Комментарии

Комментарий в программировании – часть программы, которая несёт пояснения для самого разработчика. Эта часть не влияет на семантику, следовательно — результат компиляции в программе.

Синтаксис комментария в Паскале следующий:

{ это комментарий }
{* и это тоже *}

Комментарий может содержать произвольное число символов. Вкладывать их друг в друга недопустимо.

Стандартные операторы, процедуры и функции

Операторы ввода / вывода

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

Read(x,y,z,…);
Readln(x,y,z,…);

Эти операторы позволяют пользователю вводить значения с клавиатуры и присваивают их переменным x,y,z.
Оператор Readln() отличается от Read() тем, что после ввода последней переменной курсор переводится в начало новой строки.

Есть хитрость. Если ReadLn(); вставить в конец программы, она «остановится», ожидая от пользователя ввод данных. Теперь рассмотрим вывод. Ему также служат две команды:

  • Write();
  • Writeln();

Элементами вывода могут являться имена переменных, выражения, константы. Прежде чем вывести на экран компьютер значения выражений сначала вычислит. Элементы списка разделяются запятыми. Разница между ними следующая: после выполнения оператора Writeln происходит переход на новую строку, а после выполнения Write переход на новую строчку не происходит и печать по последующим командам вывода Write или Writeln будет происходить на той же строчке.

Простая арифметика

Pascal поддерживает сложение и вычитание, умножение и деление, а также деление по модулю и целочисленное деление. Простые операции называются бинарными (между 2 операндами). Часть таких операций знакомы нам со школы. Стоит отметить, что здесь, как и в математике, есть свой приоритет вычисления, который можно менять с помощью скобок.

Логические операции

Результаты этих операций возвращают true / false.

  • NOT — отрицание («НЕ»);
  • AND — умножение («И»);
  • OR — сложение («ИЛИ»);
  • XOR — «Исключающее ИЛИ».

Операторы сравнения

Они же операторы отношений.

  • — больше;
  • < — меньше;
  • = — равно;
  • <> — не равно;
  •  >= — больше или равно;
  • <= — меньше или равно;

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

Условный оператор

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

Если значение условия истинно (TRUE), то будет выполняться оператор 1, записанный после ключевого слова then. В противном случае будет выполнен оператор 2, следующий за словом else, при этом оператор 1 пропускается. После выполнения указанных операторов программа переходит к выполнению команды, стоящей непосредственно после оператора if.

Пример с проверкой «чётное / нечётное число»:

var n: integer;
begin
write (‘Введите целое число: ‘);
readln (n);

if n mod 2 = 0 then
write (‘Оно четное.’)

else
write (‘Оно нечетное.’);
readln
end.

Оператор цикла while

Цикл с предусловием. В его заголовке находится логическое выражение. Если оно true, то тело цикла выполняется, если false – то нет. Как только тело цикла было выполнено, то ход программы снова возвращается в заголовок цикла. Условие снова проверяется на истинность. Тело цикла выполнится столько раз, сколько раз логическое выражение вернет true. Поэтому очень важно в теле цикла предусмотреть изменение переменной, фигурирующей в заголовке цикла, таким образом, чтобы когда-нибудь обязательно наступала ситуация false. В противном случае произойдет так называемое зацикливание, одна из самых неприятных ошибок в программировании.

Пример:

var
i, n: integer;

begin
write (‘Количество знаков: ‘);
readln (n);

i := 1;
while i <= n do begin
write (‘(*) ‘);
i := i + 1
end;

readln
end.

Оператор case

Это оператор выбора. Используется в случаях, когда в зависимости от значения надо выполнить один или несколько операторов. Его можно считать упрощением конструкции if then else.

program RateToText;
var
rating : integer;
begin
write(‘Введите оценку 1-5 ‘);
readln(rating);

case(rating) of
1,2: writeln(‘Неудовлетворительно’);
3: writeln(‘Удовлетворительно’);
4: writeln(‘Хорошо’);
5: writeln(‘Отлично’);
end;

readln;
end.

Оператор break

Он мгновенно прерывает цикл.

var
S : String;
begin
while True do
begin
ReadLn(S);
if S = » then
Break;
WriteLn(S);
end;
end.

Вызов break надо писать внутри цикла.

Массивы

Массивы — это совокупность элементов одного типа. В Паскале в массиве:

  • каждый компонент может быть явно обозначен и к нему имеется прямой доступ;
  • число компонент массива определяется при его описании и в дальнейшем не меняется.

Для обозначения компонент массива используется имя переменной-массива и так называемые индексы, которые обычно указывают желаемый элемент. Тип индекса может быть только порядковым (кроме longint). Чаще всего используется интервальный тип (диапазон).

Пример 1. Ввод и вывод одномерного массива.

const
n = 5;
type
mas = array[1..n] of integer;
var
a: mas;
i: byte;
begin
writeln(‘введите элементы массива’);
for i:=1 to n do readln(a[i]);
writeln(‘вывод элементов массива:’);
for i:=1 to n do write(a[i]:5);
end.

Определить переменную как массив можно и непосредственно при ее описании, без предварительного описания типа массива, например:

var a,b,c: array[1..10] of integer;

Если массивы a и b описаны как:

var
a = array[1..5] of integer;
b = array[1..5] of integer;

то переменные a и b считаются разных типов.

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

Так как тип, идущий за ключевым словом of в описании массива, — любой тип Турбо Паскаль, то он может быть и другим массивом. Например:

type
mas = array[1..5] of array[1..10] of integer;

Таким образом, возникает понятие многомерного массива. Глубина вложенности массивов произвольная, поэтому количество элементов в списке индексных типов (размерность массива) не ограничена, однако не может быть более 65520 байт.

Заключение

Мы познакомились с основами языка Паскаль. Этот язык прежде всего учебный. Наградой за его упорное изучение станет навык грамотного программирования.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *