Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

WriteLn( 'Неправильный ввод')

until X > 0;

Half:= X div 2;

Divider:= 2;

i: = 0;

While Divider <= Half do

Begin

if X mod Divider = 0

Then

Begin

inc(i); {увеличение счетчика на единицу}

WriteLn(i, '-й делитель равен:' Divider)

end;

inc(Divider) {увеличение делителя на единицу}

end;

if i=0

Then

WriteLn('Делителей нет');

WriteLn('Конец решения')

End.

 

  =0,001

Содержание отчета (см. п. 1.10)

4.9. Контрольные вопросы

1. Каково назначение условных операторов повтора (циклов)?

2. Какие требования предъявляются к выражениям, управляющим повторениями?

3. В чем отличия операторов повтора while и repeat?

4. В каких случаях предпочтительнее использовать для организации циклов оператор повтора for? Что записывается в заголовке этого оператора?

5. Какие правила пунктуации необходимо соблюдать при записи операторов?

6. Что такое вложенные циклы? Какие дополнительные условия необходимо соблюдать при организации вложенных циклов?

 

 

 

Лабораторная работа № 5

Разработка программ обработки символьных и строковых данных

Цель работы

Приобретение навыков разработки программ отработки символьных и строковых данных на языке Turbo Pascal.

Задание на лабораторную работу

Составить программу обработки строковых данных заданной структуры (в соответствии с вариантом задания (п. 5.7)) и преобразования исходных данных.

Требования к программе

Программа должна выполнять следующие действия:

– ввод данных и вывод сообщений-подсказок перед вводом данных;

– вывод результатов:

– преобразования: выражения типа байт в символ (Chr); изображения символа в код типа байт (Ord); числа (целого или вещественного) в строку (Str) и вывод строки; строки в число целого или вещественного типа (Val) и вывод результатов преобразований.

Порядок выполнения работы

1. Составить вариант задания (п. 5.7, таблицы 5.4, 5, 5.6)

2. Изучить операторы определения переменных символьного и строкового типа (п. 5.5).

3. Разработать и отладить программу обработки строковых данных, преобразования данных.

4. Устно ответить на контрольные вопросы (п. 5.9).

5. Оформить отчет (см. п. 1.10).

5.5. Справки по операторам определения и обработки символьных и строковых данных на языке Turbo Pascal

5.5.1. Операторы определения и обработки символьных данных

Тип данных CHAR обозначает множество символов ASCII, коды которых представлены в таблице (см. приложение 1). Диапазон значений кодов от 0 до 255. Первые 32 символа таблицы кодов ASCII являются управляющими символами, используемыми при работе с внешними устройствами и передаче данных.

Переменная типа CHAR имеет длину 1 байт. Символьные константы задаются путем заключения отдельного символа в апострофы.

Например,

в разделе констант: const sym1 = ‘A’;

или в операторах присваивания: S: = ’B’;

или в выражениях: S > ‘A’.

Переменные символьного типа, например S1 и S2, определяются в разделе переменных по правилу:

var S1, S2: char;

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

Информация о функциях для переменных типа Сhar дана в таблице 5.2.


Таблица 5.2

Назначение функции Идентификатор Тип аргумента Тип функции Пример
Преобразование выражения типа байт в символ Chr Byte char x:=68; y:= chr(x); {y='D'} y:=chr(2*x-5); {y='Г'}
Преобразование изображения символа в код типа байт Ord Char Byte x:='A'; y:=ord(x); {y=128}
Возвращение предыдущего символа Pred Char Char x:='Б'; y:=pred(x); {y='A'}
Возвращение следующего символа Succ Char Char x:='Г'; y:=succ(x); {y='Д'}
Преобразование строчной буквы в прописную Upcase Char Char Ch:=’d’ Y:=Upcase(Ch) {Y=’D’}

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

Строка – это последовательность символов кодовой таблицы персонального компьютера.

Доступ к отдельному символу может быть получен путем ссылки на него при помощи индекса. Байт в позиции 0 (доступный лишь при отмене проверки диапазона) хранит число,представляющее длину текущего значения переменной типа STRING.

Применение строковых переменных в качестве селектора в операторе CASE недопустимо.

Формат определения констант строкового типа:

Const <идентификатор>=<значение>;

Например,... С1 = ‘строка 1’;...

Формат определения переменных строкового типа:

{Описание переменной типа String с помощью заданного программистом типа}

Type

<имя типа> = string[максимальная длина строки];

Var

<идентификатор,...>:<имя типа>;

{Описание переменной типа String без заданного программистом типа}

<идентификатор,...>:string[максимальная длина строки];

Максимальная длина строки не более 255; значение 255 можно не задавать.

Пример описания строк и считывания строки:

Program StrTest;

const

S1='Начало работы программы’ {Пример константы строкового типа};

var

S2: string[10];

Begin

WriteLn(S1); {Вывод значения строковой константы}

Write(' Введите строку:');

ReadLn(S2);

WriteLn(' Длина введенной строки ',S,' равна ',ord(S2[0]));

End.

Запись S[0] дает доступ к нулевому байту, содержащему значение текущей длины строки.

Значение нулевого байта не должно превышать 255, но нарушение этого правила не вызывает программного прерывания, так как директива компилятора R по умолчанию находится в пассивном состоянии {$R-}. Для обеспечения строгого контроля за диапазоном допустимых значений индекса следует перевести директиву R в активное состояние {$R+}. Активный режим R устанавливается на стадии отладки программ.

Строковые выражения

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

Над строками могут выполняться операции отношения и сцепления (конкатенации):

1. Операции отношения: <,>, =, <>, >=, <=. Результат операции отношения будет иметь тип BOOLEAN. Строки сравниваются посимвольно слева направо. При обнаружении первого несовпадающего символа принимается решение о <больше> или <меньше> в соответствии с таблицей кодов ASCII. Если две сравниваемые строки имеют различную длину, но совпадают вплоть до последнего символа более короткой строки, то более короткая строка считается меньшей.

Например:

'Pascal'='pascal' -> false

'prim'<'primer' -> true

'+'<'-' -> true

2. Сцепление: +. Использование знака + позволяет разместить строки одну за другой.

Например:

'Новый'+' '+'год'='Новый год';

Операция + дает тот же результат, что и функция CONCAT, присутствующая в языке Turbo Pascal для обеспечения его совместимости с другими версиями (описывается ниже).



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 318; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.21.247.78 (0.007 с.)