Помощь - Поиск - Пользователи - Календарь
Полная версия: подпрограммы сложения, вычитания, умножения чисел
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
car
Помогите, пожалуйста, вот с такой программой
честно говоря, даже не представляю, как это все реализовать

Написать набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления: а) сложение; б) вычитание; в) умножение; г) деление; д) перевод из двоичной системы счисления в шестнадцатеричную; е) перевод из шестнадцатеричной системы счисления в десятичную; ж) функция проверки правильности записи числа в шестнадцатеричной системе счисления; з) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
Используя их, решить задачи:
1) Возвести число в степень (основание и показатель степени записаны в шестнадцатеричной системе счисления). Ответ выдать в шестнадцатеричной и десятичной системах счисления.
2) Дан массив A – массив чисел, записанных в шестнадцатеричной системе счисления. Отсортировать его в порядке убывания. Ответ выдать в шестнадцатеричной и десятичной системах счисления.
volvo
Вот то, что тебе поможет:
FAQ: Общие вопросы по математике (системы счисления)
car
большое спасибо.
а со второй частью помогите пожалуйста, а именно пункты ж и з
volvo
Цитата
ж) функция проверки правильности записи числа в шестнадцатеричной системе счисления;
- Число хранится в виде строки, так? Когда запись числа будет неверной? Когда в строке присутствуют буквы, отличные от 'A' .. 'F' . Следовательно:
function check_hex(s: string): boolean;
var
i: byte;
flag: boolean;
begin
i := 1; flag := true;
while (i <= length(s)) and flag do begin
flag := (upcase(s[i]) in ['0' .. '9', 'A' .. 'F']); inc(i)
end;
check_hex := flag
end;


Цитата
з) функции, реализующие операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше)

Совершенно аналогично сравнению строк:
если представить что a = $129 и b = $129A, то их строковое представление будет:
sA = '129' и sB = '129A'.

При этом
sA < sB даст True (как и "a < b")
sB > sA даст False (как и "b > a")
и т.д.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.