/*
Programm zur Umrechnung eines Winkels vom Gradmass zum Bogenmass
Rev. 8, (C) Gerhard Eichelsdoerfer
Diese Variante enthaelt
* In Kommentaren Hinweise zu Konstanten, Variablen und Funktionen,
* die Funktion DegToRad
* eine Fehlererkennung, die ein ungeeignetes Zeichen in der
Eingabe-Zeichenkette feststellt.
Fuehrende Whitespaces (z.B. Leerzeichen) werden uebergangen.
* eine Sequenz mit bedingter Uebersetzung zur
Ausgabe zwecks Erkennung von geeigneter und ungeeigneter Eingabe
*/
#include <stdio.h>
/* Definition von Test zur bedingten Uebersetzung */
#define Test
/* Information zum Programm */
#define Message "\nDieses Programm berechnet zu einem im Gradmass (Altgrad)
einzugebenden\nWinkel das Bogenmass.\n"
/* Information ueber eine erwartete Eingabe */
#define InInfo "\nGeben Sie den Winkel im Gradmass ein: "
/* Definition der Kreiszahl Pi */
#define Pi 3.141592654
/* Definition des Zeichens von Line Feed (Zeilenvorschub) */
#define Key_LF 10
/*
Die Funktion DegToRad berechnet zu einem Winkel im Gradmass
den Winkelwert im Bogenmass.
Import: float-Parameter mit Winkelwert im Gradmass
Export: float-Resultat mit Winkelwert im Bogenmass
*/
float DegToRad (float); /* oder z.B. float DegToRad (float Degree); */
int main()
{
/* Variablen fuer die Eingabe und das Resultat */
float Grad, Bogen;
/* Variable fuer das Resultat von scanf */
int gelesen;
/* Pseudovariable zur Fehlererkennung */
char dummy;
/* Informationen zum Programm ausgeben */
printf(Message);
/* Information ueber die erwartete Eingabe ausgeben */
printf(InInfo);
/*
Eingabe einlesen und Variable Grad zuweisen.
Zusaetzlich das Zeichen hinter der umgewandelten float-Zeichenkette
in der Variable dummy ablegen.
*/
gelesen = scanf("%f%c",&Grad,&dummy);
/*
Falls der Bezeichner Test an dieser Stelle definiert ist,
Informationen ueber Anzahl und Werte der umgewandelten Teile ausgeben
*/
#ifdef Test
printf("\n%d Eingabefelder gelesen und abgespeichert:\n",gelesen);
printf("Zahl: %f ; Zeichencode: %d\n",Grad,dummy);
#endif
if (gelesen==2 && dummy==Key_LF)
{/* Eingabe vollstaendig geeignet */
/* Bogenmass berechnen und der Variablen Bogen zuweisen */
Bogen = DegToRad(Grad);
/* Eingabe und Resultat ausgeben */
printf("\n%f° -> %f rad\n", Grad, Bogen);
/* Rueckkehr zum Betriebssystem ohne Fehlercode */
return 0;
}
else
{/* Eingabe nicht vollstaendig geeignet */
/* Fehlermeldung ausgeben */
printf("\nEs ist ein Fehler bei der Eingabe aufgetreten!\n");
/* Rueckkehr zum Betriebssystem mit Fehlercode 1 */
return 1;
}
}
/* Implementation der Funktion DegToRad. */
float DegToRad (float Degree)
{
return Pi/180.0*Degree; /* Bogenmass/Pi = Gradmass/180 */
}