Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m319:learningunits:lu01:deklaration [2025/06/23 07:45] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1de:modul:m319:learningunits:lu01:deklaration [2025/06/23 15:44] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 217.113.194.187
Zeile 1: Zeile 1:
 +====== LU01d - Variablen deklarieren ======
 +
 +===== Vorschrift und Wert =====
 +<code>
 +x = y + z
 +</code>
 +Aus der Algebra kennst du bereits solche Rechnungen mit Platzhaltern.
 +Du weisst, dass jeder Buchstabe stellvertretend für eine bestimmte Zahl steht.
 +Wenn wir diese Gleichung etwas genauer betrachten sehen wir:
 +
 +  * Eine Vorschrift, was zu berechnen ist: ''y+z''
 +  * Den Ort, an dem das Ergebnis gespeichert wird: ''x=''
 +
 +Damit du das Ergebnis der Gleichung berechnen kannst,
 +müssen die Platzhalter einen bestimmten Wert erhalten.
 +Wenn du nun wissen, dass ''y=4'' und ''z=9'' ist, kannst du ''x'' berechnen.
 +
 +===== Variablen im Programm =====
 +
 +In der Programmierung nennen wir die Platzhalter **Variablen**.
 +Variablen reservieren Speicherplatz um darin Werte zu speichern.
 +Wenn du das Ergebnis von ''5+7'' speichern willst, musst du eine passende Variable bereitstellen.
 +
 +In den meisten Programmiersprachen müssen die Variablen **deklariert** werden, bevor sie zum ersten mal verwendet werden. 
 +
 +<WRAP center round tip 60%>
 +Die Deklaration legt den Namen (Bezeichner) und Datentyp einer Variable fest.
 +Durch die Deklaration kennt der Compiler die Variable und wir können Sie im Programm verwenden.
 +</WRAP>
 +
 +
 +==== Name ====
 +
 +Um die Variable zu verwenden, benötigt sie einen Namen (Bezeichner). 
 +Der Name einer Variable sollte möglichst sprechend sein. 
 +Das bedeutet, dass ihr Name etwas über den Inhalt bzw. Verwendungszweck aussagt. 
 +Die Variablennamen in Python sind immer klein geschrieben, nach dem Styleguide von Python. 
 +Der Name besteht in der Regel aus Buchstaben, Zahlen und dem Underline (''_''). 
 +Variablennamen sollten in ''snake_case'' geschrieben werden, wobei Wörter durch Unterstriche verbunden werden und alle Buchstaben klein sind.
 +
 +<WRAP center round important 60%>
 +Gewöhne dich von Anfang an daran, alle Bezeichner in englisch zu schreiben.
 +Verwende niemals Leerzeichen, Umlaute oder Sonderzeichen in einem Variablennamen.
 +</WRAP>
 +
 +==== Namenskonventionen am BZZ ====
 +
 +Das BZZ hat die folgenden Namenskonventionen:
 +
 +  * Variablen- und Funktionsnamen: Kleinbuchstaben, die durch ''_'' getrennt sind (''snake_case'').
 +  * Konstanten: Großbuchstaben, die durch ''_'' getrennt sind (''UPPER_CASE'').
 +
 +=== Gute Variablennamen ===
 +
 +    * givenname
 +    * price
 +    * length
 +    * student_id (für eine ID)
 +    * birth_date (für ein Datum)
 +
 +=== Schlechte Variablennamen ===
 +
 +    * **i** (Nicht sprechend)
 +    * l**ä**nge (Umlaut)
 +    * grad**°** (Sonderzeichen)
 +    * **N**umber (gross geschrieben)
 +    * **PriceInUSD** (CamelCase, sollte in snake_case sein)
 +
 +==== Übung zu Variablennamen ====
 +
 +In einem Programm benötigst du verschiedene Variablen. 
 +Lege fest wie die Variablen für folgende Aufgaben heissen sollen:
 +
 +
 +    - Die Variable speichert die Anzahl der Noten in einem Modul
 +    - Die Variable speichert eine Schulnote
 +    - Aus der Anzahl und dem Total der Noten wird der Durchschnitt berechnet. Diese Variable soll den Durchschnitt speichern.
 +    - Du schreibst ein Programm, dass Lieferscheine erstellt. Dazu benötigst du Variablen um
 +      * die Bezeichnung eines Artikels zu speichern
 +      * den Preis eines Artikels zu speichern
 +      * die Einheit zu speichern, in denen der Artikel verkauft wird (z.B. Stück, Meter, …)
 +      * das Total (berechnet aus Preis %%*%% Menge) zu speichern
 +      * speichern zu können, ob es sich beim Artikel um eine Aktion (Preisreduktion) gehandelt hat oder nicht
 +
 +
 +===== Datentyp =====
 +Der Datentyp bestimmt die Speicherung und spätere Verwendung der Variablen.
 +Je nach Programmiersprache werden unterschiedliche Datentypen unterstützt und die einzelnen Datentypen heissen unterschiedlich.
 +Grundsätzlich lassen sich die Datentypen wie folgt einordnen:
 +
 +  * Textvariablen
 +    * String aus mehreren Zeichen ''"Hallo"''
 +  * Zahlen
 +    * Ganzzahlen ''5''
 +    * Fliesskommazahlen die auch Dezimalbrüche enthalten können ''5.53''
 +  * Spezielle Datentypen
 +    * z.B. Ja-Nein (True-False) ''True''
 +
 +Je nach Programmiersprache wird zusätzlich zwischen einer binären und einer dezimalen Speicherform unterschieden.
 +
 +
 +<WRAP center round info 60%>
 +Python gehört zu den Programmiersprachen, die den Datentyp selber bestimmen.
 +Daher kannst du auch in Blockly den Datentyp nicht explizit auswählen.
 +</WRAP>
 +
 +
 +==== Inhalt bzw. Wert ====
 +Jede Variable hat zu jedem Zeitpunkt einen bestimmten Wert.
 +Wenn sie eine Variable vereinbaren (Fachbegriff: deklarieren),
 +so wird im Hauptspeicher ein kleines Stück Speicherplatz für diese Variable reserviert.
 +Wird einer Variablen bei der Deklaration kein Wert zugewiesen, so unterscheidet sich das Verhalten resp. der 
 +initiale Wert der Variable je nach Programmiersprache.
 +
 +=== Initialisierung ===
 +Bei der Initialisierung wird einer Variable direkt bei der Deklaration ein Wert zugewiesen.
 +Dadurch hat die Variable schon beim Start des Programmes einen genau definierten Wert. 
 +Dies ist aber nicht in allen Programmiersprachen möglich. In Visual Basic zum Beispiel muss die Initialisierung auf einen Startwert in einer separaten Codezeile durchgeführt werden.
 +
 +===== Deklaration =====
 +==== Blockly ====
 +Im Reiter "Variables" von Blockly kannst du Variablen deklarieren und bestehende Variablen verwenden.
 +
 +Um eine neue Variable zu deklarieren, wählst du unter "Variables" den Button [create variable ...].
 +Dadurch wird ein Popup geöffnet, wo du den Namen der Variable festlegst.
 +
 +{{de:modul:m319:learningunits:lu01:lu01_variable_blockly_01.png?600|}}
 +
 +Um eine deklarierte Variable zu verwenden, findst du drei Blöcke:
 +  * ''set variable ='': Mit diesem Block kannst du einer Variable einen Wert zuweisen.
 +  * ''increase variable by'': Dient zum Rechnen mit Variablen.
 +  * ''radius'': Diesen Block brauchst du, um die Variable in einem Befehl einzufügen.
 +
 +{{de:modul:m319:learningunits:lu01:lu01_variable_blockly_02.png?400|}}
 +
 +==== Programmiersprachen ====
 +
 +Je nach Programmiersprache ist die Syntax für die Deklaration etwas anders. Nachstehend ein paar Beispiele aus den Sprachen Pascal, Java und Visual Basic:
 +
 +== Pascal ==
 +<code pascal>
 +var count : integer;      // count ist eine Variable um eine Ganzzahl zu speichern
 +var total : real;         // Total ist eine Variable die eine reelle Zahl (Dezimalbrüche) speichert
 +var givenname : string;   // givenname speichert einen Text bzw. Zeichenkette
 +</code>
 +
 +  - Das Schlüsselwort ''var'' zeigt an, dass eine **Var**iable deklariert wird.
 +  - Der Name oder auch Bezeichner der Variable
 +  - Nach dem Doppelpunkt folgt der Datentyp
 +
 +== Python ==
 +<code python>
 +count = 1
 +total = 5.75
 +givenname = 'Petra'
 +</code>
 +  - Name der Variable
 +  - ''='' Wert 
 +  - oder ''= None''
 +
 +== C, Java ==
 +<code java>
 +int count = 1
 +double total = 5.75
 +String givenname = "Petra"
 +</code>
 +  - Datentyp
 +  - Name der Variable
 +  - (optional) ''='' Wert
 +  - '';''
 +
 +== Visual Basic ==
 +<code vb>
 +Dim total As Integer
 +</code>
 +  - ''Dim''
 +  - Name der Variable
 +  - ''As''
 +  - Datentyp
 +
 +Beachte: Je nach Programmiersprache und Ort der Deklaration (Gültigkeitsbereich) **muss** eine Variable zuerst initialisiert werden,
 +bevor sie im weiteren Programmcode z.B. für eine Ausgabe oder eine Bedingung verwendet werden kann.
 +
 +=== Übung ===
 +Es werden dir einige Variablen mit Bezeichnung, Datentyp und Initialwert vorgegeben. 
 +Schreibe für diese Variablen den korrekten Code inklusive Initialisierung in den Programmiersprachen **Python** und **Java**.
 +Verwende dazu das Internet, um die korrekten Notationen zu finden und allenfalls die englische Übersetzung zu finden. 
 +Achte auf korrekte Gross-/Kleinschreibung.
 +
 +  - Vorname (Zeichenkette, "Hans")
 +  - Körpergrösse (Ganzzahl, 179)
 +  - Gewicht (Dezimahlzahl, 81.5)
 +  - Verheiratet (Ja-Nein, Ja)
 +  - Geschlecht als 1-Buchstabe-Kürzel (Zeichen, "m")
 +
 +----
 +{{tag>M319-LU01 M319-C1G M319-C1F}}
 +
 +[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Marcel Suter, Kevin Maurizi