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

Pascal.Желательно с объяснением


Pascal.Желательно с объяснением

Показать ответ
Ответ:
dianaknyazeva
dianaknyazeva
05.04.2021 17:58
Type
    bignum = array[1..100] of integer;

var
    a, b: bignum;
    i, j, k, n_a, n_b: integer;

procedure get_num(var m: bignum; var n: integer);
var
    i := 0;
    s: string;
begin
    write('Введите число = ');
    readln(s);
    s := trim(s);
    n := 0;
    for i := length(s) downto 1 do
        if s[i] in ['0'..'9'] then begin
            n := n + 1;
            m[n] := strtoint(s[i]);
        end;
end;

function more(a, b: bignum; n_a: integer): boolean;
var
    i: integer;
    f := false;
begin
    for i := n_a downto 1 do
    begin
        if a[i] > b[i] then f := true
        else if a[i] < b[i] then f := false;
        if a[i] <> b[i] then break;
    end;
    more := f;
end;

procedure show(m: bignum; n: integer);
var
    i: integer;
begin
    write('Вывод ');
    for i := n downto 1 do
        write(m[i]);
    writeln();
end;

begin
    get_num(a, n_a);
    get_num(b, n_b);
   
    while (n_a >= n_b) and more(a, b, n_a) do    
    begin
        if (a[n_a] > b[n_b]) then k := n_a - n_b
        else if n_a > n_b then k := n_a - n_b - 1
        else k := 0;
       
        for i := 1 to n_b do
        begin
            a[i + k] := a[i + k] - b[i];
            if a[i + k] < 0 then begin
                for j := i + k to n_a - 1 do
                begin
                    if a[j] >= 0 then break;
                    a[j] := a[j] + 10;
                    a[j + 1] := a[j + 1] - 1;
                end
            end;
        end;
        if a[n_a] = 0 then n_a := n_a - 1;
    end;
   
    show(a, n_a);
end.
0,0(0 оценок)
Ответ:
ivan1и2в3а4н5
ivan1и2в3а4н5
31.03.2023 11:56
Для того чтобы перевести из двоичной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью двойки (показатель системы из которой переводим).
Определяем степень (последнее число имеет нулевую степень, каждое следующее +1):
43210
11110
Получаем: 11110=1*2^4+1*2^3+1*2^2+1*2^1+0*2^0=16+8+4+2+0=30
11110 (2)=30 (10)

Для того чтобы перевести из восьмеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью восьмерки (показатель системы из которой переводим).
Определяем степень (последнее число имеет нулевую степень, каждое следующее +1):
210
372
Получаем: 372 (8) = 3*8^2+7*8^1+2*8^0=192+56+2=250 

Для того чтобы перевести из шестнадцатеричной системы счисления в десятичную необходимо сложить произведение цифры разряда со степенью шестнадцати (показатель системы из которой переводим).
Определяем степень (последнее число имеет нулевую степень, каждое следующее +1):
210
32А
Учитывая соответствие букв в шестнадцатеричной системе числам в десятичной:
А - 10
B - 11
C - 12
D - 13
E - 14
F - 15 
получаем: 32А (16) = 3*16^2+2*16^1+10*16^0=768+32+10=810.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота