C- Quelltexte 2

http://www.sirius-net.de
 
 

/* Celsius.c */ *

/* VOLUM2.C *

/* Arrays01.c */ *

/* ASCII-T3.C */ *

/* keycode.c */ *

/* keycode.c */ *

/* ZahlenB.c */ *

/* pointer1.c */ *

/* pointer3.c */ *

/* pointer4.c */ *

/* pointer5.c */ *

/* string03.c */ *

/* ary2.c *







/* Celsius.c */

/* Rechnet Fahrenheit nach Celsius um */

#include <stdio.h>
#include <conio.h>
#include <math.h>

void main ()

{

double c, f ;

printf("\33[2J\n") ;

printf("Umrechnung von °Fahrenheit in °Celsius\n") ;

printf("------------------------------------\n") ;

printf("\nBitte geben sie Gradzahl in Fahrenheit ein : ") ;

scanf("%lf", &f) ;

c = 5.0 / 9 * (f - 32) ;

printf("Die ensprechende Gradzahl in Celsius ist: %6.2lf° C\n\n", c) ;

printf("\nbeliebige Taste drücken\n") ;

getch ( ) ;

fflush(stdin) ; /* Tatstaturpuffer löschen */

}
 
 

/* VOLUM2.C

=======

Programm zur Demonstration der Unterprogrammtechnik.

        */

        #include <stdio.h>

        #include <conio.h>

        #include <stdlib.h>

        #include <math.h>

        void cls(void);

        double pi(void);

        double kugel(double);

        double quader(double,double,double);

        double zylinder(double,double);

        double pyramide(double,double);

        void einaus(int);

        void menu(void);

        double kegel (double, double) ;

        #define RETURN 13

/* ------------------------------------------------------- */

        void cls(void)

        {

        printf("\033[2J");

        }

/* ------------------------------------------------------- */

        double pi(void)

        {

        return 4.0*atan(1.0);

        }

/* ------------------------------------------------------- */

        double kugel(double r)

        {

        return 4.0/3.0*pow(r,3.0)*pi();

        }

/* ------------------------------------------------------- */

        double quader(double x,double y,double z)

        {

        return x*y*z;

}

/* ------------------------------------------------------- */

        double zylinder(double r,double h)

        {

        return r*r*pi()*h;

        }

/* ------------------------------------------------------- */

        double pyramide(double a,double h)

        {

        return 1.0/3.0*a*a*h;

        }

/* ------------------------------------------------------- */

        double kegel (double r,double h)

        {

        return 1.0/3.0*r*r*pi()*h;

        }

/* ------------------------------------------------------- */

        void einaus(int n)

        {

        double a,b,c,r,h; int i;

        cls();

        switch (n)

        {

        case '1' : puts("Kugelvolumen berechnen :\n");

        printf("Bitte Radius eingeben -> ");

        scanf("%lf",&r);

        fflush(stdin);

        printf("\nKugelvolumen : %15.3lf\n",kugel(r));

        break;

        case '2' : puts("Quadervolumen berechnen :\n");

        printf("Bitte 1. Seite eingeben -> ");

        scanf("%lf",&a);

        fflush(stdin);

        printf("Bitte 2. Seite eingeben -> ");

        scanf("%lf",&b);

        fflush(stdin);

        printf("Bitte 3. Seite eingeben -> ");

        scanf("%lf",&c);

        fflush(stdin);

        printf("\nQuadervolumen : %15.3lf\n",quader(a,b,c));

        break;

        case '3' : puts("Zylindervolumen berechnen :\n");

        printf("Bitte Radius eingeben -> ");

        scanf("%lf",&r);

        fflush(stdin);

        printf("Bitte Höhe eingeben -> ");

        scanf("%lf",&h);

        fflush(stdin);

        printf("\nZylindervolumen : %15.3lf\n",zylinder(r,h));

        break;

        case '4' : puts("Pyramidenvolumen berechnen :\n");

        printf("Bitte Grundseite eingeben -> ");

        scanf("%lf",&a);

        fflush(stdin);

        printf("Bitte Höhe eingeben -> ");

        scanf("%lf",&h);

        fflush(stdin);

        printf("\nPyramidenvolumen : %15.3lf\n",pyramide(a,h));

        break;

        case '5': puts("Kegelvolumen berechnen :\n");

        printf("Bitte Radius der Grundfläche eingeben -> ");

        scanf("%lf", &a);

        fflush (stdin) ;

        printf("\nBitte Höhe des Kegels eingeben -> ") ;

        scanf("%lf", &h) ;

        fflush (stdin) ;

        printf("Kegelvolumen : %15.3lf\n", kegel(a,h));

        break ;

        }

        printf("\n\nWeiter mit [RETURN] ");

        do

        i=getch();

        while (i != RETURN);

        }

