-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAufgabenblatt7.tex
105 lines (87 loc) · 3.37 KB
/
Aufgabenblatt7.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
\documentclass[paper=a4, fontsize=11pt, twoside]{scrartcl}
\usepackage{geometry} \geometry{a4paper, bottom=33mm}
\usepackage[utf8]{inputenc}
\usepackage[german]{babel}
\usepackage[osf,sc]{mathpazo}
\usepackage{courier}
\renewcommand{\sfdefault}{uop} % ---> URW Classico Optima Clone
\renewcommand{\rmdefault}{pplj} % ---> Mathpazo Palatino
\linespread{1.05}
\usepackage{amsmath,amsfonts,amsthm} % Math packages
\usepackage{booktabs}
\usepackage{url}
\usepackage{siunitx}
\sisetup{locale = DE}
\usepackage{titlesec}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{changepage}
\usepackage{caption}
\usepackage{enumitem}
\usepackage{minted}
\usepackage{fancyhdr}
\usepackage{multicol}
\usepackage{xspace}
\expandafter\def\expandafter\grqq\expandafter{\grqq\xspace}
% break \texttt{}
\newcommand*\justify{%
\fontdimen2\font=0.4em% interword space
\fontdimen3\font=0.2em% interword stretch
\fontdimen4\font=0.1em% interword shrink
\fontdimen7\font=0.1em% extra space
\hyphenchar\font=`\-% allowing hyphenation
}
\pagestyle{fancy} %eigener Seitenstil
\fancyhf{} %alle Kopf- und Fußzeilenfelder bereinigen
\fancyhead[OL]{Programmieren in C++ (Tutorium)} %Kopfzeile links
\fancyhead[OC]{} %zentrierte Kopfzeile
\fancyhead[OR]{Simon Fromme, Florian Rinke, Lars Franke} %Kopfzeile rechts
\renewcommand{\headrulewidth}{0.4pt} %obere Trennlinie
\fancyfoot[C]{\thepage} %Seitennummer
% DRAFT mode
% \usepackage{draftwatermark}
\setlength\parindent{0pt}
\title{Programmieraufgaben 7}
\author{Simon Fromme}
\date{\normalsize\today}
\begin{document}
\vspace*{0.75\baselineskip}
\begin{center}
\Large 7. Aufgabenblatt \\\vspace{0.5em} \large Programmieren in C++ (Tutorium)
\end{center}
\section*{Wiederholung: Schleifen}
\begin{enumerate}
\item Schreiben Sie ein Programm, das für einen Geldbetrag in Cent eine Kombination von Münzen ausrechnet, mit der dieser ausgegeben werden kann, wenn 1,2,5,10,20,100 und 137 Cent Münzen zur Verfügung stehen. Halten Sie dabei die Anzahl der Münzen so klein wie möglich.
\end{enumerate}
\section*{Wiederholung: Funktionen}
\begin{enumerate}[resume]
\item Die Folge der Fibonacci-Zahlen $(f_{n})_{n\in\mathbb{N}_0}$ ist definiert durch
\[
f_0=0 \qquad f_1=1 \qquad f_n=f_{n-1} + f_{n-2} \text{ für alle } n\geq 2
\]
Schreiben Sie eine C++-Funktion, die für ein gegebenes $n$ die $f_n$ rekursiv, d.h. durch Aufruf der Funktion in der Funktion, berechnet.
\item Definieren Sie in einem Programm ein \mintinline{c++}{rechteck} als \mintinline{c++}{struct} mit einer Länge und einer Breite.
Schreiben Sie außerdem eine Funktion, die ein \mintinline{c++}{rechteck} als Argument nimmt und die Fläche des Rechtecks zurück gibt.
Definieren sie danach ein \mintinline{c++}{struct kreis} und überladen Sie die \mintinline{c++}{float flaeche(rechteck)} Funktion mit einer \mintinline{c++}{float flaeche(kreis)} Funktion, die die Kreisfläche berechnet.
\end{enumerate}
\section*{Wiederholung: Pointer}
\begin{enumerate}[resume]
\item Überlegen Sie sich zum folgenden Code, was die Ausgabe sein wird, ohne ihn direkt auszuführen.
\begin{minted}{c++}
#include <iostream>
using namespace std;
int main()
{
char str[] = "Programmieren ist doof!";
char *p = str;
while (*++p != 'd');
--*p;
*++++++p = (*(str+7));
--*p;
cout << str << endl;
return 0;
}
\end{minted}
\end{enumerate}
\end{document}
% neue Konzepte seit dem letzten Aufgabenblatt: