.bat Kreisberechnung

Diskutiere .bat Kreisberechnung im Developer Network Forum im Bereich Hardware & Software Forum; Hallo, bin neu in der Materie und habe ein paar Fragen zu diesem Programm: Flächeninhalt großer Kreis - Flächeninhalt kleiner Kreis. 10...
  • .bat Kreisberechnung Beitrag #1
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
Hallo,

bin neu in der Materie und habe ein paar Fragen zu diesem Programm:

Flächeninhalt großer Kreis - Flächeninhalt kleiner Kreis.

10 REM Kreisberechnungen
20 REM PIber ATN (ARCTAN) bestimmen
30 PI=4*ATN(1)
40 REM Vom Nutzer den Radius erfragen
50 INPUT "Geben Sie bitte den inneren Radius in cm ein: ", [highlight]r[/highlight]
60 GOSUB 210
[highlight]70 ir = r
80 iu = u
90 ifl = f[/highlight]
100 INPUT "Geben Sie bitte den ausseren Radius in cm ein: ", r
110 GOSUB 210
120 REM Ergebnisse ausgeben
130 PRINT "Der innere Radius von: [highlight]" + STR$(ir)[/highlight] + " cm"
140 PRINT "ergibt fuer den Innenkreis einen Umfang von: " + STR$(iu) + " cm"
150 PRINT "eine Innenflaeche von: " + STR$(ifl) + " cm2"
160 PRINT "und bei einem ausseren Radius von: " + STR$(r) + " cm"
170 PRINT "einen aeusseren Umfang von: " + STR$(u) + " cm"
180 PRINT "bei der Gesamtflaeche von: " + STR$(f) + " cm2"
190 PRINT "Wobei fuer die Krempe: " + STR$(f - ifl) + " cm2 benoetigt werden."
200 QUIT
210 REM Umfang und Flaeche errechnen
220 u=2*PI*r
230 f=PI*r*r
240 RETURN

ich würde gerne wissen, was die hervorgehobenen Befehle bedeuten.

Außerdem:
<Buchstabe> = (die erklärung im inet hilft mir leider auch nicht weiter.

INPUT <Frage als String>, <Variable für die Antwort> (generell ist mir INPUT klar, aber das danach nicht.

GOSUB -> man kann mit dem Befehl RETURN zurückspringen. wird da nicht automatisch zurückgesprungen?

STR$ --> es lassen sich Zahlen einfach in Text umwandeln.

hoffe ihr erschreckt nicht vor dem riiiiesigem Beitrag.

mfg
 
  • .bat Kreisberechnung Beitrag #2
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
wenn du dir den speicher des computer als einen großen schrank mit schubladen vorstellst, dann ist eine variable eine schublade in diesem schrank. in basic werden variablen mit buchstaben bezeichnet. also auf die schubladen werden buchstaben geschrieben.

zeile 50: es wird erst der text ausgegeben und dann auf eine eingabe des benztzers gewartet. die eingabe vom benutzer wird in die schublade r gelegt.
zeile 70: der inhalt von r wird kopiert und in die schublade ir gelegt.
 
  • .bat Kreisberechnung Beitrag #3
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
In Zeile 70 bis 90 werden übrigens die drei Variablen in drei neue Variablen für den inneren Kreisradius kopiert, damit sie beim nächsten GOSUB nicht mit den Daten vom äußeren Radius überschrieben werden.
GOSUB springt an die angegebene Stelle und merkt sich dabei die aktuelle Position. Mit RETURN springt man dorthin zurück.
Es wird also der innere Radius vom Benutzer eingelesen und in r gespeichert. Dann springt das Programm in die SUB bei 210, wo Umfang und Fläche für den Radius r berechnet werden. Nach dem Rücksprung werden in Zeile 70 bis 90 die Ergebnisse für diesen Radius gespeichert, bevor r mit dem neuen Radius überschrieben wird und die Berechnung erneut dafür ausgeführt wird.

STR$(zahl) wandelt in der Tat eine Zahl in einen String um, denn nur Strings lassen sich mit + aneinanderhängen.

Allerdings hast du dir da wirklich was ganz altes ausgesucht; schon seit langem verwendet man für derlei Berechnungen einfach Funktionen. Heutzutage ist es in den meisten Fällen als schlechter Stil anzusehen, wenn man in Funktionen oder Prozeduren (Subs) in Variablen herumschreibt, die im ganzen Programm Gültigkeit haben. Das verursacht oft Fehler und führt zu unverständlichem Code.

PS: Die richtige Endung ist übrigens .bas ;)
 
  • .bat Kreisberechnung Beitrag #4
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
danke für die mühe. von beiden wirklich sehr anschaulich erklärt, besonders das mit den Schnubladen.

Das mit STR$ versteh ich leider noch nicht so ganz. Was sind Strings?

mfg

ähhm noch was. das in Zeile 30 ist einfach nur so ne "Schreibweise", dass pi berechnet wird!?
 
Zuletzt bearbeitet:
  • .bat Kreisberechnung Beitrag #5
fox99

fox99

Bekanntes Mitglied
Dabei seit
27.11.1999
Beiträge
3.948
Reaktionspunkte
27
Ort
Omicron Persei 8
ein string ist eine zeichenkette, quasi ein text. da ein computer mit zeichenketten nicht rechnen kann, benutzt er für zahlen ein anderes format zum speichern. damit du eine zahl ausgeben kannst, musst du die vorher in text umwandeln.

zu 30: ja

gosub ist der befehl um unterprogramme aufzurufen. und mit dem befehl return sagst du, das ein unterprogramm zu ende ist. return (aka enter) brauchst du dazu nicht zu drücken. es sind halt befehle, mit denen du den programmablauf beinflußen kannst.
 
  • .bat Kreisberechnung Beitrag #6
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
so, habe das programm jetzt mit dem editor geschrieben und "kreis.bas" genannt. wie bekomme ich das jetzt in meine virtual box (fdos) rein? (hab vorher auch ordneroptionen was deaktiviert, dass .txt nicht dasteht)

mfg
 
  • .bat Kreisberechnung Beitrag #7
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
QBasic sollte eigentlich auch noch unter neueren Betriebssystemen laufen; dazu brauchst du keine Virtual Box. Schau mal auf http://www.qbasic.de/ im Downloadbereich unter Compiler. Dort findest du QBasic als deutsche Version. Damit kannst du Programme schreiben und (per F5 wenn ich mich recht entsinne) ausführen. Das war früher bei MS-DOS dabei und diente vielen als Einstieg ins Programmieren. Ob bei deinem FreeDOS QBasic überhaupt enthalten ist, kann ich leider nicht sagen.
 
  • .bat Kreisberechnung Beitrag #8
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
also das buch mit dem ich arbeite sagt halt ich soll das ganze in fdos machen. die anderen programme hab ich da drin schon ausgeführt. die waren so kurz, dass ich sie gleich da drin geschrieben habe. ich werde jetzt aber QBasic ausprobieren. es würde mich aber trotzdem interessieren, wie es anders funktioniert. mein buch sagt nur: BASIC-Programme für bwBASIC braucht man nicht im interaktiven Modus zu laden (???), um sie ausführen zu können. Ein solches Programm können Sie auch direkt interpretieren lassen, und zwar in unserem DOS-Rechner mit: bwbasic "kreis.bas"
Allerdings muss das Programm dazu natürlich auf der Festplatte des Rechners liegen. Das gelingt am besten mit der virtuellen Diskette.....???????

mfg
 
  • .bat Kreisberechnung Beitrag #9
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Im interaktiven Modus bedeutet, dass du BASIC einfach mit seinem Befehl startest (bwbasic oder eben qbasic). Dann wird die Benutzeroberfläche angezeigt, also der integrierte Editor. Damit kannst du ein Programm öffnen und starten. Die zweite Variante ist die beschriebene; wenn du dem Aufruf von BASIC direkt einen Dateinamen eines fertigen Programms mitgibst, dann wird dieses Programm direkt geöffnet und gestartet, ohne dass du was vom Editor siehst.
Zum Dateiaustausch mit der Virtualbox gibt es ein paar Möglichkeiten, die alle detailliert in der Hilfe beschrieben sind. Da das aber unnötiger Aufwand ist und mit deinem eigentlichen Interesse nichts zu tun hat, habe ich dir qbasic direkt unter deinem "normalen" Windows empfohlen.
 
  • .bat Kreisberechnung Beitrag #10
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
10 REM Kreisberechnungen
20 REM PIber ATN (ARCTAN) bestimmen
30 PI=4*ATN(1)
40 REM Vom Nutzer den Radius erfragen
50 INPUT "Geben Sie bitte den inneren Radius in cm ein: ", r
60 GOSUB 210
70 ir = r
80 iu = u
90 ifl = f
100 INPUT "Geben Sie bitte den ausseren Radius in cm ein: ", r
110 GOSUB 210
120 REM Ergebnisse ausgeben
130 PRINT "Der innere Radius von: " + STR$(ir) + " cm"
140 PRINT "ergibt fuer den Innenkreis einen Umfang von: " + STR$(iu) + " cm"
150 PRINT "eine Innenflaeche von: " + STR$(ifl) + " cm2"
160 PRINT "und bei einem ausseren Radius von: " + STR$(r) + " cm"
170 PRINT "einen aeusseren Umfang von: " + STR$(u) + " cm"
180 PRINT "bei der Gesamtflaeche von: " + STR$(f) + " cm2"
190 PRINT "Wobei fuer die Krempe: " + STR$(f - ifl) + " cm2 benoetigt werden."
200 QUIT
210 REM Umfang und Flaeche errechnen
220 u=2*PI*r
230 f=PI*r*r
240 RETURN

irgend etwas stimmt nicht. nach dem Laden und Starten meldet das Programm: Syntaxfehler.

mfg
 
  • .bat Kreisberechnung Beitrag #11
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
ich kenne mich zwar mit basic nicht besonders gut aus, aber kann es vllt sein, dass die Funktion (ATN) garnicht so existiert?
Und warum benutzt du einen SO ungenauen wert? da ist ja 3,1 genauer ...

sonst könnte das vllt daran liegen: STR$(f - ifl) ?? wie gesagt, hab kaum ahnung von bay SICK
 
  • .bat Kreisberechnung Beitrag #12
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
In bwbasic oder in qbasic? Und in welcher Zeile? Zumindest qbasic sollte eigentlich anhalten und den Fehler markieren, wenn ich das richtig in Erinnerung habe. Nebenbei, Zeilennummern sind auch in Basic schon seit 20 Jahren oder mehr nicht mehr nötig (außer für Sprungmarken, die mit GOTO oder GOSUB angesprungen werden; da brauchst du irgendein Label (mit nachfolgendem Doppelpunkt, glaube ich, also z.B: UnterProg1: ) oder eine Zeilennummer); das spart Zeit beim Tippen.
Leider ist das alles schon ziemlich lange her; möglich, dass du die Variablen vorher mit DIM deklarieren musst, oder QBASIC unterstüzt einen der Befehle nicht (ich hätte mal spontan getippt, dass END statt QUIT erforderlich ist).

@Trµman: Dir ist aber schon klar, was der Arcustangens berechnet, oder? Und dass tan(Pi/4) = 1 ist, ebenfalls? Und weshalb sollte eine einfache Subtraktion in BaySICK, wie du so schön sagst, nicht funktionieren?
 
  • .bat Kreisberechnung Beitrag #13
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
ich kenne mich zwar mit basic nicht besonders gut aus, aber kann es vllt sein, dass die Funktion (ATN) garnicht so existiert?
Und warum benutzt du einen SO ungenauen wert? da ist ja 3,1 genauer ...

sonst könnte das vllt daran liegen: STR$(f - ifl) ?? wie gesagt, hab kaum ahnung von bay SICK

mhh, das ganze nervt mich jetzt schon ein bisschen. bei dem buch war ne cd dabei und das hier die sog. musterlösung. und die geht jetzt nicht. was das pi angeht habe ich keine ahnung und das str$(f - ifl) finde ich auch komisch, weil vorher hab ich ja unten die formeln auflisten müssen und jetzt geht das so ohne weiteres... nja. was genau versteht man unter "Syntaxfehler"?

mfg
 
  • .bat Kreisberechnung Beitrag #14
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
  • .bat Kreisberechnung Beitrag #15
T

TrµMAn

Bekanntes Mitglied
Dabei seit
23.10.2006
Beiträge
4.882
Reaktionspunkte
2
Ort
Wuppertal
ein, Syntaxfehler, ist, auf, gut, deutsch, dass, was, du hier, siehst ;) falscher befehl an falscher stelle bzw. unbekannter Befehl kann das auch manchmal sein
 
  • .bat Kreisberechnung Beitrag #16
cmddegi

cmddegi

Bekanntes Mitglied
Dabei seit
12.07.2001
Beiträge
4.740
Reaktionspunkte
0
Ort
Austria
Sag mal, was ist denn das eigentlich für ein Buch, wenn da überhaupt keine Grundlagen erklärt werden? Das sind eigentlich lauter Sachen, die man weiß, bevor man sein zweites (nach dem Hello World!) Programm schreibt.
STR$(zahl) ist eine Funktion, die aus einer übergebenen Zahl einen Text erzeugt, der die Zahl enthält, und diesen Text zurückgibt (bedeutet, wenn das Programm läuft, dann wird die Funktion aufgerufen und an ihrer Stelle der zurückgegebene Wert verwendet). Das Argument in den Klammern muss eine Zahl sein, und wenn da drin eine Rechenanweisung steht, dann wird natürlich zuerst das Ergebnis berechnet und dieses dann der Funktion übergeben. Das ist nichts anderes als eine Kette von Funktionen in der Mathematik, wie z.B. a=3*sin(2*Pi). Da berechnet man auch zuerst 2*Pi, dann den Sinus davon, und dieses Ergebnis wird in der Gleichung statt dem sin() eingesetzt.

Syntaxfehler bedeutet, dass der Interpreter etwas gefunden hat, was er nicht kennt. Das kann ein Tippfehler sein, z.B. ein vergessenes Anführungszeichen, oder auch ein gänzlich unbekannter Befehl.

In deinem Fall sind wohl bwbasic und qbasic nicht gänzlich kompatibel und das Buch ist eben für bwbasic beschrieben.
 
  • .bat Kreisberechnung Beitrag #17
T

tamagotchi

Bekanntes Mitglied
Dabei seit
04.09.2008
Beiträge
275
Reaktionspunkte
0
Sag mal, was ist denn das eigentlich für ein Buch,
Coding for Fun. Das Buch ist aber nicht so schlecht. Es behandelt die Geschichte der Programmierung!? Angefangen von Turing über Ameise... Da kann der Autor nicht alles so genau erklären, da es sonst ausufern würde. Für die Feinheiten hab ich ja Powerforen:goil:

mfg
 
Thema:

.bat Kreisberechnung

ANGEBOTE & SPONSOREN

https://www.mofapower.de/

Statistik des Forums

Themen
213.179
Beiträge
1.579.172
Mitglieder
55.878
Neuestes Mitglied
Satan666
Oben