Краткий курс лекций по основам структурного программирования на языке Pascal

Вид материалаКурс лекций

Содержание


Тема 2. Разветвляющиеся программы
Тема 3. Циклические программы
For k:=A Downto
Тема 4. Обработка данных строкового типа
Подобный материал:
1   2   3   4   5   6   7

Тема 2. Разветвляющиеся программы


Для организации ветвления в программе на языке Pascal используются условный оператор (конструкция ветвления в полной и сокращенной форме) и оператор варианта.

Ветвление в полной форме:

If <условие> Then <оператор 1> Else <оператор 2>;


где <условие > - логическое выражение, которое может принять одно из двух значений – истина или ложь; условия могут быть простыми (с использованием операций отношения >, <, =, <>, <=, >=) или сложными (с использованием логических операций Not, And, Or, Xor);

<
Оператор1> и <Оператор2> - простые или составные операторы. <Оператор1> будет исполнен в случае, когда условие истинно. <Оператор2> - если условие ложно. Одновременно <Оператор1> и <Оператор2> выполнены быть не могут. Ветвление в полной форме может быть представлено в виде блок-схемы на рис.1.


Ветвление в сокращенной форме:

If <условие> Then <оператор>;


В
етвление в сокращенной форме может быть представлено в виде блок-схемы на рис.2.

Оператор варианта:

Позволят осуществить множественный выбор. Имеет вид:

Case <переключатель> Of

<константа 1> : <оператор 1>;

<константа 2> : <оператор 2>;



<константа n> : <оператор n>

Else <оператор>

End;

где: <переключатель> - переменная (выражение) перечисляемог типа (из стандартных к перечисляемым относятся: Integer, Char, Boolean);

<константа i> - возможные значения переключателя;

<оператор i> - простой или составной оператор, который будет исполнен в случае, если значение переключателя будет равным соответствующей константе;

<оператор> - простой или составной оператор, который будет исполнен в случае, если значение переключателя не совпадет ни с одной из констант.

Тема 3. Циклические программы


Циклом называется многократное повторение некоторого набора действий. Эти повторяющиеся действия называются телом цикла. Программа, содержащая цикл, называется циклической.

В языке Pascal существует три оператора для организации циклов трех разных видов.

Цикл с предусловием:

While <условие> Do

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


где: <условие> - логическое выражение,

<тело цикла> - простой или составной оператор.

Компьютер сначала проверяет условие (поэтому цикл называется циклом с ПРЕДусловием). Если оно истинно, будет выполнено тело цикла, и произойдет переход снова на проверку условия. То есть, пока условие истинно, будет выполняться тело цикла. Таким образом, условие является в данном операторе условием выполнения цикла. Цикл с предусловием может быть представлен блок-схемой на рис.3.

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


Цикл с постусловием:

Repeat

<тело цикла>

Until <условие>;

где <условие> - логическое выражение,

<тело цикла> - группа операторов.

К
омпьютер сначала выполняет тело цикла, затем проверяет условие (поэтому цикл называется циклом с ПОСТусловием). Если оно ложно, будет вновь выполнено тело цикла, и так до тех пор, пока условие не станет истинным. Таким образом, условие в данном операторе является условием окончания цикла. Цикл с постусловием может быть представлен блок-схемой на рис.4.

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


Цикл со счетчиком (с параметром):

For k:=A To B Do

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

где: k – счетчик (переменная перечислимого типа, в ней хранится количество сделанных повторов тела цикла),

А – начальное значение счетчика,

В – конечное значение счетчика,

<тело цикла> - простой или составной оператор,

шаг изменения счетчика +1.

При А>В тело цикла не будет выполнено ни разу.

Если необходимо использовать цикл со счетчиком, меняющимся с шагом -1, оператор приобретает вид:

For k:=A Downto B Do

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


где А>В.

Если алгоритм требует другого шага изменения счетчика (отличного от +1 и -1), необходимо использовать другие операторы цикла (While или Repeat).

Тема 4. Обработка данных строкового типа


Символьный тип Char. Значением является один символ. Все символы упорядочены. Порядковый номер символа – его код. К данным символьного типа применимы операции отношения (сравниваются коды символов). Отображаемыми (на экране) являются символы с кодами от 32 до 255. Символы с кодами от 0 до 31 – управляющие. Русские и латинские буквы упорядочены по алфавиту.

Функции преобразования:
  • Chr(X) – возвращает символ с кодом Х;
  • Ord(C) – возвращает код (порядковый номер) символа С.

Порядковые функции:
  • Pred(C) – возвращает символ, предшествующий символу С;
  • Succ(C) – возвращает символ, следующий за символом С.


Строковый тип String. Строка – произвольная последовательность символов. Длина строки – количество символов в ней. Пустая строка не содержит ни одного символа. Ее длина равна нулю. Pascal допускает использование строк длиной до 255 символов.

Строковая константа заключается в апострофы: Мама мыла раму’.

Описание строковой переменной:

Var <имя переменной> : String [N];

где N – максимальная длина строки. Если она не указана, максимальной длиной строки считается число 255.

Например:

Var Family : String [20];

Name : String [10];

P : String;

Номер символа в строке называется еще индексом. Для обращения к отдельному символу строки его индекс указывается после имени строки в квадратных скобках. Например, P[3] – 3-й символ строки P; Name[K] – K-й символ строки Name.

К данным строкового типа применима операция конкатенации (обозначается символом «+»). Например, после выполнения последовательности команд:

A:= ’тепло’;

B:= ’ход’;

C:= A+B;

в переменной С будет записана строка ‘теплоход’.

К данным строкового типа применимы операции отношения, причем строки сравниваются посимвольно, с учетом порядковых номеров символов в алфавите. Например, ‘мама’ < ’папа’, ‘машина’>’мама’.

Стандартные функции:
  • Length (S) – возвращает длину строки S.
  • Pos (P, S) – возвращает позицию первого вхождения строки P в строку S. Например, после выполнения последовательности команд:

A := ’крокодил’;

B := ’код’;

K := Pos (B, A);

N := Pos (‘о’, A);

M := Pos (‘a’, A);

переменные К, N, M примут следующие значения: K=4, N=3, M=0.
  • Copy(S, K, N) – выделяет (копирует) часть строки S длиной N начиная с К-го символа. Например, после выполнения последовательности команд:

A := ’крокодил’;

B := Copy (A, 2, 3);

значением переменной В будет слово ‘рок’.


Стандартные процедуры:
  • Delete (S, K, N) – удаляет из строки S N символов, начиная с K-го. Например, после выполнения последовательности команд:

A := ’корзина’;

Delete (A, 4, 3);

значением переменной A будет слово ‘кора’.
  • Insert (P, S, K) – вставляет строку P в строку S начиная с позиции с номером K. Например, после выполнения последовательности команд:

A := ’кот’;

Insert (‘р’, A, 2);

значением переменной A будет слово ‘крот’.
  • Val (S, N, K) – преобразует строку S в число N; K – номер позиции в строке S, где встретился символ, недопустимый в записи числа.
  • Str (N, S) – преобразует число N в строку S.