Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Eine Einführung in die Programmiersprache C und ... - C /C++ Ecke
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>E<strong>in</strong>e</strong> <strong>E<strong>in</strong>führung</strong> <strong>in</strong> <strong>die</strong> Informatik <strong>und</strong> <strong>die</strong> <strong>Programmiersprache</strong> C<br />
Beispiel:<br />
/* Read a number and test if zero or non-zero */<br />
#<strong>in</strong>clude /* standard stream I/0 library */<br />
<strong>in</strong>t ma<strong>in</strong>(<strong>in</strong>t argc, char *argv[])<br />
{<br />
<strong>in</strong>t i;<br />
pr<strong>in</strong>tf("Ganze Zahl e<strong>in</strong>geben !\n");<br />
scanf("%d", &i); /* read number */<br />
if (i == 0) {<br />
pr<strong>in</strong>tf("value was zero (%d)\n", i);<br />
} else {<br />
pr<strong>in</strong>tf("value was positive or negative (%d)\n", i);<br />
}<br />
return 0;<br />
}<br />
Wenn <strong>die</strong> der if-Abfrage folgende Anweisung aus mehreren Anweisungen besteht, müssen <strong>die</strong>se<br />
<strong>in</strong> e<strong>in</strong>em Block zusammengefasst werden (In geschweiften Klammern e<strong>in</strong>geschlossen werden). Entsprechendes<br />
gilt für <strong>die</strong> auf else folgenden Anweisung(en). Gr<strong>und</strong>sätzlich empfiehlt es sich,<br />
auch e<strong>in</strong>zelne Anweisungen <strong>in</strong> Klammern zu setzen.<br />
Fehlermöglichkeiten:<br />
Das Zusammenfassen mehrerer Instruktionen zu e<strong>in</strong>em Block wird vergessen, oder direkt h<strong>in</strong>ter<br />
dem if() e<strong>in</strong> Semikolon gesetzt (= leere Anweisung), <strong>und</strong> statt "if(i == 0)" wird vor allem<br />
von Anfängern oft "if(i = 0)" geschrieben (Dies ist e<strong>in</strong>e gültige Syntax <strong>und</strong> wird vom Compiler<br />
höchstens mit e<strong>in</strong>er Warnung geahndet, es wird der Variable i der Wert 0 zugewiesen, <strong>und</strong> der<br />
Wert des Ausdrucks ist 0, <strong>und</strong> somit falsch).<br />
Beispiel:<br />
Bei der E<strong>in</strong>gabe von Werten durch den Benutzer muss mit Fehle<strong>in</strong>gaben gerechnet werden. Zum<br />
Beispiel mit ungültigen Zeichen bei der E<strong>in</strong>gabe von Zahlen. Solche Fehler können (<strong>und</strong> sollten)<br />
bereits bei der E<strong>in</strong>gabe abgefangen werden. Die Funktion scanf() gibt e<strong>in</strong>en Integerwert zurück,<br />
der <strong>die</strong> Anzahl der erfolgreichen Umwandlungen angibt: Wenn das E<strong>in</strong>lesen e<strong>in</strong>es oder mehrerer<br />
Werte nicht erfolgreich war, ist <strong>die</strong> Anzahl der erfolgreichen Umwandlungen kle<strong>in</strong>er als <strong>die</strong> Anzahl<br />
der e<strong>in</strong>zulesenden Argumente. Programmseitig kann man <strong>die</strong>se Eigenschaft wie folgt nutzen:<br />
if (scanf("%d", &i) == 1) { /* Es sollte 1 Argument e<strong>in</strong>gelesen werden */<br />
pr<strong>in</strong>tf("1 korrekter E<strong>in</strong>lesevorgang. Wert: %d\n", i);<br />
} else {<br />
pr<strong>in</strong>tf("Fehler beim E<strong>in</strong>lesen");<br />
}<br />
Aufgabe 9.1:<br />
if-Anweisungen können beliebig verschachtelt se<strong>in</strong>. Schreiben Sie e<strong>in</strong> Programm, <strong>in</strong> welchem Sie<br />
e<strong>in</strong>e ganze Zahl e<strong>in</strong>lesen <strong>und</strong> ausgeben, ob <strong>die</strong> e<strong>in</strong>gegebene Zahl grösser, gleich oder kle<strong>in</strong>er Null<br />
war.<br />
Gedruckt am 11.09.2008 13:04:00 Letzte Änderung am: 11. September 2008 Version 2.4, I. Oesch 33/147