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!
Számológép
Nemmondomel
kérdése
321
Tudnának segíteni az alábbi feladatban? Ha nem is az egész feladatot, akkor csak azt hogy, hogy induljak el rajta
Készíts számológépet.
+ osszead
- kivon
* szoroz
: oszt
^ negyzet
! faktorialis
a bekeres nem külön történik, hanem "2x2"
Jelenleg 1 felhasználó nézi ezt a kérdést.
python, programozás, informatika
0
Középiskola / Informatika
Válaszok
3
VF{ Informatikus }
válasza
(Ez nem válasz, csak hozzászólás a kérdéshez.)
Valami támpont még kellene arra vonatkozóan, hogy mit tanultatok amikor ezt feladták. Például GUI, TUI, CLI netalán webes kezelőfelülettel kéne?
Vagy a címbeli számológép nem zsebszámológép utánzatként értendő, hanem kifejezés kiértékelő? Esetleg valami REPL?
Módosítva: 1 éve
0
Nemmondomel:
Csak cli, nem kell semmilyen grafikai dolog
1 éve0
Nemmondomel:
csak számolja ki a dolgokat ha egy sorba írom
1 éve0
Nemmondomel:
az evallal az a baj, hogy nem értelmezi a !-et például
1 éve0
VF:
Értem én, csak példaként kérdeztem, hogy tisztázzuk a feladatot. Egyébként egy valamelyest hasonló kiértékelő írását elkezdtük a https://ehazi.hu/q/120752 -ben, csak Bash szkriptként. Csak ötletként. Faktoriális támogatás nincs benne.
1 éve0
Nemmondomel:
Annyira nem értek a programozáshoz, hogy értelmezzem az alábbi feladatot. Pythont tanulok az iskolában és annyira nem vagyunk még benne a dolgokban
1 éve0
Nemmondomel:
Jutott esetleg valamire vele?
1 éve0
VF:
Sajnálom, el kellett menjek. Egyelőre még gondolkozom, hogy mi lenne egy hihető megoldás. Illetve még volna kérdés is: zárójeleket kell tudjon kezelni?
1 éve0
2 hete nem aludtam:
Ha nagyon alap szinten vannak, akkor szerintem felesleges műveleti sorrendet vizsgálni és elég balról jobbra számolni. A windows-os default számológép is elég gyenge ilyen szempontból, gondolom valami ahhoz hasonló kellene.
1 éve0
VF:
Igen, ez is beletartozott a hihetőségen gondolkozásba. És azt hiszem a reguláris kifejezésekről is le kell mondani.
1 éve0
Nayem:
Összelöktem egyet neki, hátha így jó
1 éve0
Nayem{ Informatikus }
megoldása
Hello!
Láttam, hogy az eval( ) függvényre kitértetek, de a faktoriálissal gond adódott Írtam egy rövideke kódot, ami annyit csinál, hogy az eredeti feladatban megadott faktoriális számot/számokat kicseréli a kiszámolt értékére.
Pl.: "4*5!+3!-9**2!" itt megtalálja az 5!, 3! és 2!-t, majd kicseréli a kiszámolt értékeire: "4*120+6-9**2" . Így már ! nélkül van, szóval erre már használható az eval( ) függvény.
Inkább linkeltem, mert nem kell akkor tabozgatni, ha kimásolod (Tudom, hibakezelés nincs benne (NEGATÍV !), de egyébként működik. Ha esetleg ez nagy probléma, akkor szólj.)
VF:
Ügyes húzás az a „párhuzamos” másolat. Ami a tabozgatást illeti én userscripttel próbálok segíteni a nyomoron: https://ehazi.hu/q/1210281 éve1
VF:
Bocs, de volna itt egy pici melléfogás. Hasonlítsd össze: 11! + 1! = 39916801 vs. 1! + 11! = 12
1 éve0
Nayem:
Igaz Majd ranezek mi lehet a gond, de erdekes.
1 éve0
Nayem:
Egyelore nem ertem miert nem szamolja ki a 11 erteket, ha a 2. helyen all. Pedig a 11-et helyettesiti be a math.factorial() fuggvenybe. Majd gepen megnezem.
1 éve0
Nayem:
Rájöttem mi a gond. Az in használatánál a 11!-ben megtalálja az 1!-et és ezért nem végezte el. Csináltam egy újat, azt válaszként beküldöm.
1 éve0
VF:
Én inkább a 2. replace()-nek adtam volna egy 3. paramétert, hogy csak 1-enként cserélgessen. Akkor az 1! cseréje nem rondít bele a 11!-be, mert el sem jut odáig.
1 éve0
Nayem{ Informatikus }
válasza
Az megoldásként jelölt válaszomban VF talált egy hibát, amit kijavítottam. Ebben a verzióban annyi a változás, hogy a hatványozást "^" jellel kell beírni, ahogy egyébként írtad a kérdésben.