/* ------------------------------------------------------- */

        void menu(void)

        {

        int i;

        cls();

        printf("\n\t\tProgramm zur Volumenberechnung\n");

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

        printf("\n\t\t 1 ..... Kugel \n");

        printf("\n\t\t 2 ..... Quader \n");

        printf("\n\t\t 3 ..... Zylinder \n");

        printf("\n\t\t 4 ..... Pyramide \n");

        printf("\n\t\t 5 ..... Kegel \n\n");

        printf("\n\t\t 0 ..... ENDE \n\n");

        printf("\n\t\t Bitte wõhlen -> ");

        do

        i=getch();

        while(i<'0' || i>'5');

        putchar(i);

        switch(i)

        {

        case '1' :

        case '2' :

        case '3' :

        case '4' :

        case '5' : einaus(i);

        break;

        case '0' : cls();

        exit(0);

        }

        }

/* ------------------------------------------------------- */

        void main()

        {

        for(;;) menu();

        }
 
 

/* Arrays01.c */

/* Array - Übungen */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        void main()

        {

        int f[5],i,max,min,s;

        double d;

        clrscr();

        for(i=0;i<5;i++)

        {

        printf("%d - ter Wert -->",i+1);

        scanf("%d",&f[i]);

        fflush(stdin);

        }

/* Gibt die eingegebenen Werte am Bildschirm aus */

        for(i=0;i<5;i++) printf("%8d",f[i]);

/* läuft alle Elemente des Array durch */

        for(max=0, i=0, s=0; i<5; i++)

        {

/* prüft die Elemente im Array und weist gegebenenfalls max zu */

        if(max<f[i]) max=f[i];

/* Bildet eine Summe aus den Elementen */

        s = s + f[i];

        }

/* läuft wieder alle Elemente durch */

        for(min=max, i=0 ; i < 5 ; i++)

        {

/* prüft die Elemente im Array und weist gegebenenfalls max zu */

        if(min>f[i]) min=f[i];

        }

        printf("\n*********************************************\n") ;

        printf("\n%10d ist die größte eingegebene Zahl!\n",max);

        printf("\n\n%10d ist die kleinste eingegebene Zahl!\n",min);

        printf("\n\n%10.1lf ist der Zentralwert!\n",(double)(min+max)/2);

        printf("\n\n%10d ist die Summe der Werte!\n",s);

        printf("\n\n%10.2lf ist der Durchschnitt der Werte!\n", (double) s/i) ;

        printf("\n...press any key...\n");

        getch();

        }
 
 

/* ASCII-T3.C */

/* Ausgabe der ASCII-Tabelle am Bildschirm */

