Problemstellung: Fünf Karten mit den Bildern Apfel, Birne, Clown, Dose und Esel werden verdeckt gezogen. Adam, Berta und Carl raten die Reihenfolge. Adam: Apfel. Esel, Birne, Clown, Dose (1 Karte richtig geraten) Berta: Esel. Birne, Clown, Apfel, Dose (2 Karten richtig geraten) Carl: Birne, Dose, Clown, Esel, Apfel (3 Karten richtig geraten) Wie war die richtige Reihenfolge aller Karten? Es gibt 120 Möglichkeiten, die fünf Karten in verschiedener Reihenfolge anzuordnen (5! =1*2*3*4*5=120). Bei sechs Karten würden es bereits 6! =720 Möglichkeiten. Natürlich läßt sich dieses Rätsel durch Denken lösen - schneller kann es der Computer, der die fünf Elemente A(pfel), B(irne),...,E(sel) durchprobiert, wie Listing 1 zeigt. In den Zeilen 170 - 190 können die zweiten »IF-Bedingungen« (if x < 1 then 210) fortfallen. Sie sollen nur die Ablaufgeschwindigkeit erhöhen, zeitigen jedoch bei der kurzen Arbeitszeit von etwa 7 Sekunden keine meßbaren Verbesserungen. Zeile 95 kann entfallen. Sie zählt lediglich die überprüften Kombinationen. Ebenfalls sind die Zeilen 20 und 390 entbehrlich, da sie nur - für Versuchszwecke - die Z4it messen. 10 MODE 1:PRINT 20 PRINT STRING$(38,"#") 30 PRINT"#";SPC(36)"#" 40 PRINT"# ";CHR$(24);" Dieses Programm ";CHR$(24);" #" 50 PRINT"# ";CHR$(24);"ermittelt Zahlen, die sich";CHR$(24);" #" 60 PRINT"# ";CHR$(24);"selbst vervielfachen, wenn";CHR$(24);" #" 70 PRINT"# ";CHR$(24);"man ihre letzte Ziffer an ";CHR$(24);" #" 80 PRINT"# ";CHR$(24);" die erste Stelle setzt. ";CHR$(24);" #" 90 PRINT"# ";CHR$(24);" Die Anzahl der Ziffern ";CHR$(24);" #" 100 PRINT"# ";CHR$(24);" bleibt also erhalten. ";CHR$(24);" #" 110 PRINT"# ";CHR$(24);"Die moeglichen Vervielfa- ";CHR$(24);" #" 120 PRINT"# ";CHR$(24);" fachungsfaktoren liegen ";CHR$(24);" #" 130 PRINT"# ";CHR$(24);" zwischen 2 und 9. ";CHR$(24);" #" 140 PRINT"# ";CHR$(24);" Der Rechner druckt die ";CHR$(24);" #" 150 PRINT"# ";CHR$(24);" Ursprungszahl aus. ";CHR$(24);" #" 160 PRINT"#";SPC(36)"# 170 PRINT"# Weiter auf Tastendruck ! #" 180 PRINT"#";SPC(36)"# 190 PRINT STRING$(38,"#") 200 GOSUB 460 210 MODE 2 220 WINDOW#3,2,80,5,15 230 WINDOW#2,8,60,18,24 240 LOCATE 10,3:PRINT"Welcher Faktor soll es sein ? "; 250 GOSUB 460 260 IF ASC(a$)<50 OR ASC(a$)>57 THEN 240 ELSE PRINT a$ 270 a$=RIGHT$(a$,1):v=VAL(a$) 280 FOR a=v TO 9:PRINT#3 290 a$=RIGHT$(STR$(a),1) 300 x=a:y=aç v:b=a MOD v 310 WHILE NOT (y=a AND b=0) 320 b=x MOD v 330 y=INT(x/v):y$=RIGHT$(STR$(y),1) 'naechste Ziffer 340 IF y=0 THEN y$="0" 350 z=10*b+y 360 a$=a$+y$ 370 PRINT#3,y$;" "; 380 x=z 390 WEND 400 NEXT 410 PRINT#2," Weitere Zahlen ? " 420 PRINT#2," Dann >j< eingeben, " 430 PRINT#2,"Jede andere Taste beendet das Programm . " 440 GOSUB 460 450 IF LOWER$(a$)="j" THEN 210 ELSE END 460 a$=INKEY$:IF a$="" THEN 460 470 RETURN 10 'Knack die Nuss 2 20 EVERY 50 GOSUB 390 30 MODE 2:GOSUB 290 50 FOR a=1 TO 5 60 FOR b=1 TO 5:IF b=a THEN 250 70 FOR c=1 TO 5:IF c=b OR c=a THEN 240 80 FOR d=1 TO 5:IF d=c OR d=b OR d=a THEN 230 90 FOR e=1 TO 5:IF e=d OR e=c OR e=b OR e=a THEN 220 95 w=w+1:LOCATE 1,20:PRINT w 100 x=0:y=0:z=0 110 FOR I=1 TO 5 120 a$=b$(a)+b$(b)+b$(c)+b$(d)+b$(e) 130 aa$=MID$(a$,i,1) 140 bb$=MID$(a$(1),i,1) 150 cc$=MID$(a$(2),i,1) 160 dd$=MID$(a$(3),i,1) 170 IF aa$=bb$ THEN x=x+1:IF x > 1 THEN 210 180 IF aa$=cc$ THEN y=y+1:IF y > 2 THEN 210 190 IF aa$=dd$ THEN z=z+1:IF z > 3 THEN 210 200 IF x=1 AND y=2 AND z=3 THEN GOSUB 340 210 NEXT 220 NEXT 230 NEXT 240 NEXT 250 NEXT 260 NEXT 270 DATA c,k,q,s,w 280 END 290 RESTORE:FOR i=1 TO 5:READ a$:b$(i)=a$:NEXT 300 a$(1)="cwkqs" 310 a$(2)="wkqcs" 320 a$(3)="ksqwc" 330 RETURN 340 PRINT"Die Reihenfolge war : ";a$ 350 PRINT"Adams Reihe : ";a$(1) 360 PRINT"Bertas Reihe: ";a$(2) 370 PRINT"Carls Reihe : ";a$(3) 380 END 390 zei=zei+1:LOCATE 60,24:PRINT zei;" Sekunden" : RETURN CPCAI ★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser... |
CPCrulez[Content Management System] v8.7-desktop/c Page créée en 542 millisecondes et consultée 1071 foisL'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko. |
|
|