• Keine Ergebnisse gefunden

Programmieren f¨ur Physiker

N/A
N/A
Protected

Academic year: 2022

Aktie "Programmieren f¨ur Physiker"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Programmieren f¨ ur Physiker

Institut f¨ur Theoretische Physik

Interfakultatives Institut f¨ur Anwendungen der Informatik

Dr. S. Gieseke, Dr. A. Mildenberger SS 2010 – Blatt 04

http://comp.physik.uni-karlsruhe.de Bearbeitungszeitraum: bis 12. Mai 2010

Aufgabe 10: Zahlenraten Pflichtaufgabe

In einem kleinen Spiel soll eine im Rechner erzeugte, geheime Zufallszahl zwischen 1 und 20 erraten werden. In jeder Spielrunde gibt hierbei der Spieler einen Tipp ab. Falls die Zahl noch nicht erraten wurde, teilt das Programm mit, ob der Tipp zu groß oder zu klein war. Falls die richtige Zahl getippt wurde, soll das Programm eine Gratulation und die Anzahl der ben¨otigten Versuche ausgeben und das Spiel zu Ende sein.

Hinweis: Eine Zufallszahlzim Bereich [1,20] erhalten Sie, indem Sie im Kopf des Programmes

#include <cstdlib> einf¨ugen und dann die Zeilen srand((unsigned int)time(0)) ; und int z = rand()%20 + 1 ;verwenden. Die erste Zeile versetzt den Zufallszahlengeneratorrand in einen

”zuf¨alligen“ Ausgangszustand.

Zusatzfragen (freiwillig): (a) Welche Strategie f¨uhrt i.A. am Schnellsten zum Ziel? (b) K¨onnen Sie Ihr Programm so erweitern, dass zus¨atzlich mitgeteilt wird, falls

”unsinnige Tipps“ eingegeben werden? Gemeint sind damit Tipps, die bereits durch vorherige Ausk¨unfte ausgeschlossen werden k¨onnen.

Aufgabe 11: Ergebnistabelle Pflichtaufgabe

Die Datei/home/ck10/daten/a11-progwett.d (alternativ auch von der Webseite erh¨altlich) ent- h¨alt die Ergebnisse eines Programmierwettbewerbs. Kopieren Sie die Datei zun¨achst in das Verzeichnis, in dem Sie diese Aufgabe bearbeiten.

Die Datei hat folgenden Inhalt: In 7 Zeilen stehen jeweils zun¨achst eine Teilnehmernummer und dann nacheinander die Punktzahl des Teilnehmers in 10 verschiedenen Aufgaben. Alle Eintr¨age sind ganzzahlig.

Entwickeln Sie ein Programm, das die Datei in ein zweidimensionales Feld einliest. Ermitteln Sie dann die Gesamtpunktzahl f¨ur jeden Teilnehmer und den besten Teilnehmer. Geben Sie nun die Ergebnisse in Form einer Tabelle aus, dabei soll pro Teilnehmer in einer Zeile die Teilneh- mernummer, die Einzelpunktzahlen und die Gesamtpunktzahl stehen. Ferner soll die Zeile des besten Teilnehmers am Ende den Eintrag

”Champion“ erhalten.

Wie verh¨alt sich Ihr Programm, wenn die beste Punktzahl von mehr als einem Teilnehmer er- zielt wurde? Ver¨andern Sie hierzu die Ergebnistabelle derart, dass zweimal die beste Punktzahl auftritt. Falls Ihr Programm nun nicht zweimal die

”Champion“-Meldung ausgibt, modifizieren Sie Ihr Programm bitte entsprechend.

(2)

Aufgabe 12: M¨unzr¨uckgabe freiwillig In einem Land existieren M¨unzen mit den Werten: 1, 3, 8, 20, 50, 100 und 250 Cent. Die Aufgabe eines M¨unzautomaten ist es, einen einzugebenden Betrag mit relativ wenig M¨unzen auszube- zahlen.

Programmieren Sie diesen Automaten. Im Programm soll zu Beginn die Anzahl der M¨unzwerte und ein Feld mit den M¨unzwerten explizit definiert werden. Nach der Eingabe eines Betrags durch den Benutzer soll ausgerechnet und ausgegeben werden, welche M¨unze wie h¨aufig aus- zuzahlen ist. ¨Uberlegen Sie sich ein Verfahren, mit dem Sie nach M¨oglichkeit die Anzahl der M¨unzen gering halten.

Es bietet sich an, die M¨unzwerte in einem Feld zu speichern.

Referenzen

ÄHNLICHE DOKUMENTE

F¨ ur sehr kleine ǫ wird eine Unterscheidung nicht mehr funktionieren, da rationale Zahlen im Rechner nicht beliebig genau dargestellt sind.. Gehen Sie in Ihrem Programm

Die Spieler sind abwechselnd am Zug und haben dabei jeweils folgende zwei M¨oglichkeiten: Entweder von genau einem Haufen ihrer Wahl eine beliebige Zahl (≥ 1) an H¨olzchen zu

Dabei sind jedoch folgende Regeln zu beachten: Es darf immer nur eine Scheibe zu einem Zeitpunkt bewegt werden und es darf nie eine gr¨oßere auf eine kleinere Scheibe gelegt

Geben Sie nun die Ergebnisse in Form einer Tabelle aus, dabei soll pro Teilnehmer in einer Zeile die Teilneh- mernummer, die Einzelpunktzahlen und die Gesamtpunktzahl stehen..

Die Spieler sind abwechselnd am Zug und haben dabei jeweils folgende zwei M¨oglichkeiten: Entweder von genau einem Haufen ihrer Wahl eine beliebige Zahl (≥ 1) an H¨olzchen zu

Aufgabe 21: Quersumme freiwillig Schreiben Sie eine rekursive Funktion, die die Quersumme, also die Summe der Ziffern, einer positiven Zahl berechnet.. Verwenden Sie diese Funktion,

Aufgabe 26: Acht-Damen-Problem Pflichtaufgabe Auf einem Schachbrett sollen acht Damen so platziert werden, dass keine Dame eine andere Dame schlagen kann.. Im Schachspiel bewegen

(a) Beginnen Sie die Berechnung mit nur einem Intervall (N = 1) und verdoppeln Sie die Intervall-Anzahl so oft, bis die relative ¨ Anderung zweier aufeinanderfolgender Berechnungen