Ну, условие крайне странное, я понимаю так, что числовой промежуток дан в 10тичной системе счисления, и каждое целое число на промежутке необходимо перевести в 16ричное. Если промежуток [28; 30], то это означает что туда входят такие целые числа как 28, 29, 30 (если промежуток обозначается квадратными скобками '[' и ']', то это включая числа что указаны его границами, если же круглыми '(' и ')', то не включая их.
Перейдем к переводу десятичных чисел в шестнадцатиричную систему счислени. Для этого делем число на 16, паралельно записывая его остаток и продолжая до тех пор, пока оно не станет меньше 16. 28 / 16 = 1; остаток 12
Тут ничего сложного, пользуемся табличкой переводов, смотрим, 12 из десятичной в 16ричной это буква C, а 1 оставляем как есть. Теперь запишим полученные числа: 1C - Это 28 в 16ричной
Точно так же переводим из 10тичной в 16ричную 29: 29/16 = 1; остаток 13 Получается 1D
Ну и как не трудно догадаться, 30 в 16ричной будет 1E. Но для наглядности проведем расчёты: 30/16=1; остаток 14
Постскриптум: — Задание сформулированно крайне не понятно и вот почему: Нижним индексом, по обыкновению, указывают систему счисления текущего числа, но тогда нет никакого смысла переводить в 16ричную систему из 16ричной. — Другой вариант, что 28 и 30 это числа указанные не в 16ричной, но они могут быть в любой системе счисления где больше 8 цифр :)
Если предерживаться первого предположения, то нужно просто записать все цифры 16ричной системы счисления от 28 до 30 включительно, тогда это будет: 28, 29, 30 Что вообще смысла не имеет, так что не претендую на идеально правильное решение, но это единственное адекватное, что пришло мне в голову. Может этот идеотизм как-то и по другому закручен :D
var s : string[50]; i, j, k : word; f : boolean; function isSpace(ch : char) : boolean; begin isSpace := false; if ch = ' ' then isSpace := true; end; begin f := false; repeat j := 0; writeln('введите строку, состоящую из 2 слов'); readln(s); for i := 1 to length(s) do if isSpace(s[i]) then begin inc(j); k := i; end; if j =1 then f := true; until f; write(copy(s, k + 1, length(s)), ' ', copy(s, 1, k - 1)); end. недавно такую писала :)
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку