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

Kapitel 9,10,11

parent f0d1d2b4
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* BucketSort
*
* Uebersetzen mit
* gcc bucket_sort.c -o bucket_sort
* Aufruf mit
* ./bucket_sort 3 2 9 5 3 1
**************************************/
#include <stdio.h>
#include <stdlib.h>
#define MAXRANGE 1000
int main(int argc, char** argv) {
int S[MAXRANGE] = {0};
for ( int i = 1; i < argc; ++i ) {
int n = atoi(argv[i]);
if ( n > MAXRANGE ) {
printf("Eingabe zu gross\n");
return 1;
} else {
S[n]++;
}
}
for ( int i = 0; i < MAXRANGE; ++i )
for ( int j = 0; j < S[i]; ++j )
printf("%d ", i);
printf("\n");
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* InsertionSort
*
* Uebersetzen mit
* gcc insertion_sort.c -o insertion_sort
* Aufruf mit
* ./insertion_sort 4 3 17 6 4 2 35 8 1 5 12
**************************************/
#include <stdio.h>
#include <stdlib.h>
void insertion_sort(int A[], int n) {
for ( int k = 1; k < n; ++k ) {
int b = A[k];
int j = k-1;
while ( j>= 0 && A[j] > b ) {
A[j+1] = A[j];
--j;
}
A[j+1] = b;
}
}
int main (int argc, char** argv) {
int size = argc-1;
int A[size];
for ( int i = 1; i < argc; i=i+1 ) {
A[i-1] = atoi(argv[i]);
}
insertion_sort(A,size);
for ( int i=0; i < size; i=i+1 ) {
printf("%d ", A[i]);
}
printf("\n");
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 allocate_input.c -o allocate_input
* Aufruf mit
* ./allocate_input 2 4 10
**************************************/
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
int n = argc-1;
int* a = malloc(n*sizeof(int));
for(int i = 0; i < n; ++i ) {
a[i] = atoi(argv[i+1]);
}
for(int i = 0; i < n; ++i ) {
printf("%d ",a[i]);
}
printf("\n");
free(a);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Speicher fuer Variablen in Funktionen
*
* Uebersetzen mit
* gcc function_alloc_int.c -o function_alloc_int
* Aufruf mit
* ./function_alloc_int
**************************************/
#include<stdio.h>
#include <stdlib.h>
int* get_int_return() {
int * a = (int*)malloc(sizeof(int));
*a = 438;
return a;
}
void get_int_reference(int ** a) {
*a = (int*)malloc(sizeof(int));
**a = 439;
}
void delete_int(int * a) {
free(a);
}
int main() {
int *ptr = NULL;
ptr = get_int_return();
printf("ptr zeigt auf %p mit Wert %d\n", ptr, *ptr);
delete_int(ptr);
get_int_reference(&ptr);
printf("ptr zeigt auf %p mit Wert %d\n", ptr, *ptr);
delete_int(ptr);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* Speichergroessen
*
* Uebersetzen mit
* gcc speichergroesse.c -ospeichergroesse
* Aufruf mit
* ./speichergroesse
**************************************/
#include <stdio.h>
#include <stdlib.h>
int main() {
int i1 = 0 , i2 = 0 , i3 = 0;
char c1 = 1, c2 = 1 , c3 = 1;
double f1 = 1.0, f2 = 2.0, f3 = 2.0;
int arr[3] = {0};
long long l = 0;
printf("Adresse von a: %p\n",(void *)&i1);
printf("Adresse von b: %p\n",(void *)&i2);
printf("Adresse von c: %p\n",(void *)&i3);
puts("-------------------");
printf("Adresse von c1: %p\n",(void *)&c1);
printf("Adresse von c2: %p\n",(void *)&c2);
printf("Adresse von c3: %p\n",(void *)&c3);
puts("-------------------");
printf("Adresse von f1: %p\n",(void *)&f1);
printf("Adresse von f2: %p\n",(void *)&f2);
printf("Adresse von f3: %p\n",(void *)&f3);
puts("-------------------");
for ( int i = 0; i < 3; ++i ) {
printf("Adresse von arr[%d]: %p\n",i,(void *)&arr[i]);
}
puts("-------------------");
printf("Adresse von l: %p\n",(void *)&l);
puts("-------------------");
printf("Speichergroesse von int: %lu\n", sizeof(int));
printf("Speichergroesse von char: %lu\n", sizeof(char));
printf("Speichergroesse von double: %lu\n", sizeof(double));
printf("Speichergroesse von long long: %lu\n", sizeof(long long));
printf("Speichergroesse von int*: %lu\n", sizeof(int*));
printf("Speichergroesse von char*: %lu\n", sizeof(char*));
printf("Speichergroesse von double*: %lu\n", sizeof(double*));
printf("Speichergroesse von long long*: %lu\n", sizeof(long long*));
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* ein einfacher struct
*
* Uebersetzen mit
* gcc simple_struct.c -o simple_struct
* Aufruf mit
* ./simple_struct
**************************************/
#include <stdio.h>
#include <stdlib.h>
struct st {
int i;
float f;
};
void show ( struct st s) {
printf("Elemente i: %d und f: %f\n",s.i, s.f);
}
int main() {
struct st s,t;
s.i=7;
s.f=3.14;
t.i=8;
t.f=9.81;
show(t);
return 0;
}
/*************************************
* Beispielprogramm zur Vorlesung
* Einfuehrung in die Programmierung I
* Andreas Paffenholz
* TU Darmstadt, Wintersemester 2020/21
* (c) 2020-
*
* ein einfacher struct
*
* Uebersetzen mit
* gcc struct_def.c -o struct_def
* Aufruf mit
* ./struct_def
**************************************/
#include <stdio.h>
int main() {
struct {
int i;
float f;
} s;
s.i=7;
s.f=3.14;
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