должно по идее получиться "нет худо без добра.", но у меня получилось
"нет худо бrз одра." может ты в условии что-то напутала? вот программа которая переводит
function Pow(a, x:integer):integer;
var
rez, i:integer;
begin
rez := 1;
for i := 1 to x do
rez := rez * a;
Pow := rez;
end;
function BinToDec(a:string):integer;
var
i ,r:integer;
begin
r := 0;
for i := length(a) downto 1 do
r := r + StrToInt(a[i]) * Pow(2, length(a) - i);
BinToDec := r;
end;
var
s:array[1..100] of string;
i:integer;
begin
s[1] := '11001101';
s[2] := '11100101';
s[3] := '11110010';
s[4] := '00100000';
s[5] := '11110101';
s[6] := '11110011';
s[7] := '11100100';
s[8] := '11100000';
s[9] := '00100000';
s[10] := '11100001';
s[11] := '1110010';
s[12] := '11100111';
s[13] := '00100000';
s[14] := '11101110';
s[15] := '11100001';
s[16] := '11110000';
s[17] := '11100000';
s[18] := '00101110';
for i := 1 to 18 do
write(chr(BinToDec(s[i])));
end.
const
AOper: array [0..3] of string = ('+', '-', '*', '/');
var
a, b, Oper: Integer;
r: Real;
begin
Randomize; // инициализация датчика случайных чисел
a := Random (1001);
b := Random (1001);
Oper := Random (4);
case Oper of
0: r := a + b;
1: r := a - b;
2: r := a * b;
3:if b <> 0 then begin
r := a / b;
end else begin
WriteLn ('Произошла ошибка при делении на ноль');
Exit;
end
else r := -1;
end;
WriteLn (a);
WriteLn (b);
WriteLn (Aoper [Oper]);
if (r >= 0) and (r - Trunc (r) = 0) then begin // если в результате получилось положительное целое число
WriteLn ('yes');
WriteLn (r :6 :0);
end else
WriteLn (' no');
ReadLn;
end.
Объяснение:
r - Trunc (r) // это выделение дробной части числа