Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Kann Freebasic rechnen oder ich nicht ?
Gehe zu Seite Zurück  1, 2, 3  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
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

BeitragVerfasst am: 31.08.2007, 21:29    Titel: Antworten mit Zitat

Okay aber wenn ich \ statt / eingebe kommt 0 raus .

geschockt
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 31.08.2007, 21:29    Titel: Antworten mit Zitat

Oder du probierst es hiermit..
(Meine Programme zur Mittelwertberechnung erwähne ich absichtlich nicht vor lachen auf dem Boden rollen )
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Franz



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

BeitragVerfasst am: 31.08.2007, 21:33    Titel: Antworten mit Zitat

ytwinky hat Folgendes geschrieben:
Oder du probierst es hiermit..
(Meine Programme zur Mittelwertberechnung erwähne ich absichtlich nicht vor lachen auf dem Boden rollen )
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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 31.08.2007, 21:36    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Franz



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

BeitragVerfasst am: 31.08.2007, 21:39    Titel: Antworten mit Zitat

Wie übergebe ich und wo gibts die vbcombat.bi ?
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 31.08.2007, 21:45    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 31.08.2007, 21:51    Titel: Antworten mit Zitat

Franz hat Folgendes geschrieben:
Okay aber wenn ich \ statt / eingebe kommt 0 raus .

geschockt

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
Benutzer-Profile anzeigen Private Nachricht senden
Franz



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

BeitragVerfasst am: 31.08.2007, 21:54    Titel: Antworten mit Zitat

Okay wie binde ich die Funktion richtig ein ? Wenn ich sie zu Anfang setze kommen Zahlen die nicht sein sollen.
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 31.08.2007, 21:56    Titel: Antworten mit Zitat

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 happy
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Franz



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

BeitragVerfasst am: 31.08.2007, 22:01    Titel: Antworten mit Zitat

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 happy


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 mit den Augen rollen
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 31.08.2007, 22:07    Titel: Antworten mit Zitat

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 zwinkern
_________________
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
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 31.08.2007, 22:08    Titel: Antworten mit Zitat

*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
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 31.08.2007, 22:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Franz



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

BeitragVerfasst am: 31.08.2007, 22:11    Titel: Antworten mit Zitat

weinen weinen missbilligen traurig traurig

Wer sagt denn das ich das alles kann !!??
Naja wenigstens weiß ich was ich da gemüllt habe bei deinem Code wusste ichs nicht !
weinen weinen weinen
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 31.08.2007, 22:15    Titel: Antworten mit Zitat

Lass dich nicht entmutigen. Alles auf einmal geht natürlich nicht. Aber es ist ein guter Ansatzpunkt für die weitere Entwicklung lächeln

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. Ja!
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 31.08.2007, 22:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Franz



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

BeitragVerfasst am: 31.08.2007, 22:24    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
The_Muh
aka Mark Aroni


Anmeldungsdatum: 11.09.2006
Beiträge: 718

BeitragVerfasst am: 31.08.2007, 22:31    Titel: Antworten mit Zitat

Für kurze + übersichtliche codes nehme man:
arrays, case, subs / functionen, wenig locates, for...next bzw. do...loop
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4704
Wohnort: ~/

BeitragVerfasst am: 31.08.2007, 22:31    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 31.08.2007, 22:49    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3  Weiter
Seite 2 von 3

 
Gehe zu:  
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.

 Impressum :: Datenschutz