Другие языки программирования и технологии

подправить программу

randomize: for 0 to x do X:=random(100); генерируется случайное число затем это число переводим writeln('переведи число из десятичной',x); write(' в двоичную систему и напиши свой ответ:'); readln(OTVET); написать лошическое выражение если верно тоесть если ввели проавильнй ответ то на экран выводится слово ВЕРНО если не верно тл на экран выводится НЕВЕРНО! ПРАВИЛЬНЫЙ ОТВЕТ= ЗДЕСЬ ПРОГРАММА ДОЛЖНА АВТОМАТИЧЕСКИ ВЫВОДИТЬ НА ЭКРАН ПРАВИЛЬНЫЙ ОТВЕТ
1) Функция переводит из десятичной (обычной) системы счисления
в двоичную.
DECIMAL -> BINARY

FUNCTION DEC2BIN(DEC: LONGINT): STRING;

VAR
BIN : STRING;
I, J: LONGINT;

BEGIN
IF DEC = 0 THEN BIN := '0'
ELSE
BEGIN
BIN := '';
I := 0;
WHILE (1 SHL (I + 1)) <=DEC DO I := I + 1;
{ (1 SHL (I + 1)) = 2^(I + 1) }
FOR J := 0 TO I DO
BEGIN
IF (DEC SHR (I - J)) = 1 THEN BIN := BIN + '1'
{ (DEC SHR (I - J)) = DEC DIV 2^(I - J) }
ELSE BIN := BIN + '0';
DEC := DEC AND ((1 SHL (I - J)) - 1);
{ DEC AND ((1 SHL (I - J)) - 1) = DEC MOD 2^(I - J) }
END;
END;
DEC2BIN := BIN;
END;

2) Функция переводит из двоичной системы счисления в десятичную
(обычную) .
BINARY -> DECIMAL

FUNCTION BIN2DEC(BIN: STRING): LONGINT;

VAR
J : LONGINT;
Error: BOOLEAN;
DEC : LONGINT;

BEGIN
DEC := 0;
Error := False;
FOR J := 1 TO Length(BIN) DO
BEGIN
IF (BIN[J] <>'0') AND (BIN[J] <>'1') THEN Error := True;
IF BIN[J] = '1' THEN DEC := DEC + (1 SHL (Length(BIN) - J));
{ (1 SHL (Length(BIN) - J)) = 2^(Length(BIN)- J) }
END;
IF Error THEN BIN2DEC := 0
ELSE BIN2DEC := DEC;
END;
Алексей Лошковский
Алексей Лошковский
2 758
Лучший ответ