• №1  на языке программирования Паскаль составить программу перевода из 16-чной системы счисления в систему счисления с основанием 10. 

    №2 Составить программу на ЯП Паскаль для перевода числа от 0 до 1000 из десятичной СС в двоичную СС. 
    Если введенное число не "попадает" в диапазон - уведомить об этом пользователя

     

     №3 на языке программирования Паскаль составить программу для перевода числа из 10-чной системы счисления в систему счисления с основанием 12 или 16 (количество разрядов на ваше усмотрение). 

Ответы 1

  • Задания жесткие, кину одну функцию, помню давненько её находил для перевода из 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;

    • Автор:

      mouse60
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years