====== Übungen ====== ==== Bsp 1 - Hello World ==== Schreibe ein Programm, das den Text "Hello World am Bildschirm ausgibt. ==== Bsp 2 - Summe ==== Zwei Zahlen sollen addiert werden. Das Summe wird ausgegeben. ==== Bsp 3 - Temperatur ==== Mit diesem Programm wird festgestellt, welche Umstände bei entsprechenden Temperaturen und Niederschlag zu beachten sind. Die Temperatur soll eingegeben werden. Weiters wird eingegeben, ob es Niederschlag gibt (0 für kein Niederschlag, 1 für Niederschlag). Das Programm gibt je nach Eingaben folgende Werte zurück: * Minusgrade, kein Niederschlag: Glatteisgefahr * Minusgrade, Niederschlag: Schneefahrbahn * Plusgrade, kein Niederschlag: Freie Fahrt * Plusgrade, Niederschlag: Aquaplaninggefahr. ==== Bsp 4 - Bestellung ==== Zwei Produkte werden bestellt (Eingabe der Anzahl). Der Gesamtpreis wird ausgegeben. ==== Bsp 5 - Division ==== Nach Eingabe von Dividend und Divisor wird das Ergebnis und der Rest der Division ausgegeben. ==== Bsp 6 - Fahrenheit ==== Ein Fahrenheit-Wert wird eingegeben und in Grad Celsius umgerechnet. Weiters wird ausgegeben, ob Glatteisgefahr besteht oder nicht. ==== Bsp 7 - Kreisumfang und -flächeninhalt ==== Nach Eingabe von Radius wird der Umfang und Flächeninhalt eines Kreises ausgegeben. ==== Bsp 8 - Sortiertest ==== Drei Zahlen werden eingegeben. Das Programm überprüft, ob die drei eingegebenen Zahlen sortiert sind. Wenn dies zutrifft, wird die größte Zahl ausgegeben. ==== Bsp 9 - Dreieck ==== Die drei Seitenlängen a, b und c eines Dreiecks eingegeben. Es wird ausgegeben, ob es sich um ein Dreieck handelt. Weiters wird ermittelt, ob ein gleichschenkeliges, gleichseitiges, rechtwinkeliges oder allgemeines Dreieck vorliegt. ==== Bsp 10 - Body Mass Index==== Im Programm wird eingegeben, ob man eine Frau oder ein Mann ist (z.B. 1 oder 2). Weiters gibt man die Körpergröße in cm sowie das Gewicht in kg an. Mittels folgender Formel wird der Body Mass Index berechnet und ausgegeben: `bmi=(kg)/m^2` Weiters soll nach folgender Tabelle ermittelt werden, ob Unter-, Normal- oder Übergewicht vorliegt. | |Frauen|Männer| |Untergewicht|<19.1|<20.7| |Normalgewicht|19.1-25.8|20.7-26.4| |Übergewicht|>25.8|>26.4| ==== Bsp 11 - Geschwindigkeit ==== Je nach Höhe der Geschwindigkeit gibt es entweder keine Strafe oder gestaffelte Strafzahlungen. ==== Bsp 12 - Wochentag ==== Das Programm wandelt die Zahlen 0 bis 6 in den entsprechenden Wochentag um. ==== Bsp 13 - Noten ==== Das Programm gibt die eingegebene Schulnote verbal aus. ==== Bsp 14 - Textbasierter Rechner ==== Der Benutzer kann zwei Zahlen eingeben. Anschließend gibt er mittels Eingabe von 1 (addieren), 2 (subtrahieren), 3 (multiplizieren) oder 4 (dividieren) an, welche Grundrechnungsart er wählen möchte. Das Ergebnis wird anschließend ausgegeben. Wird eine andere Zahl eingegeben, bricht das Programm ab. ==== Bsp 15 - Uhrzeit ==== Das Programm wandelt die digitale Uhrzeit (z.B. 12:45) in die gesprochene Uhrzeit (Dreiviertel eins) um! ==== Bsp 16 - Gaußsche Wochentagsformel ==== Das Programm berechnet nach eingegebenem Datum den entsprechenden Wochentag. Formel siehe: [[http://de.wikipedia.org/wiki/Gau%C3%9Fsche_Wochentagsformel|Gaußsche Wochentagsformel]] ==== Bsp 17 - Euroscheinüberprüfung ==== === Schleifen und char nötig!!! === Jeder Euroschein hat eine Nummer, zum Beispiel N27175276569. Der erste Buchstabe (hier N) ist ein Ländercode für das Herstellungsland, z.B. N für Österreich. Darauf folgt eine zehnstellige, fortlaufende Seriennummer (hier: 2717527656). Dann folgt am Ende eine einstellige Prüfziffer, im Beispiel ist dies die 9. Um zu prüfen, ob die Seriennummer bzw. der Schein echt ist, ist folgendes Verfahren anzuwenden: - Buchstaben durch die Position des Buchstaben im Alphabet ersetzen: A=1, B=2, ..., Y=25, Z=26. - Die Summe aus der Buchstabenzahl, den zehn Ziffern der Seriennummer und der Prüfziffer bilden. - Von dieser Summe die Ziffernsumme (und wieder die Ziffernsumme ...) bilden, bis die Zahl einstellig wird. Beispiel: 14+2+7+1+7+5+2+7+6+5+6+9=71 7+1=8 Das Ergebnis muss 8 sein, damit die Seriennummer echt ist! Welcher Buchstabe für welches Land steht, findest du z.B. auf der Seite der Europäischen Zentralbank: [[http://www.ecb.int/euro/banknotes/html/index.de.html]] /* ++++ Lösung | // Programm Euroscheinüberprüfung // Erstellt von Matthias Haslauer, 23. 1. 2013 // Dieses Programm überprüft, ob die Seriennummer, eines Euroscheines echt ist. #include #include #include using namespace std; int main() { char ein; int sum, erg=0; cout << "Dieses Programm überprüft, ob die Seriennummer, eines Euroscheines echt ist.\n"; cout << "Bitte gib die Seriennummer eines Euroscheines ein: "; //Einlesen des Ländercodes do { ein=getch(); } while(ein>=91 || ein <=64); //Überprüfen, ob putch(ein); //schreibt Inhalt von "ein" am Bildschirm sum=(int)ein-64; //wandelt Buchstaben in Ascii-Code um und subtrahiert 64 //Einlesen der Seriennummer for(int i=1; i<=11;i++) { do { ein=getch(); } while(ein>=58 || ein <=47); putch(ein); sum=sum+(int)ein-48; //Addieren der Summe } do{ erg=0; do //Ziffernsumme bilden { erg=erg+sum%10; sum=sum/10; }while(sum!=0); sum=erg; }while(sum/10>0); //Solange Ziffernsumme bilden, solange sum zwei- oder mehrstellig! if(erg==8) cout << "\nDer Schein ist echt!"; else cout << "\nDer Schein ist leider unecht!"; getch(); return 0; } ++++ */ ==== Bsp 18 - Umwandlung Dualzahl in Dezimalzahl ==== Schreibe ein Programm, welches eine Dualzahl in eine Dezimalzahl umwandelt. \\ Bei der Eingabe dürfen nur die Ziffern 0 und 1 oder e eingegeben werden. Sobald e eingegeben wird, ist die Zahl zu Ende.\\ Die entsprechende Dezimalzahl wird ausgegeben. ==== Bsp 19 - Umwandlung Hexadezimalzahl in Dezimalzahl ==== Schreibe ein Programm, welches eine Hexadezimalzahl in eine Dezimalzahl umwandelt. \\ Bei der Eingabe dürfen nur die Ziffern 0 bis 9 bzw. A bis F oder e eingegeben werden. Sobald e eingegeben wird, ist die Zahl zu Ende. Die entsprechende Dezimalzahl wird ausgegeben. ==== Bsp 20 - "Tempo, kleine Fische" ==== Simuliere das Spiel "Tempo, kleine Fische", indem du den Spielverlauf in geeigneter Form in ein Programm umsetzt.\\ {{:inf:inf5bi_201213:allgemeine_grundlagen_zur_programmierung:tempo_kleine_fische.jpg?linkonly|Spielanleitung}} a) Via Zufallswürfel soll der Verlauf einer Spielrunde simuliert werden.\\ b) Alternativ dazu soll der Benutzer bestimmen können, wie oft das Spiel durchgeführt wird (z.B. 100 mal). Danach gibt das Programm aus, wie oft die verschiedenen Möglichkeiten des Spielendes (Alle Fische erreichen das Meer, etc.) aufgetreten sind. ==== Bsp 21 - Malreihen ==== Schreibe ein Programm, dass alle 1*1-Reihen (1-10) auf einmal ausgegeben werden. //Hinweise: Schleifen können auch ineinander geschachtelt werden! // Ausgabebeispiel: Das folgende Programm gibt alle Einmaleins-Reihen aus: 1er-Reihe: 1*1=1 2*1=2 ... 2er-Reihe: 1*2=2 2*2=4 ... ==== Bsp 22 - Quadratzahlen ==== Schreibe ein Programm, das eine Quadratzahltabelle von 1 bis zu einem eingegebenen Wert //n// ausgibt. (Quadratzahl.cpp) ==== Bsp 23 - Fibonacci ==== Schreibe ein Programm, das die ersten //n// Fibonacci-Zahlen erzeugt und ausgibt! Eine Fibonacci-Zahl berechnet sich aus der Summe der beiden vorhergehenden Zahlen. Die ersten beiden Fibonacci-Zahlen sind gleich 1! (Fibonacci.cpp) z.B.: 1, 1, 2, 3, 5, 8, 13, 21,... ==== Bsp 24 - Dezimal-Dual ==== Schreibe ein Programm, das die eingegebene Dezimalzahl in eine Dualzahl umwandelt.\\ Auf welches Problem stößt du dabei? (DeziDual.cpp) ==== Bsp 25 - Teiler ==== a) Schreibe ein Programm, das die Teiler einer eingegebenen natürlichen Zahl n auflistet. (Teilerliste.cpp)\\ b) Schreibe ein Programm, das die Anzahl der Teiler eingegebenen natürlichen Zahl n ausgibt. (Teileranzahl.cpp) ==== Bsp 26 - Staffelrechnung/Rechenturm ==== Erstelle ein Programm, das eine Staffelrechnung / einen Rechenturm durchführt. Der Benutzer gibt ein, mit welcher Zahl er die Staffelrechnung beginnen will und bis zu welcher Multiplikation die Rechnungen durchgeführt werden: Z.B.\\ Anfangszahl: 385\\ Multiplikationen bis: 6\\ Ausgabe:\\ 385*2=770 770*3=2310 2310*4=9240 9240*5=46200 46200*6=277200 277200/2=138600 138600/3=46200 46200/4=11550 11550/5=2310 2310/6=385 ==== Bsp 27 - verschachtelte Schleifen ==== === Rechteck === Schreibe ein Programm, das mit Sternchen ein Rechteck ausgibt! Das Programm soll Breite, Höhe und einen Versatz einlesen. Der Versatz bestimmt, um viele Zeichenbreiten das gesamte Rechteck nach rechts verschoben wird. Ein Rechteck Breite? 17 Hoehe? 4 Versatz? 2 ***************** ***************** ***************** ***************** === Parallelogramm === Schreibe ein Programm, das mit Sternchen ein Parallelogramm ausgibt! Das Programm soll die Breite, Höhe und die Versatzänderung (die Verschiebung nach rechts pro Zeile) einlesen. Ein Parallelogramm Breite? 11 Hoehe? 5 Versatzaenderung? 1 *********** *********** *********** *********** *********** === Dreieck === Schreibe ein Programm, das mit Sternchen ein Dreieck ausgibt! Das Programm soll die Höhe und die Verbreiterung pro Zeile einlesen. Ein Dreieck Hoehe? 6 Verbreiterung? 1 * ** *** **** ***** ****** ==== Bsp 28 - Regelmäßige Zahlungen ==== Schreibe ein Programm, das den Betrag eines regelmäßigen jährlichen Einzahlungsbetrages, die Verzinsung und den gewünschten Endbetrag einliest und ausgibt, nach wie vielen Jahren der gewünschte Endbetrag erreicht (oder erstmals überschritten) ist.\\ \\ Am Anfang des ersten Jahres wird zunächst ein Einzahlungsbetrages, z.B. 1000 Euro, eingezahlt. Am Ende des ersten Jahres (nach einem Jahr) kommt der Zins, bei 5 % z.B. 50 Euro, und ein weiterer Einzahlungsbetrag, wieder 1000 Euro, hinzu. Nach einem Jahr ist der Kontostand dann also beispielsweise 1000 + 50 + 1000 Euro = 2050 Euro. Sollten also beispielsweise 2000 Euro angespart werden, so wäre dies unter diesen Umständen nach einem Jahr erreicht.\\ \\ Man kann also in einer Schleife die Jahre mitzählen und den Kontostand fortschreiben. Dann kann man jedesmal prüfen, ob der gewünschte Endbetrag schon erreicht oder überschritten wurde und gegebenenfalls die Zahl der abgelaufenen Jahre und den Kontostand ausgeben. In der Endfassung darf das Programm aber nichts anderes ausgeben als das Endergebnis (keine Zwischenstände).\\ \\ Das Programm muß auch dann eine richtige (sinnvolle) Antwort geben, wenn der gewünschte Endbetrag kleiner oder gleich dem Einzahlungsbetrag ist.\\ \\ Die Lösung der Übungsaufgabe sollte mindestens mit den beiden folgenden Testsituationen geprüft werden und muß dann identische Ergebisse liefern. Beispiel 1 jaehrlicher Zahlbetrag? 1000 Verzinsung, in Prozent? 5 gewuenschter Endbetrag? 2000 Es wird 1 Jahr benoetigt. Der erreichte Endbetrag ist dann 2050. Beispiel 2 jaehrlicher Zahlbetrag? 100 Verzinsung, in Prozent? 5 gewuenschter Endbetrag? 10000 Es werden 36 Jahre benoetigt. Der erreichte Endbetrag ist dann 10162.8. ==== Bsp 29 - Statistische Kenndaten ==== Schreibe Sie ein Programm, das in einer Schleife solange natürliche Zahlen einliest, bis -1 eingegeben wird und dann Maximum, Minimum und das arithmetische Mittel der Zahlen ausgibt. Da die Zahl -1 nur als Stoppwert verwendet wird, soll sie bei der Statistik nicht berücksichtigt werden. Hinweis: Wenn die Variablen summe und n beide vom Typ integer sind, dann wird bei einer Division das Ergebnis (arithmetisches Mittel ''am'') auch ganzzahlig berechnet. Um dies zu verhindern konvertiert man den Zähler mittels ''(float)''. am=summe/(float)n; ==== Bsp 30 - Harshad-Zahlen ==== Eine natürliche Zahl, die durch ihre eigene Ziffernsumme teilbar ist, heißt Harshad- oder Niven-Zahl. \\ Zum Beispiel:\\ 777 ist durch 7 + 7 + 7 = 21 teilbar und damit eine Harshad-Zahl.\\ \\ Schreibe ein Programm, das alle Zahlen bis n testet, ob sie Harshad-Zahlen sind. Das Programm soll alle Harshad-Zahlen ausgeben. ==== Bsp 31 - Werfen von 2 Würfeln ==== Stochastische Feststellung: Kommt die 7 wirklich am häufigsten vor?\\ \\ Wenn man mit 2 Würfeln würfelt, so tritt die 7 am häufigsten auf. Wie oft tritt welche Zahl auf, wenn man n mal würfelt? \\ Werfen von 2 Würfeln... Gib an, wie oft gewürfelt werden soll: 100 Gib an, welche Summe gezählt werden soll: 6 Insgesamt kam die Augensumme 6 genau 12 mal vor. ==== Bsp 32 - Prüfen der Sozialversicherungsnummer ==== Schreibe ein Programm, welche die Gültigkeit einer Sozialversicherungsnummer prüft.\\ Der Benutzer gibt die Sozialversicherungsnummer ein, das Programm gibt aus, ob es sich um eine gültige Sozialversicherungsnummer handelt.\\ \\ Informationen zur Sozialversicherungsnummer:\\ [[http://www.pruefziffernberechnung.de/V/VSNR-AT.shtml]]