[ LordVader @ 28.03.2002. 21:37 ] @
Napisati program koji ce ispisati sve dvocifrene dekadske brojeve u binarnom sistemu, a kod kojih je binarni zapis simetrican, tj. cita se isto slijeva nadesno i sdesna nalijevo!
[ ivan_tnt @ 28.03.2002. 22:30 ] @
Imas li onaj najobicniji borlandov paskal. Hitno ga trebam, posalji barem link gdje ga mogu skinuti !
[ Riste Pejov @ 28.03.2002. 23:58 ] @
tesko nama ako buduci elektro inzinjeri traze pomoc oko ovakvih trivijalnih problema, ili kad bi bar znali malo vise binarne matematike .... ali nema veze
evo malo pomoci ... jedna od funkcije ima gresku :)
bar se malo pomuci da je nadjes

prvo funkciju za mirror-ovanje binarnog stringa
Code:

funkcion mirror(str_in:string):string;
var
temp:string;
kinteger;
begin
temp:='';
for k=1 to length(str_in) do
temp:=temp+str_in[k];
mirror:=temp;
end;

onda funkcija za pronalazenje binarnog stringa od integera
Code:

function binstr(broj:integer):string;
var
temp:string;
int2bin:integer;
begin
bin2int:=broj;
temp:='';
if bin2int=0 then //ako je nula ne konvertiraj nista
begin
binstr:='0';
exit;
end;
while not(bin2int=1) do //sve dok ne stignes do keca dodaj ostatke delenja sa 2
begin
temp:=temp+inttostr(bin2int mod 2);
bin2int:=bin2int div 2;
end;
binstr:=temp;
end;

ako si vec primetio OVO JE OBRNUTI binarni string, sto znaci samo pozovemo mirror funkciju za dobijeni string i dobicemo pravi binarni string.
telo programa:
Code:

for m:=0 to 99 do
if mirror(binstr(m))=binstr(m) then
writeln(m);
[ tomdam @ 30.03.2002. 01:46 ] @
Mala ispravka.
U zahtevu se trazilo da se ispisu svi dvocifreni dekadni brojevi....itd. ali u binarnom brojnom sistemu, tako da dole u poslednjoj for petlji umesto
... writeln(m) treba da stoji writeln(binstr);

Toliko.
Pozdrav.
[ Riste Pejov @ 30.03.2002. 11:10 ] @
Kako se konvertuje iz dekadnog u binaran sistem ?
zeljeni broj podelimo sa 2 sve dok ne stignemo do jedan
i ostatke celobrojnog delenja sa 2 predstavljaju jedna cifra binarnog broja

evo da uzmemo broj 6, i prikazati binarno:

6 mod 2 = 0 (ostavimo nulu po strani, kao prvu cifru)
3 mod 2 = 1 ( sad je binarni broj 10 )
ostao je samo 1 i onda je jednostavno dodamo, i za binarnu shesticu dobili smo
110

greska je u drugoj funkciji, kad stigne do 1 ona jednostavno zavrsi, i u binarnog prikaza ce uvek faliti jedan 1 na kraj stringa.
Funkcija treba zavrsiti ovako:
Code:

...
binstr:=binstr+'1';
binstr:=temp; 
end;