Ahhoz, hogy mások kérdéseit és válaszait megtekinthesd, nem kell beregisztrálnod, azonban saját kérdés kiírásához ez szükséges!
Számológép
Nemmondomel
kérdése
184
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 hónapja
0
Nemmondomel:
Csak cli, nem kell semmilyen grafikai dolog
1 hónapja0
Nemmondomel:
csak számolja ki a dolgokat ha egy sorba írom
1 hónapja0
Nemmondomel:
az evallal az a baj, hogy nem értelmezi a !-et például
1 hónapja0
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 hónapja0
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 hónapja0
Nemmondomel:
Jutott esetleg valamire vele?
1 hónapja0
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 hónapja0
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 hónapja0
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 hónapja0
Nayem:
Összelöktem egyet neki, hátha így jó
1 hónapja0
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 hónapja1
VF:
Bocs, de volna itt egy pici melléfogás. Hasonlítsd össze: 11! + 1! = 39916801 vs. 1! + 11! = 12
1 hónapja0
Nayem:
Igaz Majd ranezek mi lehet a gond, de erdekes.
1 hónapja0
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 hónapja0
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 hónapja0
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 hónapja0
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.