{"id":159,"date":"2024-02-23T10:02:24","date_gmt":"2024-02-23T10:02:24","guid":{"rendered":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/chapter\/digitaler-code\/"},"modified":"2024-06-28T15:08:16","modified_gmt":"2024-06-28T15:08:16","slug":"digitaler-code","status":"publish","type":"chapter","link":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/chapter\/digitaler-code\/","title":{"raw":"Code","rendered":"Code"},"content":{"raw":"<h1 id=\"z1b185557d7bb\" class=\"in-list\">Algorithmus<\/h1>\r\nEin [pb_glossary id=\"199\"]<b>Algorithmus<\/b>[\/pb_glossary] ist eine eindeutige Handlungsvorschrift zur Verarbeitung von Eingaben (eng. Input, z.B. Daten) mit dem Ziel der L\u00f6sung eines <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> wird eine bestimmte Eingabe in eine bestimmte Ausgabe \u00fcberf\u00fchrt. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<sup id=\"cite_ref-2\" class=\"reference\"><\/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=\"210\"]<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. h. von Handlungsanweisungen, die von einem <a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0ausgef\u00fchrt werden k\u00f6nnen.<sup id=\"cite_ref-1\" class=\"reference\"><\/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>. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)\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=\"200\"]<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> in der Regel Buchstaben als Zeichen.\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> oder einem Wertebereich. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<sup id=\"cite_ref-5\" class=\"reference\"><\/sup><sup id=\"cite_ref-6\" class=\"reference\"><\/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\"><\/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. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)\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\"><\/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>. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)\" target=\"_blank\" rel=\"noopener\">Quelle<\/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> von 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.\r\n<h1 id=\"z7285dbb1b26a\" class=\"in-list\">Bedingungen<\/h1>\r\nEine [pb_glossary id=\"201\"]<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. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Bedingte_Anweisung_und_Verzweigung\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)\r\n\r\n[caption id=\"attachment_158\" align=\"aligncenter\" width=\"238\"]<img id=\"z6428d3c65ae8\" class=\"in-list wp-image-155 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png\" alt=\"\" width=\"238\" height=\"300\" \/> Detailliertes Diagramm zur Verwendung von \"Wenn-Dann\" Kontrollstrukturen[\/caption]\r\n<h1 id=\"zac1819db6890\" class=\"in-list\">Bildtafeln<\/h1>\r\n[gallery link=\"file\" ids=\"156,157,158\"]","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_159_199\"><b>Algorithmus<\/b><\/a> ist eine eindeutige Handlungsvorschrift zur Verarbeitung von Eingaben (eng. Input, z.B. Daten) mit dem Ziel der L\u00f6sung eines <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> wird eine bestimmte Eingabe in eine bestimmte Ausgabe \u00fcberf\u00fchrt. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Algorithmus\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<sup id=\"cite_ref-2\" class=\"reference\"><\/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_159_210\"><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. h. von Handlungsanweisungen, die von einem <a title=\"Computer\" href=\"https:\/\/de.wikipedia.org\/wiki\/Computer\">Computer<\/a>\u00a0ausgef\u00fchrt werden k\u00f6nnen.<sup id=\"cite_ref-1\" class=\"reference\"><\/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>. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Programmiersprache\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<\/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_159_200\"><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> in der Regel Buchstaben als Zeichen.<\/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> oder einem Wertebereich. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Variable_(Mathematik)\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<sup id=\"cite_ref-5\" class=\"reference\"><\/sup><sup id=\"cite_ref-6\" class=\"reference\"><\/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\"><\/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. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Feld_(Datentyp)\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<\/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\"><\/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>. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Schleife_(Programmierung)\" target=\"_blank\" rel=\"noopener\">Quelle<\/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> von 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.<\/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_159_201\"><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. (<a href=\"https:\/\/de.wikipedia.org\/wiki\/Bedingte_Anweisung_und_Verzweigung\" target=\"_blank\" rel=\"noopener\">Quelle<\/a>)<\/p>\n<div id=\"attachment_158\" style=\"width: 248px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-158\" id=\"z6428d3c65ae8\" class=\"in-list wp-image-155 size-medium\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png\" alt=\"\" width=\"238\" height=\"300\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-238x300.png 238w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-813x1024.png 813w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-768x967.png 768w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-1220x1536.png 1220w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-65x82.png 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-225x283.png 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_-350x441.png 350w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/IF-THEN-ELSE-END_flowchart.svg_.png 1626w\" sizes=\"auto, (max-width: 238px) 100vw, 238px\">\n<p id=\"caption-attachment-158\" class=\"wp-caption-text\">Abbildung 11.1 \u2013 Detailliertes Diagramm zur Verwendung von \u201eWenn-Dann\u201c Kontrollstrukturen<\/p>\n<\/div>\n<h1 id=\"zac1819db6890\" class=\"in-list\">11.6 \u2013 Bildtafeln<\/h1>\n<style type=\"text\/css\">\n\t\t\t#gallery-1 {\n\t\t\t\tmargin: auto;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-item {\n\t\t\t\tfloat: left;\n\t\t\t\tmargin-top: 10px;\n\t\t\t\ttext-align: center;\n\t\t\t\twidth: 33%;\n\t\t\t}\n\t\t\t#gallery-1 img {\n\t\t\t\tborder: 2px solid #cfcfcf;\n\t\t\t}\n\t\t\t#gallery-1 .gallery-caption {\n\t\t\t\tmargin-left: 0;\n\t\t\t}\n\t\t\t\/* see gallery_shortcode() in wp-includes\/media.php *\/\n\t\t<\/style>\n<div id=\"gallery-1\" class=\"gallery galleryid-159 gallery-columns-3 gallery-size-thumbnail\">\n<dl class=\"gallery-item\">\n<dt class=\"gallery-icon landscape\">\n\t\t\t\t<a href=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/programming-language-history2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/programming-language-history2-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-156\"><\/a>\n\t\t\t<\/dt>\n<dd class=\"wp-caption-text gallery-caption\" id=\"gallery-1-156\">\n\t\t\t\tComputersprachen durch den Verlauf der Zeit\n\t\t\t\t<\/dd>\n<\/dl>\n<dl class=\"gallery-item\">\n<dt class=\"gallery-icon portrait\">\n\t\t\t\t<a href=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie.jpeg\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-150x150.jpeg\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-157\" srcset=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-150x150.jpeg 150w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-300x300.jpeg 300w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-1024x1024.jpeg 1024w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-768x769.jpeg 768w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-1534x1536.jpeg 1534w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-65x65.jpeg 65w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-225x225.jpeg 225w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie-350x351.jpeg 350w, https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/Piet_Mondrian_1942_-_Broadway_Boogie_Woogie.jpeg 2045w\" sizes=\"auto, (max-width: 150px) 100vw, 150px\"><\/a>\n\t\t\t<\/dt>\n<dd class=\"wp-caption-text gallery-caption\" id=\"gallery-1-157\">\n\t\t\t\tPiet Mondrian \u2013 Boogie Woogie\n\t\t\t\t<\/dd>\n<\/dl>\n<dl class=\"gallery-item\">\n<dt class=\"gallery-icon portrait\">\n\t\t\t\t<a href=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/chernikow.png\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-content\/uploads\/sites\/1961\/2024\/02\/chernikow-150x150.png\" class=\"attachment-thumbnail size-thumbnail\" alt=\"\" aria-describedby=\"gallery-1-158\"><\/a>\n\t\t\t<\/dt>\n<dd class=\"wp-caption-text gallery-caption\" id=\"gallery-1-158\">\n\t\t\t\tChernikhov \u2013 Fantasy and Construction\n\t\t\t\t<\/dd>\n<\/dl>\n<p><br style=\"clear: both\">\n\t\t<\/p><\/div>\n<div class=\"glossary\"><span class=\"screen-reader-text\" id=\"definition\">definition<\/span><template id=\"term_159_199\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_159_199\"><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_159_210\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_159_210\"><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_159_200\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_159_200\"><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_159_201\"><div class=\"glossary__definition\" role=\"dialog\" data-id=\"term_159_201\"><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":8858,"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-159","chapter","type-chapter","status-publish","hentry"],"part":150,"_links":{"self":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapters\/159","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/wp\/v2\/users\/8858"}],"version-history":[{"count":7,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapters\/159\/revisions"}],"predecessor-version":[{"id":531,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapters\/159\/revisions\/531"}],"part":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/parts\/150"}],"metadata":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapters\/159\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/wp\/v2\/media?parent=159"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/pressbooks\/v2\/chapter-type?post=159"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/wp\/v2\/contributor?post=159"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/wp-prd.let.ethz.ch\/computationaldesignwip\/wp-json\/wp\/v2\/license?post=159"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}