Вы находитесь на странице: 1из 8

Реализация алгоритма перевода

числа из двоичной системы


счисления в десятичную на языке
Паскаль

Криваксин Андрей Викторович


Задача
Перевести число 11101 из двоичной системы
счисления в десятичную

Рассмотреть процесс работы программы на


языке Паскаль
Текст программы
function step(x:integer):longint;
var i:integer; st:longint;
begin Зеленым цветом выделена
if x=0 then step:=1 else begin функция возведения числа 2 в
st:=1; степень
for i:=1 to x do begin
st:=st*2;
step:=st;
end; X – аргумент функции – показатель степени
end;
var k,a,b,d,s:longint; Функция начинается с условия: если
begin показатель степени равен 0, то функция
s:=0; k:=0; возвращает 1
readln(a);
repeat Если условие не выполняется: выполняется
b:=a mod 10; цикл со счетчиком. Цифра 2 перемножается
d:=a div 10; столько раз, чему равен аргумент Х.
s:=s+b*step(k); Функция возвращает значение степени
k:=k+1; числа 2.
a:=d;
until d=0;
writeln(s);
end.
Readln(a) – команда которая просит нас
ввести с клавиатуры двоичное число.

Примечание: число не должно содержать


цифр больше 10, т.к. мы используем тип
данных LONGINT
Введем число
11101
Рассмотрим работу
цикла с постусловием
на примере введенного
числа 11101
Рассмотрим работу цикла
S=1+0*2=1
S=5+1*8=13
S=0+1*1=1
S=1+1*4=5
S=13+1*16=29
s:=0; 11101 0 0
k:=0; a S K b d Step(k)
readln(a);
d≠0 1110 1 1 1
repeat Начало цикла
b:=a mod 10; 1110 1 d≠0 111 1 2 0 111 2
d:=a div 10; 1110 1
d≠0 11 5 3 1 11 4
s:=s+b*step(k);
k:=k+1; d≠0 1 13 4 1 1 8
a:=d;
d=0 0 29 5 1 0 16
until d=0;

29
Спасибо за внимание
сайт: krivaksin.ru
(Информатика в школе)

Вам также может понравиться