{"id":155,"date":"2018-06-02T13:15:26","date_gmt":"2018-06-02T11:15:26","guid":{"rendered":"https:\/\/freizone.net\/java-einfach-lernen\/?p=155"},"modified":"2020-05-11T19:29:40","modified_gmt":"2020-05-11T17:29:40","slug":"hintergrundwissen","status":"publish","type":"post","link":"https:\/\/freizone.net\/java-einfach-lernen\/2018\/06\/02\/hintergrundwissen\/","title":{"rendered":"Hintergrundwissen zur Programmierung"},"content":{"rendered":"<p>Um effektiv Programmieren zu lernen, ist es sinnvoll sich einen etwas tieferen Einblick in die Funktionsweise eines Computers zu verschaffen. Hierzu werden wir nun f\u00fcr einen Augenblick sehr tief in die Materie eintauchen aber nur um die Wurzel des Ganzen kurz zu beleuchten.<\/p>\n<p>Bei den kleinsten Schaltkreisen im Computer handelt es sich um sogenannte Logikgatter. Stellen wir uns dazu einen geraden Draht vor, der an zwei Stellen durch Drahtbr\u00fccken verbunden ist. Am Ende ist eine Leuchtdiode (LED) angebracht:<\/p>\n<p><img src=\"https:\/\/freizone.net\/bilder\/Schaltung.png\" \/><\/p>\n<p>Diese Drahtbr\u00fccken k\u00f6nnen offen oder geschlossen sein. Im offenen Zustand ist der Stromfluss unterbrochen, im geschlossenen nicht.<br \/>\nDadurch ergeben sich folgende M\u00f6glichkeiten:<\/p>\n<table cellspacing=\"0\" cellpadding=\"5\">\n<tbody>\n<tr>\n<td align=\"center\">Drahtbr\u00fccke 1<\/td>\n<td align=\"center\">Drahtbr\u00fccke 2<\/td>\n<td align=\"center\">LED leuchtet<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">offen<\/td>\n<td align=\"center\">offen<\/td>\n<td align=\"center\">nein<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">offen<\/td>\n<td align=\"center\">geschlossen<\/td>\n<td align=\"center\">nein<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">geschlossen<\/td>\n<td align=\"center\">offen<\/td>\n<td align=\"center\">nein<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">geschlossen<\/td>\n<td align=\"center\">geschlossen<\/td>\n<td align=\"center\">ja<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Wenn wir 0 setzen wenn kein Strom flie\u00dft und 1 wenn Strom flie\u00dft haben wir eine sogenannte\u00a0<em>Wahrheitstabelle.<\/em><\/p>\n<table cellspacing=\"0\" cellpadding=\"5\">\n<tbody>\n<tr>\n<td align=\"center\">Drahtbr\u00fccke 1<\/td>\n<td align=\"center\">Drahtbr\u00fccke 2<\/td>\n<td align=\"center\">LED leuchtet<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">0<\/td>\n<td align=\"center\">0<\/td>\n<td align=\"center\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">0<\/td>\n<td align=\"center\">1<\/td>\n<td align=\"center\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">1<\/td>\n<td align=\"center\">0<\/td>\n<td align=\"center\">0<\/td>\n<\/tr>\n<tr>\n<td align=\"center\">1<\/td>\n<td align=\"center\">1<\/td>\n<td align=\"center\">1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Das elektronische Bauteil hierzu nennt man Logikgatter. Genau gesagt handelt es sich um eine sogenannte <em>UND-Schaltung<\/em>, weil am Ende nur dann eine 1 ausgegeben wird, wenn beide Schalter geschlossen sind. In null und eins (nennt man <em>bin\u00e4r<\/em>) ausgedr\u00fcckt, ergibt diese Wahrheitstabelle also:<br \/>\n000<br \/>\n010<br \/>\n100<br \/>\n111<\/p>\n<p>Ein Computer kennt nur zwei Zust\u00e4nde. Strom oder kein Strom. Abgebildet durch 0 oder 1.<br \/>\nMit dieser Schaltung kann man theoretisch bereits 1+1=2 realiseren. In der Realit\u00e4t ist es allerdings so, das es neben den UND-Schaltungen, eine Vielzahl \u00e4hnlicher Schaltungen gibt. Unter anderem auch ODER, NICHT usw. Durch eine Vielzahl solcher verschachtelter und raffiniert angeordneter Schaltungen, kann man zum Beispiel Zahlen addieren. Durch eine andere Anordnung subtrahieren usw.<\/p>\n<p>Diese Anordnungen k\u00f6nnen dann mit verschiedenen Reihen von Stromimpulsen angesteuert werden und geben je nach Muster der Impulse ein anderes Ergebnis aus.\u00a0 Bei den ersten Computer wurde diese Eingabemethode z.B. durch Lochkarten gel\u00f6st. Die Ein- und Ausgabedaten sind dabei in Bits &amp; Bytes organisiert. Ein Bit ist entweder 0 oder 1, Ein Byte 8 Bits. 1024 Bytes 1 Kilobyte usw.<\/p>\n<p><strong>Bin\u00e4r und Hexadezimalsystem<\/strong><br \/>\nDie ersten Programme wurden also direkt auf diese Karten gestanzt. Man programmierte den Computer direkt mit Zahlenreihen auch <em>Bitfolgen<\/em> genannt. Z.B. w\u00e4re &#8218;ABC&#8216; bin\u00e4r: 01000001 01000010\u00a001000011.<br \/>\n&#8218;0123&#8216; w\u00e4re: 00110000 00110001 00110010 00110011<br \/>\nDa dies relativ verwirrend wirkt, hat man die Hexadezimale Schreibweise eingef\u00fchrt, da man mit ihr sehr effektiv bin\u00e4re Zahlen abbilden kann. Mit zwei Hexadezimalzeichen kann man genau ein Byte abbilden. Was angenehm kurz ist. Diese Schreibweise beruht auf 16 Ziffern 0-9 und A-F. Man z\u00e4hlt ganz einfach nach der 9 nicht 10, sondern A dann B .. bis 15 das dann als F dargestellt wird. die 16 wird dann mit der n\u00e4chst m\u00f6glichen kleinsten Zahl dargestellt also die 10. Das geht dann so weiter bis man nach der nach der 19 (dezimal 25) nicht 20 sondern 1A schreibt, was dann die 26 im Dezimalsystem w\u00e4re. Ein &#8218;Hexwert&#8216; hat auch den Vorteil das man meist sofort erkennt das es sich um eine Darstellung von bin\u00e4ren Werten handelt und nicht um Dezimalzahlen.<br \/>\nWird in der Programmierung nur ein einziges Bit, also 0 oder 1 ben\u00f6tigt, spricht man von einem\u00a0<em>Boolean<\/em>\u00a0wobei die beiden Zust\u00e4nde normalerweise in allen Programmiersprachen mit TRUE und FALSE symbolisiert werden (In der Regel ist TRUE 1 und FALSE 0, k\u00f6nnte theoretisch aber auch andersrum sein).<\/p>\n<p>Die ersten &#8218;richtigen&#8216; Programmiersprachen waren sogenannte <em>Assembler.\u00a0<\/em>Mit einer solchen Sprache wurden die 0 und 1 Reihen, in Befehlen, sogenannten\u00a0<em>Mnemonics<\/em> zusammengefasst. Ausserdem wurden verschiedene h\u00e4ufig gebrauchte Aktionen wie das Laden und speichern von Daten in sogenannten <em>Interrupts<\/em> organisiert. Der Programmierer konnte dann neben direkten Befehlen auch diese Interrupts aufrufen und Daten \u00fcbergeben.<br \/>\nMit dieser Art von Programmierung wollen wir uns kurz im n\u00e4chsten Kapitel besch\u00e4ftigen.<\/p>\n<p><strong>Zusammenfassung<\/strong><\/p>\n<ul>\n<li>Ein Computer rechnet mithilfe von logischen Schaltungen, <em>Logikgatter<\/em> genannt.<\/li>\n<li>Ein Computer rechnet <em>bin\u00e4r<\/em>, mit 0 und 1<\/li>\n<li>Die Ein- und Ausgabe erfolgt mit <em>Bitfolgen\u00a0<\/em><\/li>\n<li>Bitfolgen k\u00f6nnen einfacher mit dem <em>Hexadezimalsystem<\/em> dargestellt werden.<\/li>\n<li><em>Assembler<\/em> ist eine Programmiersprache in der Bitfolgen in <em>Mnemonics<\/em> zusammengefasst werden<\/li>\n<li>\u00dcber <em>Interrupts<\/em> werden in Assembler\u00a0 h\u00e4ufig benutzte Aktionen z.B. das Einlesen von Daten ausgef\u00fchrt.<\/li>\n<li>Ein <em>Boolean<\/em> ist in die Beschreibung eines Zustands der entweder TRUE f\u00fcr 1 oder FALSE f\u00fcr 0 sein kann<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Um effektiv Programmieren zu lernen, ist es sinnvoll sich einen etwas tieferen Einblick in die Funktionsweise eines Computers zu verschaffen. Hierzu werden wir nun f\u00fcr einen Augenblick sehr tief in die Materie eintauchen aber nur um die Wurzel des Ganzen kurz zu beleuchten. Bei den kleinsten Schaltkreisen im Computer handelt es sich um sogenannte Logikgatter. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/155"}],"collection":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/comments?post=155"}],"version-history":[{"count":26,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/155\/revisions"}],"predecessor-version":[{"id":813,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/posts\/155\/revisions\/813"}],"wp:attachment":[{"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/media?parent=155"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/categories?post=155"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/freizone.net\/java-einfach-lernen\/wp-json\/wp\/v2\/tags?post=155"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}