This commit is contained in:
stsh
2022-02-17 11:39:06 +01:00
parent f86c03e000
commit 674695e82a
249 changed files with 0 additions and 22952 deletions
-64
View File
@@ -1,64 +0,0 @@
#include <stdio.h>
#include <stdlib.h>
#include <strings.h>
/** Aufgabe 1:
enum Typ "textFlags" deklarieren mit den einzelnene Werten
- ITALICS = 00000001 // = 1
- BOLD = 00000010 // = 2
- UNDERLINE = 00000100 // = 4
*/
enum textFlags { ITALICS = 1, BOLD = 2, UNDERLINE = 4 };
/** Aufgabe 2
Funktion Flag Einlesen
*/
void menu (void) {
(void) printf("\nBitte geben Sie die gewuenschten Flags ein\n");
(void) printf("(Ugueltige Eingaben fuehren zum Abbruch.)\n");
(void) printf("Kursiv: tippen Sie die 1\n");
(void) printf("Fett: tippen Sie die 2\n");
(void) printf("Unterstrichen: tippen Sie die 3\n");
(void) printf("Abbrechen: tippen Sie die 0\n");
(void) printf("Ihre Wahl: ");
}
int flagEinlesen() {
fflush(stdin);
int flag = fgetc(stdin) - '0';
if (flag < 1 || flag > 3) { flag = 0; }
return flag;
}
void displayFlags(int flags) {
printf("Gesetzte Flags: %d\n", flags);
}
/** Vorgegebener Programm-Rumpf */
int main(void) {
int oneFlag, flags = 0;
do {
menu();
oneFlag = flagEinlesen();
switch (oneFlag) {
case 1:
printf("Wahl: 1, Flag: %d", oneFlag);
flags |= ITALICS;
break;
case 2:
printf("Wahl: 2, Flag: %d", oneFlag);
flags |= BOLD;
break;
case 3:
printf("Wahl: 3, Flag: %d", oneFlag);
flags |= UNDERLINE;
break;
}
(void) displayFlags(flags);
} while (oneFlag != 0);
}
Binary file not shown.
-117
View File
@@ -1,117 +0,0 @@
/**
* P02 Praktikum
*
* - Funktionen
* - Funktion Schaltjahr
* - Funktion Tage pro Monat
* - Funktion Wochentag
*
* @author ZHAW
* @version 1.0 - 08.02.2022
*/
#include <stdio.h>
#include <stdlib.h>
int leseZahl(char *prompt, int min, int max) { // Datentyp angeben, Parameter angeben
char zahlString[11];
int zahl;
do {
printf("%s", prompt);
fgets(zahlString, 10, stdin);
zahl = atoi(zahlString); // bei ungueltiger Zahl return 0
} while ((zahl < min) || (zahl > max));
return zahl; // return Zeile angeben
}
/**
____ leseZahl(____) { // Datentyp angeben, Parameter angeben
char zahlString[11];
int zahl;
fgets(zahlString, 10, stdin);
zahl = atoi(zahlString); // bei ungueltiger Zahl return 0
___________________ // return Zeile angeben
}
*/
/* Konstante Werte fuer die Monate */
enum { JAN=1, FEB, MAR, APR, MAI, JUN, JUL, AUG, SEP, OKT, NOV, DEZ };
int main (void) {
//
// Variablen definieren
//
int monat, jahr;
char *prompt;
int istSchaltjahr = 0; // 0: kein Schaltjahr, sonst Schaltjahr
int tageProMonat = 0; // Ergebnis spaeter in dieser Variablen
//
// Monat und Jahr einlesen
//
//printf("Monat: ");
//scanf("%d", &monat);
//printf("Jahr: ");
//scanf("%d", &jahr);
prompt = "Monat: ";
monat = leseZahl(prompt, 1, 12);
prompt = "Jahr: ";
jahr = leseZahl(prompt, 1, 3000);
// Ausgabe zum Test
// printf("Monat: %d, Jahr: %d \n", monat, jahr);
//
// Monate mit 30 und 31 Tagen behandeln
//
switch (monat) {
case JAN: case MAR: case MAI: case JUL: case AUG: case OKT: case DEZ:
tageProMonat = 31;
break;
case APR: case JUN: case SEP: case NOV:
tageProMonat = 30;
break;
//
// Monat ist 2: Auf Schaltjahr ueberpruefen
//
case FEB:
if (jahr % 4 == 0 && (jahr % 100 != 0 || jahr % 400 == 0)) {
tageProMonat = 29;
}
else {
tageProMonat = 28;
}
break;
//
// Anderer Monat: Fehler
//
default:
printf("Der Monat muss zwischen 1 und 12 sein.\n");
return 1;
}
//
// Ergebnis ausgeben
//
printf("Der Monat %d.%d hat %d Tage.\n", monat, jahr, tageProMonat);
return 0;
}