Industrialisierung und soziale Frage und Kapitel 3: Kontrollstrukturen: Unterschied zwischen den Seiten

Aus ComeniusWiki
(Unterschied zwischen Seiten)
Wechseln zu: Navigation, Suche
(1.Definition)
 
(Syntax)
 
Zeile 1: Zeile 1:
== 1. Hemmende Faktoren für die Industrialisierung in Deutschland ==
+
[[Informatik_10._Klasse_13-14|Zur Startseite]] - [[Kapitel_1:_Vorbereitende_Aufgaben_und_Einstieg|Kapitel 1]] - [[Kapitel_2:_Variablen_und_Datentypen|Kapitel 2]]
=====Allgemein=====
+
Da Deutschland zu Beginn der Industrialisierung noch ein Vielvölkerstaat war, behinderte der Zoll den Handel, da der Zoll den Handel verteuerte. Ein weiterer Punkt war, dass es immer noch Zünfte gab, welche den Wettbewerb wegen den Zunftzwängen erschwerten. Zudem waren viele Bauern immer noch Leibeigene.In jedem einzelnen Staat gab es verschiedene Maße.
+
=====Schlechte Lage=====
+
Deutschland hatte eine schlechte geographische Lage, da es nur im Norden Zugang zum Meer hatte und somit kein guter Handel betrieben werden kann oder Kolonien entstehen können.Der liberale Wirtschaftsprofessor Friedrich List wollte die Zölle im deutschen Bund abschaffen und in jedem einzelnen Staat die gleichen Maße um die Industrialisierung im deutschen Bund zu beschleunigen
+
Da die Kohlevorkommen und die Eisenvorkommen nicht am gleichen Ort vorhanden waren, mussten sie transportiert werden, was nicht günstig war, da Deutschland zu diesem Zeitpunkt immer noch eine schlechte Infrastruktur hatte. In Deutschland herrschte ein zu kontinentales Klima, das ungünstig für eine rentabele Wolleproduktion war.
+
=====Historisches=====
+
Durch die Napoleonischen Kriege, die auch Deutschland tangierten, wurde Deutschland geschwächt. Auch die Industrialisierung litt an der Kontinentalsperre. Zudem hatte Deutschland zur damaligen Zeit das Restaurationsprinzip (man wollte die Verhältnisse vor der französischen Revolution 1789 wiederherstellen) und deshalb hatten Adelige Angst vor industriellen Fortschritten.
+
=====Bevölkerungswachstum=====
+
Der Bevölkerungswachstum in Deutschland war geringer als der britische. Es bestand nicht diese große Nachfrage und Notwendigkeit zur Änderung der Produktionsverfahren in Form einer industriellen Arbeitsteilung.
+
=====Politische Bedingungen=====
+
Deutschland war in 39 selbständige Staaten aufgeteilt. Jeder dieser Staaten hatte eine eigene Wirtschaftspolitik, ein eigenes Zollwesen, obendrein eine schlecht ausgebaute Infrastruktur. Es konnte sich kein einheitlicher Markt herausbilden. Die Absatzmärkte waren beschränkt und die einzelnen Waren im Fernhandel verteuert.
+
===== Gesellschaftliche Strukturen=====
+
a) Die alte Ständegesellschaft prägte die deutsche Gesellschaft noch bis zur Mitte des 19. Jahrhunderts.
+
  
b) Die Einstellung der deutschen Fürsten gegenüber der Industrialisierung war eher zurückhaltend. Es gab keine staatliche Förderung, sondern Behinderung durch etwa das Verbot zur Bildung von  Aktiengesellschaften. Dieses Verbot wurde erst 1867 aufgehoben. Obendrein unterlag der Abbau von Bodenschätzen der Konzession durch den Staat.
+
Kontrollstrukturen sind Anweisungen, die festlegen, in welcher Reihenfolge was vom Computer getan werden soll. Eine Kontrollstruktur ist entweder eine '''Verzweigung''' oder eine '''Schleife'''. Meist wird ihre Ausführung über logische Ausdrücke  beeinflusst. Kontrollstrukturen können über spezielle Diagramme (Programmablaufplan oder Struktogramm) visualisiert werden
  
c) Es fehlte die Bereitschaft des Adels, Geld in den Handel und in die Industrie zu investieren. Dem Adel war es z.B. in Bayern verboten (bis 1957) sich an Aktiengesellschaften zu beteiligen). Hinzu trat auch eine mangelnde Bereitschaft der wohlhabenden Bürger sich auf diesem Feld zu betätigen. Die Oberschichten investierten in Grund, Immobilien und die Landwirtschaft, weil dies als sicher galt (=Rentenkapitalismus). Diese Risikoscheu behinderte die Entwicklung.  Es ist dies auch eine Folge der mehr geisteswissenschaftlich ausgerichteten Bildung in Deutschland, welche die Naturwissenschaften vernachlässigte.
+
==Zweiseitige bedingte Anweisung==
 +
===Bedingungen===
 +
Unter einer Bedingung versteht man einen beliebigen Ausdruck, dessen Auswertung einen Wahrheitswert (''true'' oder ''false'') liefert. Diese Ausdrücke können unterschiedliche Form annehmen:
 +
* Am häufigsten handelt es sich um Vergleiche:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Ausdruck
 +
! Bedeutung
 +
|-
 +
| (x == 0)
 +
| ''x ist gleich 0'' (Gleichheitsoperator)
 +
|-
 +
| (x != 0)
 +
| ''x ist ungleich 0'' (Ungleichheitsoperator)
 +
|-
 +
| (x > 0), (x < 0)
 +
| ''x größer 0'', ''x kleiner 0''
 +
|-
 +
| (x >= 0), (x <= 0)
 +
| ''x größer oder gleich 0'', ''x kleiner oder gleich 0''
 +
|}
  
d) Der starke Einfluss der noch vorhandenen Zunftordnungen verhinderte in vielen handwerklichen Produktionsbereichen den Fortschritt. Es herrschte ein innovationsfeindliches Klima. In Bayern war in einigen Städten diese Zunftordnung sogar bis 1859 vorgegeben.
+
* Komplexere Bedingungen entstehen durch die Verknüpfung mehrerer Vergleiche mittels logischer Operatoren:
 +
{| class="wikitable" border="1"
 +
|-
 +
! Logischer Operator
 +
! Bedeutung
 +
! Beispiel
 +
|-
 +
| &&
 +
| logisches UND
 +
| (x>5) && (x<9)
 +
|-
 +
| &#124;&#124;
 +
| logisches ODER
 +
| (x<5) &#124;&#124; (x>9)
 +
|-
 +
| !
 +
| logisches NICHT
 +
| !(x==0)
 +
|}
  
e) Die Katholische Kirche hatte noch zu Beginn des 19. Jahrhunderts erheblichen Einfluss in Deutschland. Staat und Kirche waren noch nicht getrennt. Die Kirche bremste die Entwicklung, weil die neue Schicht (Klasse) der Arbeiter von ihr kaum beeinflusst werden konnte.
+
* Man kann auch eine einfache Variable vom Typ boolean als Bedingung verwenden, denn sie hat selbst schon einen Wahrheitswert und ist deshalb ''true'' oder ''false'':
  
f) Die Aufklärung in Deutschland entsprach nicht der Aufklärung in England. In Deutschland gab es eher einen aufgeklärten Absolutismus, dieser hob sich ab von der Aufklärung in England, die maßgeblich vom Empirismus Locke `s geprägt war.
+
: ''boolean verheiratet = true;''
  
=====Konkurrenz=====
+
: ''if (verheiratet) {...};''
  
Großbritannien war eine große Konkurrenz für Deutschland in Sachen Textil- und Eisenindustrie und behinderte so eine rasche Entwicklung, das zur Folge hatte das die Industrialisierung erst viel später einsetzte.
+
===Bedingungen bei KAROL und SCRATCH===
  
== 2. Günstige Faktoren für die Industrialisierung in Deutschland ==
+
Diese Art der Kontrollstruktur ist uns bereits aus der 7.Klasse im Zusammenhang mit Robot Karol und Scratch bekannt.
Sehr günstig schienen die Umstände für die Industrialisierung Anfang des 19. Jahrhunderts nicht, doch im Laufe dieses Jahrhunderts entwickelten sich einige fördernde Faktoren, die unten aufgelistet werden.
+
* '''1. Der deutsche Zollverein'''
+
* '''2. Die Eisenbahn - Lokomotive der Industrialisierung'''
+
Der wohl wichtigste Faktor für die Industrialisierung in Deutschland war die Erfindung der Dampfmaschine und somit auch der Eisenbahn. Nach englischem Vorbild wurde 1835 der Bau der ersten deutschen Eisenbahn (zwischen Nürnberg und Fürth) durch eine Vereinigung von aufgeschlossenen Bürgern finanziert. Ab 1850 wurde der Eisenbahnbau zum Motor der Industrialisierung, der moderne Massenverkehr war geboren. Bis 1880 wuchs das deutsche Schienennetz auf 34.000 Kilometer Gesamtlänge an, damit war es das größte Europas und wurde nur noch übertroffen von den USA, deren Schienenwege eine Länge von über 150.000 Kilometern hatten. Ein weiterer Vorteil der Eisenbahn war, dass sie viele Arbeitsplätze schuf (zum Beispiel Bahndämme aufschütten, Schienen verlegen und Bahnhöfe und Brücken bauen) und dadurch, aufgrund der vielen benötigten Maschinen, auch die Förderung und Verarbeitung von Eisen und Stahl ankurbelte. Die Steinkohle gewann auch Bedeutung, da die traditionellen Energielieferanten Holz und Holzkohle nicht mehr ausreichten, um die großen Dampfmaschinen zu betreiben. Dadurch entstanden zahlreiche Steinkohlebergwerke im "Kohlerevier", in denen Tausende von Menschen Arbeit fanden (siehe Nummer 4). Deshalb wird die Eisenbahn als "Lokomotive der Industrialisierung" bezeichnet - weil sie es war, die die meisten Industrien vorangetrieben und den Bürgern sowie dem Staat den entscheidenden Antrieb gegeben hat.
+
* '''3. Aktiengesellschaften'''
+
Die Unternehmer mussten früher von ihrem Eigenkapital Firmen aufbauen, doch als der Gedanke zum Aufbau großer Firmen laut wurde, wurde mehr Kapital benötigt, dass ein Einzelner nicht mehr bezahlen konnte. Seit Mitte des 19. Jahrhunderts steig die Zahl der Aktiengesellschaften in Deutschland erheblich an. Durch den Verkauf von Aktien konnten die Aktiengesellschaften  sehr schnell große Mengen an Kapital aufbringen. Leute, die diese Aktien kauften, waren sowohl am Gewinn, als auch am Verlust der Firma beteiligt. Später entstanden durch solche Aktiengesellschaften entstanden kurz darauf die Banken, unter anderem DIE DEUTSCHE und die DRESDNER BANK. Diese Banken gaben den Gründern Kredite, allerdings nur, wenn sie sich sicher waren, dass die Investition Geld einbringen würde.
+
* '''4. Das "Kohlerevier" - das industrielle Herz Deutschlands'''
+
Das Kohlerevier beschreibt die wichtigsten Standpunkte des Kohlebergbaus. Beispiele für diese Vorkommen wären das Ruhrgebiet, Preußen, Oberschlesien und Saarland. Durch fortschreitende Technik konnte man 1837 tiefliegende Kohlevorkommen im Ruhrgebiet abbauen. Hauptsächlich aus Ostdeutschland und Polen, aber auch aus allen anderen Teilen Deutschlands, kamen Menschen in das "Revier". Sie fanden Arbeit in den Zechen und Grubenwerken, so wie in den Maschinenfabriken, zum Beispiel der Fabriken der Firma Krupp. Um 1870 nahm Deutschland den 4. Rang der Kohleförderung weltweit ein.
+
* '''5. Staatliche Förderung'''
+
Ein weiterer wichtiger Faktor für die Industrialisierung ist der erhebliche Anteil der Politik an der Förderung eines Industriestaates. Die Regierung beschaffte auf eigene Staatskosten Maschinen, die sie den Unternehmen lieh und nach einiger Zeit sogar schenkte. Zum Beispiel begann Preußen, in dem das "Kohlerevier" lag, wesentlich und aktiv in die Wirtschaft einzugreifen und sie zu fördern, mit dem Zweck, den deutschen Nationalstaat zu einem wichtigen Industriestaat zu machen, was es letztendlich auch geschafft hat, als Deutschland 1870 an der vierten Stelle der Weltproduktion stand. Dies geschah zum Teil durch direkte finanzielle Förderung oder durch Eingreifen in den Aktienhandel (siehe Nummer 3). Der Staat unterstützte die Gesellschaften nicht nur, sondern wirkte zum Beispiel durch Kredite, Subventionen oder auch Steuern regulierend. Doch er wurde auch zum Unternehmer und betrieb die Post, die Telefon- und die Eisenbahngesellschaft, um die Staatskasse aufzufüllen. 
+
* '''6. Gründung des Nationalstaates → Entwicklung des Nationalgedankens'''
+
  
== 3. Die soziale Frage spaltet die Gesellschaft ==
+
[[Datei:3-1-karol-scratch.JPG]]
  
==1.Definition==
+
===Syntax===
Die soziale Frage bezeichnet die Missstände und Folgen der Industrialisierung und der Industriellen Evolution. Die Gewerbefreiheit und die Bauernbefreiungen.
+
==2.Entstehung und Merkmale==
+
=== 2.1 Entstehung===
+
Die Soziale Frage ist durch politisch- wirtschaftliche schwache Gruppen entstanden. Ein weiterer Hauptgrund war der rasante Bevölkerungsanstieg.Durch die Bauernbefreiungen und die Aufhebung der Grundherrschaft fehlte den Bauern und der unteren Schicht eine Versicherung für Essen, Kleidung etc.
+
===2.2 Merkmale===
+
Die Merkmale der sozialen Frage sind zum einen der rasche Bevölkerungsanstieg, der auf medizinische und chirurgische Fortschritte zurückzuführen war, außerdem wurde der Zunftzwang aufgehoben, was die Verunwirtschaftung der meist sehr kleinen Höfe zur Folge hatte.
+
==3. Probleme und Lösungsansätze==
+
===3.1 Arbeitssituation===
+
Frauen und Kinder mussten arbeiten, um ihre meist kinderreiche Familie ernähren zu können. kinder sind vor allem im Rohstoff-abbau sehr gefragt, da sie in kleineren Stollen und Schächten arbeiten können und weil sie leichter sind als viele Erwachsene.Frauen sind in der Textilindustrie sehr beliebt, da sie geschickt sind. Kinder und Frauen sind auch deswegen so beliebt, weil sie wesentlich billiger sind als männliche Arbeitskräfte und psychisch stärker belastbar sind.
+
===3.2 Wohnsituation===
+
Die Wohnsituation ist während der Industrialisierung sehr schlecht, da durch den schnellen Bevölkerungsanstieg die Unterkünfte sehr begrenzt und damit auch sehr teuer sind. später werden besondere Wohnblocks gebaut, in denen mehrere hundert Arbeiterfamilien platz finden.
+
===3.3 Lösungsansätze===
+
durch mehrere politische Gruppen und Organisationen versuchen Lösungen auszuarbeiten, doch sie gehen unter. Auch die Gesetze die zugunsten der Arbeiter erlassen werden, helfen nur wenig. Die drängenden Probleme brachten die Staaten zu einer starken Mobilisierung und Politisierung
+
  
== 4. Lösungsansätze zur sozialen Frage (Marx und Engels) ==
+
Die Syntax der zweiseitigen bedingten Anweisung sieht folgendermaßen aus:
  
Die soziale Frage ist eine Anhäufung ökonomischer Probleme der Industrialisierung im 19. Jahrhundert, die den Alltag der Arbeiter prägten, wie
+
<pre>
z.B.: Überbevölkerung aufgrund besserer Arbeit oder mangelhafte Hygiene, welche zu Krankheiten und vielen Toten führte. Dies wiederum verursachte die Aufstände der unterdrückten Arbeiter.
+
if (Ausdruck) {Anweisung 1}
Die Unternehmer Marx und Engels versuchten das Problem im sozialen Sinne zu lösen. Sie verfassten das "Kommunistische Manifest" (eine der bekanntesten sozialistischen Schriften) und beschrieben in ihren Büchern den Wandel vom Kapitalismus zum Kommunismus (eine klassenlose Gemeinschaft, in der die Arbeit sowie die Erzeugnisse gerecht unter allen aufgeteilt werden).
+
else {Anweisung 2}
Außerdem waren sie gegen Einstellung der Bourigeosie (Oberschicht).
+
</pre>
Um ihre Lösung durchzusetzen, planten sie eine kommunistische Revolution, also einen Sturz der Regierung gefolgt von einer vorübergehenden Herrschaft des Proletariats (Arbeiterschicht) bis eine kommunismusfreundliche Regierung gewählt wird. Weitere geplante Maßnahmen waren die Zwangsenteignung, das Verbot des Erbrechts und Arbeitszwang. Zudem hatten sie im Sinn Landwirtschaft und Industrie zu vereinigen, alle wirtschaftlichen Prozesse zu zentralisieren und zu verstaatlichen sowie eine Planwirtschaft einzuführen, um Überproduktion vorzubeugen. (Planwirtschaft bedeutet, dass die Fabriken einen Arbeitsplan erhalten, der festlegt, was bis zu welchem Zeitpunkt gefertigt werden soll.)
+
Desweiteren sollte der Lohn des Arbeiters dem Wert seiner Arbeit entsprechen, wobei körperliche Arbeit mehr gewertet wurde als geistige.
+
Kinderarbeit müsse ihrer Meinung nach ebenfalls verboten werden.
+
  
== 5. Lösungsansätze zur sozialen Frage (Kirche und Unternehmer) ==
+
Der '''Ausdruck''' in Klammern wird ausgewertet. Trifft die '''Bedingung''' zu (hat also der Ausdruck den Wert ''true''), so wird '''Anweisung 1''' ausgeführt. Trifft die Bedingung nicht zu (hat also der Ausdruck den Wert ''false''), so wird '''Anweisung 2''' ausgeführt. Statt einer einzelnen Anweisung kann natürlich auch ein Block von Anweisungen ausgeführt werden.
Da der Kirche und der Politik erst spät die Missstände in der Arbeiterschicht bewusst wurden kam von der kirchlichen Seite zu Anfang wenig Hilfe. Nach und nach begann man jedoch mit dem Bau von Einrichtungen wie z.b dem vom evangelischen Johann Hinrich Wichern gegründeten "Rauhe-Haus", das obdachlose Kinder aufnahm, versorgte und auf das spätere Berufsleben vorbereitete, und der "Inneren Mission", die in erster Linie den erwachsenen Arbeitern half, welche in Not geraten waren und kaum mehr genug verdienten um ihre Familien zu ernähren. Auf katholischer Seite wäre hier der "Arbeiterbischof" Wilhelm Freiherr von Ketteler zu nennen, welcher eine Sozialreform forderte, und Adolf Kolping, dem Gründer der "Koplingwerke".
+
 
 +
'''Beispiel:'''
 +
<pre>
 +
if(alter<18){System.out.println("Der Schüler ist minderjährig.");}
 +
else {System.out.println("Der Schüler ist volljährig.");}
 +
</pre>
 +
 
 +
<big>[[Exkurs: Mathematische Funktionen mit java.lang.Math]]</big>
 +
 
 +
<big>[[Aufgaben 3.1.]]</big>
 +
 
 +
==Einseitige bedingte Anweisung==
 +
 
 +
Der ''else''-Zweig ist optional. Entfällt der ''else''-Zweig, so spricht man von einer ''einseitigen bedingten Anweisung''.
 +
 
 +
===Syntax===
 +
 
 +
<pre>
 +
if(Ausdruck){Anweisung}
 +
</pre>
 +
 
 +
Ergibt die Auswertung des Ausdrucks ''false'', so wird automatisch mit dem Programm fortgefahren.
 +
 
 +
'''Beispiel:'''
 +
 
 +
<pre>
 +
public void dividieren(){
 +
  Scanner ein=new Scanner(System.in);
 +
  System.out.print("x= ");
 +
  int x=ein.nextInt();
 +
  System.out.print("y= ");
 +
  int y=ein.nextInt();
 +
 
 +
  if(y==0){System.out.println("Division durch 0 nicht definiert!"); dividieren();};
 +
 
 +
  double z=(double)x/(double)y;
 +
  System.out.println(z);
 +
}
 +
</pre>
 +
 
 +
'''Erläuterung:''' Die if-Anweisung fängt den Ausnahmefall der Division durch 0 ab und ruft die Methode ''dividieren()'' erneut auf, d.h. es erscheint wieder die Eingabeaufforderung.
 +
 
 +
==Mehrfache Alternative - else-if==
 +
 
 +
Die ''else-if''-Anweisung ermöglicht eine Mehrfachauswahl; d.h. eine Auswahl unter verschiedenen Alternativen.
 +
 
 +
===Syntax===
 +
 
 +
<pre>
 +
if (Ausdruck 1){Anweisung 1}
 +
else if (Ausdruck 2){Anweisung 2}
 +
          .
 +
          .
 +
          .
 +
else if (Ausdruck n){Anweisung n}
 +
else {Anweisung_else}
 +
</pre>
 +
 
 +
In der angegebenen Reihenfolge wird ein Ausdruck nach dem anderen abgearbeitet. Bei der ersten Bedingung, die ''true'' ist, wird die zugehörige Anweisung bzw. der zugehörige Anweisungsblock ausgeführt und die Mehrfachauswahl abgebrochen. Der letzte ''else''-Zweig ist optional. Hier können alle anderen Fälle behandelt werden, die nicht explizit aufgeführt wurden. Ist dies nicht notwendig, so kann der ''else''-Zweig entfallen.
 +
 
 +
 
 +
'''Beispiel:'''
 +
 
 +
<pre>
 +
public void kommentarGeben(){
 +
Scanner ein=new Scanner(System.in);
 +
System.out.print("Punkte= ");
 +
int punkte=ein.nextInt();
 +
 
 +
if(punkte>100){System.out.println("Spitzenleistung");}
 +
else if (punkte >80){System.out.println("Eine sehr gute Leistung");}
 +
else if (punkte >60){System.out.println("Eine gute Leistung");}
 +
else if (punkte >40){System.out.println("Eine noch passable Leistung");}
 +
else {System.out.println("Du solltest noch etwas üben !!");}
 +
}
 +
</pre>
 +
 
 +
<big>[[Aufgaben 3.2.]]</big>
 +
 
 +
 
 +
Witzige Erklärung der if-else-Anweisung:
 +
 
 +
<div style="margin-left:100px; margin-top:30px; margin-bottom:30px">
 +
{{#ev:youtube|3u5gejaIVSI}}
 +
</div>
 +
 
 +
 
 +
<big style="color:green;">[[Lernzielkontrolle Info10 - 1]]</big>
 +
 
 +
==Die while-Schleife==
 +
 
 +
In einer '''''while'''''-Schleife kann eine Anweisung in Abhängigkeit von der Bewertung eines Ausdrucks wiederholt ausgeführt werden.
 +
 
 +
===Syntax===
 +
 
 +
<pre>
 +
while (Ausdruck) {Anweisung}
 +
</pre>
 +
 
 +
Der Ausdruck wird berechnet und die Anweisung dann und nur dann ausgeführt, wenn der Ausdruck ''true'' ist. Danach wird die Berechnung des Ausdrucks und die eventuelle Ausführung der Anweisung wiederholt. Um keine Endlosschleife zu erzeugen, muss daher ein Teil des Bewertungsausdrucks im Schleifenrumpf, d.h. in der Anweisung, manipuliert werden.
 +
 
 +
'''Beispiel:'''
 +
 
 +
<pre>
 +
public void zahlenBisHundertAddieren(){
 +
int i=1;
 +
int sum=0;
 +
while(i<=100){sum=sum+i; i++;};
 +
System.out.println("Die Summe der Zahlen 1 bis 100 ist "+sum);
 +
}
 +
</pre>
 +
 
 +
[[Datei:While schleife 3.JPG|while-schleife]]
 +
 
 +
'''Erläuterungen:'''
 +
* Die Variable '''i''' fungiert als Zählvariable. Sie wird mit dem Wert 1 initialisiert und bei jedem Durchlauf durch die Schleife um 1 erhöht. Der Ausdruck '''i++''' ist dabei die Kurzform für i=i+1, d.h. der Variable i wird jeweils der aktuelle Wert von i plus 1 zugewiesen. Entsprechend kann man noch andere Inkrementierungen bilden: i+=2 steht z.B. für i=i+2, i-=3 steht für i=i-3.
 +
* Die Variable '''sum''' dient als Hilfsvariable um die jeweilige Zwischensumme zu speichern. Bei jedem Durchlauf wird sum um den Wert von i erhöht und zum Schluss als Ergebniswert ausgegeben.
 +
* Bei jedem Durchlauf wird der Ausdruck '''i<=100''' ausgewertet und die Berechnung wird solange wiederholt, solange die Auswertung ''true'' ergibt.
 +
 
 +
 
 +
Erläuterung der while-Schleife:
 +
 
 +
<div style="margin-left:100px; margin-top:30px; margin-bottom:30px">
 +
{{#ev:youtube|vmX5oUHxF8Q}}
 +
</div>
 +
 
 +
<big>[[Aufgaben 3.3.]]</big>
 +
 
 +
==Die for-Schleife==
 +
 
 +
Die ''for''-Schleife, oder auch Zählschleife, wird meist verwendet, wenn die Anzahl der Schleifendurchläufe im Vornhinein feststeht, wobei man eine sogenannte Laufvariable verwendet, um die Anzahl der Schleifendurchläufe zu zählen.
 +
 
 +
===Syntax===
 +
 
 +
<pre>
 +
for(Initialisierungsteil; Abbruchbedingung; Inkrementierungsteil) {Anweisung}
 +
</pre>
 +
 
 +
* Im '''Initialisierungsteil''', der vor Betreten der Schleife ausgeführt wird, bekommt die Laufvariable ihren Wert.
 +
* Die '''Abbruchbedingung''' wir jedesmal vor Betreten der Schleife geprüft.
 +
* Der '''Inkrementierungsteil''' wird am Ende des Schleifendurchlaufs ausgeführt und erhöht oder verringert den Wert der Laufvariable.
 +
 
 +
 
 +
'''Beispiel:'''
 +
 
 +
<pre>
 +
public void zahlenBisHundertAddieren2(){
 +
int sum=0;
 +
for(int i=1;i<=100;i++){sum=sum+i;};
 +
System.out.println("Die Summe der Zahlen 1 bis 100 ist "+sum);
 +
}
 +
</pre>
 +
 
 +
Erläuterungen:
 +
* Im Initialisierungsteil wird die Laufvariable '''i''' auf den Anfangswert 1 gesetzt. Dabei ist zu beachten, dass der Datentyp ''int'' wie bei jeder Deklaration einer Variable angegeben werden muss.
 +
* Die Abbruchbedingung lautet '''i<=100'''.
 +
* Im Inkrementierungsteil wir die Laufvariable jeweils um 1 erhöht ('''i++''').
 +
* Nach Verlassen der Schleife wird der aktuelle Wert von ''sum'' auf der Konsole ausgegeben.
 +
 
 +
 
 +
for-Schleifen können übrigens auch verschachtelt werden. Von KAROL kennen wir folgendes kleines Programm:
 +
<pre>
 +
wiederhole 4 mal
 +
    wiederhole 5 mal
 +
      hinlegen
 +
      schritt
 +
  *wiederhole
 +
  linksdrehen
 +
*wiederhole
 +
</pre>
 +
 
 +
Dabei wird zuerst die Folge ''hinlegen schritt'' fünf mal wiederholt bevor sich KAROL nach links
 +
dreht. Diese Sequenz wird insgesamt vier mal wiederholt. Auf diese Weise können wir den Rand
 +
einer Welt der Größe 6x6 mit Ziegeln belegen.<br/>
 +
Diese Verschachtelung von Schleifen ist in JAVA genauso möglich.
 +
 
 +
 
 +
Erläuterung der for-Schleife:
 +
 
 +
<div style="margin-left:100px; margin-top:30px; margin-bottom:30px">
 +
{{#ev:youtube|6PhFeienl00}}
 +
</div>
 +
 
 +
 
 +
<big>[[Aufgaben 3.4.]]</big>
 +
 
 +
<big style="color:green;">[[Lernzielkontrolle Info10 - 2]]</big>
 +
 
 +
 
 +
 
 +
Kurzes Video, das auch noch eine zusätzliche Schleife (''do-while-Schleife'') erklärt und drei kleine Übungsaufgaben enthält.
 +
<div style="margin-left:100px; margin-top:30px; margin-bottom:30px">
 +
{{#ev:youtube|TfLTccwwUkY}}
 +
</div>
 +
 
 +
==Äquivalenz von for- und while-Schleife==
 +
 
 +
Eine ''for''-Schleife kann jederzeit in eine ''while''-Schleife überführt werden. Dazu wird die Zählvariable außerhalb der ''while''-Schleife initialisiert und am Ende des Anweisungsblocks aktualisiert. Die Abbruchbedingung steht wie üblich in der Klammer nach dem Schlüsselwort ''while''.
 +
 
 +
Beispiel:
 +
<pre>
 +
for(int i=1;i<=10;i++){Sequenz}
 +
 
 +
kann übersetzt werden in:
 +
 
 +
int i=1;
 +
while(i<=10){Sequenz;i++}
 +
</pre>
 +
 
 +
 
 +
<big>[[Aufgaben 3.5.]]</big>

Aktuelle Version vom 7. Dezember 2014, 18:21 Uhr

Zur Startseite - Kapitel 1 - Kapitel 2

Kontrollstrukturen sind Anweisungen, die festlegen, in welcher Reihenfolge was vom Computer getan werden soll. Eine Kontrollstruktur ist entweder eine Verzweigung oder eine Schleife. Meist wird ihre Ausführung über logische Ausdrücke beeinflusst. Kontrollstrukturen können über spezielle Diagramme (Programmablaufplan oder Struktogramm) visualisiert werden

Inhaltsverzeichnis

Zweiseitige bedingte Anweisung

Bedingungen

Unter einer Bedingung versteht man einen beliebigen Ausdruck, dessen Auswertung einen Wahrheitswert (true oder false) liefert. Diese Ausdrücke können unterschiedliche Form annehmen:

  • Am häufigsten handelt es sich um Vergleiche:
Ausdruck Bedeutung
(x == 0) x ist gleich 0 (Gleichheitsoperator)
(x != 0) x ist ungleich 0 (Ungleichheitsoperator)
(x > 0), (x < 0) x größer 0, x kleiner 0
(x >= 0), (x <= 0) x größer oder gleich 0, x kleiner oder gleich 0
  • Komplexere Bedingungen entstehen durch die Verknüpfung mehrerer Vergleiche mittels logischer Operatoren:
Logischer Operator Bedeutung Beispiel
&& logisches UND (x>5) && (x<9)
|| logisches ODER (x<5) || (x>9)
 ! logisches NICHT  !(x==0)
  • Man kann auch eine einfache Variable vom Typ boolean als Bedingung verwenden, denn sie hat selbst schon einen Wahrheitswert und ist deshalb true oder false:
boolean verheiratet = true;
if (verheiratet) {...};

Bedingungen bei KAROL und SCRATCH

Diese Art der Kontrollstruktur ist uns bereits aus der 7.Klasse im Zusammenhang mit Robot Karol und Scratch bekannt.

3-1-karol-scratch.JPG

Syntax

Die Syntax der zweiseitigen bedingten Anweisung sieht folgendermaßen aus:

if (Ausdruck) {Anweisung 1}
else {Anweisung 2}

Der Ausdruck in Klammern wird ausgewertet. Trifft die Bedingung zu (hat also der Ausdruck den Wert true), so wird Anweisung 1 ausgeführt. Trifft die Bedingung nicht zu (hat also der Ausdruck den Wert false), so wird Anweisung 2 ausgeführt. Statt einer einzelnen Anweisung kann natürlich auch ein Block von Anweisungen ausgeführt werden.

Beispiel:

if(alter<18){System.out.println("Der Schüler ist minderjährig.");}
else {System.out.println("Der Schüler ist volljährig.");}

Exkurs: Mathematische Funktionen mit java.lang.Math

Aufgaben 3.1.

Einseitige bedingte Anweisung

Der else-Zweig ist optional. Entfällt der else-Zweig, so spricht man von einer einseitigen bedingten Anweisung.

Syntax

if(Ausdruck){Anweisung}

Ergibt die Auswertung des Ausdrucks false, so wird automatisch mit dem Programm fortgefahren.

Beispiel:

public void dividieren(){
   Scanner ein=new Scanner(System.in);
   System.out.print("x= ");
   int x=ein.nextInt();
   System.out.print("y= ");
   int y=ein.nextInt();

   if(y==0){System.out.println("Division durch 0 nicht definiert!"); dividieren();};

   double z=(double)x/(double)y;
   System.out.println(z);
}

Erläuterung: Die if-Anweisung fängt den Ausnahmefall der Division durch 0 ab und ruft die Methode dividieren() erneut auf, d.h. es erscheint wieder die Eingabeaufforderung.

Mehrfache Alternative - else-if

Die else-if-Anweisung ermöglicht eine Mehrfachauswahl; d.h. eine Auswahl unter verschiedenen Alternativen.

Syntax

if (Ausdruck 1){Anweisung 1}
else if (Ausdruck 2){Anweisung 2}
          .
          .
          .
else if (Ausdruck n){Anweisung n}
else {Anweisung_else}

In der angegebenen Reihenfolge wird ein Ausdruck nach dem anderen abgearbeitet. Bei der ersten Bedingung, die true ist, wird die zugehörige Anweisung bzw. der zugehörige Anweisungsblock ausgeführt und die Mehrfachauswahl abgebrochen. Der letzte else-Zweig ist optional. Hier können alle anderen Fälle behandelt werden, die nicht explizit aufgeführt wurden. Ist dies nicht notwendig, so kann der else-Zweig entfallen.


Beispiel:

public void kommentarGeben(){
Scanner ein=new Scanner(System.in);
System.out.print("Punkte= ");
int punkte=ein.nextInt();

if(punkte>100){System.out.println("Spitzenleistung");}
else if (punkte >80){System.out.println("Eine sehr gute Leistung");}
else if (punkte >60){System.out.println("Eine gute Leistung");}
else if (punkte >40){System.out.println("Eine noch passable Leistung");}
else {System.out.println("Du solltest noch etwas üben !!");}
}

Aufgaben 3.2.


Witzige Erklärung der if-else-Anweisung:


Lernzielkontrolle Info10 - 1

Die while-Schleife

In einer while-Schleife kann eine Anweisung in Abhängigkeit von der Bewertung eines Ausdrucks wiederholt ausgeführt werden.

Syntax

while (Ausdruck) {Anweisung}

Der Ausdruck wird berechnet und die Anweisung dann und nur dann ausgeführt, wenn der Ausdruck true ist. Danach wird die Berechnung des Ausdrucks und die eventuelle Ausführung der Anweisung wiederholt. Um keine Endlosschleife zu erzeugen, muss daher ein Teil des Bewertungsausdrucks im Schleifenrumpf, d.h. in der Anweisung, manipuliert werden.

Beispiel:

public void zahlenBisHundertAddieren(){
int i=1;
int sum=0;
while(i<=100){sum=sum+i; i++;};
System.out.println("Die Summe der Zahlen 1 bis 100 ist "+sum);
}

while-schleife

Erläuterungen:

  • Die Variable i fungiert als Zählvariable. Sie wird mit dem Wert 1 initialisiert und bei jedem Durchlauf durch die Schleife um 1 erhöht. Der Ausdruck i++ ist dabei die Kurzform für i=i+1, d.h. der Variable i wird jeweils der aktuelle Wert von i plus 1 zugewiesen. Entsprechend kann man noch andere Inkrementierungen bilden: i+=2 steht z.B. für i=i+2, i-=3 steht für i=i-3.
  • Die Variable sum dient als Hilfsvariable um die jeweilige Zwischensumme zu speichern. Bei jedem Durchlauf wird sum um den Wert von i erhöht und zum Schluss als Ergebniswert ausgegeben.
  • Bei jedem Durchlauf wird der Ausdruck i<=100 ausgewertet und die Berechnung wird solange wiederholt, solange die Auswertung true ergibt.


Erläuterung der while-Schleife:

Aufgaben 3.3.

Die for-Schleife

Die for-Schleife, oder auch Zählschleife, wird meist verwendet, wenn die Anzahl der Schleifendurchläufe im Vornhinein feststeht, wobei man eine sogenannte Laufvariable verwendet, um die Anzahl der Schleifendurchläufe zu zählen.

Syntax

for(Initialisierungsteil; Abbruchbedingung; Inkrementierungsteil) {Anweisung}
  • Im Initialisierungsteil, der vor Betreten der Schleife ausgeführt wird, bekommt die Laufvariable ihren Wert.
  • Die Abbruchbedingung wir jedesmal vor Betreten der Schleife geprüft.
  • Der Inkrementierungsteil wird am Ende des Schleifendurchlaufs ausgeführt und erhöht oder verringert den Wert der Laufvariable.


Beispiel:

public void zahlenBisHundertAddieren2(){
int sum=0;
for(int i=1;i<=100;i++){sum=sum+i;};
System.out.println("Die Summe der Zahlen 1 bis 100 ist "+sum);
}

Erläuterungen:

  • Im Initialisierungsteil wird die Laufvariable i auf den Anfangswert 1 gesetzt. Dabei ist zu beachten, dass der Datentyp int wie bei jeder Deklaration einer Variable angegeben werden muss.
  • Die Abbruchbedingung lautet i<=100.
  • Im Inkrementierungsteil wir die Laufvariable jeweils um 1 erhöht (i++).
  • Nach Verlassen der Schleife wird der aktuelle Wert von sum auf der Konsole ausgegeben.


for-Schleifen können übrigens auch verschachtelt werden. Von KAROL kennen wir folgendes kleines Programm:

wiederhole 4 mal
    wiederhole 5 mal
      hinlegen
      schritt
   *wiederhole
   linksdrehen
*wiederhole

Dabei wird zuerst die Folge hinlegen schritt fünf mal wiederholt bevor sich KAROL nach links dreht. Diese Sequenz wird insgesamt vier mal wiederholt. Auf diese Weise können wir den Rand einer Welt der Größe 6x6 mit Ziegeln belegen.
Diese Verschachtelung von Schleifen ist in JAVA genauso möglich.


Erläuterung der for-Schleife:


Aufgaben 3.4.

Lernzielkontrolle Info10 - 2


Kurzes Video, das auch noch eine zusätzliche Schleife (do-while-Schleife) erklärt und drei kleine Übungsaufgaben enthält.

Äquivalenz von for- und while-Schleife

Eine for-Schleife kann jederzeit in eine while-Schleife überführt werden. Dazu wird die Zählvariable außerhalb der while-Schleife initialisiert und am Ende des Anweisungsblocks aktualisiert. Die Abbruchbedingung steht wie üblich in der Klammer nach dem Schlüsselwort while.

Beispiel:

for(int i=1;i<=10;i++){Sequenz} 

kann übersetzt werden in:

int i=1;
while(i<=10){Sequenz;i++}


Aufgaben 3.5.