Commit e21d7be1 authored by Paffenholz, Andreas's avatar Paffenholz, Andreas

Kapitel 3

parent 04b1e397
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Genauigkeit und Vergleiche bei float
*
* Uebersetzen mit
* gcc genauigkeit.c -o genauigkeit
* Aufruf mit
* ./genauigkeit
**************************************/
#include <stdio.h>
#include <limits.h>
void vergleiche(float f1, float f2 ) {
if ( f1 == f2 ) {
printf("Die eingegebenen Zahlen sind gleich\n");
} else {
printf("Die eingegebenen Zahlen sind %f und %f\n",f1,f2);
}
}
int main () {
long max = LONG_MAX;
float f1 = 1.03;
float f2 = 1.14;
vergleiche(f1,f2);
vergleiche(f1*max,f1*max-1000);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Mehrfache Verzweigung mit if und switch
*
* Uebersetzen mit
* gcc mehrfache_verzweigung.c -o mehrfache_verzweigung
* Aufruf mit
* ./mehrfache_verzweigung
**************************************/
#include <stdio.h>
int main() {
unsigned int x = 7;
if ( x == 0 ) {
printf("x ist 1\n");
} else if ( x == 1 ) {
printf("x ist 1\n");
} else if ( x == 1 ) {
printf("x ist 1\n");
} else if ( x == 2 ) {
printf("x ist 2\n");
} else if ( x == 3 ) {
printf("x ist 3\n");
} else {
printf("x ist groesser als 3\n");
}
switch ( x ) {
case 0:
printf("x ist 1\n");
break;
case 1:
printf("x ist 1\n");
break;
case 2:
printf("x ist 2\n");
break;
case 3:
printf("x ist 3\n");
break;
default:
printf("x ist groesser als 3\n");
break;
}
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Vier Varianten, die Anzahl aller geordneten Paare zweier Quadratzahlen zu finden,
* deren Summe hpechstens eine gegeben Zahl ist
%
% Uebersetzen mit
% gcc schleifenvarianten.c -o schleifenvarianten
% Aufruf mit
% ./schleifenvarianten 34
**************************************/
#include <stdio.h>
#include <stdlib.h>
void print_result(int c, int n) {
printf("%d Summe(n) aus zwei nichtnegativen Quadratzahlen sind kleiner oder gleich %d\n",c,n);
}
int main (int argc, char** argv) {
int n = atoi(argv[1]);
if ( n < 0 ) {
printf("Falsche Eingabe\n");
return 0;
}
int counter=0;
int x,y;
counter=0;
for( x=0; x*x <= n; x=x+1 ) {
for( y=0; x*x + y*y <= n; y=y+1 ) {
counter = counter+1;
}
y=0;
}
print_result(counter,n);
counter=0;
x=0;
y=0;
while ( x*x <= n ) {
while ( x*x + y*y <= n ) {
y=y+1;
counter=counter+1;
}
y=0;
x=x+1;
}
print_result(counter,n);
counter = 0;
x = 0;
y = 0;
do {
do {
counter=counter+1;
y=y+1;
} while ( x*x + y*y <=n );
y=0;
x=x+1;
} while ( x*x <= n);
print_result(counter,n);
counter=0;
x=0;
while ( x*x <= n ) {
for ( y = 0; x*x + y*y <= n; y = y+1 ) {
counter=counter+1;
}
x=x+1;
}
print_result(counter,n);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Laenge der Collatzfole
*
* Uebersetzen mit
* gcc show_limits.c -o show_limits
* Aufruf mit
* ./show_limits
**************************************/
#include <stdio.h>
#include <limits.h>
#include <float.h>
int main() {
unsigned int x = UINT_MAX; // groesster Wert fuer unsigend int
long l = LONG_MIN; // kleinester Wert fuer long
float f = FLT_MAX; // groesster Wert fuer float
float eps = FLT_EPSILON; // Abstand zwischen 0 und naechstem float
printf("Die groesste darstellbare Zahl fuer unsigned int ist %u\n", x);
printf("Die kleinste darstellbare Zahl fuer long int ist %ld\n", l);
printf("Die groesste darstellbare Zahl fuer float ist %e\n", f);
printf("Die kleinste positive Dezimalzahl ist %e\n", eps);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Zeiger auf Zeigervariablen
*
* Uebersetzen mit
* gcc static.c -o static
* Aufruf mit
* ./static
**************************************/
#include <stdio.h>
void counter () {
static int a = 1;
printf("Das ist der %d. Aufruf\n",a++);
}
int main() {
counter();
counter();
counter();
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Zahlbereiche
*
* Uebersetzen mit
* gcc zahlbereiche.c -o zahlbereiche
* Aufruf mit
* ./zahlbereiche
**************************************/
#include <stdio.h>
#include <limits.h>
int main () {
int au = INT_MAX;
int al = INT_MIN;
long bu = LONG_MAX;
long bl = LONG_MIN;
printf("die groesste ganze Zahl vom Typ int ist %d, und die kleinste %d\n", au, al);
printf("die naechstkleinere Zahl ist %d\n", al-1);
printf("die groesste ganze Zahl vom Typ long ist %ld, und die kleinste %ld\n", bu, bl);
printf("die naechstkleinere Zahl ist %ld\n", bl-1);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Einige Funktionen fuer Zeichenketten
*
* Uebersetzen mit
* gcc zeichenketten_funktionen.c -o zeichenketten_funktionen
* Aufruf mit
* ./zeichenketten_funktionen
**************************************/
#include <stdio.h>
#include <string.h>
int main() {
char d[10] = "Darmstadt";
char f[30] = "Frankfurt";
char s[12] = " liegt bei ";
char t[30];
printf("%s hat %lu Buchstaben\n",d,strlen(d));
strcat(t,d);
strcat(t,s);
strcat(t,f);
printf("%s\n", t);
printf("%s", d);
if ( strcmp(d,f) <= 0 ) {
printf(" kommt vor ");
} else {
printf(" kommt nach ");
}
printf("%s\n", f);
strcpy(f,d); if ( strcmp(f,d) == 0 ) {
printf("f und d sind gleich\n");
}
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Zufallszahlen
*
* Uebersetzen mit
* gcc zufallszahlen.c -o zufallszahlen
* Aufruf mit
* ./zufallszahlen
**************************************/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
srand(time(0));
printf("100 Zufallszahlen im Bereich von 0 bis %d.\n",RAND_MAX);
for ( int i = 0; i < 100; ++i ) {
printf("%d ",rand());
}
printf("\n");
return 0;
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment