Нужно написать программу, которая переводит шестнадцатеричное число в десятичное. У меня возникли проблемы, не знаю что делать с
буквами A B C D E F, вот что я написал: var a, x, y, n, q, p, z, i, w: integer; b: array [1..99999] of integer; begin writeln; write('Введите число: '); read(a); write('Введите систему, в которой находится число: '); read(w); q:=a; n:=1; if w=16 then begin write(q,' в шестнадцатеричной системе = '); repeat x:=a mod 10; y:=a div 10; b[n]:=x; a:=y; n:=n+1; until y=0; end; z:=1; for i:=1 to n-1 do begin b[i]:=b[i]*z; z:=z*w; end; p:=0; for i:=1 to n-1 do p:=p+b[i]; write(p,' в десятичной системе '); end.
begin Write('Введите шестнадцатиричное число: '); Readln(n); m := 0; while n[1] = '0' do delete(n, 1, 1); for i := 1 to length(n) do begin c := n[i]; case c of 'F', 'f': k := 15; 'E', 'e': k := 14; 'D', 'd': k := 13; 'C', 'c': k := 12; 'B', 'b': k := 11; 'A', 'a': k := 10; else k := Pos(c, d) - 1 end; m := 16 * m + k end; Writeln(n, '(16)=', m, '(10)') end.
Разбор <span>можно наше число сделать ближайшим четным: (N div 2) * 2 А потом прибавим 2. =) </span> Условие: <span>Дано целое число n. Выведите следующее за ним четное число. При решении этой задачи нельзя использовать условную инструкцию if и циклы</span>