Тип данных Char. Функции Ord, Chr.

Мы с Вами уже рассмотрели типы данных, которые позволяют хранить и обрабатывать целые числа (integer) и дробные числа (real). Теперь рассмотрим тип данных, позволяющий хранить и обрабатывать различные символы. Символы – это все буквы и значки, ...

Операции умножения и сложения в Pascal.

В данном уроке мы рассмотрим операции умножения и сложения в Pascal. Умножение в Pascal обозначается знаком «*», а сложение - знаком «+».

Функции Copy, Pos, процедуры Delete, Insert.

Функция Copy позволяет копировать из строки часть символов. Функция имеет 3 параметра. Copy (st, index, count). St-строка из которой копируют, Index-номер символа, с которого начинается копирование, Count-количество символов, которое будет ...

Циклы и массивы

Отображение на экране значений двумерного массива.

Если в результате работы вашей программы необходимо значения каждого элемента двумерного массива отобразить на экране монитора, то можно воспользоваться любым из двух способов, описанных ниже.

Работа со строковыми данными.

Написание большинства программ не обходится без строковых данных. Строковые данные используются при организации диалога для ввода исходных значений переменных, задания условий выполнения ...

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 0 до 15 и преобразует его к шестнадцатеричной системе счисления. Напомню, что в шестнадцатеричной системе счисления числа в диапазоне от 0 до 9 соответствуют таким же числам в десятичной системе счисления. Шестнадцатеричное число A соответствует числу 10 в десятичной

ispoljzovanie if, then, else

Перевод чисел в шестнадцатеричную систему счисления.






program vetvlenija5;
uses crt;
var n:integer;
ch:char;
begin
clrscr;
write ('Введите число от 0 до 15 ');
readln (n);
if (n>=0) and (n<=15) then
begin
if n<10 then
ch:=chr(ord('0')+ n)
else
ch:=chr(ord('A')+n-10);
writeln('Это число в шестнадцатеричной системе счисления равно ',ch)
end
else
writeln ('Вы ввели неправильное число');
readln
end.



В строке №3 записываем переменную для хранения вводимого нами числа (это будет число от 0 до 15).

В строке №4 записываем символьную переменную для хранения числа. Здесь важно различать эти 2 переменные. Обе переменные предназначены для хранения чисел, однако в строке №3 числа представляются как цифры, над которыми можно производить различные математические операции (например, 2+2=4). В строке №4 числа представляются как символы и над ними можно производить операции, предназначенные для символов.

Строка №7. На экран выводится сообщение.

Строка №8. Вводим любое число с клавиатуры.

В строке №9 идет проверка условия о том, что введенное число лежит в диапазоне от 0 до 15. Запись производится с помощью слова And. Сначала в круглых скобках записываем первое условие о том, что введенное нами число «n» больше либо равно 0 (n>=0). Затем пишем слово And (с англ. «и»). Затем в круглых скобках записывается второе условие о том, что введенное нами число «n» меньше либо равно 15 (n<=15). Слово And между 2-мя условиями означает, что оба этих условия должны выполняться одновременно. Строка №9 нужна для проверки правильности введенных чисел. Эти числа должны быть не меньше 0 и не больше 15.

Строка №11. Если условие в строке №9 выполняется, то начинает проверяться другое условие с помощью вложенного оператора If. Здесь проверяется условие о том, что введенное нами число меньше 10 (n<10). Если это условие соблюдается, то переменной «ch» присваивается  значение chr(ord('0')+ n) (строка №12). Запись chr(ord('0')+ n) означает, что сначала с помощью функции Ord вычисляется код символа 0 по Кодовой таблице ASCII (ord(‘0’)). Затем к этому коду прибавляется введенное нами число «n» (ord('0')+ n). Затем с помощью функции Chr вычисляется символ по полученному коду. Для наглядности рассмотрим пример. Предположим мы ввели с клавиатуры число 5. Это число запишется в переменную «n». Условие в строке №11 выполняется, поэтому будет выполнена операция присваивания в строке №12 (ch:=chr(ord('0')+ n)). Сначала подсчитывается Ord(‘0’). Числовой код символа 0 по Кодовой таблице ASCII равен 48. Затем к этому числу прибавляется значение переменной «n» (т.е. то значение, которое мы ввели с клавиатуры) (ord('0')+ n). Мы ввели число 5. 48+5=53. И последней выполняется функция Chr, т.е. числовой код 53 будет преобразован в символ согласно Кодовой таблице ASCII. Смотрим таблицу. Коду 53 соответствует символ 5. Это и будет результатом операции, записанной в строке №12.

Строка №13. Если условие в строке №11 не выполняется, т.е. если введенное нами число не меньше 10 (т.е. лежит в диапазоне от 10 до 15), то будет выполняться операция в строке №14 (ch:=chr(ord('A')+n-10)). Предположим мы ввели с клавиатуры число 15. Сначала подсчитывается числовой код символа «A». Он, согласно таблице, равен 65. К этому коду прибавляем «n». 65+15=80. Затем отнимаем от полученного числа 10. 80-10=70. И в конце функция Chr преобразует этот числовой код в символ. Коду 70 соответствует символ «F». Этот символ и будет результатом операции в строке №14.

Строка №15. Выводим на экран сообщение. Заметьте, что после Else (строка №13) должно выполняться сразу две операции (операция присваивания (строка №14) и операция вывода на экран (строка №15)). Поэтому всю конструкцию if…then…else необходимо заключить в операторные скобки begin…end. (строка №10 и №16).

Строка №17. Последний в программе else относится к первому if (строка №9). Т.е. если условие в строке №9 не выполняется (число, введенное с клавиатуры будет лежать за пределами диапазона от 0 до 15), то на экран выведется сообщение в строке №18.
После запуска программы введите любое число (например, 12).

ispoljzovanie if, then, else.

ispoljzovanie if, then, else..

Можете попробовать ввести другие числа (выходящие за пределы от 0 до 15).


Предыдущая статья : Использование вложенного оператора If.

Оглавление : Уроки Паскаль. Ветвления.

Следующая статья : Применение логических операций с оператором IF.


Комментарии  

 
+4 # Ниагара 05.12.2012 09:44
Отличная статья.
У меня тоже есть функция для представления чисел в шестнадцатеричн ой системе счисления. Она рекурсивная и не отображает начальные нули у чисел более 255
function hex(x: word): string;
const a: string=('012345 6789ABCDEF');
begin
if x
 
 
+1 # Нео 16.12.2012 13:58
Вау кто то кроме меня читает эти уроки :-)
 
 
0 # нуна 10.02.2013 16:34
конечно не только ты НЕО просто автор молодец!!!!
 
 
+1 # Даник 24.04.2015 18:50
А если у меня число больше 15?
 
 
-1 # Раиль 11.11.2016 21:48
Невозможно. Можно перевести в диапазоне от 0 до 15.
 
   ГлавнаяПаскальВетвления в ПаскальПеревод числа из десятичной системы счисления в шестнадцатеричную.