This is a read-only archive of the old Scratch 1.x Forums.
Try searching the current Scratch discussion forums.

#1 2011-12-28 06:44:57

akhof
Scratcher
Registered: 2008-07-19
Posts: 500+

Hilfe bei Taschenrechner

Hallo!
Kann mir evt. jmd. sagen, wie man einen Taschenrechner programmiert, der PunktVorStrich beachtet  [also auch *mal* und *geteilt*].

Ich hab schoneinmal eine kleine Vorversion gemacht:

http://scratch.mit.edu/projects/akhof/2243940

Danke schoneinmla im Vorraus!

akhof  big_smile   big_smile   big_smile

Last edited by akhof (2011-12-28 06:52:37)


http://simpliciter.bplaced.net/templates/business4/images/logo.png

Offline

 

#2 2011-12-28 07:29:03

TM_
Scratcher
Registered: 2010-07-22
Posts: 500+

Re: Hilfe bei Taschenrechner

also ich hab hier mal ne kleine idee, müsste auch funktioneiren und leicht zu skripten sein:

Erstelle ne neue variable " Zwischenergebnis"

Nun sucht ein skript nach einem * zeichen, z.B. so:

setzte "X" auf 0
wiederhole bis ( "X"te zeichen aus ergebnis = * )
__ändere X um 1

Nun müssen die zahlen vor dem * und nach dem * ermittelt werden. Da eine Zahl aber mehrstellig sein kann, muss also nach dem nächsten Zeichen vor und nach dem * gesucht werden.

Also mach dies:
setzte "*Y" auf X ---> So wird die position vomgemerkt.

ändere X um -1
wiederhole bis ( Xte Zeichen von ergebnis = + oder -  oder X=0)
__ändere X um -1

Nun hat das Programm das nächste Zeichen vor dem gefundenem * gefunden.
Jetz müssten alle ziffern zwischen dem * und dem zeichen davor mit einer Variable gemerkt werden.

Jetzt muss das Zeichen danach gefunden werden, da_mit die nächste Zahl ermittelt werden kann.

setze X auf Y
ändere X um 1
wiederhole bis ( Xte Zeichen von ergebnis = + oder -  oder * oder / oder X=länge von ergebnis)
__ändere X um 1

Nun muss auch die nächste zahl zwischen dem * und dem gefundenem Zeichen gemerkt werden.

Jetzt hast du 2 zahlen gemerkt.
nenen wir die mal in variablen "Z1" und "Z2".
jetzt muss das ergebnis aktualisiert werden:

setzt "Zwischenergebnis" auf ( verbine ... mit Z1*Z2 mit ... )

Und danach halt wieder ergebnis auf zwischen ergebnis.
Aber achtung!
du musst noch mit variablen die Anfangs position und endposition der zahlen Z1 und Z2 merken lassen, ansonsten wird das skript ja nicht wissen bis wohin es die zahlen einfach kopieren soll.

Dieser vorgang mus nun solange wieerholt werden, bis X das letzte Zeichen erreicht und kein * oder / gefunden wurde.


Bei fragen zum skript, einfach fragen stellen, aber ich bin mal davon ausgegangen, dass du verstehst worauf ich hinaus will und wie man die nicht angegebenen stellen löst


http://scratch.mit.edu/static/projects/TM_/2323675_sm.pnghttp://scratch.mit.edu/static/projects/TM_/2822911_sm.pnghttp://scratch.mit.edu/static/projects/TM_/2489524_sm.png

Offline

 

#3 2011-12-28 10:51:25

akhof
Scratcher
Registered: 2008-07-19
Posts: 500+

Re: Hilfe bei Taschenrechner

ok! danke!  big_smile


http://simpliciter.bplaced.net/templates/business4/images/logo.png

Offline

 

Board footer