Kezdőoldal » Számítástechnika » Programozás » Elkezdtem szabadidőmben...

Takaryo kérdése:

Elkezdtem szabadidőmben programozást tanulni a "Tanuljunk meg programozni Python nyelven" című könyvből. Viszont van egy feladat, amit nem tudok megcsinálni (sajnos eléggé az elején már). Szerintetek mi a megoldás? Alább a feladat -->

Figyelt kérdés

4.3-as gyakorlat:

Írjon egy programot, ami euróban kifejezett pénzösszegeket kanadai dollárba vált át és az eredményt egy táblázatban írja ki. A táblázatban a pénzösszegek <<geometriai haladvány>> szerint növekedjenek úgy, mint az alábbi példán:

1 euro = 1.65 dollár

2 euro = 3.30 dollár

4 euro = 6.60 dollár

8 euro = 13.20 dollár

stb.(16384 euronál kell megállni)


Na most.. én ezen rengeteget törtem a fejem, de nem jutottam semmire. Valaki le tudná ezt a feladatot vezetni nekem, hogy okulhassak belőle? Tudom, hogy a programozás arról is szól, hogy törjük a fejecskénket és magunk jöjjünk rá a dolgokra (hogy az agyunk ráálljon valóban a programozás nyelvére), de itt én nagyon elakadtam. Előre is köszönöm a segítséget :) .



2016. szept. 24. 18:06
 1/9 anonim ***** válasza:

Van egy while ciklusod, ennek a feltételében van az, hogy 16384-nél kell megállni.

Van egy, a ciklus előtt deklarált változód, 1 kezdőértékkel, amit minden ciklus végén megduplázol.

Van egy függvényed, ami átváltja az eurót kanadai dollárba.

A ciklus belsejében a duplázás előtt mindig kiíratod a szöveget.

2016. szept. 24. 18:13
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
100%

Nem nagyon tudom, hogy mi okozza a gondot.

Ehhez a feladathoz 3 dolog kell:

-Szorzás

-For ciklus

-Konzolra írás


Ezek közül melyik okozza a gondot?

2016. szept. 24. 18:58
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:

A feladat 3 részfeladatra bontható ahogy azt már fentebb is írták:


1.

Ki kell tudnod írni a konzolra egy szöveget:

"{} euro = {} dollár"


2.

Be kell tudnod helyettesíteni a szövegbe a megfelelő értékeket:

- Bal oldat a kettő hatványai vannak: 2**i

- Jobb oldalt ennek konstans szorosa: 1.65 * 2**i


3/a.

Tudnod kell csinálni egy ciklust ami a fentebb használt "i" ciklusváltozót lépteti addig, amíg el nem éred a 16384 eurót. Pl.: for i in range(0,15)


3/b.

Lehet ezt úgy is hogy egy while ciklussal mindig felszorzod a ciklusváltozód 2-vel amíg el nem éri a 16384 értéket:

n = 1

while n <= 16384:

. . kiír

. . n = n * 2

2016. szept. 24. 22:19
Hasznos számodra ez a válasz?
 4/9 A kérdező kommentje:

Először is köszönöm mindenkinek a gyors válaszokat! Másrészről hozzá kell tennem, hogy a könyv tematikája miatt én még nem ismerem a "For ciklust". Viszont attól függetlenül sokat segítettetek. Mutatom az én verziómat.


>>> a,b=1,1.65

>>> while a<=16384:

a=a*2

b=b*2

print (a, "euro=", b, "dollár")



2 euro= 3.3 dollár

4 euro= 6.6 dollár

8 euro= 13.2 dollár

16 euro= 26.4 dollár

32 euro= 52.8 dollár

64 euro= 105.6 dollár

128 euro= 211.2 dollár

256 euro= 422.4 dollár

512 euro= 844.8 dollár

1024 euro= 1689.6 dollár

2048 euro= 3379.2 dollár

4096 euro= 6758.4 dollár

8192 euro= 13516.8 dollár

16384 euro= 27033.6 dollár

32768 euro= 54067.2 dollár


Ezzel az a baj, hogy nem 1 euronál kezd, hanem 2-nél és nem 16384-nél végződik, hanem eggyel tovább lép. Mit rontottam el? Bármely építő jellegű kritikát szívesen fogadok :D. Tényleg tök kezdő vagyok, viszont már azzal is madarat lehetne velem fogatni, hogy idáig eljutottam.. nagyon tetszik a dolog :D!

2016. szept. 24. 23:52
 5/9 anonim ***** válasza:
Előbb magadod az értékeket (egy), elindítod a ciklust: igaz, tehát azonnal beszorozza kettővel, majd EZT írja ki. Ha előbb íratod ki az eredményt, és csak utána végzed el a szorzást, kiírja az egyet is. Illetve akkor nem fog 16384-nél sem tovább menni, mert jelenleg ellenőrzi 'a' értékét, pont 16384, erre még igaz a feltétel, beszorozza, kiírja.
2016. szept. 25. 01:24
Hasznos számodra ez a válasz?
 6/9 anonim ***** válasza:
Érdemes végiggondolni lépésről-lépésre, hogy mit is csinál a programod és akkor a harmadik lépésnél rájöhetsz magad is, hogy még mielőtt kiíratnád az 1 eurót már meg is szoroztad kettővel, így azt írja ki először.
2016. szept. 25. 10:34
Hasznos számodra ez a válasz?
 7/9 A kérdező kommentje:
Imádlak benneteket :D! Felcseréltem a szorzást és a kiírást és mááár működik is :D. Hmm.. szóval logikai sorrend vagy mifene ;) :P. Tetszik.. nagyon tetszik :D. És még egyszer köszönöm Nektek!!
2016. szept. 25. 14:45
 8/9 anonim ***** válasza:

Ha a könyv tematikája olyan, hogy a ciklusokat még nem tárgyalja, de kiajánl egy ilyen feladatot akkor:

a: a könyv kukába való (amire kisebb a valószinűség)

b: a feladatot ciklus nélkül kellene megoldani (ez utóbbi valószinűsége elég magas)


Konklúzió: Megismerkedtél a ciklus fogalmával, rendeltetésével, ami tiszta nyereség.

2016. szept. 25. 16:35
Hasznos számodra ez a válasz?
 9/9 A kérdező kommentje:
Köszi srácok :). Most tökre megvilágosodtam :D. Valahogy egyszerűbbnek is tűnik így az egész.. mármint kicsit logikát váltottam és sokkal lazább. Tényleg köszi ;) !
2016. szept. 25. 17:24

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!