5.2.20
03/29/20

Diff for AlgoDat_U11 between 14 and 15

+ Algorithmen und Datenstrukturen 
++ Übung zum Kapitel "Kontrollstrukturen" 
** W. Tasin, M.Sc. **

 _
 
+++ Theoretische Fragen

* Folgendes Codefragment liest Zeichen von der Tastatur ein und gibt diese (sobald //**<Enter>**// gedrückt wurde) wieder aus. _
Dies wird so lange wiederholt bis die Eingabe mit //**Ctrl-D** (Linux/Mac)// bzw. //**Ctrl-Z** (Windows)// beendet wird. _
Alle eingegebenen Grossbuchstaben (ohne Umlaute) sollen vor der Ausgabe in Kleinbuchstaben umgewandelt werden. _
Ergänzen Sie das folgende Codefragment entsprechend.

<code type="c">int ch;
while ((ch=getchar())!=-1)
{
 
 
 
   putchar(ch);
}
</code>

* Folgendes Codefragment ermittelt die Länge eines Strings. Für welchen konstanten String arbeitet dieser Code **nicht** richtig? _
Wie kann dieses Problem gelöst werden?
<code type="c">const char *meldung="Dies ist ein Test!";
unsigned laenge=0;
do
{
  laenge++;
}
while (*(meldung+laenge)!='\0'); /* Vergleiche das Zeichen mit dem NUL-Character */
 
printf("String: \"%s\" hat die Laenge: %u\n", meldung, laenge);
</code>
 
 
 
>> ##red| Für Ingenieurinformatik **nicht** prüfungsrelevant##

* Folgende Codefragmente sollen - falls sinnvoll und möglich - mithilfe des bedingte Auswerteoperators realisiert werden.

<code type="c">if ((wert % divisor) != 0)
  puts("Division geht nicht auf.");
else
  puts("Division geht auf.");
</code>
 
<code type="c">if (divisor == 0)
  puts("Division darf nicht ausgefuehrt werden!");
else
  printf("Ergebnis ist: %d\n", wert/divisor);

<code type="c">if (zeichen != ' ')
  putchar(zeichen);
</code>
 
<code type="c">if (zahl>=0)
  zahl%=10;
else
  zahl=-zahl % 10;
</code>
 
<code type="c">binaerWert=-1;
if (asciiWert >= '0' && asciiWert<='9')
  binaerWert=asciiWert-'0';
</code>


* Folgendes Codefragment ermittelt die Länge eines Strings. Für welchen konstanten String arbeitet dieser Code **nicht** richtig? _
Wie kann dieses Problem gelöst werden?
<code type="c">const char *meldung="Dies ist ein Test!";
unsigned laenge=0;
do
{
  laenge++;
}
while (*(meldung+laenge)!='\0'); /* Vergleiche das Zeichen mit dem NUL-Character */
 
printf("String: \"%s\" hat die Laenge: %u\n", meldung, laenge);
</code>
 
 

----
++ Links
((AlgoDat_Uebungen|Uebungen Algorithmen und Datenstrukturen))
((AlgoDat_Unterlagen|Unterlagen Algorithmen und Datenstrukturen))
((AlgoDat_Praktikum|Praktikum Algorithmen und Datenstrukturen))
((Wiki/Home|Zur Hauptseite))