Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИНФ ЭКЗ - копия.doc
Скачиваний:
18
Добавлен:
01.05.2015
Размер:
247.81 Кб
Скачать

54 Оператор цикла с постусловием имеет след.Форму

Repeat <оператор> until l <условие>

Оператор Repeat ... Until работает следующим образом. В начале выполняется тело цикла, после чего вычисляется логическое выражение следующее за словом Until, если результатом вычисления выражения является ЛОЖЬ, то операторы в теле цикла будут выполнены повторно. в противном случае, если логическое выражение имеет значение ИСТИНА, оператор цикла с постусловием прекратит свою работу.

- число повторений инструкций цикла Repeat определяется ходом выполнения программы;

- инструкции цикла Repeat выполняется до тех пор, пока условие, стоящее после Until, ложно;

- после Until надо записывать условие завершения цикла;

- для завершения цикла Repeat в теле цикла обязательно должны быть инструкции, выполнения которых влияет на условие завершения цикла;

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

53. Строки (Turbo Pascal)

в Турбо Паскале существует тип данных STRING (строка), специально предназначенный для обработки строк (цепочек символов). Он не относится к простым типам данных и занимает промежуточное место между простыми и структурированными типами данных. Т.к. в рамках ТП с данными типа STRING связан целый набор операций целесообразно остановиться на нем более подробно. Переменная типа STRING состоит из цепочки символов, т.е. элементов типа CHAR. Строки могут выводиться на экран монитора посредством стандартных процедур Write и WriteLn и вводится с помощью стандартной процедуры ReadLn или Read. В большинстве случаев переменные типа STRING используются для хранения слов и сообщений, состоящих из нескольких символов.

Переменные типа STRING могут быть объявлены следующим образом:

VAR

Character_string_l: STRING;

Character_string_2: STRING[20];

Character_string_3: STRING[255];

Переменная типа STRING объявляется, как правило, путем указания имени переменной, зарезервированного слова STRING и указания (в квадратных скобках) максимального размера (длины) строки, которая может храниться в этой переменной. Если максимальный размер строки не указан, то он автоматически принимается равным 255 - максимально возможная длина строки.

Операции со строками

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

Character_string_l := 'Это - строка !';

Стандартные процедуры и функции для строк

Встроенная функция Length (длина) позволяет определить фактическую длину текстовой строки, хранящейся в указанной переменной (а не величину предельного размера строки, установленную при декларации):

PROGRAM Demo_function_LENGTH;

VAR

Words: STRING;

BEGIN

Write ('Введите, пожалуйста, слово: ');

ReadLn (Words);

WriteLn;

WriteLn ('Это слово состоит из ', Length (Words):3, ' букв!');

END.

Функция UpCase позволяет преобразовывать символ любой литеры из строчного в прописной. Эта функция рассчитана на обработку отдельного символа. Поэтому для обработки строки символов с помощью этой функции приходится организовывать цикл.

Следующий пример иллюстрирует, как с помощью функции UpCase можно заменить все строчные буквы в строке на прописные:

PROGRAM Demo_function_UPCASE;

VAR

Words: STRING;

i: BYTE;

BEGIN

Words := 'Фирма Microsoft';

FOR i := 1 TO Length (Words) DO

Words[i] := UpCase (Words[i]);

WriteLn(Words); {Выводится текст 'Фирма MICROSOFT'}

END.

Функция Copy

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

имя строки, v из которой должен извлекаться копируемый фрагмент

позицию в строке, начиная с которой будет копироваться фрагмент

число копируемых символов.

Функция Pos

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

Процедуры Insert и Delete

С помощью процедур Insert и Delete Вы можете: вставить фрагмент из одной строки в другую, удалить фрагмент из строки.

Процедура Insert вставляет в исходную строку, начиная с указанной позиции, какую-либо другую строку. Оператор Insert(Word1,Words,4); указывает ТП, что необходимо в строку Words, начиная с 4-ой позиции (перед 4-ой позицией), ВСТАВИТЬ строку Word1.

Процедура Delete удаляет в исходной строке фрагмент определенной длины, начинающийся с указанной позиции. Так, оператор Delete(Words,2,3); удаляет из строки Words фрагмент, состоящий из трех символов и начинающийся со второй позиции.

Проиллюстрируем возможности этих двух процедур на хорошо знакомом нам слове "компьютеризация".

PROGRAM Demo_function_insert_and_delete;

VAR

Words: STRING[79];

Word1: STRING[20];

BEGIN

WriteLn;

Words := 'компьютеризация';

WriteLn(Words);

Delete(Words,1,7);

WriteLn(Words);

Delete(Words,3,2);

WriteLn(Words);

Word1 := 'Г';

Insert(Word1,Words,1);

WriteLn(Words);

Word1 := 'не';

Insert(Word1,Words,3);

WriteLn(Words);

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]