{"id":35,"date":"2022-02-28T19:48:02","date_gmt":"2022-02-28T19:48:02","guid":{"rendered":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/?post_type=chapter&#038;p=35"},"modified":"2022-06-13T20:47:08","modified_gmt":"2022-06-13T20:47:08","slug":"digitaler-code","status":"publish","type":"chapter","link":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/chapter\/digitaler-code\/","title":{"raw":"Code","rendered":"Code"},"content":{"raw":"<h1 id=\"z1b185557d7bb\" class=\"in-list\">Algorithmus<\/h1>\r\nEin [pb_glossary id=\"1074\"]<b>Algorithmus[\/pb_glossary]<\/b>\u00a0ist eine eindeutige Handlungsvorschrift zur L\u00f6sung eines\u00a0<a title=\"Problem\" href=\"https:\/\/de.wikipedia.org\/wiki\/Problem\">Problems<\/a>\u00a0oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen,\u00a0<a title=\"Wohldefiniertheit\" href=\"https:\/\/de.wikipedia.org\/wiki\/Wohldefiniertheit\">wohldefinierten<\/a>\u00a0Einzelschritten.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus#cite_note-1\">[1]<\/a><\/sup>\u00a0Damit k\u00f6nnen sie zur Ausf\u00fchrung in ein\u00a0<a title=\"Computerprogramm\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computerprogramm\">Computerprogramm<\/a>\u00a0<a title=\"Implementierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Implementierung\">implementiert<\/a>, aber auch in\u00a0<a title=\"Nat\u00fcrliche Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Nat%C3%BCrliche_Sprache\">menschlicher Sprache<\/a>\u00a0formuliert werden. Bei der\u00a0<a title=\"Probleml\u00f6sen\" href=\"https:\/\/de.wikipedia.org\/wiki\/Probleml%C3%B6sen\">Probleml\u00f6sung<\/a>\u00a0wird eine bestimmte Eingabe in eine bestimmte Ausgabe \u00fcberf\u00fchrt.<sup id=\"cite_ref-2\" class=\"reference\"><a title=\"\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus#cite_note-2\">[2]<\/a><\/sup>\r\n<ol>\r\n \t<li>Der Algorithmus muss bei denselben Voraussetzungen das gleiche Ergebnis liefern (<a title=\"Determiniertheit (Algorithmus)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Determiniertheit_(Algorithmus)\">Determiniertheit<\/a>).<\/li>\r\n \t<li>Die n\u00e4chste anzuwendende Regel im Verfahren ist zu jedem Zeitpunkt eindeutig definiert (<a title=\"Determinismus (Algorithmus)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Determinismus_(Algorithmus)\">Determinismus<\/a>).<\/li>\r\n<\/ol>\r\n<h1 id=\"z6a5624c44de4\" class=\"in-list\">Programmiersprachen<\/h1>\r\nEine [pb_glossary id=\"1141\"]<b>Programmiersprache[\/pb_glossary] <\/b>ist eine\u00a0<a title=\"Formale Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Formale_Sprache\">formale Sprache<\/a>\u00a0zur Formulierung von\u00a0<a title=\"Datenstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Datenstruktur\">Datenstrukturen<\/a>\u00a0und\u00a0<a title=\"Algorithmus\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\">Algorithmen<\/a>, d.\u00a0h. von Rechenvorschriften, die von einem\u00a0<a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0ausgef\u00fchrt werden k\u00f6nnen.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache#cite_note-1\">[1]<\/a><\/sup>\u00a0Sie setzen sich \u00fcblicherweise aus schrittweisen\u00a0<a title=\"Anweisung (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Anweisung_(Programmierung)\">Anweisungen<\/a>\u00a0aus erlaubten (Text-)Mustern zusammen, der sogenannten\u00a0<i><a title=\"Syntax\" href=\"https:\/\/de.wikipedia.org\/wiki\/Syntax\">Syntax<\/a><\/i>.\r\n\r\nW\u00e4hrend die ersten Programmiersprachen noch unmittelbar an den Eigenschaften der jeweiligen Rechner ausgerichtet waren, werden heute meist\u00a0<a class=\"mw-redirect\" title=\"Problemorientierte Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Problemorientierte_Programmiersprache\">problemorientierte<\/a>\u00a0oder auch (allgemeiner)\u00a0<a title=\"H\u00f6here Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/H%C3%B6here_Programmiersprache\">h\u00f6here Programmiersprachen<\/a>\u00a0verwendet, die eine maschinenunabh\u00e4ngigere<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache#cite_note-2\">[2]<\/a><\/sup>\u00a0und somit f\u00fcr den Menschen leichter verst\u00e4ndliche Ausdrucksweise erlauben. In diesen Sprachen geschriebene Programme k\u00f6nnen automatisiert in\u00a0<a title=\"Maschinensprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Maschinensprache\">Maschinensprache<\/a> \u00fcbersetzt werden, welche unmittelbar von einem Prozessor ausgef\u00fchrt werden k\u00f6nnen.\r\n\r\nProgrammiersprachen bieten meist mindestens\r\n<ul>\r\n \t<li><a title=\"Eingabe und Ausgabe\" href=\"https:\/\/de.wikipedia.org\/wiki\/Eingabe_und_Ausgabe\">Ein-\/Ausgabe-Befehle<\/a>, damit das Programm\u00a0<a title=\"Daten\" href=\"https:\/\/de.wikipedia.org\/wiki\/Daten\">Daten<\/a>\u00a0entgegennehmen und wieder ausgeben kann;<\/li>\r\n \t<li><a title=\"Deklaration (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Deklaration_(Programmierung)\">Deklaration<\/a>\u00a0von\u00a0<a title=\"Variable (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Programmierung)\">Variablen<\/a>\u00a0und\u00a0<a title=\"Feld (Datentyp)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)\">Feldern<\/a>, um Informationen zwischenspeichern zu k\u00f6nnen;<\/li>\r\n \t<li>mathematische Grund- und Standardfunktionen;<\/li>\r\n \t<li>Grundfunktionen zur Zeichenkettenverarbeitung;<\/li>\r\n \t<li>Steueranweisungen f\u00fcr\u00a0<a title=\"Bedingte Anweisung und Verzweigung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Bedingte_Anweisung_und_Verzweigung\">bedingte Ausf\u00fchrung<\/a>,\u00a0<a title=\"Schleife (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)\">Wiederholung<\/a>, Programmunterteilung (z.\u00a0B. in\u00a0<a title=\"Unterprogramm\" href=\"https:\/\/de.wikipedia.org\/wiki\/Unterprogramm\">Unterfunktionen<\/a>) sowie Einbinden von\u00a0<a title=\"Programmbibliothek\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmbibliothek\">Bibliotheken<\/a>.<\/li>\r\n<\/ul>\r\n<h1 id=\"za6054a4a8f9d\" class=\"in-list\">Variablen<\/h1>\r\nMit <a href=\"https:\/\/de.wikipedia.org\/wiki\/Isaac_Newton\">Isaac Newton<\/a> setzte sich die Vorstellung von \"flie\u00dfenden Gr\u00f6\u00dfen\" (Fluenten) durch, die aber erst durch <a href=\"https:\/\/de.wikipedia.org\/wiki\/Leonhard_Euler\">Leonhard Euler<\/a> ausdr\u00fccklich formuliert wurde. <a href=\"https:\/\/de.wikipedia.org\/wiki\/David_Hilbert\">David Hilbert<\/a> entwickelte die moderne Vorstellung einer Variablen, die einfach nur ein Symbol f\u00fcr ein beliebiges Objekt jeglicher Art ist und nicht nur f\u00fcr ein mathematisches Objekt (Zahlen, Punkte, Geraden, Ebenen, Vektoren, Vektorr\u00e4ume etc.)\r\n<ul>\r\n \t<li><a href=\"https:\/\/de.wiktionary.org\/wiki\/Mathematik\">Mathematik<\/a>: Variablen sind Platzhalter f\u00fcr Unbekannte\/Unbestimmte\/Ver\u00e4nderliche in Formulierungen oder Formeln der Mathematik;<a href=\"https:\/\/de.wiktionary.org\/wiki\/Variable#cite_note-1\">[1]<\/a> Rechengr\u00f6\u00dfe, die unterschiedliche <a href=\"https:\/\/de.wiktionary.org\/wiki\/Wert\">Werte<\/a> annehmen kann<\/li>\r\n \t<li><a href=\"https:\/\/de.wiktionary.org\/wiki\/Informatik\">Informatik<\/a>: Variablend sind Bezeichnung eines <a href=\"https:\/\/de.wiktionary.org\/wiki\/Speicherplatz\">Speicherplatzes<\/a>, der verschiedene <a href=\"https:\/\/de.wiktionary.org\/wiki\/Wert\">Werte<\/a> aufnehmen kann<\/li>\r\n<\/ul>\r\nEine [pb_glossary id=\"1077\"]<b>Variable[\/pb_glossary]<\/b>\u00a0ist ein Name f\u00fcr eine Leerstelle in einem logischen oder mathematischen Ausdruck.<sup id=\"cite_ref-Henze_1-0\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-Henze-1\">[1]<\/a><\/sup>\u00a0Der Begriff leitet sich vom lateinischen\u00a0<a title=\"Adjektiv\" href=\"https:\/\/de.wikipedia.org\/wiki\/Adjektiv\">Adjektiv<\/a>\u00a0<i>variabilis<\/i>\u00a0(ver\u00e4nderlich) ab. Gleichwertig werden auch die Begriffe\u00a0<i>Platzhalter<\/i>\u00a0oder\u00a0<i>Ver\u00e4nderliche<\/i>\u00a0benutzt. Als \u201eVariable\u201c dienten fr\u00fcher W\u00f6rter oder Symbole, heute verwendet man zur\u00a0<a title=\"Mathematische Notation\" href=\"https:\/\/de.wikipedia.org\/wiki\/Mathematische_Notation#Variablennamen\">mathematischen Notation<\/a>\u00a0in der Regel Buchstaben als Zeichen. Wird anstelle der Variablen ein konkretes Objekt eingesetzt, so ist \u201edarauf zu achten, dass \u00fcberall dort, wo die Variable auftritt, auch das gleiche Objekt benutzt wird.\u201c<sup id=\"cite_ref-Henze_1-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-Henze-1\">[1]<\/a><\/sup>\r\n\r\nEin\u00a0<a title=\"Formelzeichen\" href=\"https:\/\/de.wikipedia.org\/wiki\/Formelzeichen\">Formelzeichen<\/a>\u00a0steht in der\u00a0<a title=\"Physik\" href=\"https:\/\/de.wikipedia.org\/wiki\/Physik\">Physik<\/a>\u00a0und den\u00a0<a class=\"mw-redirect\" title=\"Ingenieurwissenschaft\" href=\"https:\/\/de.wikipedia.org\/wiki\/Ingenieurwissenschaft\">Ingenieurwissenschaften<\/a>\u00a0f\u00fcr eine nicht notwendig numerisch festgelegte oder f\u00fcr eine zumindest anfangs noch ver\u00e4nderliche\u00a0<a title=\"Physikalische Gr\u00f6\u00dfe\" href=\"https:\/\/de.wikipedia.org\/wiki\/Physikalische_Gr%C3%B6%C3%9Fe\">physikalische Gr\u00f6\u00dfe<\/a>\u00a0oder\u00a0<a title=\"Zahl\" href=\"https:\/\/de.wikipedia.org\/wiki\/Zahl\">Zahl<\/a>. Die Formelzeichen f\u00fcr Gr\u00f6\u00dfen sind im Allgemeinen einzelne Buchstaben, bei Bedarf erg\u00e4nzt durch Indices oder andere modifizierende Zeichen.<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-2\">[2]<\/a><\/sup><sup id=\"cite_ref-3\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-3\">[3]<\/a><\/sup>\r\n\r\nDie Variablen, die in einer Gleichung vorkommen, nannte man in den Schulb\u00fcchern der Mathematik bis in die 1960er Jahre auch\u00a0<i>Unbekannte<\/i>\u00a0oder\u00a0<i>Unbestimmte.<\/i><sup id=\"cite_ref-4\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-4\">[4]<\/a><\/sup>\u00a0Beim Zusammentreffen mehrerer Variabler unterscheidet man abh\u00e4ngige und unabh\u00e4ngige Variable, aber nur, wenn ein Zusammenhang zwischen den Variablen besteht. Alle unabh\u00e4ngigen Variablen geh\u00f6ren zu einer\u00a0<a title=\"Definitionsmenge\" href=\"https:\/\/de.wikipedia.org\/wiki\/Definitionsmenge\">Definitionsmenge<\/a>\u00a0oder einem Definitionsbereich, die davon abh\u00e4ngigen zu einer\u00a0<a title=\"Zielmenge\" href=\"https:\/\/de.wikipedia.org\/wiki\/Zielmenge\">Wertemenge<\/a>\u00a0oder einem Wertebereich.<sup id=\"cite_ref-5\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-5\">[5]<\/a><\/sup><sup id=\"cite_ref-6\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-6\">[6]<\/a><\/sup>\r\n\r\nIn der\u00a0<a title=\"Programmierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmierung\">Programmierung<\/a>\u00a0ist eine\u00a0<b>Variable<\/b>\u00a0ein abstrakter Beh\u00e4lter f\u00fcr eine Gr\u00f6\u00dfe, welche im Verlauf eines\u00a0<a title=\"Algorithmus\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\">Rechenprozesses<\/a>\u00a0auftritt. Im Normalfall wird eine Variable im\u00a0<a title=\"Quelltext\" href=\"https:\/\/de.wikipedia.org\/wiki\/Quelltext\">Quelltext<\/a>\u00a0durch einen Namen bezeichnet und hat eine\u00a0<a title=\"Speicheradresse\" href=\"https:\/\/de.wikipedia.org\/wiki\/Speicheradresse\">Adresse<\/a>\u00a0im Speicher einer Maschine.\r\n\r\nDer durch eine Variable repr\u00e4sentierte Wert und gegebenenfalls auch die Gr\u00f6\u00dfe kann \u2013\u00a0im Unterschied zu einer\u00a0<a title=\"Konstante (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Konstante_(Programmierung)\">Konstante<\/a>\u00a0\u2013 zur\u00a0<a title=\"Laufzeit (Informatik)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Laufzeit_(Informatik)\">Laufzeit<\/a>\u00a0des Rechenprozesses ver\u00e4ndert werden.\r\n<h2 id=\"z1d00dd38ee91\" class=\"in-list\">Listen, Felder, Arrays<\/h2>\r\nEin\u00a0<b>Feld<\/b>\u00a0(<a title=\"Englische Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Englische_Sprache\">englisch<\/a>\u00a0<span lang=\"en-Latn\">field, array)<\/span>\u00a0ist in der\u00a0<a title=\"Informatik\" href=\"https:\/\/de.wikipedia.org\/wiki\/Informatik\">Informatik<\/a>\u00a0eine\u00a0<a title=\"Datenstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Datenstruktur\">Datenstruktur<\/a>-Variante, mit deren Verwendung \u201eviele gleichartig strukturierte Daten [\u2026] verarbeitet werden sollen\u201c.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)#cite_note-1\">[1]<\/a><\/sup>\u00a0Der Zugriff auf bestimmte Inhalte eines Felds erfolgt mit Hilfe von\u00a0<a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)#Indizes\">Indizes<\/a>, die dessen Position bezeichnen.\r\n<h1 id=\"zc43f346a5548\" class=\"in-list\">Wiederholung<\/h1>\r\nEine\u00a0<b>Schleife<\/b>\u00a0(auch \u201eWiederholung\u201c oder\u00a0<a title=\"Englische Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Englische_Sprache\">englisch<\/a>\u00a0<span lang=\"en-Latn\"><i>loop<\/i><\/span>) ist eine\u00a0<a title=\"Kontrollstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Kontrollstruktur\">Kontrollstruktur<\/a>\u00a0in\u00a0<a title=\"Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache\">Programmiersprachen<\/a>. Sie wiederholt einen\u00a0<a title=\"Blockstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Blockstruktur\">Anweisungs-Block<\/a>\u00a0\u2013\u00a0den sogenannten\u00a0<i>Schleifenrumpf<\/i>\u00a0oder\u00a0<i>Schleifenk\u00f6rper<\/i>\u00a0\u2013, solange die Schleifenbedingung als Laufbedingung<sup id=\"cite_ref-Laufbed._1-0\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)#cite_note-Laufbed.-1\">[Anm 1]<\/a><\/sup>\u00a0g\u00fcltig bleibt bzw. als\u00a0<a title=\"Abbruchbedingung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Abbruchbedingung\">Abbruchbedingung<\/a>\u00a0nicht eintritt. Schleifen, deren Schleifenbedingung immer zur Fortsetzung f\u00fchrt oder die keine Schleifenbedingung haben, sind\u00a0<a title=\"Endlosschleife\" href=\"https:\/\/de.wikipedia.org\/wiki\/Endlosschleife\">Endlosschleifen<\/a>.\r\n<pre><b>FOR<\/b> <i>Iterator<\/i>:=<i>Anfangszahl<\/i> <b>TO<\/b> <i>Endezahl<\/i> <b>STEP<\/b> <i>Schrittweite<\/i> <b>DO<\/b> <i>Schleifenrumpf<\/i>.\r\n<\/pre>\r\nBei einer\u00a0<a title=\"For-Schleife\" href=\"https:\/\/de.wikipedia.org\/wiki\/For-Schleife\">For-Schleife<\/a>\u00a0z\u00e4hlt der\u00a0<a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0von einer Anfangszahl bis zu einer Endzahl und wiederholt dabei jedes Mal den Codeblock (\u201eSchleifenrumpf\u201c). Die aktuelle Zahl wird in eine Variable (\u201eIterator\u201c) gesetzt, damit sie bei Bedarf in dem Codeblock Verwendung finden kann. H\u00e4ufig ist die Z\u00e4hlschleife auf Ganzzahlen beschr\u00e4nkt. Das \u00c4ndern der Iterator-Variablen im Schleifenk\u00f6rper ist bei vielen Programmiersprachen verboten und gilt als schlechter Programmierstil, da es oft zu schwer verst\u00e4ndlichem Code f\u00fchrt \u2013 es l\u00e4uft der Denkweise zuwider, direkt am Schleifenkopf die Anzahl der Durchl\u00e4ufe ablesen zu k\u00f6nnen.\r\n<h1 id=\"z7285dbb1b26a\" class=\"in-list\">Bedingungen<\/h1>\r\nEine [pb_glossary id=\"1081\"]<b>bedingte Anweisung[\/pb_glossary]<\/b>\u00a0ist eine\u00a0<a title=\"Kontrollstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Kontrollstruktur\">Kontrollstruktur<\/a>\u00a0in der\u00a0<a title=\"Programmierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmierung\">Programmierung<\/a>. Ein Programmabschnitt wird dabei nur unter einer bestimmten Bedingung ausgef\u00fchrt. Eine\u00a0<b>Verzweigung<\/b> legt fest, welcher von zwei oder mehreren Programmabschnitten, abh\u00e4ngig von einer oder mehreren Bedingungen, ausgef\u00fchrt wird. Bedingugen werden in Programmiersprachen meist mit Konstrukten wie \"if...then\" (deutsch: Wenn.. Dann...) eingef\u00fchrt.\r\n\r\n[caption id=\"attachment_906\" align=\"aligncenter\" width=\"238\"]<img id=\"z6428d3c65ae8\" class=\"in-list wp-image-906 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png\" alt=\"\" width=\"238\" height=\"300\" \/> Detailliertes Diagramm zur Verwendung von \"Wenn-Dann\" Kontrollstrukturen[\/caption]\r\n\r\n&nbsp;\r\n<h1 id=\"zac1819db6890\">Bildtafeln<\/h1>\r\n[caption id=\"attachment_889\" align=\"aligncenter\" width=\"1024\"]<img id=\"zed25502dd8cc\" class=\"in-list wp-image-889 size-large\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-1024x636.png\" alt=\"\" width=\"1024\" height=\"636\" \/> Computersprachen durch den Verlauf der Zeit[\/caption]\r\n\r\n&nbsp;\r\n\r\n[caption id=\"attachment_1401\" align=\"aligncenter\" width=\"300\"]<img id=\"z34932f3afb7a\" class=\"in-list wp-image-1401 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-300x300.jpeg\" alt=\"\" width=\"300\" height=\"300\" \/> Piet Mondrian - Boogie Woogie[\/caption]\r\n\r\n[caption id=\"attachment_1400\" align=\"aligncenter\" width=\"231\"]<img id=\"z3815abd7d3c8\" class=\"in-list wp-image-1400 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-231x300.png\" alt=\"\" width=\"231\" height=\"300\" \/> Chernikhov - Fantasy and Construction[\/caption]","rendered":"<h1 id=\"z1b185557d7bb\" class=\"in-list\">11.1 \u2013 Algorithmus<\/h1>\n<p>Ein <a class=\"glossary-term\" aria-haspopup=\"dialog\" aria-describedby=\"definition\" href=\"#term_35_1074\"><b>Algorithmus<\/b><\/a>\u00a0ist eine eindeutige Handlungsvorschrift zur L\u00f6sung eines\u00a0<a title=\"Problem\" href=\"https:\/\/de.wikipedia.org\/wiki\/Problem\">Problems<\/a>\u00a0oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen,\u00a0<a title=\"Wohldefiniertheit\" href=\"https:\/\/de.wikipedia.org\/wiki\/Wohldefiniertheit\">wohldefinierten<\/a>\u00a0Einzelschritten.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus#cite_note-1\">[1]<\/a><\/sup>\u00a0Damit k\u00f6nnen sie zur Ausf\u00fchrung in ein\u00a0<a title=\"Computerprogramm\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computerprogramm\">Computerprogramm<\/a>\u00a0<a title=\"Implementierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Implementierung\">implementiert<\/a>, aber auch in\u00a0<a title=\"Nat\u00fcrliche Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Nat%C3%BCrliche_Sprache\">menschlicher Sprache<\/a>\u00a0formuliert werden. Bei der\u00a0<a title=\"Probleml\u00f6sen\" href=\"https:\/\/de.wikipedia.org\/wiki\/Probleml%C3%B6sen\">Probleml\u00f6sung<\/a>\u00a0wird eine bestimmte Eingabe in eine bestimmte Ausgabe \u00fcberf\u00fchrt.<sup id=\"cite_ref-2\" class=\"reference\"><a title=\"\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus#cite_note-2\">[2]<\/a><\/sup><\/p>\n<ol>\n<li>Der Algorithmus muss bei denselben Voraussetzungen das gleiche Ergebnis liefern (<a title=\"Determiniertheit (Algorithmus)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Determiniertheit_(Algorithmus)\">Determiniertheit<\/a>).<\/li>\n<li>Die n\u00e4chste anzuwendende Regel im Verfahren ist zu jedem Zeitpunkt eindeutig definiert (<a title=\"Determinismus (Algorithmus)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Determinismus_(Algorithmus)\">Determinismus<\/a>).<\/li>\n<\/ol>\n<h1 id=\"z6a5624c44de4\" class=\"in-list\">11.2 \u2013 Programmiersprachen<\/h1>\n<p>Eine <a class=\"glossary-term\" aria-haspopup=\"dialog\" aria-describedby=\"definition\" href=\"#term_35_1141\"><b>Programmiersprache<\/b><\/a> ist eine\u00a0<a title=\"Formale Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Formale_Sprache\">formale Sprache<\/a>\u00a0zur Formulierung von\u00a0<a title=\"Datenstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Datenstruktur\">Datenstrukturen<\/a>\u00a0und\u00a0<a title=\"Algorithmus\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\">Algorithmen<\/a>, d.\u00a0h. von Rechenvorschriften, die von einem\u00a0<a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0ausgef\u00fchrt werden k\u00f6nnen.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache#cite_note-1\">[1]<\/a><\/sup>\u00a0Sie setzen sich \u00fcblicherweise aus schrittweisen\u00a0<a title=\"Anweisung (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Anweisung_(Programmierung)\">Anweisungen<\/a>\u00a0aus erlaubten (Text-)Mustern zusammen, der sogenannten\u00a0<i><a title=\"Syntax\" href=\"https:\/\/de.wikipedia.org\/wiki\/Syntax\">Syntax<\/a><\/i>.<\/p>\n<p>W\u00e4hrend die ersten Programmiersprachen noch unmittelbar an den Eigenschaften der jeweiligen Rechner ausgerichtet waren, werden heute meist\u00a0<a class=\"mw-redirect\" title=\"Problemorientierte Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Problemorientierte_Programmiersprache\">problemorientierte<\/a>\u00a0oder auch (allgemeiner)\u00a0<a title=\"H\u00f6here Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/H%C3%B6here_Programmiersprache\">h\u00f6here Programmiersprachen<\/a>\u00a0verwendet, die eine maschinenunabh\u00e4ngigere<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache#cite_note-2\">[2]<\/a><\/sup>\u00a0und somit f\u00fcr den Menschen leichter verst\u00e4ndliche Ausdrucksweise erlauben. In diesen Sprachen geschriebene Programme k\u00f6nnen automatisiert in\u00a0<a title=\"Maschinensprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Maschinensprache\">Maschinensprache<\/a> \u00fcbersetzt werden, welche unmittelbar von einem Prozessor ausgef\u00fchrt werden k\u00f6nnen.<\/p>\n<p>Programmiersprachen bieten meist mindestens<\/p>\n<ul>\n<li><a title=\"Eingabe und Ausgabe\" href=\"https:\/\/de.wikipedia.org\/wiki\/Eingabe_und_Ausgabe\">Ein-\/Ausgabe-Befehle<\/a>, damit das Programm\u00a0<a title=\"Daten\" href=\"https:\/\/de.wikipedia.org\/wiki\/Daten\">Daten<\/a>\u00a0entgegennehmen und wieder ausgeben kann;<\/li>\n<li><a title=\"Deklaration (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Deklaration_(Programmierung)\">Deklaration<\/a>\u00a0von\u00a0<a title=\"Variable (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Programmierung)\">Variablen<\/a>\u00a0und\u00a0<a title=\"Feld (Datentyp)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)\">Feldern<\/a>, um Informationen zwischenspeichern zu k\u00f6nnen;<\/li>\n<li>mathematische Grund- und Standardfunktionen;<\/li>\n<li>Grundfunktionen zur Zeichenkettenverarbeitung;<\/li>\n<li>Steueranweisungen f\u00fcr\u00a0<a title=\"Bedingte Anweisung und Verzweigung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Bedingte_Anweisung_und_Verzweigung\">bedingte Ausf\u00fchrung<\/a>,\u00a0<a title=\"Schleife (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)\">Wiederholung<\/a>, Programmunterteilung (z.\u00a0B. in\u00a0<a title=\"Unterprogramm\" href=\"https:\/\/de.wikipedia.org\/wiki\/Unterprogramm\">Unterfunktionen<\/a>) sowie Einbinden von\u00a0<a title=\"Programmbibliothek\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmbibliothek\">Bibliotheken<\/a>.<\/li>\n<\/ul>\n<h1 id=\"za6054a4a8f9d\" class=\"in-list\">11.3 \u2013 Variablen<\/h1>\n<p>Mit <a href=\"https:\/\/de.wikipedia.org\/wiki\/Isaac_Newton\">Isaac Newton<\/a> setzte sich die Vorstellung von \u201eflie\u00dfenden Gr\u00f6\u00dfen\u201c (Fluenten) durch, die aber erst durch <a href=\"https:\/\/de.wikipedia.org\/wiki\/Leonhard_Euler\">Leonhard Euler<\/a> ausdr\u00fccklich formuliert wurde. <a href=\"https:\/\/de.wikipedia.org\/wiki\/David_Hilbert\">David Hilbert<\/a> entwickelte die moderne Vorstellung einer Variablen, die einfach nur ein Symbol f\u00fcr ein beliebiges Objekt jeglicher Art ist und nicht nur f\u00fcr ein mathematisches Objekt (Zahlen, Punkte, Geraden, Ebenen, Vektoren, Vektorr\u00e4ume etc.)<\/p>\n<ul>\n<li><a href=\"https:\/\/de.wiktionary.org\/wiki\/Mathematik\">Mathematik<\/a>: Variablen sind Platzhalter f\u00fcr Unbekannte\/Unbestimmte\/Ver\u00e4nderliche in Formulierungen oder Formeln der Mathematik;<a href=\"https:\/\/de.wiktionary.org\/wiki\/Variable#cite_note-1\">[1]<\/a> Rechengr\u00f6\u00dfe, die unterschiedliche <a href=\"https:\/\/de.wiktionary.org\/wiki\/Wert\">Werte<\/a> annehmen kann<\/li>\n<li><a href=\"https:\/\/de.wiktionary.org\/wiki\/Informatik\">Informatik<\/a>: Variablend sind Bezeichnung eines <a href=\"https:\/\/de.wiktionary.org\/wiki\/Speicherplatz\">Speicherplatzes<\/a>, der verschiedene <a href=\"https:\/\/de.wiktionary.org\/wiki\/Wert\">Werte<\/a> aufnehmen kann<\/li>\n<\/ul>\n<p>Eine <a class=\"glossary-term\" aria-haspopup=\"dialog\" aria-describedby=\"definition\" href=\"#term_35_1077\"><b>Variable<\/b><\/a>\u00a0ist ein Name f\u00fcr eine Leerstelle in einem logischen oder mathematischen Ausdruck.<sup id=\"cite_ref-Henze_1-0\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-Henze-1\">[1]<\/a><\/sup>\u00a0Der Begriff leitet sich vom lateinischen\u00a0<a title=\"Adjektiv\" href=\"https:\/\/de.wikipedia.org\/wiki\/Adjektiv\">Adjektiv<\/a>\u00a0<i>variabilis<\/i>\u00a0(ver\u00e4nderlich) ab. Gleichwertig werden auch die Begriffe\u00a0<i>Platzhalter<\/i>\u00a0oder\u00a0<i>Ver\u00e4nderliche<\/i>\u00a0benutzt. Als \u201eVariable\u201c dienten fr\u00fcher W\u00f6rter oder Symbole, heute verwendet man zur\u00a0<a title=\"Mathematische Notation\" href=\"https:\/\/de.wikipedia.org\/wiki\/Mathematische_Notation#Variablennamen\">mathematischen Notation<\/a>\u00a0in der Regel Buchstaben als Zeichen. Wird anstelle der Variablen ein konkretes Objekt eingesetzt, so ist \u201edarauf zu achten, dass \u00fcberall dort, wo die Variable auftritt, auch das gleiche Objekt benutzt wird.\u201c<sup id=\"cite_ref-Henze_1-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-Henze-1\">[1]<\/a><\/sup><\/p>\n<p>Ein\u00a0<a title=\"Formelzeichen\" href=\"https:\/\/de.wikipedia.org\/wiki\/Formelzeichen\">Formelzeichen<\/a>\u00a0steht in der\u00a0<a title=\"Physik\" href=\"https:\/\/de.wikipedia.org\/wiki\/Physik\">Physik<\/a>\u00a0und den\u00a0<a class=\"mw-redirect\" title=\"Ingenieurwissenschaft\" href=\"https:\/\/de.wikipedia.org\/wiki\/Ingenieurwissenschaft\">Ingenieurwissenschaften<\/a>\u00a0f\u00fcr eine nicht notwendig numerisch festgelegte oder f\u00fcr eine zumindest anfangs noch ver\u00e4nderliche\u00a0<a title=\"Physikalische Gr\u00f6\u00dfe\" href=\"https:\/\/de.wikipedia.org\/wiki\/Physikalische_Gr%C3%B6%C3%9Fe\">physikalische Gr\u00f6\u00dfe<\/a>\u00a0oder\u00a0<a title=\"Zahl\" href=\"https:\/\/de.wikipedia.org\/wiki\/Zahl\">Zahl<\/a>. Die Formelzeichen f\u00fcr Gr\u00f6\u00dfen sind im Allgemeinen einzelne Buchstaben, bei Bedarf erg\u00e4nzt durch Indices oder andere modifizierende Zeichen.<sup id=\"cite_ref-2\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-2\">[2]<\/a><\/sup><sup id=\"cite_ref-3\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-3\">[3]<\/a><\/sup><\/p>\n<p>Die Variablen, die in einer Gleichung vorkommen, nannte man in den Schulb\u00fcchern der Mathematik bis in die 1960er Jahre auch\u00a0<i>Unbekannte<\/i>\u00a0oder\u00a0<i>Unbestimmte.<\/i><sup id=\"cite_ref-4\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-4\">[4]<\/a><\/sup>\u00a0Beim Zusammentreffen mehrerer Variabler unterscheidet man abh\u00e4ngige und unabh\u00e4ngige Variable, aber nur, wenn ein Zusammenhang zwischen den Variablen besteht. Alle unabh\u00e4ngigen Variablen geh\u00f6ren zu einer\u00a0<a title=\"Definitionsmenge\" href=\"https:\/\/de.wikipedia.org\/wiki\/Definitionsmenge\">Definitionsmenge<\/a>\u00a0oder einem Definitionsbereich, die davon abh\u00e4ngigen zu einer\u00a0<a title=\"Zielmenge\" href=\"https:\/\/de.wikipedia.org\/wiki\/Zielmenge\">Wertemenge<\/a>\u00a0oder einem Wertebereich.<sup id=\"cite_ref-5\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-5\">[5]<\/a><\/sup><sup id=\"cite_ref-6\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)#cite_note-6\">[6]<\/a><\/sup><\/p>\n<p>In der\u00a0<a title=\"Programmierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmierung\">Programmierung<\/a>\u00a0ist eine\u00a0<b>Variable<\/b>\u00a0ein abstrakter Beh\u00e4lter f\u00fcr eine Gr\u00f6\u00dfe, welche im Verlauf eines\u00a0<a title=\"Algorithmus\" href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\">Rechenprozesses<\/a>\u00a0auftritt. Im Normalfall wird eine Variable im\u00a0<a title=\"Quelltext\" href=\"https:\/\/de.wikipedia.org\/wiki\/Quelltext\">Quelltext<\/a>\u00a0durch einen Namen bezeichnet und hat eine\u00a0<a title=\"Speicheradresse\" href=\"https:\/\/de.wikipedia.org\/wiki\/Speicheradresse\">Adresse<\/a>\u00a0im Speicher einer Maschine.<\/p>\n<p>Der durch eine Variable repr\u00e4sentierte Wert und gegebenenfalls auch die Gr\u00f6\u00dfe kann \u2013\u00a0im Unterschied zu einer\u00a0<a title=\"Konstante (Programmierung)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Konstante_(Programmierung)\">Konstante<\/a>\u00a0\u2013 zur\u00a0<a title=\"Laufzeit (Informatik)\" href=\"https:\/\/de.wikipedia.org\/wiki\/Laufzeit_(Informatik)\">Laufzeit<\/a>\u00a0des Rechenprozesses ver\u00e4ndert werden.<\/p>\n<h2 id=\"z1d00dd38ee91\" class=\"in-list\">11.3.1 \u2013 Listen, Felder, Arrays<\/h2>\n<p>Ein\u00a0<b>Feld<\/b>\u00a0(<a title=\"Englische Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Englische_Sprache\">englisch<\/a>\u00a0<span lang=\"en-Latn\">field, array)<\/span>\u00a0ist in der\u00a0<a title=\"Informatik\" href=\"https:\/\/de.wikipedia.org\/wiki\/Informatik\">Informatik<\/a>\u00a0eine\u00a0<a title=\"Datenstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Datenstruktur\">Datenstruktur<\/a>-Variante, mit deren Verwendung \u201eviele gleichartig strukturierte Daten [\u2026] verarbeitet werden sollen\u201c.<sup id=\"cite_ref-1\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)#cite_note-1\">[1]<\/a><\/sup>\u00a0Der Zugriff auf bestimmte Inhalte eines Felds erfolgt mit Hilfe von\u00a0<a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)#Indizes\">Indizes<\/a>, die dessen Position bezeichnen.<\/p>\n<h1 id=\"zc43f346a5548\" class=\"in-list\">11.4 \u2013 Wiederholung<\/h1>\n<p>Eine\u00a0<b>Schleife<\/b>\u00a0(auch \u201eWiederholung\u201c oder\u00a0<a title=\"Englische Sprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Englische_Sprache\">englisch<\/a>\u00a0<span lang=\"en-Latn\"><i>loop<\/i><\/span>) ist eine\u00a0<a title=\"Kontrollstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Kontrollstruktur\">Kontrollstruktur<\/a>\u00a0in\u00a0<a title=\"Programmiersprache\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache\">Programmiersprachen<\/a>. Sie wiederholt einen\u00a0<a title=\"Blockstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Blockstruktur\">Anweisungs-Block<\/a>\u00a0\u2013\u00a0den sogenannten\u00a0<i>Schleifenrumpf<\/i>\u00a0oder\u00a0<i>Schleifenk\u00f6rper<\/i>\u00a0\u2013, solange die Schleifenbedingung als Laufbedingung<sup id=\"cite_ref-Laufbed._1-0\" class=\"reference\"><a href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)#cite_note-Laufbed.-1\">[Anm 1]<\/a><\/sup>\u00a0g\u00fcltig bleibt bzw. als\u00a0<a title=\"Abbruchbedingung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Abbruchbedingung\">Abbruchbedingung<\/a>\u00a0nicht eintritt. Schleifen, deren Schleifenbedingung immer zur Fortsetzung f\u00fchrt oder die keine Schleifenbedingung haben, sind\u00a0<a title=\"Endlosschleife\" href=\"https:\/\/de.wikipedia.org\/wiki\/Endlosschleife\">Endlosschleifen<\/a>.<\/p>\n<pre><b>FOR<\/b> <i>Iterator<\/i>:=<i>Anfangszahl<\/i> <b>TO<\/b> <i>Endezahl<\/i> <b>STEP<\/b> <i>Schrittweite<\/i> <b>DO<\/b> <i>Schleifenrumpf<\/i>.\r\n<\/pre>\n<p>Bei einer\u00a0<a title=\"For-Schleife\" href=\"https:\/\/de.wikipedia.org\/wiki\/For-Schleife\">For-Schleife<\/a>\u00a0z\u00e4hlt der\u00a0<a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0von einer Anfangszahl bis zu einer Endzahl und wiederholt dabei jedes Mal den Codeblock (\u201eSchleifenrumpf\u201c). Die aktuelle Zahl wird in eine Variable (\u201eIterator\u201c) gesetzt, damit sie bei Bedarf in dem Codeblock Verwendung finden kann. H\u00e4ufig ist die Z\u00e4hlschleife auf Ganzzahlen beschr\u00e4nkt. Das \u00c4ndern der Iterator-Variablen im Schleifenk\u00f6rper ist bei vielen Programmiersprachen verboten und gilt als schlechter Programmierstil, da es oft zu schwer verst\u00e4ndlichem Code f\u00fchrt \u2013 es l\u00e4uft der Denkweise zuwider, direkt am Schleifenkopf die Anzahl der Durchl\u00e4ufe ablesen zu k\u00f6nnen.<\/p>\n<h1 id=\"z7285dbb1b26a\" class=\"in-list\">11.5 \u2013 Bedingungen<\/h1>\n<p>Eine <a class=\"glossary-term\" aria-haspopup=\"dialog\" aria-describedby=\"definition\" href=\"#term_35_1081\"><b>bedingte Anweisung<\/b><\/a>\u00a0ist eine\u00a0<a title=\"Kontrollstruktur\" href=\"https:\/\/de.wikipedia.org\/wiki\/Kontrollstruktur\">Kontrollstruktur<\/a>\u00a0in der\u00a0<a title=\"Programmierung\" href=\"https:\/\/de.wikipedia.org\/wiki\/Programmierung\">Programmierung<\/a>. Ein Programmabschnitt wird dabei nur unter einer bestimmten Bedingung ausgef\u00fchrt. Eine\u00a0<b>Verzweigung<\/b> legt fest, welcher von zwei oder mehreren Programmabschnitten, abh\u00e4ngig von einer oder mehreren Bedingungen, ausgef\u00fchrt wird. Bedingugen werden in Programmiersprachen meist mit Konstrukten wie \u201eif\u2026then\u201c (deutsch: Wenn.. Dann\u2026) eingef\u00fchrt.<\/p>\n<div id=\"attachment_906\" style=\"width: 248px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-906\" id=\"z6428d3c65ae8\" class=\"in-list wp-image-906 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png\" alt=\"\" width=\"238\" height=\"300\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png 238w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-813x1024.png 813w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-768x967.png 768w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-1220x1536.png 1220w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-65x82.png 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-225x283.png 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_-350x441.png 350w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/03\/IF-THEN-ELSE-END_flowchart.svg_.png 1626w\" sizes=\"auto, (max-width: 238px) 100vw, 238px\">\n<p id=\"caption-attachment-906\" class=\"wp-caption-text\">Abbildung 11.1 \u2013 Detailliertes Diagramm zur Verwendung von \u201eWenn-Dann\u201c Kontrollstrukturen<\/p>\n<\/div>\n<p>\u00a0<\/p>\n<h1 id=\"zac1819db6890\">11.6 \u2013 Bildtafeln<\/h1>\n<div id=\"attachment_889\" style=\"width: 1034px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-889\" id=\"zed25502dd8cc\" class=\"in-list wp-image-889 size-large\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-1024x636.png\" alt=\"\" width=\"1024\" height=\"636\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-1024x636.png 1024w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-300x186.png 300w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-768x477.png 768w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-1536x954.png 1536w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-2048x1272.png 2048w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-65x40.png 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-225x140.png 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/programming-language-history2-350x217.png 350w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\">\n<p id=\"caption-attachment-889\" class=\"wp-caption-text\">Abbildung 11.2 \u2013 Computersprachen durch den Verlauf der Zeit<\/p>\n<\/div>\n<p>\u00a0<\/p>\n<div id=\"attachment_1401\" style=\"width: 310px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1401\" id=\"z34932f3afb7a\" class=\"in-list wp-image-1401 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-300x300.jpeg\" alt=\"\" width=\"300\" height=\"300\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-300x300.jpeg 300w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-1024x1024.jpeg 1024w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-150x150.jpeg 150w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-768x769.jpeg 768w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-1534x1536.jpeg 1534w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-65x65.jpeg 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-225x225.jpeg 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-350x351.jpeg 350w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie.jpeg 2045w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\">\n<p id=\"caption-attachment-1401\" class=\"wp-caption-text\">Abbildung 11.3 \u2013 Piet Mondrian \u2013 Boogie Woogie<\/p>\n<\/div>\n<div id=\"attachment_1400\" style=\"width: 241px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1400\" id=\"z3815abd7d3c8\" class=\"in-list wp-image-1400 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-231x300.png\" alt=\"\" width=\"231\" height=\"300\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-231x300.png 231w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-65x84.png 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-225x292.png 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow-350x455.png 350w, https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-content\/uploads\/sites\/1277\/2022\/02\/chernikow.png 394w\" sizes=\"auto, (max-width: 231px) 100vw, 231px\">\n<p id=\"caption-attachment-1400\" class=\"wp-caption-text\">Abbildung 11.4 \u2013 Chernikhov \u2013 Fantasy and Construction<\/p>\n<\/div>\n<div class=\"glossary\"><span class=\"screen-reader-text\" id=\"definition\">definition<\/span><template id=\"term_35_1074\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_35_1074\"><div tabindex=\"-1\"><p>Ein Algorithmus ist eine eindeutige Handlungsvorschrift zur L\u00f6sung eines Problems oder einer Klasse von Problemen. Algorithmen bestehen aus endlich vielen, wohldefinierten Einzelschritten.<\/p>\n<\/div><button><span aria-hidden=\"true\">\u00d7<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_35_1141\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_35_1141\"><div tabindex=\"-1\"><p>Eine Programmiersprache ist eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen, d. h. von Rechenvorschriften, die von einem Computer ausgef\u00fchrt werden k\u00f6nnen.<\/p>\n<\/div><button><span aria-hidden=\"true\">\u00d7<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_35_1077\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_35_1077\"><div tabindex=\"-1\"><p>In der\u00a0Programmierung\u00a0ist eine\u00a0Variable\u00a0ein abstrakter Beh\u00e4lter f\u00fcr eine Gr\u00f6\u00dfe, welche im Verlauf eines\u00a0Rechenprozesses\u00a0auftritt. Im Normalfall wird eine Variable im\u00a0Quelltext\u00a0durch einen Namen bezeichnet und hat eine\u00a0Adresse\u00a0im Speicher einer Maschine.<\/p>\n<\/div><button><span aria-hidden=\"true\">\u00d7<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><template id=\"term_35_1081\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_35_1081\"><div tabindex=\"-1\"><p>Eine\u00a0bedingte Anweisung\u00a0ist eine\u00a0Kontrollstruktur\u00a0in der\u00a0Programmierung. Ein Programmabschnitt wird dabei nur unter einer bestimmten Bedingung ausgef\u00fchrt. Eine\u00a0Verzweigung\u00a0legt fest, welcher von zwei oder mehreren Programmabschnitten, abh\u00e4ngig von einer oder mehreren Bedingungen, ausgef\u00fchrt wird.<\/p>\n<\/div><button><span aria-hidden=\"true\">\u00d7<\/span><span class=\"screen-reader-text\">Close definition<\/span><\/button><\/div><\/template><\/div>","protected":false},"author":6311,"menu_order":2,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-35","chapter","type-chapter","status-publish","hentry"],"part":979,"_links":{"self":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapters\/35","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/wp\/v2\/users\/6311"}],"version-history":[{"count":71,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapters\/35\/revisions"}],"predecessor-version":[{"id":1404,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapters\/35\/revisions\/1404"}],"part":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/parts\/979"}],"metadata":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapters\/35\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/wp\/v2\/media?parent=35"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/pressbooks\/v2\/chapter-type?post=35"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/wp\/v2\/contributor?post=35"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesigniii\/wp-json\/wp\/v2\/license?post=35"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}