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
 
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
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 01.09.2007, 12:15    Titel: Antworten mit Zitat

Zu dem, was Marc angesprochen hat, passt vllt. auch noch das Thema "Strukturierte Programmierung". lächeln
Tutorial dazu auf FreeBasic-Portal.de
_________________
Eine handvoll Glück reicht nie für zwei.
--
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: 01.09.2007, 14:33    Titel: Antworten mit Zitat

@ Mao ich werde es mir mal durchlesen

Mein Code gehts noch kürzer ?

Code:


start:
Dim wscreen as String
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
cls
'Tabelle wird gezeichnet:
Line (50,50)-(544,230),,B

'erste Spalte
Line (150,50)-(150,200),,B
'erste Spalte füllen:
Locate 5,9
Print "Zensur -->"
Locate 8,9
Print "Anzahl -->"
Locate 11,9
Print "Prozent ->"
Locate 14, 9
Print "Auswertung:"
'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)

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:

Locate 8,23
INPUT  note(1)
Locate 8,32
INPUT  note(2)
Locate 8,41
INPUT  note(3)
Locate 8,49
INPUT  note(4)
Locate 8,57
INPUT  note(5)
Locate 8,65
INPUT  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

Locate 14,23
Print "Durchschnitt:";
Print schnitt '? = PRINT... gibt den schnitt wieder
               
Locate 14, 48
Print "Anzahl der Noten:";
Print anznoten

'Berrechne Prozentwerte
LOCATE 12,21
PRINT note(1) / anznoten * 100 
LOCATE 12, 26
PRINT "%"

LOCATE 12,29
PRINT note(2) / anznoten * 100
Locate 12, 34
Print "%"

Locate 12, 38
PRINT note(3) / anznoten * 100
Locate 12, 43
Print "%"

Locate 12,46
PRINT note(4) / anznoten * 100 
Locate 12,51
Print "%"

Locate 12,54
PRINT note(5) / anznoten * 100
Locate 12 , 60
Print "%"

Locate 12, 62
PRINT note(6) / anznoten * 100
Locate 12, 67
Print "%"

Dim nochmal as string
Locate 21,12
Input "Nochmal von vorn ? ", nochmal
If nochmal = "j" or nochmal ="J" then Goto start else end


_________________
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: 01.09.2007, 14:47    Titel: Antworten mit Zitat

Ich würde es schon noch ein gutes Stück kürzer kriegen, aber dazu müsste ich einige umstellen, und dann ist es nicht mehr dein Programm. Man könnte an der Ausgabe der Prozentwerte noch straffen, wenn man will.
_________________
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: 01.09.2007, 15:04    Titel: Antworten mit Zitat

Ich hab locate und print je in eine zeile gepackt und die DIM... zeilen nach oben gelegt (wo sie hin gehören ...)
2 überflüssige Prints entfernt und ein-zwei leerzeilen...
jetz sind es nur noch 94 Zeilen:
Code:

start:
DIM AS STRING wscreen, nochmal  'erstellt die 2 string variablen
DIM AS INTEGER anznoten,x       'erstellt 2 Integer variablen
DIM Note(1 TO 6) AS INTEGER     'erstellt den Array
DIM AS SINGLE schnitt, noten    '2 single variablen (für Kommazahlen
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
CLS
'Tabelle wird gezeichnet:
LINE (50,50)-(544,230),,B

'erste Spalte
LINE (150,50)-(150,200),,B
'erste Spalte füllen:
LOCATE 5, 9 : PRINT "Zensur -->"
LOCATE 8, 9 : PRINT "Anzahl -->"
LOCATE 11,9 : PRINT "Prozent ->"
LOCATE 14,9 : PRINT "Auswertung:"

'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)

'Gibt den Variablen einen wert:
LOCATE 8,23 : INPUT  note(1)
LOCATE 8,32 : INPUT  note(2)
LOCATE 8,41 : INPUT  note(3)
LOCATE 8,49 : INPUT  note(4)
LOCATE 8,57 : INPUT  note(5)
LOCATE 8,65 : INPUT  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

LOCATE 14,23 : PRINT "Durchschnitt:"; schnitt 'ein zweites Print ist überflüssig
LOCATE 14, 48 : PRINT "Anzahl der Noten:"; anznoten

'Berrechne Prozentwerte
LOCATE 12,21 : PRINT note(1) / anznoten * 100
LOCATE 12,26 : PRINT "%"

LOCATE 12,29 : PRINT note(2) / anznoten * 100
LOCATE 12,34 : PRINT "%"

LOCATE 12,38 : PRINT note(3) / anznoten * 100
LOCATE 12,43 : PRINT "%"

LOCATE 12,46 : PRINT note(4) / anznoten * 100
LOCATE 12,51 : PRINT "%"

LOCATE 12,54 : PRINT note(5) / anznoten * 100
LOCATE 12,60 : PRINT "%"

LOCATE 12,62 : PRINT note(6) / anznoten * 100
LOCATE 12,67 : PRINT "%"

LOCATE 21,12 :INPUT "Nochmal von vorn ? ", nochmal
IF nochmal = "j" OR nochmal ="J" THEN GOTO start ELSE END

der Doppelpunkt trennt 2 Befehle in diesem Fall Locate und Print
das ganze wird behandelt, als seien es 2 zeilen, ist aber viel übersichtlicher (nach meiner meinung)
Ob du das ganze so übernimmst, ist deine sache...
_________________
// 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: 01.09.2007, 15:10    Titel: Antworten mit Zitat

Upps das mit dem Doppelpunkt hätte mir auch einfallen müssen...
_________________
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: 01.09.2007, 15:18    Titel: Antworten mit Zitat

Zwei Befehle in eine Zeile zu packen, macht den Code aber nicht wirklich kürzer zwinkern
Zwei Befehle bleiben nun mal zwei Befehle.
_________________
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 01.09.2007, 15:19, 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: 01.09.2007, 15:19    Titel: Antworten mit Zitat

Bei mir ist das schon standart... das kommt bei dir auch noch happy
_________________
// nicht mehr aktiv //
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 01.09.2007, 15:24    Titel: Antworten mit Zitat

Mark Aroni hat Folgendes geschrieben:
Bei mir ist das schon standart... das kommt bei dir auch noch happy

bei mir ist es zum glück wieder gegangen... peinlich Das macht in fast allen Fällen den Code unleserlich. Einen COde wie diesen:
Code:

'Gibt den Variablen einen wert:
LOCATE 8,23 : INPUT  note(1)
LOCATE 8,32 : INPUT  note(2)
LOCATE 8,41 : INPUT  note(3)
LOCATE 8,49 : INPUT  note(4)
LOCATE 8,57 : INPUT  note(5)
LOCATE 8,65 : INPUT  note(6)

kann man komprimieren, ohne doppelte zeilen zu verwenden:
Code:

for i = 1 to 6
  locate 8, i*9 + 14
  input note(i)
next

_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 01.09.2007, 15:26    Titel: Antworten mit Zitat

Ich hätte auch noch einen Änderungvorschlag: http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=122 lächeln

//Edit: Jojo war zwar schneller, aber nicht so ausführlich... lachen
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
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: 01.09.2007, 22:32    Titel: Antworten mit Zitat

Sebastian hat Folgendes geschrieben:
Ich hätte auch noch einen Änderungvorschlag: http://www.freebasic-portal.de/index.php?s=fbporticula&mode=show&id=122 lächeln

//Edit: Jojo war zwar schneller, aber nicht so ausführlich... lachen


Auch gut ist aber nicht mehr mein Code.
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 01.09.2007, 22:39    Titel: Antworten mit Zitat

du meinst, nicht mehr dein stil? den stil kann man ändern... wenn du das beispiel anschaust, dann weglegst und dann nachprogrammierst, ist es schon "selbst gemacht", und eine positive entwicklung im stil lächeln
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Franz



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

BeitragVerfasst am: 01.09.2007, 22:42    Titel: Antworten mit Zitat

Das sollte ich tun, allerdings habe ich nicht mehr so dass Gefühl das Script selbst gemacht zu haben . neutral
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 01.09.2007, 22:45    Titel: Antworten mit Zitat

Bei allem Respekt, das sind alles nur gutgemeinte Ratschlaege zur verbesserung deines Programmierstils... daran ist nichts schlimmes...
Niemand zeigt mit dem Finger auf Dich.
Daraus kann man nur lernen und sich verbessern... wenn Du derartige Hilfe nicht annehmen willst ist das eine andere Sache!
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Franz



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

BeitragVerfasst am: 01.09.2007, 22:50    Titel: Antworten mit Zitat

Weiß ich ja dass es nur gut gemeint ist lachen .

Danke für die Ratschläge.
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 01.09.2007, 22:51    Titel: Antworten mit Zitat

Franz hat Folgendes geschrieben:
Das sollte ich tun, allerdings habe ich nicht mehr so dass Gefühl das Script selbst gemacht zu haben . neutral

Das spielt doch auch keine Rolle; dieser Notenrechner an sich ist doch eigentlich belanglos: Ziel der Sache ist doch, dass du bei deinem nächsten und übernächsten größeren Projekt von vornherein auch so schreibst, d.h. dass du immer weiter dazulernst. Zu vermarkten ist solche Software eh nicht... zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mao



Anmeldungsdatum: 25.09.2005
Beiträge: 4409
Wohnort: /dev/hda1

BeitragVerfasst am: 02.09.2007, 13:20    Titel: Antworten mit Zitat

[OT]
Franz hat Folgendes geschrieben:

Wieso ist es so schwer eine Maus in QBasic einzubinden ?

Weil eine Maus zu Zeiten von QB immer noch nicht unbedingt zur Standard-Ausrüstung zählte. Warum auch, Windows war (okay, ist) schlecht und es "herrschte" DOS.
Franz hat Folgendes geschrieben:

Wann bekomme ich endlich die Mail von Qbasic-City ?

QBC ist tot. Alternative: http://www.qb-wettbewerb.de
_________________
Eine handvoll Glück reicht nie für zwei.
--
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: 02.09.2007, 15:56    Titel: Antworten mit Zitat

@ Mao

Zitat:

Na gut ...


Zitat:

QBC ist tot. Alternative: http://www.qb-wettbewerb.de


Warum steht das denn nirgendwo und warum ist QB-City tot ? verlegen
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Jojo
alter Rang


Anmeldungsdatum: 12.02.2005
Beiträge: 9736
Wohnort: Neben der Festplatte

BeitragVerfasst am: 02.09.2007, 16:16    Titel: Antworten mit Zitat

Stormy hatte einfach keine Zeit (und Motiavtion) mehr dazu... und mir scheint, dass du nicht nur nicht rechnen, sondern auch nicht lesen kannst durchgeknallt
in den news steht schon seit langer zeit, dass das projekt zur Zeit still steht... bis das Team wieder genug motivation hat grinsen
_________________
» Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Franz



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

BeitragVerfasst am: 02.09.2007, 16:42    Titel: Antworten mit Zitat

Naja man könnte aber auf der Startseite in Rot darauf hinweisen dass das Projekt eingestellt wurde.
_________________
Guckt nicht nur den Link an, besuch ihn auch mal !
Nach oben
Benutzer-Profile anzeigen Private Nachricht 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
Seite 3 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