Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Mehrdimensionale Arrays – Rating

#include <stdio.h>
#include <stdlib.h>

int main(void) 
{ 
        setbuf(stdout, NULL);
        system("cls");

        int arr[11][3] = { 
                {1, 800000, 900000},
                {2, 1258900, 2500000},
                {3, 720000, 750000},
                {4, 550000, 600000},
                {5, 1200500, 80000},
                {6, 500000, 480000},
                {7, 300000, 320000},
                {8, 150000, 3000000},
                {9, 700000, 450000},
                {10, 1200000, 900000},
                {11, 300000, 330000}
         };

        printf("\n\n");

        for (int zeile = 0; zeile < 11; zeile++)
        {
                int planumsatz = 0;
                float steigerung = .0;
                float steigerung_prozent = .0;
                float minderung = .0;
                float minderung_prozent = .0;
                char rating;

                if(arr[zeile][2] > arr[zeile][1])
                {
                        planumsatz = 1;
                        steigerung = ( arr[zeile][2] - arr[zeile][1] );
                        steigerung_prozent = steigerung / arr[zeile][1] * 100;
                        rating = 'B';

                        if(arr[zeile][2] >= 500000)
                        {
                                rating = 'A';
                        }
                }
                else
                {
                        minderung = ( arr[zeile][1] - arr[zeile][2] );
                        minderung_prozent = minderung / arr[zeile][1] * 100;
                        rating = 'C';
                }

                if(planumsatz == 1)
                {
                        printf(" Rating %c - Produkt No. %d - Plan: %d EUR - Ist: %d EUR - Der Planumsatz wurde uebertroffen -> +%.2lf EUR (+%.2lf%%)!\n", rating, arr[zeile][0], arr[zeile][1], arr[zeile][2], steigerung, steigerung_prozent);
                }
                else if(arr[zeile][2] == arr[zeile][1])
                {
                        printf(" Rating %c - Produkt No. %d - Plan: %d EUR - Ist: %d EUR - Der Planumsatz wurde genau erreicht!\n", rating, arr[zeile][0], arr[zeile][1], arr[zeile][2]);
                }
                else
                {
                        printf(" Rating %c - Produkt No. %d - Plan: %d EUR - Ist: %d EUR - Der Planumsatz wurde verfehlt -> -%.2lf EUR (-%.2lf%%)!\n", rating, arr[zeile][0], arr[zeile][1], arr[zeile][2], minderung, minderung_prozent);
                }

        }

        printf("\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Mehrdimensionale Arrays – Kontoverwaltung V2

# include <stdio.h>
# include <stdlib.h>

double kontenArray[100][2];
int anzahlKonten = 0;
int alleKonten = 0;
int auswahl = 0, i = 0;

int zeigeMenue( void )
{
        int option;

        printf("\n\n\n\t\t*** Kontenverwaltung ***");
        printf("\n\n\t\t1) Neues Konto anlegen\n");
        printf("\t\t2) Angelegte Konten anzeigen lassen (%d Stueck bisher)\n", alleKonten);
        printf("\t\t3) Geld auf Konto einzahlen\n");
        printf("\t\t4) Geld von Konto abheben\n");
        printf("\t\t5) Zinsen gutschreiben\n");
        printf("\t\t6) Einzelverzinsung gutschreiben\n");
        printf("\n\t\t99) Kontenverwaltung verlassen - Programmabbruch!");
        printf("\n\n\t\tBitte waehlen Sie eine Option:\n\t\t--> ");
        scanf("%d", &option);
        fflush( stdin );

        return option;
}

void neueKontenAnlegen( void )
{
        double kontonummer, kontostand;
        int zeile;

        system("cls");
        printf("\n\n\t\t*** Neues Konto anlegen ***");

        printf("\n\t\tGeben Sie mir die Kontonummer:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        printf("\n\t\tGeben Sie mir den aktuellen Kontostand:\n\t\t--> ");
        scanf("%lf", &kontostand);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if(kontonummer == kontenArray[zeile][0])
                {
                        printf("\n\t\tDieses Konto ist bereits vorhanden!");
                        printf("\n\t\tGeben Sie mir die richtige Kontonummer:\n\t\t--> ");
                        scanf("%lf", &kontonummer);
                        fflush( stdin );
                }
        }

        kontenArray[alleKonten][0] = kontonummer;
        kontenArray[alleKonten][1] = kontostand;

        alleKonten++;
        printf("\n\n\t\tFertig!\n\n");
}

void zeigeAlleKonten( void )
{
        int zeile;

        system("cls");
        printf("\n\n\t\t*** Alle Konten anzeigen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\tKontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tFertig!\n");
}

void einzahlung( void )
{
        double kontonummer, einzahlungsbetrag = .0;
        int zeile, error = 1;

        system("cls");
        printf("\n\n\t\t*** Einzahlung - Bitte Konto auswaehlen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\t%d) Kontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", zeile, kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzahlung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzahlung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Summe der Einzahlung:\n\t\t--> ");
        scanf("%lf", &einzahlungsbetrag);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = (kontenArray[zeile][1] + einzahlungsbetrag);
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist immer noch unbekannt!");
                printf("\n\n\t\tEinzahlung konnte nicht gebucht werden!");
        }

        printf("\n\n\t\tFertig!\n");
}

void abhebung( void )
{
        double kontonummer, einzahlungsbetrag = .0;
        int zeile, error = 1;

        system("cls");
        printf("\n\n\t\t*** Abhebung - Bitte Konto auswaehlen ***");

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                printf("\n\t\t%d) Kontonummer %.0lf mit aktuellem Kontostand von %.2lf EUR", zeile, kontenArray[zeile][0], kontenArray[zeile][1]);
        }

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Abhebung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Abhebung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Summe der Abhebung:\n\t\t--> ");
        scanf("%lf", &einzahlungsbetrag);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = ( kontenArray[zeile][1] - einzahlungsbetrag );
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tAbbuchung konnte nicht gebucht werden!");
        }

        printf("\n\n\t\tFertig!\n");
}

void verzinsen( void )
{
        int zeile;
        double verzinsung = .0;

        system("cls");
        printf("\n\n\t\t*** Verzinsung ***");

        printf("\n\n\t\tGeben Sie mir die Zinsen in Prozent:\n\t\t--> ");
        scanf("%lf", &verzinsung);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                kontenArray[zeile][1] = kontenArray[zeile][1] + ( kontenArray[zeile][1] / 100 * verzinsung );
        }

        printf("\n\n\t\tFertig!\n");
}

void einzelverzinsung( void )
{
        int zeile, error = 1;
        double kontonummer, verzinsung = .0;

        system("cls");
        printf("\n\n\t\t*** Verzinsung ***");

        printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzelverzinsung:\n\t\t--> ");
        scanf("%lf", &kontonummer);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        error = 0;
                }
        }

        if(error != 0)
        {
                printf("\n\n\t\tDie Kontonummer ist unbekannt!");
                printf("\n\n\t\tGeben Sie mir die Kontonummer fuer die Einzelverzinsung:\n\t\t--> ");
                scanf("%lf", &kontonummer);
                fflush( stdin );
        }

        printf("\n\n\t\tGeben Sie mir die Zinsen in Prozent:\n\t\t--> ");
        scanf("%lf", &verzinsung);
        fflush( stdin );

        for( zeile = 0; zeile < alleKonten; zeile++ )
        {
                if( kontonummer == kontenArray[zeile][0] )
                {
                        kontenArray[zeile][1] = kontenArray[zeile][1] + ( kontenArray[zeile][1] / 100 * verzinsung );
                        error = 0;
                }
        }

        printf("\n\n\t\tFertig!\n");
}

int main( void )
{
        system("cls");

        while( auswahl != 99 )
        {
                auswahl = zeigeMenue();

                if( auswahl == 1 )
                {
                        neueKontenAnlegen();
                }
                else if( auswahl == 2 )
                {
                        zeigeAlleKonten();
                }
                else if( auswahl == 3 )
                {
                        einzahlung();
                }
                else if( auswahl == 4 )
                {
                        abhebung();
                }
                else if( auswahl == 5 )
                {
                        verzinsen();
                }
                else if( auswahl == 6 )
                {
                        einzelverzinsung();
                }
        }

        printf("\n\n\t\tSie haben die Kontenverwaltung auf eigenen Wunsch verlassen!\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Arrays

# include <stdio.h>
# include <stdlib.h>

int main(void)
{
        system("cls");

        int quadratZahlen[10];

        printf("\n\n");

        for (int i = 0; i < 10; i++) {
                quadratZahlen[i] = (i + 1) * (i + 1);
                printf("\t\t( %d * %d ) = %d\n",(i + 1), (i + 1), quadratZahlen[i]);
        }

        printf("\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Strings

# include <stdio.h>
# include <stdlib.h>

int main(void)
{
        system("cls");

        printf("\n\n");

        printf("\n\t\tHALLO WELT als Stringkonstante!\n\t\t");

        char stringArray[11];
        stringArray[0] = 'H';
        stringArray[1] = 'A';
        stringArray[2] = 'L';
        stringArray[3] = 'L';
        stringArray[4] = 'O';
        stringArray[5] = ' ';
        stringArray[6] = 'W';
        stringArray[7] = 'E';
        stringArray[8] = 'L';
        stringArray[9] = 'T';
        stringArray[10] = '\0';

        for (int i = 0; i < 11; i++)
        {
                printf("%c", stringArray[i]);
        }

        printf("\n\t\t");

        char halloWelt[] = {'H','A','L','L','O',' ','W','E','L','T','\0'};

        printf("%s", halloWelt);

        printf("\n\t\t");

        char hW[] = {"HALLO WELT\0"};
        printf("%s", hW);

        printf("\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Mehrdimensionale Arrays

# include <stdio.h>
# include <stdlib.h>

int main(void)
{
        system("cls");

        int produkt[10][10];

        printf("\n\n");

        for (int i = 0; i < 10; i++)
        {
                for (int j = 0; j < 10; j++) 
                {
                        produkt[i][j] = (i + 1) * (j + 1);
                        printf("\t\tIndex %d|%d: ( %d * %d ) = %d\n", i, j, (i+1), (j+1), produkt[i][j]);
                }
        }

        printf("\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Mehrdimensionale Arrays

# include <stdio.h>
# include <stdlib.h>

int main( void )
{
        system("cls");
        setbuf(stdout, NULL);

        // Deklaration eines leeren mehrdimensionalen - 2-Dimensional - Arrays
        int regal[4][5];

        // Felder werden mit Werten initialisiert, ...
        regal[0][0] = 3;
        regal[0][1] = 4;
        regal[0][2] = 5;
        regal[0][3] = 6;
        regal[0][4] = 7;

        regal[1][0] = 30;
        regal[1][1] = 40;
        regal[1][2] = 50;
        regal[1][3] = 60;
        regal[1][4] = 70;

        // Deklaration und Initialisierung eines mehrdimensionalen - 2 Dimensionen - Arrays
        int matrix[4][5] = 
        {
                {10,20,30,40,50},
                {15,25,35,45,55},
                {20,30,40,50,60},
                {25,35,45,55,65}
        };

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Arrays – C-Beispielprogramm

# include <stdio.h>
# include <stdlib.h>

int main( void )
{
        int anzahl = 0;

        printf("\n\n\t\tWie gross soll das Array werden?\n\n\t\t--> ");
        scanf("%d", &anzahl);

        int zahlenarray[anzahl];

        for( int i = 0; i < anzahl; i++ )
        {
                zahlenarray[i] = i + ( i * i );
        }

        for( int i = 0; i < anzahl; i++ )
        {
                if((i + 1) <= 9)
                {
                        printf("\n\t\tZahl Nr. 0%d: %d", (i + 1), zahlenarray[i]);
                }
                else
                {
                        printf("\n\t\tZahl Nr. %d: %d", (i + 1), zahlenarray[i]);
                }
        }

        printf("\n\n\t\tFertig!\n\n");

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Arrays – C-Beispielprogramm

# include <stdio.h>
# include <stdlib.h>

double kontenArray[100];
int anzahlKonten = 0;
int alleKonten = 0;
int auswahl = 0, i = 0;

int zeigeMenue( void )
{
        int option;

        printf("\n\n\n\t\t*** Kontenverwaltung ***");
        printf("\n\t\tOptionen:");
        printf("\n\n\t\t1) Neues Konto anlegen\n");
        printf("\t\t2) Alle angelegten Konten anzeigen lassen (%d Stueck bisher)\n", alleKonten);
        printf("\t\t99) Kontenverwaltung verlassen - Programmabbruch!");
        printf("\n\n\t\tBitte waehlen Sie eine Option:\n\t\t--> ");
        scanf("%d", &option);
        fflush(stdin);

        return option;
}

void neueKontenAnlegen( void )
{
        system("cls");
        printf("\n\n\t\t*** Neues Konto anlegen ***");
        double kontonummer;

        printf("\n\t\tGeben Sie mir die Kontonummer Nr. %d:\n\t\t--> ", ( i + 1 ) );
        scanf("%lf", &kontonummer);
        fflush(stdin);

        kontenArray[alleKonten] = kontonummer;
        alleKonten++;

        printf("\n\t\tFertig!\n");   
}

void zeigeAlleKonten( void )
{
        system("cls");
        printf("\n\n\t\t*** Alle Konten anzeigen ***");

        for(int z = 0 ; z < alleKonten; z++ )
        {
                printf("\n\t\tKontonummer:\t\t%.0lf", kontenArray[z]);
        }
}

int main( void )
{
        system("cls");

        while(auswahl != 99)
        {
                auswahl = zeigeMenue();

                if(auswahl == 1)
                {
                        neueKontenAnlegen();
                }
                else if(auswahl == 2)
                {
                        zeigeAlleKonten();
                }
        }

        printf("\n\n\t\tSie haben die Kontenverwaltung auf eigenen Wunsch verlassen!\n\n");
        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Array qSort

# include <stdio.h>
# include <stdlib.h>

int cmpfunc (const void * a, const void * b)
{
     return ( *(int*)a - *(int*)b );
}

int main (void)
{
        int zahlenarray2[] = {3, 24, 35, 6, 15};

        printf("\n\nVorher:\n");

        printf("%d\n", zahlenarray2[0]);
        printf("%d\n", zahlenarray2[1]);
        printf("%d\n", zahlenarray2[2]);
        printf("%d\n", zahlenarray2[3]);
        printf("%d\n", zahlenarray2[4]);


        qsort(zahlenarray2, 5, sizeof(int), cmpfunc);
        printf(" \n\n- - - - Sortierung mit qSort - - - - -\n\n\nNachher:\n");

        printf("%d\n", zahlenarray2[0]);
        printf("%d\n", zahlenarray2[1]);
        printf("%d\n", zahlenarray2[2]);
        printf("%d\n", zahlenarray2[3]);
        printf("%d\n", zahlenarray2[4]);

        return EXIT_SUCCESS;
}
Archivo Explosivo: Programmierung

FIAE – Grundlagen der Programmierung – Array MergeSort

# include <stdio.h>
# include <stdlib.h>

void MergeSort(int liste[], int groesse)
{
         if(groesse > 1)
         {
                 int haelfte1[groesse/2];
                 int haelfte2[(groesse + 1)/2];
                 int i;
                 for(i = 0; i < groesse/2; ++i)
                         haelfte1[i] = liste[i];
                 for(i = groesse/2; i < groesse; ++i)
                         haelfte2[i - groesse/2] = liste[i];

                 MergeSort(haelfte1,groesse/2);
                 MergeSort(haelfte2,(groesse + 1)/2);

                 int *pos1 = &haelfte1[0];
                 int *pos2 = &haelfte2[0];
                 for(i = 0; i < groesse; ++i)
                 {
                         if(*pos1 <= *pos2)
                         {
                                 liste[i] = *pos1;
                                 if (pos1 != &haelfte2[(groesse+1)/2 - 1])
                                 {
                                         if(pos1 == &haelfte1[groesse/2 - 1])
                                         {
                                                 pos1 = &haelfte2[(groesse+1)/2 - 1];
                                         }
                                         else
                                         {
                                                 ++pos1;
                                         }
                                 }
                         }
                         else
                         {
                                 liste[i] = *pos2;
                                 if(pos2 == &haelfte2[(groesse + 1)/2 - 1])
                                 {
                                         pos2 = &haelfte1[groesse/2 - 1];
                                 }
                                 else
                                 {
                                         ++pos2;
                                 }
                         }
                 }
         }
}

int main (void)
{
        int zahlenarray2[] = {3, 24, 35, 6, 15};

        printf("\n\nVorher:\n");

        printf("%d\n", zahlenarray2[0]);
        printf("%d\n", zahlenarray2[1]);
        printf("%d\n", zahlenarray2[2]);
        printf("%d\n", zahlenarray2[3]);
        printf("%d\n", zahlenarray2[4]);

        MergeSort(zahlenarray2, 5);
        printf(" \n\n- - - - Sortierung mit MergeSort - - - - -\n\n\nNachher:\n");

        printf("%d\n", zahlenarray2[0]);
        printf("%d\n", zahlenarray2[1]);
        printf("%d\n", zahlenarray2[2]);
        printf("%d\n", zahlenarray2[3]);
        printf("%d\n", zahlenarray2[4]);

        return EXIT_SUCCESS;
}
1 2 3 12