Français
Forum & Aider

Sprachelement: var

 
var Bezeichner [ = Wert ] [, Bezeichner [ = Wert ], ...

Deklariert Variablenbezeichner et weist ihnen ggf. Werte trop.

Es peut beliebig viele Variablen erstellt volonté, erlaubt pour qui Bezeichnernamen sommes Buchstaben et Les chiffres et cela erste marque muss un Buchstabe son. aussi erlaubt sommes qui marque _ et .

Hinweis: Var comme Funktion peux verwendet volonté um den Variablentyp zurückzuerhalten.

Siehe aussi: § 5 - Datentypen

Beispiele pour qui Verwendung de Variablen:

Simple Variable:
var a,b,c
a=10
b=20.5
c="Hallo Welt"
imprimer a,b,c// gibt 10 20.5 allô monde aus

Simple Variable, kompaktere Schreibweise:
var a=10,b=20.5,c="Hallo Welt"
imprimer a,b,c// gibt 10 20.5 allô monde aus

Array:
var a=[10,20,30]
imprimer a[1]// gibt 20

Assoziative Arrays:
var a=["Magnet"=5,"Faktor"=5.5,"Farbe"="Grün"]
imprimer a["Faktor"]// gibt 5,5

Arrays comme Objekte:

Arrays comme Objekte:
var a,a.liste
a.magnet=5
a.facteur=5.5
a.la couleur="Grün"
a.liste=50
imprimer a// gibt magnet=5, faktor=5.5 farbe=Grün aus, mais pas liste=50 là a.liste par var eigenständig deklariert wurde.

Typ einer Variablen beziehen:
var a="Test"
imprimer var(a)// gibt string aus

Keywords: var,declare,gettype

 
01.12.2014  
 



attention Changement pour Arraydeklaration:

aus var o=array(10,20,30) wird var o=[10,20,30]
 
06.12.2014  
 



récente:

Var peux aussi verwendet volonté um den Variablentyp zurückzuerhalten. dans diesem le cas ist Var comme Funktion trop verwenden: var a=1.1;print var(a) //gibt float aus.
 
13.05.2015  
 




HofK
Im Zusammenhang avec dem "Space-Operator"  [...]  beim Präkompilierer wäre un optionales Sonderzeichen zur Typermittlung pour total Schreibfaule super. chez einer polymorphen Funktionsdefinition sieht on qui Reduzierung des Schreibstreassfaktors deutlich.
proc poly a b c// qui Präkompilierer richtet cela

    //  Typprüfung avec optionalem Sonderzeichen (bspw °) wäre quelque chose pour total Schreibfaule comment ...

    si ((°a==long)&&(°b==long)&&(°c==zéro))

        return "Das Ergebnis ist: " + str(a-2*b)

    elseif ((°a==string)&&((°b==long)||(°b==float))&&((°c==long)||(°c==float)))

        return  a + " = " + str(sqrt(a*a+b*b))

    elseif ((°a==string)&&(°b==zéro)&&(°c==zéro))

        return "Genau une Zeichenkette wurde transfert."
        // ... Befehle zur Verarbeitung qui Zeichenkette ...

    elseif ((°a==string)&&((°b==long)||(°b==float))&&(°c==zéro))

        si (°b==long)

            return "Übergabe: 1. paramètre Zeichenkette, 2. paramètre ganze Zahl"

        endif

        si (°b==float)

            return "Übergabe: 1. Param. ist Zeichenkette, 2. paramètre Dezimalzahl"

        endif

        // ... Befehle zur Verarbeitung qui Zeichenkette et/ou bien qui numéro ...

    elseif ((°a==string)&&((°b==long)||(°b==float))&&(°c==bool))

        return "Parameterübergabe: 1. Zeichenkette, 2. numéro, 3. Wahrheitswert
        // ... Befehle zur Verarbeitung qui trois paramètre ...

    d'autre

        return zéro

    endif

endproc

// so ist es pour derzeitiger référence avec var( )

proc poly(a,b,c)

    //  Typprüfung avec var()

    si ((var(a)==long)&&(var(b)==long)&&(var(c)==zéro))

        return "Das Ergebnis ist: " + str(a-2*b)

    elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&((var(c)==long)||(var(c)==float)))

        return  a + " = " + str(sqrt(a*a+b*b))

    elseif ((var(a)==string)&&(var(b)==zéro)&&(var(c)==zéro))

        return "Genau une Zeichenkette wurde transfert."
        // ... Befehle zur Verarbeitung qui Zeichenkette ...

    elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&(var(c)==zéro))

        si (var(b)==long)

            return "Übergabe: 1. paramètre Zeichenkette, 2. paramètre ganze Zahl"

        endif

        si (var(b)==float)

            return "Übergabe: 1. Param. ist Zeichenkette, 2. paramètre Dezimalzahl"

        endif

        // ... Befehle zur Verarbeitung qui Zeichenkette et/ou bien qui numéro ...

    elseif ((var(a)==string)&&((var(b)==long)||(var(b)==float))&&(var(c)==bool))

        return "Parameterübergabe: 1. Zeichenkette, 2. numéro, 3. Wahrheitswert
        // ... Befehle zur Verarbeitung qui trois paramètre ...

    d'autre

        return zéro

    endif

endproc

 
14.05.2015  
 



si ((°a==long)&&(°b==long)&&(°c==null))

là pourrait on doch dire, statt:

°c==null

simple

c==null

car Typ zéro peux oui seulement la valeur zéro liefern - ici alors un Typenzeichen
unnötig.

So weitergedacht überlege je naturellement, si pas simple

a==long ou bien s==string ou bien f==float,

schließlich volonté ici long, float etc pas comme Funktion verwendet
sonden könnten comme Konstante verstanden volonté. je muss la fois
herausbekommen si sich cela avec irgendwas beißt.
 
14.05.2015  
 



ah et incidemment Votre la ligne:
return  a + " = " + str(sqrt(a*a+b*b))

allez dank Space-Operator viel einfacher:
return  a + " = " + str sqrt a*a+b*b

et eigentlich sowieso seulement so notwendig:
return  a + " = " + sqrt a*a+b*b

Weil string+float = string
 
14.05.2015  
 




HofK
... car Typ zéro peux oui seulement la valeur zéro liefern - ici alors un Typenzeichen unnötig ... toujours aussi encore cet Sonderfälle

... incidemment Votre la ligne: ...soweit était je encore garnicht! voilà encore entier joli viel Potential.
 
14.05.2015  
 




HofK
Hm, wodurch wird bien sûr, si cela dernier Pluszeichen une Stringanfügung ou bien une Addition ist? malheureusement ist + oui üblicherweise doppelt belegt.

return a + " = " + sqrt a*a+b*b
 
15.05.2015  
 



cela vom Typ her höherwertige Ergebnis bestimmt den Typ weil seulement so
sans Datenverlust konvertiert volonté peux. Höherwertig demzufolge
dans cette Reihenfolge:

String
Float
Long
Bool
zéro

Ergo ist 1+"Test" toujours "1Test" oui c'est ca comment "Test"+1 toujours "Test1" ist,
1.1+2 ist toujours 2.2 oui c'est ca comment 2+1.1 toujours 2.2 ist.

il peut aussi dire, quoi Du avec String verknüpfst ist toujours String.

ca ici: 2.2+1+"hallo"+5.5+1
ergibt: 3.2allô5.51,
dans diesem le cas alors de à gauche pour à droite ausargumentiert.

si on avec den payons dans einer Stringkonstante le calcul veux ensuite
per long( ou bien float( den String konvertieren.
 
15.05.2015  
 




HofK
cela était soweit bien sûr, hatten wir aussi déjà avant einiger Zeit dans qui Diskussion - finde je mais justement pas. joli ici nochmal qui konkrete Auflistung qui Wertigkeit, serait sich là  [...]  bien faire.

si je maintenant pas total de travers liege, seulement daher mon Anmerkung bezüglich des mitdenkenden Präkompilierers, devrait ensuite dans qui letzten simplification doch encore return a + " = " + sqrt( a*a+b*b) stehen, là oui dans qui Ausgangszeile qui Pythagoras anvisiert était.
Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez.

voilà qui . pour qui Konkatenation chez php et Konsorten ensuite plan eindeutiger et übersichtlicher. mais den Punkt übersieht on aussi la fois plus rapide, il est so lütt.
 
15.05.2015  
 



iF (01.12.14)
Space-Operator (Freizeichen), eigentlich ne...aucune Operator mais une Sprach/ Syntaxeigenschaft, näheres en supplément sous: [...]


qui la ligne:

return a + " = " + str(sqrt(a*a+b*b))

peux durchaus so vereinfacht volonté:

return a + " = " + sqrt a*a+b*b

qui Space-Operator ist ne...aucune logischer Operator mais un Syntaxmittel,
cela avant den logischen Operatoren aufgelöst wird et pas comment qui log.
Operatoren de à gauche pour à droite mais il peut seulement de à droite
pour à gauche aufgelöst volonté.

tu as es avec

> Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez.

richtig erkannt. qui Space-Operator peux Kommas et Klammern
herbeizaubern anhand dessen si il une Funktion findet ou bien une Wert.

So serait aus:

proc test a b c;endproc
return a + " = " + str sqrt a*a+b*b test a b c

proc test(a,b,c);endproc
return a + " = " + str(sqrt(a*a+b*b,test(a,b,c)))
 
16.05.2015  
 




HofK
"Es sei car, pour sqrt wird solange numerisch "gedacht" comme allez."

je hatte es gehofft, mais pas absolument erwartet, car tellement lästige Sonderzeichen sparendes, wirklich vereinfachendes habe je chez den gängigen Sprachen bisher pas gesehen. Gibt es cela überhaupt déjà irgendwo?

sûrement muss on es so einsetzen, dass qui Übersichtlichkeit pas trop kurz venez. cela wird sich pratique vite montrer.

qui Präkompilierer avec qui Syntaxeigenschaft/Syntaxmittel Kodeergänzung par Space Operator verdient eventuell une eigenen Paragraphen, chez § 7 Operatoren allez qui Space Operator quelque chose sous et ist oui ensuite aussi ne...aucune klassischer Operator.

cela Leerzeichen, qui Space Operator est un intelligenter Space Seperator, un intelligenter Trenner, un Space-Autoseparator kurz un Autoseparator, un polymorpher Seperator, avec cela et avec ca polymorphes chez InfinityProfan.

" ... cela avant den logischen Operatoren aufgelöst wird ... il peut seulement de à droite pour à gauche aufgelöst volonté." ist entier important zum Verständnis et sollte dans den Paragraphen rein. peux on den zugrundeliegenden Algorithmus kurz/vereinfacht/übersichtlich représenter?

Freue mich déjà auf's konstruieren et expliquer de Beispielen zur Syntaxeigenschaft.
 
16.05.2015  
 




répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

15.545 Views

Untitledvor 0 min.
RudiB.20.03.2020
maroro25.07.2016
Sascha Patzsch23.03.2016
Pedro Miguel16.03.2016
plus...

Themeninformationen

cet Thema hat 2 participant:

iF (13x)
HofK (10x)


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie