forked from paulusja/info1_uebungen
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9f63d5fa2b | ||
|
|
b67837d4d2 | ||
|
|
c0f9b4241a | ||
| f2502d0dae | |||
|
|
eee4a20cf4 |
@ -1,57 +0,0 @@
|
|||||||
---
|
|
||||||
Language: Cpp
|
|
||||||
BasedOnStyle: LLVM
|
|
||||||
AccessModifierOffset: -4
|
|
||||||
AlignConsecutiveAssignments: false
|
|
||||||
AlignConsecutiveDeclarations: false
|
|
||||||
AlignOperands: true
|
|
||||||
AlignTrailingComments: false
|
|
||||||
AlwaysBreakTemplateDeclarations: Yes
|
|
||||||
BraceWrapping:
|
|
||||||
AfterCaseLabel: false
|
|
||||||
AfterClass: false
|
|
||||||
AfterControlStatement: false
|
|
||||||
AfterEnum: false
|
|
||||||
AfterFunction: false
|
|
||||||
AfterNamespace: false
|
|
||||||
AfterStruct: false
|
|
||||||
AfterUnion: false
|
|
||||||
AfterExternBlock: false
|
|
||||||
BeforeCatch: false
|
|
||||||
BeforeElse: false
|
|
||||||
BeforeLambdaBody: false
|
|
||||||
BeforeWhile: false
|
|
||||||
SplitEmptyFunction: true
|
|
||||||
SplitEmptyRecord: true
|
|
||||||
SplitEmptyNamespace: true
|
|
||||||
BreakBeforeBraces: Custom
|
|
||||||
BreakConstructorInitializers: AfterColon
|
|
||||||
BreakConstructorInitializersBeforeComma: false
|
|
||||||
ColumnLimit: 240
|
|
||||||
ConstructorInitializerAllOnOneLineOrOnePerLine: false
|
|
||||||
ContinuationIndentWidth: 8
|
|
||||||
IncludeCategories:
|
|
||||||
- Regex: '^<.*'
|
|
||||||
Priority: 1
|
|
||||||
- Regex: '^".*'
|
|
||||||
Priority: 2
|
|
||||||
- Regex: '.*'
|
|
||||||
Priority: 3
|
|
||||||
IncludeIsMainRegex: '([-_](test|unittest))?$'
|
|
||||||
IndentCaseLabels: true
|
|
||||||
IndentWidth: 4
|
|
||||||
InsertNewlineAtEOF: true
|
|
||||||
MacroBlockBegin: ''
|
|
||||||
MacroBlockEnd: ''
|
|
||||||
MaxEmptyLinesToKeep: 2
|
|
||||||
NamespaceIndentation: All
|
|
||||||
SpaceAfterCStyleCast: true
|
|
||||||
SpaceAfterTemplateKeyword: false
|
|
||||||
SpaceBeforeRangeBasedForLoopColon: false
|
|
||||||
SpaceInEmptyParentheses: false
|
|
||||||
SpacesInAngles: false
|
|
||||||
SpacesInConditionalStatement: false
|
|
||||||
SpacesInCStyleCastParentheses: false
|
|
||||||
SpacesInParentheses: false
|
|
||||||
TabWidth: 4
|
|
||||||
...
|
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,4 +1,3 @@
|
|||||||
*.zip
|
*.zip
|
||||||
*.exe
|
*.exe
|
||||||
*.o
|
*.o
|
||||||
.idea/
|
|
||||||
45
01/bmi.c
45
01/bmi.c
@ -3,29 +3,38 @@
|
|||||||
* Body Mass Index mit zwei Nachkommastellen ausgibt (bmi = gewicht / (groesse in m)²). *
|
* Body Mass Index mit zwei Nachkommastellen ausgibt (bmi = gewicht / (groesse in m)²). *
|
||||||
*************************************************************************************************/
|
*************************************************************************************************/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
int main() {
|
|
||||||
unsigned int gewicht_kg = 0;
|
|
||||||
unsigned int groesse_cm = 0;
|
|
||||||
|
|
||||||
printf("Geben sie ihr Gewicht in Kg ein: ");
|
int main()
|
||||||
scanf("%d", &gewicht_kg);
|
{
|
||||||
|
unsigned int gewichtInKg = 0;
|
||||||
|
unsigned int groesseInCm = 0;
|
||||||
|
double bmi = 0;
|
||||||
|
|
||||||
printf("Geben sie Ihre Groesse in cm: ");
|
printf("Geben Sie bitte Ihr Gewicht in Kg ein: ");
|
||||||
scanf("%d", &groesse_cm);
|
scanf("%d", &gewichtInKg);
|
||||||
|
|
||||||
printf("Gewicht: %i Kg\n", gewicht_kg);
|
printf("Geben Sie bitte Ihre Groesse in cm ein: ");
|
||||||
printf("Groesse: %i cm\n", groesse_cm);
|
scanf("%d", &groesseInCm);
|
||||||
|
|
||||||
double bmi = gewicht_kg / ((groesse_cm / 100.f) * (groesse_cm / 100.f));
|
bmi = gewichtInKg / ((groesseInCm / 100.0) * (groesseInCm / 100.0));
|
||||||
printf("Fuer ein Gewicht mit %d Kg und %d cm lautet der BMI: %.2lf\n", gewicht_kg, groesse_cm, bmi);
|
|
||||||
if (bmi < 18.5)
|
printf("Fuer ein Gewicht mit %u kg und einer Groesse von %u cm lautet der BMI %lf.\n", gewichtInKg, groesseInCm, bmi);
|
||||||
printf("Das ist untergewichtig!");
|
printf("Das ist ");
|
||||||
else if (bmi > 25)
|
|
||||||
printf("Das ist uebergewichtig!");
|
if(bmi < 18.5)
|
||||||
|
{
|
||||||
|
printf("Untergewicht.\n");
|
||||||
|
}
|
||||||
|
else if(bmi > 25)
|
||||||
|
{
|
||||||
|
printf("Uebergewicht.\n");
|
||||||
|
}
|
||||||
else
|
else
|
||||||
printf("Das ist Normalgewicht.");
|
{
|
||||||
|
printf("Normalgewicht.\n");
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
50
02/alphabet.c
Normal file
50
02/alphabet.c
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
/*****************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das vom Benutzer einen Buchstaben einliest und ausgibt, *
|
||||||
|
* der wievielte Buchstabe im Alphabet die Eingabe ist. Groß- und Kleinschreibung sollen *
|
||||||
|
* keine Rolle spielen. Zudem soll das Programm vorher ausgeben, ob der Benutzer einen *
|
||||||
|
* Buchstaben eingegeben hat und die Ausgabe somit richtig ist. *
|
||||||
|
* *
|
||||||
|
* 1. Beispiel: *
|
||||||
|
* >> Geben Sie einen Buchstaben ein: B *
|
||||||
|
* Die folgende Ausgabe ist richtig, weil das Zeichen B ein Buchstabe ist: 1 *
|
||||||
|
* Der Buchstabe B ist der 2. Buchstabe im Alphabet. *
|
||||||
|
* *
|
||||||
|
* 2. Beispiel: *
|
||||||
|
* >> Geben Sie einen Buchstaben ein: b *
|
||||||
|
* Die folgende Ausgabe ist richtig, weil das Zeichen b ein Buchstabe ist: 1 *
|
||||||
|
* Der Buchstabe b ist der 2. Buchstabe im Alphabet. *
|
||||||
|
* *
|
||||||
|
* 3. Beispiel: *
|
||||||
|
* >> Geben Sie einen Buchstaben ein: 3 *
|
||||||
|
* Die folgende Ausgabe ist richtig, weil das Zeichen 3 ein Buchstabe ist: 0 *
|
||||||
|
* Der Buchstabe 3 ist der -13. Buchstabe im Alphabet. *
|
||||||
|
*****************************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <ctype.h>
|
||||||
|
|
||||||
|
#include "myio.h"
|
||||||
|
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
unsigned char character = 'a';
|
||||||
|
|
||||||
|
while(character != '\n')
|
||||||
|
{
|
||||||
|
unsigned char lowerChar;
|
||||||
|
|
||||||
|
printf("Eingabe einzelnes Zeichen: ");
|
||||||
|
character = getSingleChar();
|
||||||
|
|
||||||
|
lowerChar = tolower(character);
|
||||||
|
|
||||||
|
if(lowerChar >= 'a' && lowerChar <= 'z')
|
||||||
|
{
|
||||||
|
unsigned int alphaPos = lowerChar - 'a' + 1;
|
||||||
|
printf("Der Buchstabe %c liegt an %u. Stelle im Alphabet.\n", character, alphaPos);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
37
02/anteile.c
Normal file
37
02/anteile.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/****************************************************************************************************
|
||||||
|
* Aufgaben
|
||||||
|
* 1. Begeben Sie sich zunaechst ohne Compiler auf Fehlersuche. Welche Fehler können Sie entdecken? *
|
||||||
|
* Wuerde das Programm uebersetzen? Wuerde das Programm korrekt laufen? *
|
||||||
|
* 2. Uebersetzen Sie nun das Programm ohne -Wall. Hilft Ihnen dies bei der Fehlersuche? *
|
||||||
|
* 3. Uebersetzen Sie nun das Programme mit -Wall. Hilft Ihnen dies bei der Fehlersuche? *
|
||||||
|
* 4. Finden und korrigieren Sie nun alle Fehler, sodass das Programm korrekte Ausgaben liefert. *
|
||||||
|
* Nehmen Sie dabei so wenig Veraenderungen wie moeglich vor. *
|
||||||
|
*****************************************************************************************************/
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#define MAX_PUNKTE_TEIL_A 60
|
||||||
|
#define MAX_PUNKTE_TEIL_B 44
|
||||||
|
#define MAX_GESAMT_PUNKTE MAX_PUNKTE_TEIL_A + MAX_PUNKTE_TEIL_B
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
int pktTeilA, pktTeilB;
|
||||||
|
double ergInProzentTeilA, ergInProzentTeilB, gesamtErgInProzent;
|
||||||
|
|
||||||
|
printf("Wie viele Punkte wurden in Teil A erzielt: ");
|
||||||
|
scanf("%d", pktTeilA);
|
||||||
|
|
||||||
|
printf("Wie viele Punkte wurden in Teil B erzielt: ");
|
||||||
|
scanf("%d", pktTeilB);
|
||||||
|
|
||||||
|
ergInProzentTeilA = pktTeilA * 100 / MAX_PUNKTE_TEIL_A;
|
||||||
|
ergInProzentTeilB = pktTeilB * 100 / MAX_PUNKTE_TEIL_B;
|
||||||
|
gesamtErgInProzent = (pktTeilA + pktTeilB) * 100 / MAX_GESAMT_PUNKTE;
|
||||||
|
|
||||||
|
printf("Es wurden %d %% der moeglichen Punkte in Teil A erzielt.\n", ergInProzentTeilA);
|
||||||
|
printf("Es wurden %d %% der moeglichen Punkte in Teil B erzielt.\n", ergInProzentTeilB);
|
||||||
|
printf("Es wurden %d %% der moeglichen Punkte insgesamt erzielt.\n", gesamtErgInProzent);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
9
02/mwst.c
Normal file
9
02/mwst.c
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
/***************************************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das vom Benutzer einen Nettopreis in Euro einliest und dazu den Bruttopreis *
|
||||||
|
* ausgibt. Verwenden Sie fuer die Mehrwertsteuer eine symbolische Konstante und lagern Sie diese in eine *
|
||||||
|
* separate Header-Datei aus. Die Mehrwertsteuer betraegt derzeit 19 % (Buecher und Lebensmittel ausgenommen). *
|
||||||
|
* *
|
||||||
|
* Beispiel: *
|
||||||
|
* >> Geben Sie einen Nettopreis in Euro ein: 10 *
|
||||||
|
* Der Bruttopreis betraegt 11.90 Euro *
|
||||||
|
***************************************************************************************************************/
|
||||||
12
02/myio.c
Normal file
12
02/myio.c
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
#include "myio.h"
|
||||||
|
|
||||||
|
unsigned char getSingleChar()
|
||||||
|
{
|
||||||
|
unsigned char result = 'a';
|
||||||
|
|
||||||
|
result = getchar();
|
||||||
|
while(result != '\n' && getchar() != '\n') {}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
6
02/myio.h
Normal file
6
02/myio.h
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#ifndef MYIO_H
|
||||||
|
#define MYIO_H
|
||||||
|
|
||||||
|
unsigned char getSingleChar();
|
||||||
|
|
||||||
|
#endif
|
||||||
17
02/rechner.c
Normal file
17
02/rechner.c
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
/************************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das zwei Zahlen und anschliessend + oder - vom Benutzer einliest *
|
||||||
|
* und das Ergebnis der Rechenoperation ausgibt. Hinweis: Diese Aufgabe ist ohne if zu loesen, *
|
||||||
|
* das erst spaeter eingefuehrt wird. *
|
||||||
|
* *
|
||||||
|
* 1. Beispiel: *
|
||||||
|
* >> Geben Sie die 1. Zahl ein: 2 *
|
||||||
|
* >> Geben Sie die 2. Zahl ein: 3 *
|
||||||
|
* >> Geben Sie die gewuenschte Rechenoperation ein (+/-): - *
|
||||||
|
* 2 - 3 = -1 *
|
||||||
|
* *
|
||||||
|
* 2. Beispiel: *
|
||||||
|
* >> Geben Sie die 1. Zahl ein: 2 *
|
||||||
|
* >> Geben Sie die 2. Zahl ein: 3 *
|
||||||
|
* >> Geben Sie die gewuenschte Rechenoperation ein (+/-): + *
|
||||||
|
* 2 + 3 = 5 *
|
||||||
|
************************************************************************************************/
|
||||||
6
02/winkel.c
Normal file
6
02/winkel.c
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
/***************************************************************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das einen Winkel in Grad als ganze Zahl einliest und diesen in rad (als Fliesskommazahl) wieder ausgibt. *
|
||||||
|
* Nutzen Sie dabei sinnvoll mindestens eine Makro-Konstante. Der Winkel in rad soll dabei mit drei Nachkommastellen ausgegeben werden. *
|
||||||
|
****************************************************************************************************************************************/
|
||||||
32
02/zahlenVergleich.c
Normal file
32
02/zahlenVergleich.c
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/****************************************************************************************************************
|
||||||
|
* Schreiben Sie ein Programm, das vom Benutzer zwei ganze, positive, *
|
||||||
|
* dreistellige Zahlen einliest und ausgibt, ob beide Zahlen gleich sind. *
|
||||||
|
* Dabei soll die erste Zahl mit scanf und die zweite mit getchar eingelesen *
|
||||||
|
* werden. Zudem soll das Programm ausgeben, ob die erste Eingabe des Benutzers *
|
||||||
|
* korrekt war. *
|
||||||
|
* *
|
||||||
|
* Wie erklaeren Sie sich den Verlauf des 2. Beispiels? *
|
||||||
|
* *
|
||||||
|
* 1. Beispiel: *
|
||||||
|
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 345 *
|
||||||
|
* Es wurde eine dreistellige, positive Zahl eingegeben: 1 *
|
||||||
|
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 345 *
|
||||||
|
* 345 == 345? -> 1 *
|
||||||
|
* *
|
||||||
|
* 2. Beispiel (Hier kann man die Ausgabe ignorieren, nachdem angezeigt wurde, dass die Eingabe nicht stimmt.): *
|
||||||
|
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: dfg *
|
||||||
|
* Es wurde eine dreistellige, positive Zahl eingegeben: 0 *
|
||||||
|
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 0 == 5912? -> 0 *
|
||||||
|
* *
|
||||||
|
* 3. Beispiel: *
|
||||||
|
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 567 *
|
||||||
|
* Es wurde eine dreistellige, positive Zahl eingegeben: 1 *
|
||||||
|
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 111 *
|
||||||
|
* 567 == 111? -> 0 *
|
||||||
|
* *
|
||||||
|
* 4. Beispiel: *
|
||||||
|
* >> Geben Sie eine dreistellige, ganze und positive Zahl ein: 20 *
|
||||||
|
* Es wurde eine dreistellige, positive Zahl eingegeben: 0 *
|
||||||
|
* >> Geben Sie noch einmal eine dreistellige, ganze und positive Zahl ein: 300 *
|
||||||
|
* 20 == 300? -> 0 *
|
||||||
|
****************************************************************************************************************/
|
||||||
Loading…
x
Reference in New Issue
Block a user