Stránka 1 z 1

6-5-2 Tajné výpočty

Napsal: 05-02-2020 15:21
od meloun42
Ahoj,
jen se chci zeptat..
Pokud je jejich asociativita R, bude se naopak vyhodnocovat zprava doleva. Tedy například výraz 1 − 2 + 3 se stejnou prioritou pro sčítání i odčítání a asociativitou zleva by se vyhodnotil jako 2, zatímco zprava jako −4.
Nemá být tento výraz vyhodnocen z prava jako 4 a ne -4?
A nějaké ukázkové vstupy mi taky nesedí. Pokud jsem to špatně pochopil, dejte vědět, děkuji.

Re: 6-5-2 Tajné výpočty

Napsal: 05-02-2020 18:12
od sykoram
Ahoj,
já jsem to pochopil takto:

Máš výraz: 1 - 2 + 3

Asociativita R, takže se bude vyhodnocovat zprava doleva - tj. napřed +, až poté -
0. 1 - 2 + 3
1. 1 - 5
2. -4

Se závorkami by to bylo takto:
Asociativita L (pro nás u sčítání a odčítání běžné):
(1 - 2) + 3
= 2
Asociativita R:
1 - (2 + 3)
= -4

Doufám, že jsem to já pochopil správně a poradil ti.

Re: 6-5-2 Tajné výpočty

Napsal: 05-02-2020 19:38
od MiNo
Ahoj,

díky za vysvětlení, teď už mi ten úplně první příklad dává smysl. Pořad si ale nevím rady jak se dostat k výsledku 1 z tohoto vstupu

Kód: Vybrat vše

4 2
+ + 2
- - 2
* * 1
/ / 1
L L
1 + 2 - 3 * 4 / 5
Myslel bych si že:

Kód: Vybrat vše

1. 3 * 4    =>    1 + 2 - 12 / 5
2. 12 / 5    =>    1 + 2 - 2.4
3. ...
A odsuď už se asi k 1 nedostanu

Re: 6-5-2 Tajné výpočty

Napsal: 05-02-2020 19:48
od meloun42
Moc děkuji, teď už to šlape jak má.. Bral jsem to moc doslova a měnil i směr operací.

Re: 6-5-2 Tajné výpočty

Napsal: 05-02-2020 20:07
od meloun42
Ahoj,
toto odpovídá tvoji otázku.
Pokud se kdekoliv ve výrazu vyskytuje operace dělení, uvažujeme vždy dolní celou část mezivýsledku, neboli zaokrouhlení dolů na celá čísla.

Re: 6-5-2 Tajné výpočty

Napsal: 15-02-2020 22:23
od MiNo
Ahoj, můžu se zeptat co máme vypsat když nastane dělení nulou? Nebo dělení nulou při správném postupu nikdy nenastane? Řešení mi vychází na ukázkových vstupech ale padá mi to na těch vygenerovaných :(

Re: 6-5-2 Tajné výpočty

Napsal: 16-02-2020 14:17
od mkucera
MiNo píše:
15-02-2020 22:23
Ahoj, můžu se zeptat co máme vypsat když nastane dělení nulou? Nebo dělení nulou při správném postupu nikdy nenastane? Řešení mi vychází na ukázkových vstupech ale padá mi to na těch vygenerovaných :(
Ahoj, dělení nulou by při správném postupu skutečně nastat nemělo. Zkus program ještě zkontrolovat, nejspíš tam bude někde chybka.

Držím palce,
Martin