Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 11. 12. 2015 21:44 — Editoval armor (11. 12. 2015 21:50)

armor
Zelenáč
Příspěvky: 5
Reputace:   
 

vsetky n-ciferne bin cisla (pascal)

Ahoj mam problem s programom: na vstupe dostavame n a mam vypisat vsetky n-ciferne cisla v dvojkovej sustave aj s 0000,0001 a spol. Neviem prečo mi však program nefunguje. (Mam to riesit bez rekurzie). Vopred dakujem za rady.

Code:

program jn;
var a:array[1..64] of string;
    i,j,n,x,p:integer;
    one,zero,swap:char;
begin
one:='1';
zero:='0';
swap:=' ';
x:=1;
p:=1;
writeln('zadaj cislo od 1 po 6');
read(n);
for i:=1 to n do x:=x*2;
for i:=1 to n do begin
                 p:=p*2;
                 for j:=1 to x do begin
                                  if (j mod p)=1 then begin
                                                      swap:=zero;
                                                      zero:=one;
                                                      one:=swap;
                                                      a[j]:=a[j]+one;
                                                      end
                                                 else a[j]:=a[j]+one;


                                  end;
                 end;
for i:=1 to x do writeln(a[x]);
end.

Offline

 

#2 12. 12. 2015 11:24

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: vsetky n-ciferne bin cisla (pascal)

ahoj ↑ armor:,

Tomu kódu nerozumím, takže ani nevím, proč by vlastně fungovat měl. Já bych to udělal úplně jinak. Pro všechna binární n-ciferná čísla c platí $2^{n-1}\le c <2^n$. Takže bych napsal cyklus přes všechna tato čísla a každé z nich převedl do dvojkové soustavy.


Budoucnost patří aluminiu.

Offline

 

#3 12. 12. 2015 11:43

armor
Zelenáč
Příspěvky: 5
Reputace:   
 

Re: vsetky n-ciferne bin cisla (pascal)

Funguje to tak ze do stringov to priliepa jednotky a nuly. Na prvé miesto vždy 1,0,1,0,1,0... Na druhé 1,1,0,0,1,1,0,0... Na tretie 1,1,1,1,0,0,0,0... A tak ďalej podľa toho aké je N

Offline

 

#4 12. 12. 2015 12:08

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ armor:

A kde tam potom máš třeba 1000000 ? Nebo 1001000?


Budoucnost patří aluminiu.

Offline

 

#5 12. 12. 2015 12:12

armor
Zelenáč
Příspěvky: 5
Reputace:   
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ Eratosthenes: su tam len si to asi zle pochopil ten algoritmus co chcem naprogramovat funguje takto:
napr pre n=3 
pole s 8 stringami
1 2 3 4 5 6 7 8
____________
1 0 1 0 1 0 1 0  (1vrstva)
1 1 0 0 1 1 0 0  (2 vrstva)
1 1 1 1 0 0 0 0  (3 vrstva)

Offline

 

#6 12. 12. 2015 12:18 — Editoval Eratosthenes (12. 12. 2015 12:26)

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ armor:

Pochopil jsem. Fungovat by to mělo, až na to, že polovina z těch čísel není trojciferná. Pro trojciferné číslo je třeba použít "dvojciferný" algoritmus a ke čtyřem číslům, která tak vyjdou přilepit na první místo jedničku.


Budoucnost patří aluminiu.

Offline

 

#7 12. 12. 2015 12:24 — Editoval armor (12. 12. 2015 12:25)

armor
Zelenáč
Příspěvky: 5
Reputace:   
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ Eratosthenes: v zadaní mam aj vrátane tých čo začínajú nulami, čiže výstup pre trojku má obsahovať aj 0000,0001... Atď

Offline

 

#8 12. 12. 2015 12:27

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ armor:

Aha, pak by to mělo fungovat...


Budoucnost patří aluminiu.

Offline

 

#9 12. 12. 2015 12:29

Eratosthenes
Příspěvky: 3111
Reputace:   140 
 

Re: vsetky n-ciferne bin cisla (pascal)

↑ armor:

má tam

for i:=1 to x do writeln(a[x]);

zkus spíš

for i:=1 to x do writeln(a[i]); :-)


Budoucnost patří aluminiu.

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson