Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Процедуры преобразования типов

Листинг 9.1. Вывод строки в перевернутом виде и по отдельным словам | Преобразование строчных букв в заглавные | Понятие множества | Операции над множествами | Случайных неповторяющихся чисел | Определение и правила записи |


Читайте также:
  1. II. Порядок выплаты ежемесячной компенсации на оплату проезда до места проведения процедуры гемодиализа инвалидам, находящимся на постоянном диализном лечении.
  2. Oslash; Розрізняють такі види навчальних програм:типова, робоча
  3. Административно-государственные преобразования
  4. Административные процедуры как форма реализации компетенции органов внутренних дел.
  5. Административные регламенты как акты управления, устанавливающие административные процедуры.
  6. Арифметические преобразования при выполнении арифметических операций вида X op Y
  7. Аффинные преобразования на плоскости (сжатие).

Turbo Pascal позволяет преобразовывать данные числового типа в строку символов, а также преобразовывать строку в число, если она содержит по­следовательность символов, удовлетворяющую правилам записи чисел. Для этой цели имеется две процедуры: str и val.

Процедура str уже упоминалась, когда речь пила о выводе текста в графиче­ском режиме (см. разд. 8,4). Удобно использовать процедуру str для вставки числовых данных в какой-либо текст, т. к. операция конкатенации и про­цедура insert могут работать только со строковыми данными.

Вызов этой процедуры имеет вид:

О str (number, st) — преобразование числового значения величины number в строку st. После number может записываться формат, аналогичный формату вывода. Если в формате указано недостаточное для вывода ко­личество разрядов, поле вывода расширяется автоматически до нужной длины.

Например:

var Sl,S2,s3,s4: string; numl:integer;num2:real;

numl:=5; num2: -5,1 8;

str (numl,SI);str (numl:3,s2}; str(num2,s3);str(num2:3:1,s4);

! в результате sl='5'; S2=' 5';s3='5.78QOOOOOOOOOE+00';s4='5.8'; }

Соответственно, процедура val часто используется, чтобы преобразовать введенную с клавиатуры или прочитанную из файла строку в числовые данные.

П val (st, number, code) — преобразует значение st в величину целочислен­ного или вещественного типа и помещает результат в numder. code — це­лочисленная переменная. Если во время операции преобразования ошибки не обнаружено, значение code равно нулю, если ошибка обнару­жена (строковое значение не переводится в цифровое), code будет содер­жать номер позиции первого ошибочного символа, а значение number не определено.


Например:

sl:= '5.78'; s2:= '5,78'; val(sl,numl,codl);

val(s2,num2,cod2);

{ в результате codl=0, cod2=2 — второй символ ошибочный }

Обратите внимание — использование функции val позволяет избежать не­приятной ошибки выполнения Invalid numeric format, возникающей при не­правильном вводе числовых данных. Приходится прибегать к такой хитро­сти — вводить вместо числовой переменной строковую (в ней разрешены любые символы). После этого введенная строка преобразуется в число и, если преобразование невозможно, об этом выводится сообщение на русском языке. Чаще всего в таких случаях не прерывают программу, а просят поль­зователя ПОВТОРИТЬ ВВОД. ЗдеСЬ ОЧеНЬ удобно ИСПОЛЬЗОВатЬ ЦИКЛ repeat, Т. К.

гарантируется выполнение тела цикла хотя бы один раз. Например:

var s:string; n,error:integer; begin

repeat

write ('Введите число ')/' (просим ввести число, }
readln(s); { а вводим строку }

val(s,n,error); { преобразуем строку в число } if error>0 then writeln('Неверный символ № ',error) until error=0; { продолжение программы }

Еще один способ решения той же самой проблемы ошибок ввода числовых данных, основанный на использовании функции ioresuit в цикле repeat, рассматривался ранее (см. разд. 3.9.1). Все же более универсальным вариан­том представляется использование вспомогательной строки, т. к. в эгом случае можно не просто проверить правильность ввода, но даже исправить некоторые ошибки при вводе.


Дата добавления: 2015-11-14; просмотров: 44 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Операции над строками| И замена фрагментов текста

mybiblioteka.su - 2015-2024 год. (0.007 сек.)