Program proga;var i, m, k, s1, s2:integer;beginfor i:=10 to 99 do begin m:=i;s1:= m mod 10 + m div 10;k:=i*2;s2:= k mod 10 + k div 10;if (s2 - s1 = 5) then write(i, ', '); end;end.
Для перевода из двоичной в шестнадцатеричный надо код разделить на тетрады (на группы по 4 цифры): 0101 1101 1000 1010 1010 1111 0010 1010 Если слева недостаточно цифр до тетрады, то слева добавляем нули. Далее переводим тетрады в шестнадцатеричный код с таблицы: 0000 => 0 0001 => 1 0010 => 2 0011 => 3 0100 => 4 0101 => 5 0110 => 6 0111 => 7 1000 => 8 1001 => 9 1010 => A 1011 => B 1100 => C 1101 => D 1110 => E 1111 => F 0101 1101 1000 1010 1010 1111 0010 1010 = 5D8AAF2A
Для перевода в восьмеричный код делаем аналогично, только на двоичный код делим на группы по 3 цифры: 001 011 101 100 010 101 010 111 100 101 010 И также если не хватает до 3-ех цифр, то слева добавляем нули. Затем переводим по аналогичной таблице: 000 => 0 001 => 1 010 => 2 011 => 3 100 => 4 101 => 5 110 => 6 111 => 7 001 011 101 100 010 101 010 111 100 101 010 = 13542527452
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while