 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 31.08.2007, 21:29 Titel: |
|
|
Oder du probierst es hiermit..
(Meine Programme zur Mittelwertberechnung erwähne ich absichtlich nicht )
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 21:33 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | Oder du probierst es hiermit..
(Meine Programme zur Mittelwertberechnung erwähne ich absichtlich nicht )
Gruß
ytwinky |
Ich Anfänger und nix mit dem Ding (Quellcode) da anfangen können !
Wie rundet das meine Zahlen/Variablen ?
Wo krieg ich diese vbcompat.bi her ? _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 31.08.2007, 21:36 Titel: |
|
|
1. indem du deine Werte an die Funktion übergibst
2. hast du keine vbkompat.bi? _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 31.08.2007, 21:45 Titel: |
|
|
Code: | Print Runde(DeinWert, Nachkommastellen) | so
wieso hast du keine vbkompat.bi? _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 21:51 Titel: |
|
|
Franz hat Folgendes geschrieben: | Okay aber wenn ich \ statt / eingebe kommt 0 raus .
 |
Das ist schon richtig, weil der ungerundete Wert 2 / 10 = 0.2 ist und \ die Nachkommastellen abschneidet. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 31.08.2007, 21:56 Titel: |
|
|
also kürzer bekomm ich das ganze nicht hin:
Code: | Dim as integer anznoten,x
Dim Note(1 to 6) as integer
dim as single schnitt, noten
Input "Gib die anzahl der Einsen ein:", note(1)
Input "Gib die anzahl der zweien ein:", note(2)
Input "Gib die anzahl der Dreien ein:", note(3)
Input "Gib die anzahl der Vieren ein:", note(4)
Input "Gib die anzahl der Fünfen ein:", note(5)
Input "Gib die anzahl der Sechsen ein:", note(6)
for noten = 1 to 6
anznoten += Note(noten)
next noten
schnitt = ((note(1)*1)+(note(2)*2)+(note(3)*3)+(note(4)*4)+(note(5)*5)+(note(6)*6)) / anznoten
? schnitt
sleep |
arrays wollte ich schon immer mal austesten...
super für funktionen und oder DO...Loop schleifen (für mehrere arbeiten, zeugnisse)
kannste behalten  _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 22:01 Titel: |
|
|
Mark Aroni hat Folgendes geschrieben: | also kürzer bekomm ich das ganze nicht hin:
Code: | Dim as integer anznoten,x
Dim Note(1 to 6) as integer
dim as single schnitt, noten
Input "Gib die anzahl der Einsen ein:", note(1)
Input "Gib die anzahl der zweien ein:", note(2)
Input "Gib die anzahl der Dreien ein:", note(3)
Input "Gib die anzahl der Vieren ein:", note(4)
Input "Gib die anzahl der Fünfen ein:", note(5)
Input "Gib die anzahl der Sechsen ein:", note(6)
for noten = 1 to 6
anznoten += Note(noten)
next noten
schnitt = ((note(1)*1)+(note(2)*2)+(note(3)*3)+(note(4)*4)+(note(5)*5)+(note(6)*6)) / anznoten
? schnitt
sleep |
arrays wollte ich schon immer mal austesten...
super für funktionen und oder DO...Loop schleifen (für mehrere arbeiten, zeugnisse)
kannste behalten  |
Naja dass hätte ich auch noch hingekriegt, aber sie dir mal das Prog an:
Code: |
Dim wscreen as String
Dim eins as Integer
Dim zwei as Integer
Dim drei as Integer
Dim vier as Integer
Dim fuenf as Integer
Dim sechs as Integer
Dim anzahl as Integer
Dim schnitt as Single
Dim einp as Single
'Dim summe as Single
Color 10,0
Cls
Locate 10,25
Print "Notenberechner by Ferenc Zuellich"
Locate 12,25
Print "Copyright by Ferenc Zuellich"
Locate 14,25
Print "Webseite: www.zuellich.de"
Locate 16,25
Print "E-Mail: ferenc@zuellich.de"
Sleep 5000
Cls
screen 18
Input "Moechten sie im Vollbildmodus arbeiten oder nicht ? (j/n) ",wscreen
If wscreen = "j" or wscreen = "J" then
screen 18,,,1
elseif wscreen = "n" or wscreen = "N" then
screen 18
endif
'Tabelle wird gezeichnet:
Line (50,50)-(544,300),,B
'erste Spalte
Line (150,50)-(150,300),,B
'erste Spalte füllen:
Locate 5,9
Print "Zensur -->"
Locate 8,9
Print "Anzahl -->"
Locate 11,9
Print "Prozent ->"
'erst Zeile
Line (50,100)-(544,100)
'erste Zeile füllen
Locate 5,23
Print "1"
Locate 5,32
Print "2"
Locate 5,41
Print "3"
Locate 5,49
Print "4"
Locate 5,57
Print "5"
Locate 5,65
Print "6"
'zweite Spalte
Line (220,50)-(220,200)
'dritte Spalte
Line (290,50)-(290,200)
'vierte Spalte
Line (355,50)-(355,200)
'fünfte Splate
Line (418,50)-(418,200)
'sechste Spalte
Line (480,50)-(480,200)
'zweite Zeile
Line (50,150)-(544,150)
'dritte Zeile
Line (50,200)-(544,200)
'Eingabe der Noten
Locate 8,23
Input eins
Locate 8,32
Input zwei
Locate 8,41
Input drei
Locate 8,49
Input vier
Locate 8,57
Input fuenf
Locate 8,65
Input sechs
'Ausagbe des Durchschnitts
anzahl = eins + zwei + drei + vier + fuenf + sechs
schnitt = ((1 * eins) + (2 * zwei) + (3 * drei) + (4 * vier) + (5 * fuenf) + (6 * sechs)) / anzahl
Print schnitt
'Berrechne Prozentwerte
Locate 12,21
Print eins / anzahl * 100
Locate 12, 26
Print "%"
Locate 12, 29
Print zwei / anzahl * 100
Locate 12, 34
Print "%"
Locate 12, 38
Print drei / anzahl * 100
Locate 12, 43
Print "%"
Locate 12,46
Print vier / anzahl * 100
Locate 12,51
Print "%"
Locate 12,54
Print fuenf / anzahl * 100
Locate 12 , 60
Print "%"
Locate 12, 62
Print sechs / anzahl * 100
Locate 12, 67
Print "%"
sleep
|
Sorry  _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 22:07 Titel: |
|
|
Funktioniert doch schon mal. Wenn du es jetzt noch in
Code: | Locate 12,21
Print INT(eins / anzahl * 100 + .5)
Locate 12, 26
Print "%" |
usw. änderst, bekommst du die Prozentzwerte gerundet (schönere Ausgabe).
Mit Arrays (siehe Marc Aronis Code) ginge es natürlich knapper  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Zuletzt bearbeitet von nemored am 31.08.2007, 22:09, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 31.08.2007, 22:08 Titel: |
|
|
*hüstel*
bevor ich mir den source angucke, räum' ich lieber ne Messi-wohnung auf
wo hast du coden gelernt?
1. Je Kürzer und übersichtlicher desto besser
2. Benutzer freundlich coden
3. Überflüssige befehle und zeilen Löschen
Ein Array ist verdammt einfach und Kurz zu dimmen, übersichtlich und einfach zu benutzen.
Du hast 6 Variablen deklariert, die alle den selben zweck erfüllen...
1 statt 6 zeilen = kürzer
dein code ist unübersichtlich und nicht kommentiert (damit man weiß wo was anfängt und wo was aufhört... )
das sind 135 zeilen!
ich komme bei vielen meiner programme (die so einen kleinen zweck erfüllen) nicht über 40! _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 22:10 Titel: |
|
|
Kommentiert ist er doch. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 22:15 Titel: |
|
|
Lass dich nicht entmutigen. Alles auf einmal geht natürlich nicht. Aber es ist ein guter Ansatzpunkt für die weitere Entwicklung
Zitat: | Naja wenigstens weiß ich was ich da gemüllt habe bei deinem Code wusste ichs nicht ! |
Am besten lernt man auch immer durch das selber machen.  _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 31.08.2007, 22:22 Titel: |
|
|
nemored hat Folgendes geschrieben: | Kommentiert ist er doch. |
Uups.. voll übersehen..
Hier ist meins, diesmal kommentiert:
Code: | Dim as integer anznoten,x
Dim Note(1 to 6) as integer
'obige spalte erstellt 6 variablen, note(1), note(2) usw.
dim as single schnitt, noten
'noten ist für die for...next schleife
'Gibt den Variablen einen wert:
Input "Gib die anzahl der Einsen ein:", note(1)
Input "Gib die anzahl der zweien ein:", note(2)
Input "Gib die anzahl der Dreien ein:", note(3)
Input "Gib die anzahl der Vieren ein:", note(4)
Input "Gib die anzahl der Fünfen ein:", note(5)
Input "Gib die anzahl der Sechsen ein:", note(6)
for noten = 1 to 6 'inhalt zwischen for und next wird 6 mal wiederholt
'noten wird nach jedem durchgang von for next um 1 erhöht
'die anzahl der noten, wird um den wert den die jeweilige note() bekommen hat erhöht:
anznoten += Note(noten)
next noten
schnitt = ((note(1)*1)+(note(2)*2)+(note(3)*3)+(note(4)*4)+(note(5)*5)+(note(6)*6)) / anznoten
? schnitt '? = print... gibt den schnitt wieder
sleep 'wartet auf tastendruck, damit nicht sofort beendet wird...
|
ich hoffe das ganze ist nun verständlich
sorry wegen den komments... hab die echt übersehen! _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 22:24 Titel: |
|
|
Zu spät jetzt bin ich entmutig ich kanns einfach noch nicht , dann muss ich eben noch zehn tutorials lesen um diesen code auf 40 zeilen zu reduzieren.
   _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
The_Muh aka Mark Aroni

Anmeldungsdatum: 11.09.2006 Beiträge: 718
|
Verfasst am: 31.08.2007, 22:31 Titel: |
|
|
Für kurze + übersichtliche codes nehme man:
arrays, case, subs / functionen, wenig locates, for...next bzw. do...loop _________________ // nicht mehr aktiv // |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 22:31 Titel: |
|
|
Um ein bisschen auf Marks Vorschlag einzugehen: statt der Variablen eins, zwei, drei usw. wird nun note(1), note(2), note(3) usw. verwendet. Das hat den Vorteil, dass viele Dinge durch eine FOR...NEXT-Schleife kürzer gefasst werden können. Statt z. B.
Code: | Print eins / anzahl * 100
Print zwei / anzahl * 100
Print drei / anzahl * 100
Print vier / anzahl * 100
Print fuenf / anzahl * 100
Print sechs / anzahl * 100 |
geht es kürzer mit
Code: | for i=1 to 6
Print note(i) / anzahl * 100
next |
Die Sachen mit dem Locate usw. braucht natürlich etwas Feinabstimmung. _________________ Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1. |
|
Nach oben |
|
 |
ytwinky

Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 31.08.2007, 22:49 Titel: |
|
|
so vllt: Code: | 'Berechne Prozentwerte
Dim Spalten(1 To 6)={21, 29, 38, 46, 54, 62}
For i As Byte=1 To 6
LOCATE 12, Spalten(i)
PRINT noten(i) / anzahl * 100 &" %"
Next |
_________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|