Forum huvudsida -> Programmering -> Kalkylator
Sidor: 1
jockepockee | 21:36 - 27:e Februari 2007 | Post #1 | |
Medlem Inlägg: 192 Skicka PM |
Den klarar av att räkna upp till 3 tal med alla räknesätt. Ge gärna kritik på koden! -------------------------
|
Slash | 21:50 - 27:e Februari 2007 | Post #2 | |
Medlem Inlägg: 141 Skicka PM |
Rent spontant så tycker jag att det är väldigt mycket duplicerad kod. Det enda som skiljer mellan case-satserna är i stort sett bara två rader. Om du skulle försöka dra ut den gemensamma koden så hade du möjligen kunnat göra samma sak på lite mindre plats. Positivt är ju att du har välindenterad kod! ------------------------- Ingen sigantur! Senast redigerad 21:55 - 27:e Februari 2007 |
jockepockee | 22:12 - 27:e Februari 2007 | Post #3 | |
Medlem Inlägg: 192 Skicka PM |
vet men jag är inte så duktig på å koda kompakt -------------------------
|
Slash | 22:20 - 27:e Februari 2007 | Post #4 | |
Medlem Inlägg: 141 Skicka PM |
Tillexempel om du ska räkna något godtyckligt antal så kan en for-loop vara bra att använda (visserligen har du bara två eller tre). För att illustrera:
Kolla lite på det exemplet ser du var jag menar. Nu görs inmatningen för talet bara på ett ställe. EDIT Flyttade en liten förvirrande konstruktion. ------------------------- Ingen sigantur! Senast redigerad 22:26 - 27:e Februari 2007 |
Mulven | 17:03 - 6:e Mars 2007 | Post #5 | |
Medlem Inlägg: 10 Skicka PM |
Du har ingen felhantering om man skriver bokstäver hänger programmet sig. använd get(). Det går inte att dela med noll för då hänger också programmet. |
NetNinja | 20:11 - 6:e Mars 2007 | Post #6 | |
Medlem Inlägg: 116 Skicka PM |
Om man ska göra en optimerad miniäknare så finns det ingenting bättre än denna koden:
Försökt komma på något sätt att göra så att man kan skriva in längre uträkningar (ex. 2+2+2), men kan inte komma på något... -------------------------
Senast redigerad 20:12 - 6:e Mars 2007 |
Slash | 20:30 - 6:e Mars 2007 | Post #7 | |
Medlem Inlägg: 141 Skicka PM |
Citat av NetNinja: Om man ska göra en optimerad miniäknare så finns det ingenting bättre än denna koden: Försökt komma på något sätt att göra så att man kan skriva in längre uträkningar (ex. 2+2+2), men kan inte komma på något... Skrev faktiskt ihop en recursive descent-parser för just detta förr någon förmiddag när jag hade tråkigt. Tyvärr har jag inte fixat felhanteringen ordentligt (den är inte riktigt konsekvent överallt). Provkör den om du är intresserad: Kod! Den ska klara basic artimetik (+, -, *, /, ^) samt paranterser och egendefinierade funktioner (av typen T function(T value)) där T är typen som du valt expression parsern att vara (double i exemplet). Så för double fungerar sin, cos, abs etc. i cmath utmärkt. ,,ven konstanter kan man definiera. Main-funktionen hittas längst ner. EDIT. Ops, såg nu att jag har lagt till en grej fel. Rad 238 ska ju såklart vara "ep.addFunction("cos", cos); " och inget annat. ------------------------- Ingen sigantur! Senast redigerad 20:32 - 6:e Mars 2007 |
Sidor: 1
Forum huvudsida -> Programmering -> Kalkylator
Du får inte posta i den här tråden | Till toppen
Datum
2024-05-05 19:10
Vecka: 18
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.