fb:porticula NoPaste
Gemischrechner
Uploader: | pinkpanther |
Datum/Zeit: | 25.12.2005 02:58:23 |
'ACHTUNG: Dieses Programm wird kostenlos - so wie es ist - zur Verfügung gestellt.
' Es wird keinerlei Gewährleistung dafür übernommen, dass das Programm
' richtig funktioniert und richtige Werte errechnet. Die Verwendung des
' Programms und der damit berechneten Ergebnisse erfolgt ausschließlich
' auf eigene Gefahr!
DEFINT A-Z
DECLARE FUNCTION GetBaujahr% (GueltigVon, GueltigBis, Beispiel$)
DECLARE FUNCTION GetEmpfehlung% (TrabantTyp$, Baujahr, GemischVerhaeltnis$(), GemischInfoNr())
DECLARE FUNCTION GetEingabe% (TrabantTyp$, Baujahr)
DECLARE SUB GetGemischInfo ()
DECLARE SUB About ()
DECLARE SUB ShowEmpfehlung (GemischVerhaeltnis$(), GemischInfoNr())
DECLARE SUB ShowInfo (InfoNr)
'Der Gemischrechner
'ULTRA-Version
'by Marcel Kunzmann
'v.1.0.6 , 24.12.2005
'pinkpanther edition :-)
DIM SHARED GemischInfo$(1 TO 3, 1 TO 5)
DIM GemischVerhaeltnis$(1 TO 3), GemischInfoNr(1 TO 3)
'===========================================================
GetGemischInfo
COLOR 14, 9
CLS
About
IF GetEingabe%(TrabantTyp$, Baujahr) THEN
IF GetEmpfehlung%(TrabantTyp$, Baujahr, GemischVerhaeltnis$(), GemischInfoNr()) THEN
ShowEmpfehlung GemischVerhaeltnis$(), GemischInfoNr()
END IF
ELSE
PRINT
COLOR 12
PRINT " Programm vorzeitig abgebrochen!"
END IF
END
'===========================================================
'Informationstexte zu den einzelnen Gemisch-Verhaeltnissen
' Texte fuer
' - gute Schmierung
' - Schmierung lt. Werksempfehlung
' - wenig Schmierung
' Struktur:
' DATA "Zeile 1-1"
' DATA "Zeile 1-2"
' ...
' DATA "Zeile 1-5"
' DATA *
' ...
' DATA "Zeile 2-1"
' ...
DATA "Bei diesem Verhaeltnis wird der Motor besser geoelt, was vor allem bei hohen"
DATA "Geschwindigkeiten von Vorteil ist. Jedoch entstehen auch mehr Abgase, d.h."
DATA "man benoetigt mehr Oel, und der Auspuff veroelt schneller."
DATA *
DATA "Dieses Verhaeltnis ist ein guter Kompromiss zwischen guter Schmierung und "
DATA "oekonomischer Schmierung."
DATA *
DATA "Viele sagen, dass bei diesem Verhaeltnis zu wenig Schmierung besteht"
DATA "und der Motor schneller verschleisst."
DATA "Es entstehen jedoch auch weniger Abgase und Kosten."
DATA *
'Datengrundlage fuer die Empfehlungen
' Struktur:
' DATA TYP1-1, TYP1-2, ..., TYP1-n, *
' DATA BIS_INKLUSIVE_BAUJAHR-1
' DATA GEMISCH_GUT, GEMISCH_WERK, GEMISCH_WENIG, INFOTEXT1, INFOTEXT2, INFOTEXT3
' DATA BIS_INKLUSIVE_BAUJAHR-2
' DATA GEMISCH_GUT, GEMISCH_WERK, GEMISCH_WENIG, INFOTEXT1, INFOTEXT2, INFOTEXT3
' ...
' DATA 0
'
' DATA TYP2-1, ..., *
' ...
DATA 500, 600, *
DATA 1963
DATA "1:25", "1:25", "1:40", 1, 1, 3
DATA 0
DATA 601, *
DATA 1979
DATA "1:25", "1:33", "1:50", 1, 2, 3
DATA 1990
DATA "1:40", "1:50", "1:70", 1, 2, 3
DATA 0
DATA *
SUB About
PRINT " >>>> Der Gemischrechner ULTRA >>>>"
PRINT " by Marcel Kunzmann, 1.0.6 "
PRINT " pinkpanther edition :-)"
PRINT
PRINT
END SUB
FUNCTION GetBaujahr% (GueltigVon, GueltigBis, Beispiel$)
DO
PRINT " Wann wurde Ihr Trabant gebaut (z.B. '" + Beispiel$ + "')? ";
INPUT "", Baujahr$
PRINT
EingabeUngueltig = 0
'zuerst auf gueltige Laenge der (String-)Eingabe pruefen,
'da das Ergebnis der Umwandlung in eine Zahl nicht in eine
'Integer-Variable passen koennte!
SELECT CASE LEN(Baujahr$)
CASE 4
Baujahr = VAL(Baujahr$)
SELECT CASE Baujahr
CASE GueltigVon TO GueltigBis
CASE ELSE
COLOR 12, 9
PRINT " Das kann nicht sein!"
COLOR 14, 9
PRINT
EingabeUngueltig = -1
END SELECT
CASE 0
Baujahr = 0
CASE ELSE
COLOR 12, 9
PRINT " Geben Sie bitte eine 4-stellige Jahreszahl ein!"
COLOR 14, 9
PRINT
EingabeUngueltig = -1
END SELECT
LOOP WHILE EingabeUngueltig
GetBaujahr% = Baujahr
END FUNCTION
FUNCTION GetEingabe% (TrabantTyp$, Baujahr)
DO
PRINT " Welchen Trabant-Typ benutzen Sie (500, 600, 601, 1.1)? ";
INPUT "", TrabantTyp$
PRINT
EingabeUngueltig = 0
SELECT CASE TrabantTyp$
CASE "500", "600"
Baujahr = GetBaujahr%(1957, 1963, "1959")
CASE "601"
Baujahr = GetBaujahr%(1964, 1990, "1986")
CASE "1.1"
PRINT " Sie brauchen kein Gemisch! Tanken Sie Super-bleifrei!"
CASE ""
CASE ELSE
COLOR 12, 9
PRINT " Ungueltiger Trabant-Typ!"
COLOR 14, 9
PRINT
EingabeUngueltig = -1
END SELECT
LOOP WHILE EingabeUngueltig
IF Baujahr THEN
GetEingabe% = -1
ELSE
GetEingabe% = 0
END IF
END FUNCTION
FUNCTION GetEmpfehlung% (TrabantTyp$, Baujahr, GemischVerhaeltnis$(), GemischInfoNr())
DO
READ Typ$
IF Typ$ = "*" THEN
EXIT DO
ELSE
DO
SELECT CASE Typ$
CASE TrabantTyp$, "*"
EXIT DO
END SELECT
READ Typ$
LOOP
IF Typ$ = "*" THEN
DO
READ Dummy$
LOOP UNTIL Dummy$ = "0"
ELSE
DO
READ Dummy$
LOOP UNTIL Dummy$ = "*"
DO
READ BisBauJahr
IF BisBauJahr THEN
FOR i = 1 TO 3
READ GemischVerhaeltnis$(i)
NEXT
FOR i = 1 TO 3
READ GemischInfoNr(i)
NEXT
ELSE
EXIT DO
END IF
IF Baujahr <= BisBauJahr THEN
EXIT DO
END IF
LOOP
IF Baujahr <= BisBauJahr THEN
EXIT DO
END IF
END IF
END IF
LOOP
IF BisBauJahr THEN
GetEmpfehlung% = -1
ELSE
GetEmpfehlung% = 0
END IF
END FUNCTION
SUB GetGemischInfo
FOR Kategorie = 1 TO 3
FOR Zeile = 1 TO 5
READ Zeile$
IF Zeile$ = "*" THEN
EXIT FOR
ELSE
GemischInfo$(Kategorie, Zeile) = Zeile$
END IF
NEXT
NEXT
END SUB
SUB ShowEmpfehlung (GemischVerhaeltnis$(), GemischInfoNr())
CLS
SCREEN 12
LINE (6, 170)-(600, 70), 14, B
LOCATE 3, 3
COLOR 9
PRINT "EMPFEHLUNGEN"
LOCATE 6, 4
COLOR 2
PRINT "Gute Schmierung"
LOCATE 6, 34
PRINT GemischVerhaeltnis$(1)
LOCATE 8, 4
COLOR 10
PRINT "Werksempfehlung"
LOCATE 8, 34
PRINT GemischVerhaeltnis$(2)
LOCATE 10, 4
COLOR 12
PRINT "Wenig Schmierung"
LOCATE 10, 34
PRINT GemischVerhaeltnis$(3)
COLOR 2
LOCATE 14, 4
PRINT "Informationen "; GemischVerhaeltnis$(1)
LOCATE 15, 2
ShowInfo GemischInfoNr(1)
COLOR 10
LOCATE 20, 4
PRINT "Informationen "; ; GemischVerhaeltnis$(2)
LOCATE 21, 2
ShowInfo GemischInfoNr(2)
COLOR 12
LOCATE 26, 4
PRINT "Informationen "; GemischVerhaeltnis$(3)
LOCATE 27, 2
ShowInfo GemischInfoNr(3)
END SUB
SUB ShowInfo (InfoNr)
FOR Zeile = 1 TO 3
IF LEN(GemischInfo$(InfoNr, Zeile)) THEN
PRINT GemischInfo$(InfoNr, Zeile)
ELSE
EXIT FOR
END IF
NEXT
END SUB