HILFE: Anfängerprogramm - Dreiecksflächenberechnung
Übersicht

Lexus_ksBetreff: HILFE: Anfängerprogramm - Dreiecksflächenberechnung |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe zur Übung mein erstes Programm geschrieben:
Code: [AUSKLAPPEN] fontvariable = LoadFont("verdana") ; Font laden SetFont fontvariable ; Font setzen grundseite = Input("Gib die Länge der Grundseite in mm ein: ") hoehe = Input("Gib die Höhe in mm ein: ") flaeche = 0 flaechenberechnung (grundseite,hoehe) Function flaechenberechnung (grundseite, hoehe) flaeche = grundseite*hoehe/2 Return flaeche End Function Print "Das Dreieck hat eine Fläche von" Print flaeche Print "mm²" WaitKey Aber es gibt für Fläche immer nur 0 aus -__- Was ist falsch? Übrigens wollte ich mal fragen, wie es geht, dass ich mit dem Print Befehl sowas ausgeben : Print variable1 "text" variable 2 PS: Nicht über das Proggi lachen, ich muss mich erstmal ein bisschen in die Materie klabustern ^^ |
||
![]() |
Bud |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] fontvariable = LoadFont("verdana") ; Font laden
SetFont fontvariable ; Font setzen grundseite = Input("Gib die Länge der Grundseite in mm ein: ") hoehe = Input("Gib die Höhe in mm ein: ") flaeche = flaechenberechnung (grundseite,hoehe) ; x Function flaechenberechnung (grundseite, hoehe) flaeche = grundseite*hoehe/2 ; Die Variable "flaeche" ist hier nur eine Lokale Variable, verändert also nicht die da oben ^ Return flaeche ; Gibt den Wert der Variable an die Variable oben (mit x gekennzeichnet) aus End Function Print "Das Dreieck hat eine Fläche von " + flaeche + " mm²" ; So (oder mit Write()) vermeidest du die Zeilenumbrüche ^^ WaitKey So ists's richtig, habe den Fehler im Code kommentiert. |
||
Lexus_ks |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für deine auführliche Antwort ![]() Aber mal ein weiterführender Gedanke....mal angenommen ich würde die Variable "Fläche" nicht nur zur Berechnung mit dieser Funktion nutzen wollen....das geht ja dann gar nicht, da ich bei der Definition schon festelege, dass ich sie für diese eine Funktion (flaechenberechnung) nutze. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
flaeche = flaechenberechnung (...,...)
Wenn eine Funktion was zurückgibt, musst du es einer Variable zuweisen. Alternatriv kannst Du globale Variablen einrichten, Die im ganzen Code gültig sind. (allerdings ein eher unglücklicher Weg, denn die Variablentrennung macht Sinn). Bislang ist es so dass flaeche als Variable nur in der Funktion existiert und zu existieren aufhört wenn die Funktion verlassen wird. Wenn Du es machst wie ich oben gezeigt hab, existiert noch eine variable flaeche ausserhalb der Funktion, und die kriegt dann den Wert zugewiesen. |
||
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3 Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64 B3D BMax MaxGUI Stolzer Gewinner des BAC#48, #52 & #92 |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Randbemerkung: Obiger Code ist nicht ganz fehlerfrei, da er nur mit Integer rechnet.
Eigentlich sollte er so aussehen: Code: [AUSKLAPPEN] Function flaechenberechnung# (grundseite#, hoehe#) flaeche# = grundseite*hoehe/2.0 ; Die Variable "flaeche" ist hier nur eine Lokale Variable, verändert also nicht die da oben ^ Return flaeche ; Gibt den Wert der Variable an die Variable oben (mit x gekennzeichnet) aus End Function |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Lexus_ks |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Okay, das wäre dann wohl noch so das I-Tüpfelchen ^^ Danke für den Verbesserungsvorschlag. | ||
![]() |
Jean |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Hier mal mein Programm, welches ich auf mein Taschenrechner Basic umgeschrieben habe und so bei der Prüfung ohne viel Aufwand eine sehr gute Note bekommen habe. ![]() Code: [AUSKLAPPEN] a#=Input$ ("A ")
b#=Input$ ("B ") c#=Input$ ("C ") h#=Input$ ("H ") p#=Input$ ("P ") q#=Input$ ("Q ") Repeat z = 0 If p# > 0 And q# > 0 And c# = 0 c# = q# + p# z = 1 EndIf If c# > 0 And q# > 0 And p# = 0 p# = c# - q# z = 1 EndIf If c# > 0 And p# > 0 And q# = 0 q# = c# - p# z = 1 EndIf If p# > 0 And q# > 0 And h# = 0 h# = p# * q# h# = Sqr# (h#) z = 1 EndIf If h# > 0 And q# > 0 And p# = 0 x# = h# * h# p# = x# / q# z = 1 EndIf If h# > 0 And p# > 0 And q# = 0 x# = h# * h# q# = x# / p# z = 1 EndIf If p# > 0 And c# > 0 And a# = 0 a# = Sqr# (p# * c#) z = 1 EndIf If q# > 0 And c# > 0 And b# = 0 b# = Sqr# (q# * c#) z = 1 EndIf If b# > 0 And c# > 0 And q# = 0 x# = b# * b# q# = x# / c# z = 1 EndIf If a# > 0 And c# > 0 And p# = 0 x# = a# * a# p# = x# / c# z = 1 EndIf If a# > 0 And b# > 0 And c# = 0 x# = a# * a# y# = b# * b# c# = Sqr# (x# + y#) z = 1 EndIf If a# > 0 And c# > 0 And b# = 0 x# = a# * a# y# = c# * c# b# = Sqr# (y# - x#) z = 1 EndIf If b# > 0 And c# > 0 And a# = 0 x# = b# * b# y# = c# * c# a# = Sqr# (y# - x#) z = 1 EndIf Until z = 0 Print "a: " + a# Print "b: " + b# Print "c: " + c# Print "h: " + h# Print "p: " + p# Print "q: " + q# Print "Fläche: " + c# * h# / 2 WaitKey |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group