Add exercises 4.
This commit is contained in:
parent
474138d53f
commit
7fd88c5594
30
04/asciiTabelle.c
Normal file
30
04/asciiTabelle.c
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
/********************************************************************************************
|
||||||
|
* Ascii-Tabelle
|
||||||
|
*
|
||||||
|
* Schreiben Sie ein Programm, das zwei Zeichen abfragt und dann alle Zeichen der Ascii-
|
||||||
|
* Tabelle ausgibt, die zwischen diesen zwei Zeichen liegen. Falls das Ende der Ascii-Tabelle
|
||||||
|
* erreicht wird, soll die Ausgabe wieder am Anfang beginnen! Geben Sie nur sichtbare Zeichen
|
||||||
|
* aus, keine Kontrollzeichen (Hinweis: Sie können die Funktion iscntrl() aus ctype.h dafür
|
||||||
|
* verwenden).
|
||||||
|
*
|
||||||
|
* 1. Beispiel:
|
||||||
|
* >> Geben Sie ein einzelnes Zeichen ein: C
|
||||||
|
* >> Geben Sie noch ein einzelnes Zeichen ein: c
|
||||||
|
* Die folgenden Zeichen befinden sich in der Ascii-Tabelle zwischen 'c' und 'C':
|
||||||
|
* DEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ab
|
||||||
|
*
|
||||||
|
* 2. Beispiel:
|
||||||
|
* >> Geben Sie ein einzelnes Zeichen ein: c
|
||||||
|
* >> Geben Sie noch ein einzelnes Zeichen ein: C
|
||||||
|
* Die folgenden Zeichen befinden sich in der Ascii-Tabelle zwischen 'c' und 'C':
|
||||||
|
* defghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@AB
|
||||||
|
*********************************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
36
04/binaerUmrechnungSchleife.c
Normal file
36
04/binaerUmrechnungSchleife.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/***********************************************************************************
|
||||||
|
* Aufgabe *
|
||||||
|
* Schreiben Sie ein Programm, das eine ganze Zahl einliest und die Rechenschritte *
|
||||||
|
* anzeigt, um die Bits der entsprechenden Binaerzahl zu ermitteln. Nutzen Sie *
|
||||||
|
* eine geeignete Schleife, sodass das Programm alle Stellen der Binärzahl anzeigt.*
|
||||||
|
* Lesen Sie zudem solange ein, bis eine positive Zahl eingegeben wird. *
|
||||||
|
* *
|
||||||
|
* Beispiel: *
|
||||||
|
* >> Geben Sie eine ganze, positive Zahl ein: abc *
|
||||||
|
* >> Geben Sie eine ganze, positive Zahl ein: -5 *
|
||||||
|
* >> Geben Sie eine ganze, positive Zahl ein: 21 *
|
||||||
|
* 21 / 2 = 10, Rest: 1 *
|
||||||
|
* 10 / 2 = 5, Rest: 0 *
|
||||||
|
* 5 / 2 = 2, Rest: 1 *
|
||||||
|
* 2 / 2 = 1, Rest: 0 *
|
||||||
|
* *
|
||||||
|
* Schreiben Sie danach das Programm so um, dass es Bit- und Shiftoperatoren *
|
||||||
|
* verwendet sowie negative Zahlen verarbeiten kann. Die Rechenschritte werden *
|
||||||
|
* nicht mehr anzeigt, sondern nur noch das Bitmuster aller gespeicherten Bits. *
|
||||||
|
* *
|
||||||
|
* Beispiele: *
|
||||||
|
* >> Geben Sie eine ganze Zahl ein: abc *
|
||||||
|
* >> Geben Sie eine ganze Zahl ein: 21 *
|
||||||
|
* 00000000000000000000000000010101 *
|
||||||
|
* *
|
||||||
|
* >> Geben Sie eine ganze Zahl ein: -9 *
|
||||||
|
* 11111111111111111111111111110111 *
|
||||||
|
***********************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
27
04/eingabePruefung.c
Normal file
27
04/eingabePruefung.c
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
/********************************************************************************************
|
||||||
|
* Eingabeprüfung
|
||||||
|
*
|
||||||
|
* Schreiben Sie ein Programm, das einen Preis in Euro als Kommazahl vom Benutzer abfragt
|
||||||
|
* und diesen dann mittels explizitem casting in Euros und Cents zerlegt und ausgibt.
|
||||||
|
* Falls eine ungültige Eingabe gemacht wird (z.B. eine negative Zahl oder Buchstaben),
|
||||||
|
* geben Sie eine entsprechende Meldung aus und wiederholen sie die Eingabeabfrage solange,
|
||||||
|
* bis eine gültige Eingabe erfolgt ist.
|
||||||
|
*
|
||||||
|
* 1. Beispiel:
|
||||||
|
* >> Geben Sie einen Preis in Euro ein: 12.53
|
||||||
|
* Der Preis ist 12 Euro und 53 Cents.
|
||||||
|
*
|
||||||
|
* 2. Beispiel:
|
||||||
|
* >> Geben Sie einen Preis in Euro ein: abc
|
||||||
|
* Eingabe ungueltig. Geben Sie eine positive Zahl ein!
|
||||||
|
* >> Geben Sie einen Preis in Euro ein: 32.12
|
||||||
|
* Der Preis ist 32 Euro und 12 Cents.
|
||||||
|
*********************************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
29
04/heron.c
Normal file
29
04/heron.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/****************************************************************************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das eine Gleitkommazahl vom Benutzer einliest und dessen Quadratwurzel approximiert, ohne math.h zu verwenden. *
|
||||||
|
* Lesen Sie dafür zunächst solange Eingaben ein, bis eine Zahl eingegeben wird, die mindestens 0 ist. Andere Eingaben werden verworfen. *
|
||||||
|
* Implementieren Sie danach den Algorithmus nach Heron. Dafür gehen wir davon aus, dass die eingegebene Zahl der Flächeninhalt eines Quadrats ist, *
|
||||||
|
* die Seitenlänge aber unbekannt ist. Wir versuchen nun ein Rechteck mit dem angegebenen Flächeninhalt zu konstruieren und stückweise beide *
|
||||||
|
* Seitenlängen aneinander anzugleichen, bis ein Quadrat mit dem gewünschten Flächeninhalt entsteht. *
|
||||||
|
* Wir initialisieren die beiden unbekannten Seitenlängen mit dem halben Flächeninhalt und dem Flächeninhalt geteilt durch die erste Seitenlänge. *
|
||||||
|
* Wie erwartet erhalten wir kein Quadrat, sondern ein allgemeines Rechteck. Wir nähern nun die beiden Seitenlängen aneinander an, müssen aber *
|
||||||
|
* dafür sorgen, dass der Flächeninhalt immer gleich bleibt. Dazu halbieren wir für die erste Seitenlänge die Summe beider Seitenlängen. Für *
|
||||||
|
* die zweite Seitenlänge teilen wir wieder den Flächeninhalt durch die erste Seitenlänge, um *
|
||||||
|
* Seitenlänge 1 * Seitenlänge 2 = Flächeninhalt = eingegebener Zahl *
|
||||||
|
* zu erhalten. Dies wiederholen wir, bis (Seitenlänge 1 - Seitenlänge 2)² <= 10^-9 ist. So konstruieren wir schrittweise ein Quadrat mit dem *
|
||||||
|
* eingegebenen Flächeninhalt und approximieren gleichzeitig die Quadratwurzel der eingegebenen Zahl. Am Ende geben wir das Ergebnis aus. *
|
||||||
|
* *
|
||||||
|
* Beispiel: *
|
||||||
|
* >> Geben Sie eine Zahl ein: abc *
|
||||||
|
* >> Geben Sie eine Zahl ein: -5 *
|
||||||
|
* >> Geben Sie eine Zahl ein: 5.5 *
|
||||||
|
* 2.345208 * 2.345208 = 5.500000 *
|
||||||
|
* *
|
||||||
|
****************************************************************************************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user