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 18. 12. 2010 16:39

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Pocitadlo - C++

Čavte,
Mám nejaké takéto počítadlo, kde je 1,2,3 až n okienok v ktorých sa postupne menia čísla v rozsahu 1-5.
http://www.sdilej.eu/pics/4e2347673cc880d73998206270fdfaaa.png
Výpis by mal obsahovať všetky kombinácie.
teda:
pre n = 3
1 1 1
1 1 2
1 1 3
1 1 4
1 1 5
1 2 1
.  .  .
.  .  .
5 5 5
Ak by sme dopredu poznali n, nebol by to problém, ale čo ak n dopredu nepoznáme a hodnotu dostane až za behu programu...


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

  • (téma jako vyřešené označil(a) hradecek)

#2 18. 12. 2010 18:10

Dioxid
Příspěvky: 416
Reputace:   13 
 

Re: Pocitadlo - C++

Sice neznám C++, co třeba vytvářet aritmetickou posloupnost (s rozdílem 1) v desítkové soustavě, která má 5^n prvků?
0, 1, 2, 3, 4, 5, 6, ..., (5^n)-1, 5^n
A tu poté převádět do pětkové soustavy (reprezentované znaky 1,2,3,4,5) a vypisovat?

Druhou možností by bylo procházet všechna přirozená čísla od 10^(n-1) do 10^n. U nich bys kontroloval jestli se skládají jen z číslic 1,2,3,4,5 a případně vypsal.

Obě možnosti nejsou moc efektivní, v C ani C++ nedělám a tudíž to tam asi půjde udělat elegantněji.


Jsem omylný, proto ne vše, co jsem napsal, je zaručeně správně.
468

Offline

 

#3 18. 12. 2010 19:36 — Editoval FailED (18. 12. 2010 19:54)

FailED
Příspěvky: 1255
Reputace:   42 
 

Re: Pocitadlo - C++

↑ hradecek:
Čau, v pascalu by to mohlo vypadat nějak takhle:

Code:

var
  n: integer;
  a: array of integer;

procedure Pocitadlo(hloubka: integer);
var
  i:integer;
begin
  if hloubka>n then
  begin
    for i:=1 to n do
      write(a[i], ' ');
    writeln
  end
  else
  begin
    for i:=1 to 5 do
    begin
      a[hloubka]:=i;
      Pocitadlo(hloubka+1)
    end
  end
end;

begin
  read(n);
  setlength(a,n+1);
  Pocitadlo(1);
end.

Snad to pochopíš, přijde mi to lepší než nějaký pseudokód. Trik je v tom, že se ta čísla zapisují do nějakého globálního dynamického pole a procedura je vypíše až v příslušné hloubce rekurze.

Offline

 

#4 18. 12. 2010 19:40

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: Pocitadlo - C++

↑ FailED:
Hmmm a čo je Tiskni(1)...


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

#5 18. 12. 2010 19:49

FailED
Příspěvky: 1255
Reputace:   42 
 

Re: Pocitadlo - C++

↑ hradecek:

Už jsem to editoval, přejmenovával jsem :)

Offline

 

#6 18. 12. 2010 20:00

hradecek
Příspěvky: 772
Pozice: Student
Reputace:   25 
Web
 

Re: Pocitadlo - C++

↑ FailED:
Pekné, veľmi ti ďakujem ďakujem.


Netrápte sa nad svojimi problémami s matematikou, môžem vás uistiť, že tie moje sú ešte väčšie. ~~Albert Einstein~~
Jak spozná člověk, že není pitomec ? - Moudrý člověk to nepozná nikdy a blbci je to jedno. ~~Jak přicházejí básnici o iluze~~
Někteří lidi se nikdy nezmění. Anebo se rychle změní a pak se zase rychle změní nazpátek. ~~Homer Simpson~~

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson