APPLICATIONSDIVERS ★ Knack die Nuß 2 ★

Knack Die Nub 2 (CPC Amstrad International)Applications Divers
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

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

★ PUBLISHER: CPC Amstrad International
★ YEAR: 1987
★ AUTHOR: Siegfried Buchschat
 

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Coding Src's » Aplausos (Amstrad Personal)
» Coding Src's » RAMTEST and MACHINE TYPE routine (CPC Attack)
» Coding Src's » Square Curves (Computing with the Amstrad)
» Coding Src's » Turbo save speed for cassette users
» Coding Src's » Big Scroll (Computing With the Amstrad)
» Coding Src's » Liss Test
Je participe au site:

» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 542 millisecondes et consultée 1071 fois

L'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.