/* einschließlich Binärcode */

        #include <stdio.h>

        #include <conio.h>

        void main ( )

        {

        int c, n; /* Ausgabe der Dezimalzahl */

        printf("\033[2J") ;

        printf("ASCII - Tabelle\n") ;

        printf("===============\n\n") ;

        printf("PIC OCT DEC HEX Binaer\n") ;

        printf("-------------------------------------\n") ;

        for (c = 0 ; c <= 255 ; c++)

        {

        if (c <= 23 )

        {

        printf (" %3o %3d %2x " , c, c, c) ;

        for (n=0 ; n<8 ; n++)

        c & 128 >> n ? putchar ('1') : putchar ('0') ;

        putchar ('\n') ;

        }

        else

        {

        printf("%2c %3o %3d %2x " , c, c, c, c ) ;

        for( n=0 ; n<8 ; n++)

        c & 128 >> n ? putchar ('1') : putchar ('0') ;

        putchar ('\n') ;

        }

        if ( c%18 == 0)

        {

        printf("\n...beliebige Taste...\n\n") ;

        getch ( ) ;

        }

        }

        printf("\nEs wurden am Bildschirm %d Zeilen der ASCII-Tabelle
                ausgegeben\n",c);

        }
 
 

/* keycode.c */

/* Berechnet 4-stelligen Buchstabencode */

/* nach definierten Bedingungen */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        void main()

        {

        int a, b, c, d, i, bed0, bed1;

        long n;

        printf("\033[2J") ;

        n = 0 ;

        for(a='A';a <= 'Z';a++)

        {

        for(b='A';b <= 'Z';b++)

        {

        for(c='A';c <= 'Z';c++)

        {

        for(d='A';d < 'Z';d++)

        {

        if(a <= c) bed0=-(a-c); else bed0 = a-c ;

        if(b <= d) bed1=-(b-d); else bed1 = b-d ;

        if (bed0 >= 2 && bed0 <= 5 && bed1 >= 6 && bed1 <= 8)

        {

        printf("%c%c%c%c ",a,b,c,d);

        n++;

        if(n % 8 == 0) printf("\n");

        /*

        if(n % 160 == 0)

        {

        printf("\n");

        puts("... weiter mit Taste ...");

        getch();

        }

        }

        }

        }

        }

        }

        printf("\n\n%ld Kombinationen gefunden\n",n) ;

        printf("Weiter mit einer Taste...") ;

        getch() ;

        }

 

        /* keycode.c */

/* Berechnet 4-stelligen Buchstabencode */

/* nach definierten Bedingungen */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        void main()

        {

        int a, b, c, d, i, bed0, bed1, bed2, bed3 ;

        long n;

        printf("\033[2J") ;

        n = 0 ;

        for(a='A';a <= 'Z';a++)

        {

        for(b='A';b <= 'Z';b++)

        {

        for(c='A';c <= 'Z';c++)

        {

        for(d='A';d < 'Z';d++)

        {

        if(a <= c) bed0=-(a-c); else bed0 = a-c ;

        if(b <= d) bed1=-(b-d); else bed1 = b-d ;

        if(a <= d) bed2=-(a-d); else bed2 = a-d ;

        if(b <= c) bed3=-(b-c); else bed2 = b-c ;

        if (bed0 >= 4 && bed0 < 5 && bed1 > 7 && bed1 <= 8 && bed2 == 4 && bed3 == 3)
 
        {

        printf("%c%c%c%c ",a,b,c,d);

        n++;

        if(n % 8 == 0) printf("\n");

        /*

        if(n % 160 == 0)

        {

        printf("\n");

        puts("... weiter mit Taste ...");

        getch();

        }

*/

        }

        }

        }

        }

        }

        printf("\n\n%ld Kombinationen gefunden\n",n) ;

        printf("Weiter mit einer Taste...") ;

        getch() ;

        }

 

/* ZahlenB.c */

/* Berechnet die Menge der Zahlen in einem angeforderten Bereich */

        #include <stdio.h>

        #include <conio.h>

        void main ( )

        {

        int u ; /* Variable für Untergrenze */

        int o ; /* */

        int i ;

        int sum ;

        do

        {

        printf("\033[2J") ;

        printf("2 verschiedene Zahlen eingeben als Unter- und Obergrenze\n\n") ;

        printf("Untergrenze -> \n") ;

        scanf("%d", &u) ;

        printf("Obergrenze -> \n") ;

        scanf("%d", &o) ;

        if (u > o )

        {

        printf("Ober- und Untergrenze waren zwar vertauscht,\n") ;

        printf("aber ich kriege es trotzdem hin...\n") ;

        i = u ; u = o ; o = i ;

        }

/* Tauschen */

        sum = 0 ;

        for ( i = u ; i <= o ; i++ )

        {

        sum = sum + i ;

        }

        printf("Die Summe der Zahlen in dem Bereich beträgt:\n") ;

        printf("%d\n\n", sum) ;

        printf("Nochmal das Ganze ? (j/n) ") ;

        do

        {

        i = getch () ;

        }

        while (i != 'j' && i != 'J' && i != 'n' && i != 'N') ;

        }

        while (i == 'j' || i == 'J') ;

        }

 

/* pointer1.c */

/* Wandelt kleine in große Buchstaben */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        #include<stdlib.h>

        #include<time.h>

        void main()

        {

        char f[81],*p, i;

        clrscr();

        printf("Bitte einen Satz eingeben (max eine Zeile):\n");

        gets(f);

        for(p=f ; *p ; p++)

        {

        if(*p>='a' && *p<='z') *p = *p-32;

        }

        puts(f);

        printf("...press any key...");

        getch();

        }

 

/* pointer3.c */

/* Schneidet führende TABs und Blanks ab */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        #include<stdlib.h>

        #include<time.h>

        void main()

        {

        char f[81],*p ;

        clrscr() ;

        printf("Bitte einen Satz eingeben (max eine Zeile):\n");

        gets(f);

        for(p=f ; *p==0x20 || *p=='\t' ; p++) ;

        puts(p);

// bewirkt das gleiche: for(;*p;*p++) printf("%c", *p ) ;
 
 

        printf("\n\n...press any key...");

        getch();

        }

 

/* pointer4.c */

/* Vorkommen eines bestimmten Zeichens zählen */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        #include<stdlib.h>

        #include<time.h>

        void main()

        {

        char f[81],*p,z ;

        int i;

        clrscr() ;

        printf("Bitte einen Satz eingeben (max eine Zeile):\n");

        gets(f);

        printf("Bitte ein Zeichen eingeben:\n");

        scanf("%c",&z);

        fflush(stdin);

        for(p=f,i=0 ; *p ; p++)

        {

        if(*p==z) i++;

        }

        printf("%d mal das Zeichen %c gefunden!\n",i,z);

    // bewirkt das gleiche: for(;*p;*p++) printf("%c", *p ) ;
 
 

        printf("\n\n...press any key...");

        getch();

        }
 
 

/* pointer5.c */

/* Austauschen eines bestimmten Zeichens durch ein anderes */

        #include<stdio.h>

        #include<math.h>

        #include<conio.h>

        #include<stdlib.h>

        #include<time.h>

        void main()

        {

        char f[81],*p,z1,z2 ;

        clrscr() ;

        printf("Bitte einen Satz eingeben (max eine Zeile):\n");

        gets(f);

        printf("Bitte das zu ersetzende Zeichen eingeben:\n");

        scanf("%c",&z1);

        fflush(stdin);

        printf("Bitte das Ersatzzeichen eingeben:\n");

        scanf("%c",&z2);

        fflush(stdin);

        for(p=f ; *p ; p++)

        {

        if(*p==z1) *p=z2;

        }

        puts(f);

        printf("\n\n...press any key...");

        getch();

        }
 
 

/* string03.c */

/* Strings als Sonderfall von Arrays über char,
Verarbeitung hier über Pointer.

*/

        #include <stdio.h>

        #include <conio.h>

        void main ( )

        {

        char f1[81], f2[81], *p, *q ;

        int i, j ;

        clrscr ( ) ;

        printf("\n\n1. String eingeben => ") ;

        gets (f1) ;

// Stringlänge ermitteln und ausgeben

        for (p=f1, i=0 ; *p ; i++, p++) ;

        printf("\nDie Länge des eingegebenen Strings ist %d\n", i ) ;

/* String von f1 nach f2 kopieren */

        for (p=f1, q=f2; *p ; *q++ = *p++ ) ; /*Semikolon als Leeranweisung */

// Abschluß-Null des Strings nachtragen

        *q = 0x0 ;

        printf("\nkopierter String: %s\n", f2) ;

/* ------------------------------------------------ */

        printf("\n\n2. String eingeben => ") ;

        gets (f2) ;

/* String in f2 an f1 anhängen */

        for (p=f1; *p; p++) ; /* Semikolon als Leeranweisung */

        for ( q=f2; *q ; *p++ = *q++) ; /* Semikolon als Leeranweisung */

        *p=0x0 ;

        printf("\nVerketteter String: %s ==> ", f1) ;

// String rückwärts ausgeben

        for (--p; p >= f1; p--)

        putchar (*p) ;

        putchar ('\n') ;

        printf("\n\n...beliebige Taste...\n\n") ;

        getch ( ) ;

        }

 

/* ary2.c

Array-Beispiel:

Ermittlung von 4 eindeutigen Werten im Bereich [0...5]

mit Hilfe des Zufallsgenerators.

*/

        #include <stdio.h>

        #include <conio.h>

        #include <stdlib.h>

        #include <time.h>

        void main ( )

        {

        int f[4], i, n, z;

        srand (time(NULL));

        for( ; ; )

        {

        for(i=0; i<4; )

        {

        z=rand ( ) % 6;

        for (n=0; n<i; n++)

        if (f[n] == z) break;

        if(n>=i) f[i++] = z;

        }

        printf("4 Zufallswerte [0...5] -> ") ;

        for (i=0; i<4; i++) printf("%2d", f[i]) ;

        printf("\n");

        printf("Abbruch mit [ESC]\n") ;

        z=getch ( );

        if(z==27) break;

        }

        }