Чтобы перевести целое число Х из 10-ной системы в любую другую с основанием Q:1. делим Х на Q, в результате чего получается целая часть частного и остаток (может быть равен нулю, если разделилось нацело).2. если полученная целая часть частного меньше Q, переходим к шагу 3. Если равно или больше Q, снова делим целую часть частного на Q, как описано в шаге 1. Внимание: делится только целая часть, остаток в делении не участвует (он пригодится позже).3. все полученные остатки и последняя целая часть частного (меньшая, чем Q) преобразуются в соответствии с таблицей перевода в цифры той системы счисления, в которую выполняется перевод. Иными словами, если, к примеру, при переводе в 16-ную систему у вас получился остаток 12, то его нужно преобразовать в 16-ную цифру С.4. Получаем ответ. Его первая (старшая) цифра - последнее частное, а остальные - остатки от деления, записанные в порядке, обратном порядку их получения.Система счисления – это представления любого числа с определенного набора символов, называемых цифрами. Основание системы счисления – это количество цифр, используемых в данной системе счисления.Позиционными называются системы счисления, в которых значение цифры зависит от ее места (позиции) в записи числа. Непозиционными называются системы счисления, в которых значение цифры не зависит от ее места (позиции) в записи числа.Позиционной является привычная для нас в повседневной жизни десятичная система счисления, в которой значение (вес) цифры зависит от ее позиции в записи числа. В числе 1111 одна и та же цифра 1 означает последовательно единицу, десяток, сотню, тысячу.Все системы счисления, используемые в информатике (двоичная, восьмеричная, шестнадцатеричная и т. д.), являются позиционными. Это важно, т. к. правила образования чисел, перевода из одной системы в другую, выполнения арифметических операций во всех позиционных системах аналогичны.Непозиционной системой счисления является, например, римская. Правила выполнения арифметических операций в непозиционных системах счисления совсем иные.В 2-ной системе основание равно 2, т.е. используется всего 2 цифры - 0 и 1. В 8-ной основание равно 8, используются цифры от 0 до 7. В 16-ной системе основание равно 16, используются цифры от 0 до 15. Использование цифр 10, 11, 12, 13, 14, 15 в записи чисел неудобно, т. к. трудно отличить, например, цифру 12 от двух цифр – 1 и 2. Поэтому условились цифры от 10 до 15 обозначать латинскими буквами в порядке алфавита A, B, C, D, E, F.
Здесь пришлось учитывать положительные и отрицательные числа, т.к. длина строки с отрицательным числом включает в себя и знак минус. Поэтому в некоторых местах программы я добавлю пояснение.
var n,p:integer; s: string; begin write ('Введите число: '); readln (n); if n<0 then n:=-n; // отрицательное число переделываем в положительное, чтобы "длина строки" ниже не получилась больше количества цифр в числе str(n,s); // преобразуем число в строку, чтобы узнать длину числа (количество цифр) if (length(s) mod 2)=0 then n:=n div 10; // проверяем длину числа на четность. так как нам нужны цифры с НЕЧЕТНЫХ мест, убираем из числа последнюю цифру, которая стоит на ЧЕТНОМ месте: p:=1; while n>=1 do begin // организуем цикл ПОКА число не станет меньше единицы (в цикле мы будем отрезать от него по две цифры) p:=p*(n mod 10); // произведение умножаем на последнюю цифру числа (остаток от деления числа на 10) n:=n div 100; // отрезаем от числа 2 последние цифры. (в последней итерации цикла оно примет вид 0,0х, т.е. будет больше 0, но меньше 1) end; writeln; writeln ('Произведение цифр,которые расположены на нечётных позициях, = ',p); end.
Проимер:
Введите число: -2323 Произведение цифр,которые расположены на нечётных позициях, = 4
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку