В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
milyukovnikita
milyukovnikita
06.04.2022 04:40 •  Информатика

№1 на языке программирования паскаль составить программу перевода из 16-чной системы счисления в систему счисления с основанием 10. №2 составить программу на яп паскаль для перевода числа от 0 до 1000 из десятичной сс в двоичную сс. если введенное число не "попадает" в диапазон - уведомить об этом пользователя №3 на языке программирования паскаль составить программу для перевода числа из 10-чной системы счисления в систему счисления с основанием 12 или 16 (количество разрядов на ваше усмотрение).

Показать ответ
Ответ:

Задания жесткие, кину одну функцию, помню давненько её находил для перевода из 16 в 10, могут быть ошибки не проверял

 


function HEX2DEC(HEX: string): LONGINT;

function Digt(Ch: CHAR): BYTE;

const
HEXDigts: string[16] = '0123456789ABCDEF';

var
I: BYTE;
N: BYTE;

begin
N := 0;
for I := 1 to Length(HEXDigts) do
if Ch = HEXDigts[I] then
N := I - 1;
Digt := N;
end;

const
HEXSet: set of CHAR = ['0'..'9', 'A'..'F'];

var
J: LONGINT;
Error: BOOLEAN;
DEC: LONGINT;

begin
DEC := 0;
Error := False;
for J := 1 to Length(HEX) do
begin
if not (UpCase(HEX[J]) in HEXSet) then
Error := True;
DEC := DEC + Digt(UpCase(HEX[J])) shl ((Length(HEX) - J) * 4);
{ 16^N = 2^(N * 4) }
{ N SHL ((Length(HEX) - J) * 4) = N * 16^(Length(HEX) - J) }
end;
if Error then
HEX2DEC := 0
else
HEX2DEC := DEC;
end;

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота