matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Schulmathe
  Status Primarstufe
  Status Mathe Klassen 5-7
  Status Mathe Klassen 8-10
  Status Oberstufenmathe
    Status Schul-Analysis
    Status Lin. Algebra/Vektor
    Status Stochastik
    Status Abivorbereitung
  Status Mathe-Wettbewerbe
    Status Bundeswettb. Mathe
    Status Deutsche MO
    Status Internationale MO
    Status MO andere Länder
    Status Känguru
  Status Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenBASICSource Code
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "BASIC" - Source Code
Source Code < BASIC < Programmiersprachen < Praxis < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "BASIC"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Source Code: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 11:21 Sa 29.03.2014
Autor: Mathics

Liebes Forum,

ich habe hier einen Source Code und verstehe ihn nicht so ganz:


Function algA (a As Integer, b As Integer, c As Integer) As Boolean
       Dim return As Boolean
       return = False
       If a <= b Then
                   If (c>=a) And (c<=b) Then
                           return = True
                   End If
       Elself (c>b) And (c<a) Then
                    return = True
       End If
       algA = return
End Function


Für mich bedeutet das:
- Ich habe 3 Variablen a,b,c jeweils Integer als Input und suche einen Output als    
  Boolean
- Ich setze meinen return zunächst als Falsch (Könnte ich das auch weglassen?)
- Ich prüfe ob a <=b gilt und falls dann auch c >=a und c<=b also zwischen c  
   zwischen a und b liegt, ist mein return True.
- Wieso kommt jetzt ein End If statt Else? Weil man sich denken kann, dass,  
  wenn c nicht kleiner gleich b und größer gleich a ist, der return False sein  
  muss?
- Bedeutet das Elself einfach Else oder wieso heißt es anders? Meint das Elself  
   den Fall a > b? Könnte ich dann auch Elself/Else a > b Then und dann  
   dadrunter If (c > b) And (c<a) schreiben?


LG
Mathics




        
Bezug
Source Code: Antwort
Status: (Antwort) fertig Status 
Datum: 11:47 Sa 29.03.2014
Autor: Diophant

Hallo,

> Liebes Forum,

>

> ich habe hier einen Source Code und verstehe ihn nicht so
> ganz:

>
>

> Function algA (a As Integer, b As Integer, c As Integer) As
> Boolean
> Dim return As Boolean
> return = False
> If a <= b Then
> If (c>=a) And (c<=b) Then
> return = True
> End If
> Elself (c>b) And (c<a) Then
> return = True
> End If
> algA = return
> End Function

>
>

> Für mich bedeutet das:
> - Ich habe 3 Variablen a,b,c jeweils Integer als Input und
> suche einen Output als
> Boolean
> - Ich setze meinen return zunächst als Falsch (Könnte
> ich das auch weglassen?)

Vermutlich ja, aber dann verlässt man sich auf den Compiler. Deklarieren musst du die Variable return jedoch, also weist man ihr eben gleich einen Wert zu (den sie vermutlich sowieso nach der Deklaration hätte).

> - Ich prüfe ob a <=b gilt und falls dann auch c >=a und
> c<=b also zwischen c
> zwischen a und b liegt, ist mein return True.
> - Wieso kommt jetzt ein End If statt Else? Weil man sich
> denken kann, dass,
> wenn c nicht kleiner gleich b und größer gleich a ist,
> der return False sein
> muss?

Nein, sondern schlicht und ergreifend um die innere If-Struktur zu schließen. Das sind die Sachen die in Sprachen wie C++ einfach per Klammer erledigt werden, in Basic braucht es dazu traditionell ein Schlüsselwort.

> - Bedeutet das Elself einfach Else oder wieso heißt es
> anders?

Das heißt ElseIf und leitet eine neue If-Struktur ein, die nur ausgeführt wird, wenn der Wert der vorangehenden False war.

> Meint das Elself
> den Fall a > b?

Nein, denn sonst wäre es unnötig.

> Könnte ich dann auch Elself/Else a > b

> Then und dann
> dadrunter If (c > b) And (c<a) schreiben?

Man kann vermutlich auch ein Else setzen und darunter eine neue If...End If-Struktur. Aber genau um das zu vermeiden, also für eine bessere Übersicht, gibt es ja ElseIf.

Es wäre hilfreich, wenn du bei solchen Rückfragen ein wenig dazu sagen könntest, wo du das her hast. Hast du das selbst geschrieben, oder besteht die Aufgabe darin, den Code zu interpretieren?

Irgendwie soll ja untersucht werden, ob c zwischen a und b liegt. Das ist hier nach dem Motto Warum einfach, wenn es auch umständlich geht? umgesetzt und dabei ist auch noch die Verwendung von < und <= völlig inkonsistent.

Gruß, Diophant

Bezug
                
Bezug
Source Code: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:01 Sa 29.03.2014
Autor: Mathics


> > Meint das Elself
>  > den Fall a > b?

>  
> Nein, denn sonst wäre es unnötig.

Für welchen Fall steht Elself denn? Also wenn a  <= b ist, aber c nicht >= a und c<=b ist, müsste, wenn gilt c>b und c<a doch a>b sein oder nicht?

LG
Mathics

Bezug
                        
Bezug
Source Code: Antwort
Status: (Antwort) fertig Status 
Datum: 12:12 Sa 29.03.2014
Autor: Diophant

Hallo,

>

> > > Meint das Elself
> > > den Fall a > b?
> >
> > Nein, denn sonst wäre es unnötig.

>

> Für welchen Fall steht Elself denn?

Nochmal, es heißt

ELSEIF

Und es wird nur wirksam, wenn a>b ist (das habe ich schon in mieiner vorigen Antwort geschruieben!) und prüft eben die Bedingung, die dahinter steht.

Es ist sehr schwierig, dir zu helfen, weil man nicht so recht versteht, was du eigentlich wissen möchtest. Könntest du da vielleicht ein wenig strukturierter vorgehen?

Gruß, Diophant

Bezug
                                
Bezug
Source Code: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:22 Sa 29.03.2014
Autor: Mathics

Entschuldige bitte, ich habe es total missverstanden, was schon damit anfing, dass ich nicht gesehen habe, dass es ELSEIF also (Else und If) heißt. Es handelt sich also um eine Bedingung im Else Teil. Entschuldige meine Ungenauigkeit!

D.h. im Endeffekt wird einfach nur überprüft, ob c zwischen a und b liegt, oder?


LG
Mathics

Bezug
                                        
Bezug
Source Code: Antwort
Status: (Antwort) fertig Status 
Datum: 12:32 Sa 29.03.2014
Autor: Diophant

Hallo,

> Entschuldige bitte, ich habe es total missverstanden, was
> schon damit anfing, dass ich nicht gesehen habe, dass es
> ELSEIF also (Else und If) heißt. Es handelt sich also um
> eine Bedingung im Else Teil. Entschuldige meine
> Ungenauigkeit!

>

> D.h. im Endeffekt wird einfach nur überprüft, ob c
> zwischen a und b liegt, oder?

Ja, wobei eben die strikten Ungleichheiten in der ElseIf-Struktur im Widerspruch zu den <=-Relationen der ersten If-Struktur stehen. Das ergibt für mich keinen Sinn. Ist es vielleicht ein Tippfehler?

Gruß, Diophant

Bezug
                                                
Bezug
Source Code: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 12:39 Sa 29.03.2014
Autor: Mathics


> Ja, wobei eben die strikten Ungleichheiten in der
> ElseIf-Struktur im Widerspruch zu den <=-Relationen der
> ersten If-Struktur stehen. Das ergibt für mich keinen
> Sinn. Ist es vielleicht ein Tippfehler?

Meinst du, dass im ElseIf- Teil auch a >=b möglich sein müsste und damit (c >=b) And (c<=a)?


LG
Mathics




Bezug
                                                        
Bezug
Source Code: Antwort
Status: (Antwort) fertig Status 
Datum: 12:46 Sa 29.03.2014
Autor: Diophant

Hallo,

> > Ja, wobei eben die strikten Ungleichheiten in der
> > ElseIf-Struktur im Widerspruch zu den <=-Relationen der
> > ersten If-Struktur stehen. Das ergibt für mich keinen
> > Sinn. Ist es vielleicht ein Tippfehler?

>

> Meinst du, dass im ElseIf- Teil auch a >=b möglich sein
> müsste

Hä?

Das hatten wir doch schon. Die ElseIf-Struktur wird überhaupt nur durchgeführt, wenn die vorangehende If-Abfrage mit False ausgewertet wurde. Das ist der Fall a>b. Punkt.

> und damit (c >=b) And (c<=a)?

Es würde mehr Sinn ergeben, wenn die Bedingung im ElseIf-Teil so ausgeführt wäre. Insgesamt hätte man dann geprüft, ob c zwischen a und b leigt, wobei c=a oder c=b zulässig sind. Möchte man letzteres nicht, dann bräuchte es eben im inneren If...Then und im ElseIf-Teil eine strikte Kleiner-Relation.

Gruß, Diophant

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "BASIC"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.schulmatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]