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 *
#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 */
=======
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();
}
/* 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();
}
/* 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);
}
/* 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() ;
}
/* 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() ;
}
/* 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') ;
}
/* 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();
}
/* 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();
}
/* 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();
}
/* 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();
}
/* 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 ( ) ;
}
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;
}
}