Program na prevod z 2čis. sústavy do 10čis. sústavy a späť

15 jún

Program je vytvoreny v programe Lazarus preto ten typ int64;

 

program prevod;
uses crt;
var n,i,x,moc,pom,pom2,odloz:int64;
begin
writeln(‘zadaj cislo v 2 sustave’);
readln(n);

//z 2 cis sustavy do 10

moc:=1;
x:=0;
while n>0 do
begin
x:=x+(n mod 10)*moc;
moc:=moc*2;
n:=n div 10;
end;
write(x,’ ‘);

// z 10 sustavy do dvojkovej
writeln(‘zadaj v 10 sustave’);
readln(n);
odloz:=n;
pom:=0;
while n>0 do
begin
pom:=pom*10+(n mod 2);
n:=n div 2;

end;
writeln(‘neotocene cislo ‘,pom);

//otocenie cisla
while pom>0 do
begin
pom2:=pom2*10+(pom mod 10);
pom:=pom div 10;
end;
//ak je delitelne 2 tak musime pridat jednu nulu na konci
if odloz mod 2 = 0 then pom2:=pom2*10;
writeln(pom2);
readln;
end.

 

Autor: Timotej Stránouský

program project_dvojkova_prevod;
uses crt;
var a,i,a1,a2:int64;
m,j:integer;
label k ;
function mocnina_des(x:integer):int64;
var i,n:integer;
v:int64;

begin
v:=1;
for i:=x downto 1 do {funkcia ktora roby mocniny 10}
begin
v:=v*10;
end;
mocnina_des:=v;
end;
begin
write(‘Zadaj cislo ‘);
read(a);
writeln;
write(‘Do akej ciselnej sustavy ‘);
read(m);
if m > 10 then begin clrscr; write(‘Taky mudri zas nesom!’); goto k end; {To som ale vtipalek ;)}
a2:=0;
j:=1;
a1:=a1+(a mod m);
a:=a div m;
while a <> 0 do
begin {z desiatkovej do akejkolvek a1 je take ako ma byt}
a1:=a1+((a mod m)*mocnina_des(j));
a:=a div m;
inc(j);
end;
writeln(‘prenene ‘,a1);
while a1<>0 do
begin
a2:=(a2*10)+(a1 mod 10); {otocenie cisla}
a1:=a1 div 10;
end;
writeln;
while a2 <> 0 do
begin {naspat do desiatkovej}
a:=(a*m)+(a2 mod 10);
a2:=a2 div 10;
end;
write(‘znova premenene ‘,a);
k:
readkey
end.