zoro
Retro Member
- Joined
- 20 Φεβ 2008
- Μηνύματα
- 177
- Αντιδράσεις
- 7
Με αφορμή το ομώνυμο πάρτι της Παρασκευής, σκέφθηκα ένα πρόγραμμα, στο οποίο, όσες και όποιες από τις τέσσερεις βασικές αριθμητικές πράξεις να κάνει κανείς, και με όποιους αριθμούς και να σκεφθεί κανείς, το αποτέλεσμα οδηγεί πάντα στον "μαγικό αριθμό" που χαρακτηρίζει το πάρτι, τον αριθμό 18 (με βασάνισε όλο το Σαββατοκύριακο να το φτιάξω, καθ' ότι "μαθητής" ακόμη).
Το πρόγραμμα έγινε με την Locomotive Basic του Amstrad 6128 και βασίζεται σε μία μαθηματική ιδιαιτερότητα. Όποιος την βρει και μου το πει το βραδυ του πάρτι, κερδίζει μιά... βόλτα!
Θεωρητικά, μπορεί κανείς να βάλει όποιον αριθμό θέλει (από το 1 έως το... άπειρο), χάριν όμως υπολογιστικης ευκολίας, καλό θα ήταν να βάλει μέχρι έναν διψήφιο αριθμό, και να μην ξεπεράσει τις πέντε πράξεις, ή τουλάχιστον, ας κάνει όσες πράξεις θέλει, αρκεί να προσέξει να μην γίνει τεράστιος ο αριθμός (σε μεγάλους E-nums το πρόγραμμα δεν ανταποκρίνεται).
Υ.Γ. 2: Έχω βάλει και συνοπτικό μήνυμα στο θέμα του πάρτυ.
Υ.Γ. 3: Shock, έκανα καλά που το έβαλα εδώ;
Το πρόγραμμα έγινε με την Locomotive Basic του Amstrad 6128 και βασίζεται σε μία μαθηματική ιδιαιτερότητα. Όποιος την βρει και μου το πει το βραδυ του πάρτι, κερδίζει μιά... βόλτα!
Θεωρητικά, μπορεί κανείς να βάλει όποιον αριθμό θέλει (από το 1 έως το... άπειρο), χάριν όμως υπολογιστικης ευκολίας, καλό θα ήταν να βάλει μέχρι έναν διψήφιο αριθμό, και να μην ξεπεράσει τις πέντε πράξεις, ή τουλάχιστον, ας κάνει όσες πράξεις θέλει, αρκεί να προσέξει να μην γίνει τεράστιος ο αριθμός (σε μεγάλους E-nums το πρόγραμμα δεν ανταποκρίνεται).
Y.Γ : Ελπίζω να το έγραψα καλά, γιατί η οθόνη στο Internet Cafe είναι χάλια για τα γερασμένα μου μάτια!10 MODE 2
20 INPUT "Give an Integer number (no more than two digits for easy calculating)";A
30 PRINT: PRINT
40 PRINT "Press (A) for +, (B) for -, © for *, (D) for /, (E) for final calculation": PRINT
50 A$=INKEY$
60 IF A$="" THEN GOTO 50
70 IF A$="A" OR A$="a" THEN GOTO 130
80 IF A$="B" OR A$="b" THEN GOTO 150
90 IF A$="C" OR A$="c" THEN GOTO 190
100 IF A$="D" OR A$="d" THEN GOTO 210
110 IF A$="E" OR A$="e" THEN GOTO 230
120 GOTO 50
130 INPUT "Give another number to calculate with: ";B:ADD=A+B: PRINT A;"+";B;"=";ADD:A=ADD
140 GOTO 40
150 INPUT "Give another number to calculate with: ";B
160 IF B>A OR B=A THEN PRINT "Give a smoller than the previous number":GOTO 150
170 AFF=ABS(A-B): PRINT A;"-";B;"=";AFF:A=AFF
180 GOTO 40
190 INPUT "Give another number to calculate with: ";B:MUL=A*B: PRINT A;"*";B;"=";MUL:A=MUL
200 GOTO 40
210 INPUT "Give another number to calculate with: ";B: DIV=ABS(INT(A/B)): PRINT A;"/";B;"=";DIV:A=DIV
220 GOTO 40
230 CLS: PRINT "CALCULATING and TRANSFORMING the numbers...":F=INT(A*9)
240 PRINT F;CHR$(243),
250 F$=STR$(F)
260 W=0
270 FOR X=1 TO LEN(F$)
280 V=VAL(MID$(F$,X,1))
290 PRINT V;CHR$(243),
300 WW=W+V
310 PRINT WW;CHR$(243),
320 W=WW
330 IF WW=9 THEN GOTO 350
340 NEXT X
350 LOCATE 17,12: PRINT "FINISHED!!! Press any key to give you the results..."
360 G$=STR$(WW)
370 WHILE INKEY$="":WEND
380 LOCATE 25,14: PRINT "Last number is:";ww;: PRINT "(";MID$(G$,2,1);"+";MID$(G$,3,1);")";" *2 = 18"
390 LOCATE 22,18: PRINT "THE MAGIC NUMBER *** 18 *** IS HERE!!!"
400 LOCATE 28,23: PRINT "Continue? (Y)es or (N)o"
410 A$=INKEY$
420 IF A$="" THEN GOTO 410
430 IF A$="Y" OR A$="y" THEN RUN
440 IF A$="N" OR A$="n" THEN MODE 1:END
Υ.Γ. 2: Έχω βάλει και συνοπτικό μήνυμα στο θέμα του πάρτυ.
Υ.Γ. 3: Shock, έκανα καλά που το έβαλα εδώ;