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 15. 11. 2009 14:52

r2d2
Příspěvky: 151
Reputace:   
 

PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

Ahoj,
chtěl jsem se zeptat jestli mi někdo neporadí jak V PASCALU mám generovat všechny variace operátorů +,-,*,/ tak aby neztratili svojí funkční hodnotu když je nemůžu do ničeho přiřadit.
Čili :

+  -  *  /
+  -  / *
atd.

ale potřebuju aby potom jsem je mohl vložit mezi čísla a pořád to dělalo že 3 + 3 = 6
Zkoušel jsem to přes char, holý nesmysl, přes předávání ascii hodnoty, taky mi to nejde. Nejlepší by bylo kdybych je dostal do pole, ale jak je mám do pole načíst?
V C++ by šli asi použít na toto makra(možná?) ale PASCAL.

Díky za rady či postřehy

Offline

 

#2 15. 11. 2009 16:56

plisna
Místo: Brno
Příspěvky: 1503
Reputace:   
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

↑ r2d2: dost dobre nechapu, co pak musi ty variace operatoru delat. muzes uvest nejaky priklad, treba pro + * - /?

Offline

 

#3 15. 11. 2009 17:36

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

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

A to chceš mít např. v EditBoxu v programu? Nebo to potřebuješ v kódu?

Offline

 

#4 15. 11. 2009 19:08

r2d2
Příspěvky: 151
Reputace:   
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

dejme tomu že budu mít tak 20 čísel potřeboval bych v tom případě udělat variaci těchto 4 operátorů na 19 a pak to rozházt mezi ty čísla a spočítat výsledky všech čísel, nevím jak bych to lépe popsal zajímá mě jestli jde nějak uložit v pascalu + do proměné aby pořád sčítalo, protože nevím jak mám vygenerovat všechny variace bez toho aby to bylo v poli

Offline

 

#5 15. 11. 2009 19:16

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

↑ r2d2:Bohužel toto nejde v žádném komplilovaném jazyku, co znám (PASCAL,C/C++,Java). Pro tento typ úloh je lepší např. PHP nebo Bash, možná Javascript. Musí to být v Pascalu? Pokud ne, jaké jazyky můžeš/umíš používat?


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#6 15. 11. 2009 19:35

r2d2
Příspěvky: 151
Reputace:   
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

musí tak v tom případě se to msí dát vyřešit nějak jinak, abch se přiznal je to úkol do školy a se zadáním následujícím:

Na prvním řádku dostane program dvě čísla N a K. Na druhém řádku pak následuje N přirozených čísel.
Program by měl vygenerovat všechny posloupnosti operátorů takové, že když se jednotlivé operátory vloží mezi zadaná čísla, bude hodnota takto vytvořeného výrazu rovna číslu K.
Operátory jsou přípustné pouze tyto: '+', '-', '*' a '/' (celočíselné dělení).
Každý nalezený výraz by měl být na samostatném řádku.
Příklad:
Vstup:
5 5
1 8 2 5 4

Výstup:
1+8+2/5-4
1+8-2/5-4
1+8/2/5+4
1-8*2+5*4
1-8/2/5+4
1*8-2-5+4
1*8-2-5/4
1*8/2+5-4
1*8/2+5/4
1*8/2*5/4

ale žádný jiný postup mě nenapadl. cokdyby těch čísel bylo třeba 20, co pak?

Offline

 

#7 15. 11. 2009 19:59

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

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

Do jaké míry je v pascalu možné pracovat s bity?
Kdyby sis označil např.
'*' jako 00
'/' jako 01
'+' jako 10 a
'-' jako 11
A potřeboval bys např. kombinace 4 operátorů, stačilo by ti pak číst po dvojicích bity všech hodnot, které jsou možné uložit do bytu.

Asi existuje nějaký jednoduchý algoritmus pro nalezení variací, zkus google.

Offline

 

#8 15. 11. 2009 20:14

Kondr
Veterán
Místo: Linz, Österreich
Příspěvky: 4246
Škola: FI MU 2013
Pozice: Vývojář, JKU
Reputace:   38 
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

↑ r2d2:Když těch čísel bude 20, tak si na výsledek počkáš nějaký ten měsíc,rok :)
Kdybych to programoval, tak bych generoval všechny N-1-prvkové variace čísel od 1 do 4 (odpovídají operátorům +,-,*,/) a pro každou z těchto variací zkusil vyhodnotit daný výraz. Generování variací je snadné, vyhodnocování výrazu bych dělal pomocí pomocného pole souciny.
Když chci vyhodnotit např. 3+4*5-9/5*4 tak: první číslo uložím do souciny[1]. Následující operace je +, založím proto nový součin. Do něj uložím následující číslo, tedy souciny[2]:=4. Další operace je *, proto souciny[2] vynásobím 5. Další operace je -, do souciny[3] uložím -9. Následně -9 celočíselně vydělím 5 a vynásobím 4. Nakonec všechny hodnoty v poli souciny posčítám.


BRKOS - matematický korespondenční seminář pro střední školy

Offline

 

#9 15. 11. 2009 20:18

r2d2
Příspěvky: 151
Reputace:   
 

Re: PASCAL : Generování všech variací +,-,*,/ tak aby tyto operátory .....

↑ Kondr:díky moc za reakci ale nejsem si jistý že vím jak to myslíš, jako že bych měl funkci na sčítání, odčítání, dělení a násobení a předával ty čísla funkcím?

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson