Poslao: 11 Sep 2012 15:29
|
offline
- Predrag Djordjevic
- Novi MyCity građanin
- Pridružio: 13 Feb 2012
- Poruke: 25
- Gde živiš: Nis
|
Da li neko moze da mi napise program za pretvaranje dekadnog brojnog sistema u:
a)binarni sistem
b)sistem sa osnovom b
Pokusavao sam da ga resim ali ne mogu pa to ti je
PS:Ako moze jednostavniji program(ucio sam samo do nizova).
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 11 Sep 2012 19:15
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
Sta si pokusavao da napises i gde je zapelo?
Znas li kako se na papiru prevode iz jednog u drugi sistem?
|
|
|
|
|
Poslao: 11 Sep 2012 21:30
|
offline
- N1k0l4
- Prijatelj foruma
- Pridružio: 06 Sep 2005
- Poruke: 3800
- Gde živiš: Beograd
|
A sta si ubacio u program?
Jedna ideja:
Uzmes ostatak pri deljenju sa dva, sacuvas u neki niz, pa onda podelis sa 2, pa rezultat opet nadjes ostatak pri deljenju sa dva i sacuvas, pa opet delis sa dva i sve tako dok ne dobijes broj koji je manji od dva i onda ga samo dodas u niz. Niz ispises u inverznom smeru i dobices broj binarno:
primer
14 % 2 = 0 , 14:2 = 7
7 % 2 = 1 , 7:2 = 3
3 %2 = 1 , 3:2 = 1
DOPISES 1
i imas
0 1 1 1
Kad ispises u suprotnom smeru imas
1 1 1 0 sto je upravo 14 binarno
|
|
|
|
Poslao: 12 Sep 2012 00:21
|
offline
- Aleksandr1996
- Ugledni građanin
- Na odmoru xD
- Na odmoru xD
- Pridružio: 15 Feb 2012
- Poruke: 430
|
PROGRAM BinarniS;
VAR
broj,broj1,i,n:INTEGER;
binarniBroj:ARRAY OF INTEGER; { deklarisanje dinamickog niza za smestaj binarog broja. }
BEGIN
i := 0; { Incijalizujemo promenljivu na 0. }
WRITELN('Unesite broj (dekadni -> binarni): ');
READLN(broj); { Unosimo broj u promenljivu. }
broj1 := broj; { U privremenu promenljivu stavljamo vrednost promenljive broj. }
REPEAT
i := i + 1; // U ovoj petlji hocemo da izvuceo koliko ce puta
broj := broj DIV 2; // taj broj morati da se deli sa 2 dok nebude 0 da bi
UNTIL (broj=0); // utvrdili duzinu dinamickog niza.
SETLENGTH(binarniBroj,i); // Namestamo duzinu nzia ovom funkcijom
// Na prvom mestu ime niza a na drugom duzina u ovom slucaju promenljiva i. }
broj := broj1; // Vracamo nazad vrednost iz privremene promenljive
n := i; // Vrednost i prebacujemo u n za kasnije
REPEAT // Ova petlja se vrti sve dok promenljive broj
IF ((broj MOD 2) = 1) THEN // nije nula.
BEGIN // I ona ubacuje u niz "otpozadi" 1 ili 0'
binarniBroj[i] := 1; // u zavisnosti broj MOD 2.
END
ELSE
IF ((broj MOD 2) = 0) THEN
BEGIN
binarniBroj[i] := 0;
END;
broj := broj DIV 2; // Ovde vrsimo umanjivanje broja
i := i - 1; // Ovo je genijalno ;) Promenljiva i je zadrzala svoju vrednost
UNTIL (broj=0); // Tokom prve petlje (duzina niza) i sad je vrtimo samo unazad.
WRITELN; // Doterivanje izgleda.
WRITE('Broj u binarnom obliku je: ');
FOR i:=1 TO n DO
BEGIN
WRITE(binarniBroj[i]); // Sada petlja vrti od napred i tako dobijemo binaran broj.
END;
READLN; // Zaustavljanje programa.
END.
|
|
|
|
Poslao: 12 Sep 2012 11:41
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Zasto alociras niz duzine 'i' ? Koliko ja vidim tebe ce svaki put da bude duzine 1, dok ce broj N u binarnom zapisu da ima logN (osnove 2) + 1 cifara ...
Edit: Greska nisam vidio da ti je i u petlji, ali opet, zasto petlja kad imas formulu
|
|
|
|
Poslao: 12 Sep 2012 12:12
|
offline
- Aleksandr1996
- Ugledni građanin
- Na odmoru xD
- Na odmoru xD
- Pridružio: 15 Feb 2012
- Poruke: 430
|
Pa pazi ovo je najlakse za razumevanje a i u cemu je fora da sabijem nesta na 2-3 reda. Ali postoji jos jedna stvar ja ne znam formulu
|
|
|
|
|
|
Poslao: 12 Sep 2012 20:31
|
offline
- clzola
- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Znam da ne ucis, ali trebalo bi da odmah od pocetka na neki nacin razmisljas na takav nacin, da minimuzujes trosenje resursa i da malo koristis matematiku tamo gdje mozes
Al' dobro, program radi sto je najvaznije
|
|
|
|