Prohození čísel

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

tyna1098
nováček
Příspěvky: 3
Registrován: listopad 17
Pohlaví: Žena
Stav:
Offline

Prohození čísel

Příspěvekod tyna1098 » 23 lis 2017 11:48

Ahoj, mám v C# program na vypsání prvočíselných dvojic s tím, že na začátku zadáte interval, ze kterého je chcete najít. A já bych chtěla ošetřit, když někdo poplete hodnoty a zadá nejdřív třeba 22 a pak 11, aby se čísla prohodili a normálně je vypsalo.
A trochu se mi to nedaří. Prosím radu :).

Reklama
Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Prohození čísel

Příspěvekod atari » 23 lis 2017 12:07

To je triviální programátorská záležitost, popíšu slovy kod:
Když Prvnicislo je větší než Druhecislo potom:
Pomocna = Prvnicislo
Prvnicislo = Druhecislo
Druhecislo = Pomocna

Dodatečně přidáno po 26 minutách 1 vteřině:
Předpokládám, že jsi ten program nepsal, když nezvládáš tohle, takže bych ti to napsal v kodu, ale C# neumím. Na netu však najdeš tisíce návodů...

tyna1098
nováček
Příspěvky: 3
Registrován: listopad 17
Pohlaví: Žena
Stav:
Offline

Re: Prohození čísel

Příspěvekod tyna1098 » 23 lis 2017 13:11

jo jasně dík

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: Prohození čísel

Příspěvekod CZechBoY » 23 lis 2017 13:43

Dá se i aritmeticky bez použití dočasné proměnné.
Pokud nevadí angličtina: http://www.geeksforgeeks.org/swap-two-n ... -variable/
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Prohození čísel

Příspěvekod atari » 23 lis 2017 14:45

To je taky dobrý nápad, vypadá to cool, ale já to nedoporčuji, obzvlášť začátečníkům. Kód je stejně dlouhý, ale hůře se v tom vyznají, co to tam je za matematické operace a z jakého důvodu.

Smysl by to mělo jedině v případě, kdy je potřeba šetřit pamět, a tímto se ušetří jedna proměnná. V dnešní době to však považuji za bezvýznamné.

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Prohození čísel

Příspěvekod faraon » 23 lis 2017 15:50

Zbytečně dlouhé :lol:

Kód: Vybrat vše

a^=b^=a^=b;


Ale pro běžné účely bych to nepoužíval, leda že by šlo o soutěž v programátorské akrobacii ;-)
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
atari
Level 6
Level 6
Příspěvky: 3195
Registrován: říjen 08
Pohlaví: Muž
Stav:
Offline

Re: Prohození čísel

Příspěvekod atari » 23 lis 2017 16:39

Co to je prosím? Pokud si vzpomínám tak to je nějaký logický operátor.

Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7356
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: Prohození čísel

Příspěvekod faraon » 23 lis 2017 19:22

Bitový xor. Totéž jde udělat i s plusy a mínusy, ale tohle je takové hezčí na pohled :P
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti