Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!
Ösember számtan - python megoldás érdekelne...
Temimo
kérdése
210
Az ősember még csak egyes számrendszerben tudott számolni, azaz annyi jelet (vonalat) húzott,
amennyi a szám lenne. Ezt a számrendszert módosítjuk úgy, hogy a nullát is kezelhessük benne.
Minden számot az értékénél eggyel több vonallal ábrázolunk, például:
0 - │
1 - ││
2 - │││
...
Készíts programot, amely két szöveg típusú változóba beolvas egy-egy így ábrázolt pozitív egész számot, majd tényleges számmá alakításuk nélkül kiszámolja az összegüket, a különbségüket és a szorzatukat. Ellenőrizd, hogy az elsőből kivonható-e a második (az eredmény sem lehet negatív szám)!
Nagyjából úgy számol ahogy az ősember is megtehette volna egy marék pálcikával :
* Egyenként rakosgassa a pálcikákat
* Alkalmanként pár pálcikát félretesz és ha már van félretett pálcika akkor a félretevéssel kapcsolatos részműveletet többször nem végzi el
* Legbonyolultabb művelet, hogy 2 marék pálcáról megállapítja, hogy ugyanannyit tartalmaznak
0
2 hete nem aludtam:
Szerintem te azt csinálod, amit kér hogy ne, számmá alakítod őket. Az eredménynek szerintem ugyanúgy csak pálcának kéne lennie. És azért kéri, hogy ne alakítsd számmá, hogy feltűnnek-e olyan trükkök, hogy az összeadás az annyi, hogy egymás mellé írod a két bemenetet csak eggyel kevesebb pálcával stb.
1 éve0
VF:
Huh? Számok kizárólag a kikommentezett (ön)ellenőrzésre szolgáló részben van. A műveleteket tök számok nélkül végzi.
1 éve0
2 hete nem aludtam:
Oh, bocs, túl korán van még. Akarom mondani teszteltem, hogy figyelsz-e.
1 éve0
2 hete nem aludtam:
Átnézem rendesen és akkor írok megint.
1 éve0
VF:
Ez minden esetre ad némi támpontot arra nézve, hogy mennyi az esélye, hogy a kérdező segítségére legyen… :(
1 éve0
2 hete nem aludtam:
Szóval, nem tudom mi számít számmá alakításnak, kicsit feszegettem a határokat. Az első esetben átírtam a tiedet, hogy eggyel kevesebb for legyen. Ezt leszámítva pedig tömbként kezeltem őket és azt manipulálva csináltam pár alternatív megoldást.
1 éve0
2 hete nem aludtam:
Az összeadáshoz most így 2 verzió van ott, a különbséghez nem nyúltam, és a szorzást is csak tömb manipulációval oldottam meg: https://pastebin.com/4dmqHm541 éve0
VF:
Egen, a [:-1] index használatán én is elmélkedtem, de végül arra az elhatározásra jutottam, hogy szellemében túl közel áll a len()-1 -hez, úgyhogy inkább elkerülöm. Egyébként eleinte én is használtam inicializálást '|' értékkel, de aztán letettem róla az egységesség és rugalmasság kedvéért. (A feladat függőleges táblázat vonalat (https://unicode-table.com/en/2502/) használ.)
1 éve0
ifigazsi:
Irtam egyet replace-el, hátha átláthatóbb.
1 éve0
ifigazsi
válasza
Ez meg egy sztringes megoldás, replace-el. Nem tudom jó-e, vagy ez volt egyáltalán a feladat.
Módosítva: 1 éve
0
VF:
Apró zavart okozhat, hogy ha jól látom te nagy i betűket használtál, a feladat függőleges táblázat vonalat, én cső karaktert és lehet a tanár majd felkiáltójelet… Szóval azok a .replace('I', '', 1) megeshet, hogy nem fognak működni a kapott bemenő adattal.
1 éve0
ifigazsi:
Abszolút, akkor peldaul: a.: kiveszed a stringből a pálcika karaktert, amivel számolhat és lecseréled az "I"-ket. Rosszabb esetben, ha lehet kavics, pálcika, csont, akkor meg a lenti megoldás. (de nem hiszem, hogy így túl lenne spilázva))
1 éve0
ifigazsi
válasza
VF: igazából az csak segítség, most nincs karakterhez kötve, csak nem túl szép.
0
ifigazsi:
Annyit lehet meg kell tenni, hogy a fölös spaceket kiveszed a kód elején pl. "I I" legyen "II" , és akkor jó csontocskára, halszálkára stb.
1 éve0