Program ToDec;
Uses crt;
var s:string;
n,l,i:integer;
function Pow(x,y:integer):integer;
begin
if y>0 then Pow:=Pow(x,y-1)*x
else Pow:=1;
end;
function ToDec(A : string) : integer;
var L : Byte;
begin
if A = '' then ToDec := 0
else begin
L := length(A);
case A[1] of
'0' : ToDec := ToDec(Copy(A, 2, L - 1));
'1' : ToDec := Pow(2, L - 1) + ToDec(Copy(A, 2, L - 1));
end;
end;
end;
begin
clrscr;
write('Введите двоичное число: ');
readln(s);
writeln('Это число в десятичной системе : ', ToDec(S));
readkey;
end.
Поделитесь своими знаниями, ответьте на вопрос:
Решить в целых числах уравнение ( ax + b ) : ( cx + d ) = 0. входные данные вводятся 4 числа: a, b, c и d; c и d не равны нулю одновременно. выходные данные необходимо вывести все решения, если их число конечно, “no” (без кавычек), если решений нет, и “inf” (без кавычек), если решений бесконечно много. примеры входные данные 1 1 2 2 выходные данные no входные данные 2 -4 7 1 выходные данные 2
Сводим уравнение к системе:
{ ax + b = 0
{ cx + d ≠ 0
{ ax = -b
{ cx ≠ -d
Можно учесть все случаи, используя больше 16 условий, но я предпочту более оптимальный вариант, так как знаю как зависит количество корней линейного уравнения от коэффициентов.
Программа на паскале:
var a, b, c, d: real;
begin
read(a, b, c, d);
if (c = 0) and (d = 0) then writeln('NO')
else if (a = 0) and (b = 0) then writeln('INF')
else if a = 0 then writeln('NO')
else if c = 0 then writeln(-b/a)
else if b/a = d/c then writeln('NO')
else writeln(-b/a)
end.