 |
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
|
Verfasst am: 31.08.2007, 18:28 Titel: Kann Freebasic rechnen oder ich nicht ? |
|
|
Hi ich schreibe gerade an meinem ersten Freebasic Prog.
Es ist ein Prog was denn Durchschnitt z.B einer Klassenarbeit errechnet.
Allerdings komm ich nicht so richtig mit der Rechnung hin.
Hier mal mein Code
Code: |
'Ausagbe des Durchschnitts
anzahl = eins + zwei + drei + vier + fuenf + sechs 'errechnet die Anzahl der Noten
schnitt = 1 * eins + 2 * zwei + 3 * drei + 4 * vier + 5 * fuenf + 6 * sechs 'rechnet immer die Note mal ihre Anzahl
summe = schnitt/ anzahl ' Jetzt nur noch der Schnitt durch Anzahl
|
Ich weiß nicht vlt. ist auch der Rechenweg falsch aber könnt ihr mir helfen ?
na dann
mfg
Franz _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 31.08.2007, 18:33 Titel: |
|
|
also das ganze da ist schwer nachzuvollziehen... zumal Du mehr als nur Anzahl=sechs hast.. oO(bei 6*sechs wuerd ich mir sorgen machen )
Also... Du hast verschiedene Noten, zu verschiedenen Anteilen.... lassen mir das 'mal' mal weg
dann sieht dein 'Zeugnis' vielleicht so aus:
Mathe 3
Deutsch 4
Sport 2
[...]
ect...
dann zaehlst Du einfach 3+4+2 /Anzahl-Faecher fertig  _________________
 |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 18:37 Titel: |
|
|
Naja versucht einfach mal denn Ciode und ihr wisst was ich mein:
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 Integer
Dim summe as Integer
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
summe = schnitt/ anzahl
Print anzahl
Print schnitt
Print summe
sleep
| [/quote] _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 31.08.2007, 18:48 Titel: |
|
|
Du musst schnitt As Single dimensionieren.
Sonst können nur Ganzzahlen gespeichert werden. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 18:58 Titel: |
|
|
Okay aber ich bekomme nicht das richtige ergebnis raus und kein Komma es müsste nämlich ein Komma raus kommen.
Man gebe ein:
1 | 2 | 3 | 4 | 5 | 6
2 2 1 2 1 2 _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 31.08.2007, 19:00 Titel: |
|
|
programmierer hat Folgendes geschrieben: |
Du musst schnitt As Single dimensionieren.
Sonst können nur Ganzzahlen gespeichert werden. |
genauer gehts fast nicht mehr
Statt
Dim irgendwas as integer
halt
Dim irgendwas as single _________________
 |
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 31.08.2007, 19:03 Titel: |
|
|
Dann nimm halt summe.
Schnitt habe ich eben ausversehen gesagt, da es logischer ist, den durchschnitt in Schnitt statt in Summe zu speichern...
Somit bin ich davon ausgegangen. _________________
Code: | #include "signatur.bi" |
|
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 19:20 Titel: |
|
|
Coole Sache jetzt geht schon mal das mit dem Komma, nur leider ist das Ergebnis noch falsch oder ich habe mich verrechnet obwohl ich zweimal nach gerechnet habe.  _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Stormy

Anmeldungsdatum: 10.09.2004 Beiträge: 567 Wohnort: Sachsen - wo die schönen Frauen wachsen ;)
|
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
Verfasst am: 31.08.2007, 19:27 Titel: |
|
|
Okay.. wir kommen der Lösung näher allerdigns kommt 3.4 raus statt 3.6
wenn man der Reihe nach 2 2 1 2 1 2 eingibt.
Testet das mal an dem Code:
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 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
'Print summe
sleep
|
_________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
Nach oben |
|
 |
Eternal_pain

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 31.08.2007, 19:37 Titel: |
|
|
Code: | schnitt = ((1 * eins) + (2 * zwei) + (3 * drei) + (4 * vier) + (5 * fuenf) + (6 * sechs)) / anzahl |
 _________________
 |
|
Nach oben |
|
 |
Franz

Anmeldungsdatum: 24.03.2007 Beiträge: 111 Wohnort: Auf ner DVD ich bin nur ein Programm
|
|
Nach oben |
|
 |
Michael712 aka anfänger, programmierer
Anmeldungsdatum: 26.03.2005 Beiträge: 1593
|
Verfasst am: 31.08.2007, 20:50 Titel: |
|
|
Franz hat Folgendes geschrieben: | Okay.. wir kommen der Lösung näher allerdigns kommt 3.4 raus statt 3.6 |
[sarkasmus]Heute lernen wie Rechnen![/sarkasmus]
Code: |
2*1 + 2*2 + 1*3 + 2*4 + 1*5 + 2*6
= 2 + 4 + 3 + 8 + 5 + 12
= 34
2 + 2 + 1 + 2 + 1 + 2 = 10
Damit wir auch keinen Fehler machen, schriftliche Division:
34/10 = 3,4
30
40
0
|
Wahnsinn, da hat sich FB wohl doch nicht verrechnet... _________________
Code: | #include "signatur.bi" |
|
|
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, 21:06 Titel: |
|
|
Das ist einfach: Anzahl_der_Einser / Anzahl_aller_Noten * 100
usw. _________________ 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 |
|
 |
Franz

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

Anmeldungsdatum: 08.08.2006 Beiträge: 1783 Wohnort: BW/KA
|
Verfasst am: 31.08.2007, 21:22 Titel: |
|
|
erst feststellen das die zahlen gerundet SIND und dann fragen wie's geht
nimm einfach mal einen Single/Double Wert
und mach dann ?INT(wert) dann ist er gerundet  _________________
 |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4704 Wohnort: ~/
|
Verfasst am: 31.08.2007, 21:24 Titel: |
|
|
\ rundet nicht, sondern schneidet die Nachkommastellen ab. Wenn du richtig runden willst, kannst du z. B. das hier nehmen:
Code: | gerundet = INT(ungerundet + .5) |
_________________ 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
|
Verfasst am: 31.08.2007, 21:25 Titel: |
|
|
nemored hat Folgendes geschrieben: | \ rundet nicht, sondern schneidet die Nachkommastellen ab. Wenn du richtig runden willst, kannst du z. B. das hier nehmen:
Code: | gerundet = INT(ungerundet + .5) |
|
Also eins = INT(eins + .5) _________________ Guckt nicht nur den Link an, besuch ihn auch mal ! |
|
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.
|
|