Логические и символьные константы.

В данном уроке будет рассмотрено применение логических и символных констант. Логическая константа может принимать только 2 значения, либо True, либо False. В качестве значения символьной константы могут использоваться любые символы, которые есть в ...

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

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

Ввод символов с клавиатуры.

Ввод символов с клавиатуры почти не отличается от ввода чисел с клавиатуры. Для того чтобы ввести какие-то символы (буквы, знаки и т.д.) с клавиатуры необходимо для переменных использовать символьный тип данных Char.

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

Примеры линейных программ.

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

Линейные процессы вычислений.

Простейший алгоритм представляет собой цепочку блоков (операторов) от начального блока до конечного. Каждый блок должен быть выполнен один единственный раз. Это линейный алгоритм. Он отражает ...

Напишем программу, которая вводит с клавиатуры целое число в диапазоне от 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.


Комментарии  

 
+3 # Ниагара 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?
Ответить
 
 
0 # Раиль 11.11.2016 21:48
Невозможно. Можно перевести в диапазоне от 0 до 15.
Ответить
 

Добавить комментарий

Защитный код
Обновить

   ГлавнаяПаскальВетвления в ПаскальПеревод числа из десятичной системы счисления в шестнадцатеричную.