- •14)Оператор выбора case of
- •11) Структурный тип строка, как специальная форма массива
- •10)Структурный тип строка, основы обработки строк
- •7)Функции: описания и вызовы функций.
- •8)Процедуры: описание и вызовы процедур.
- •6)Особенности использования параметров в процедурах и функциях.
- •25)Общая конструкция языка Паскаль.
- •24)Алфавит языка, ключевые слова, идентификаторы.
- •23)Структура программы.
- •22)Стандартные типы данных, операции, выражения.
- •21)Оператор присваивания.
- •18)Композиция условий и операторов.
- •17) Операторы итерационных циклов.
- •4)Области действия имён в программах.
- •2)Понятие о типе Множество в Турбо Паскале.
- •1)Запись как объединение неоднородных данных.
- •Обработка записей.
- •27)Понятие о языках программирования.
- •26)Система программирования turbo pascal 7.0.
- •28)Аппаратное и программное обеспечение компьютера.
- •30)Принцип программного управления.
- •29)Программы, управляемые событиями.
14)Оператор выбора case of
Оператолр выбора является обобщением оператора if-then-else на случай выбора одного из нескольких возможных продолжений выполнения программы . Выбор осуществляется по ключу выбора .Синтаксическая структура :
Case <ключ выбора >of
<константа выбора 1>:<оператор 1 >
<константа выбора m>:<оператор m>
[else < оператор >].
End;
Где <константа выбора >-значение того же типа , что и ключ выбора
m-число ветвей выбора
При выполнении оператора выбора в начале вычисляется значение ключа , а затем последовательном просмотром ветвей выбора отыскивается такая ветвь, для которой константа выбора совпадает со значением ключа.Ветвь else выполняется только в том случае , когда ни одна ветвь оператора case of не выбрана . Если ветвь else отсутствует , то это эквивалентно ветви else с пустыми операторами.В ветвях выбора вместо констант выбора можно использовать список констант выбора , либо диапазон констант выбора. Операторы выбора являются хорошо структурированными средством выбора из любого числа альтернатив и часто выполняют ту же ф-ию , что и вложенные операторы if-then-else.
11) Структурный тип строка, как специальная форма массива
В Турбо Паскале имеется семейство строковых типов, рассматриваемых как специальная форма массива, а именно одномерный массив символов. Это семейство соответствует по умолчанию следующему описанию:
type string[ <m >] = array [0..m] of char;
где: <m >- максимальная длина строки (число диапазона 0 .. 255).
string- стандартное имя строкового типа, являющееся ключевым словом.
Строки длины до 255 соответствуют типу string (без указания длины строки).
Нулевая позиция строки является специальной позицией, в которой хранится текущая длина строки (код ASCII, представляющий длину строки). Эта позиция автоматически корректируется при операциях над строками. Доступ к компоненту строки (символу строки) осуществляется также как к элементу массива, т.е. по индексу (индексному выражению). Например: st[J+1] {Cимвол в позиции J+1 строки st}. Разрешен доступ, в том числе и к нулевой позиции строки, так что, например ord(st[0]) - длина строки st .
Замечание
|
Изменение содержимого нулевой позиции строки оператором присваивания эквивалентно изменению текущей длины строки и может привести к отсечению части строки или присоединению к строке дополнительных пробелов. |
10)Структурный тип строка, основы обработки строк
Строки относятся к важным средствам представления нечисловой информации, и обработка строк имеет широкие приложения во многих областях использования нечисловой информации (редактирование текстов, логический анализ, автоматизация перевода, распознавание текстов и др.). Посколку строки указанного типа являются разновидностями массива, для них можно применять всё, что применимо к массивам. Кроме того, для обработки строк в Турбо Паскале предусмотрен ряд достаточно удобных и эффективных средств:
Для строк допустим оператор присваивания вида:
< переменная типа string > := < выражение типа string или типа char >;
Над строками допустимы отношения сравнения <,<=,>,>=, =, <>, причём длины сравниваемых строк могут быть различными (меньшая строка при сравнении дополняется справа до выравнивания длин символами chr(0)). Сравнение выполняется посимвольно слева направо по кодам символов таблицы ASCII. Например: 'A' >'1', 'Turbo' < 'TURBO PASCAL'. К строкам применима операция сцепления строк (конкатенация), обозначаемая символом '+'. Например: 'Это -' + 'строка' {соответствует 'Это - строка' }.
Стандартные процедуры обработки строк:
Delete(st, Npos, count) -удаление из строки st, начиная с позиции Npos под- строки длины count .
Insert(subst, st, Npos) -вставка в строку st подстроки subst с позиции Npos.
Стандартные функции обработки строк:
Length(st) -длина строки st (без учёта нулевой позиции строки).
Copy(st, Npos, count) -выделение из строки st подстроки длиной count, на чиная с позиции Npos.
Pos(subst, st) -позиция начала первого вхождения подстроки subst в строку st (если подстрока не найдена, то pos=0).
Основными элементарными задачами обработки строк являются: управление пробелами в строке (удаление лишних пробелов, удаление пробелов в начале или в конце строки, выравнивание длин строк вставкой пробелов и др.), анализ частот символов, либо подстрок, поиск подстрок по заданным критериям (первого вхождения, всех вхождений, по образцу, по шаблону и др.), подстановка подстрок и другие.