Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define grenze 0.001 /*grenze weil..... ungenauigkeit*/
- #include <stdio.h>
- #include <math.h>
- #include <ctype.h>
- #include "fhswf_service.h"
- int main(void)
- {
- /* Restart Variablen deklaration*/
- char restart[2];
- /* Restart Schleife skrt*/
- do
- {
- float x = 0.0, y = 0.0, v = 0.0, w = 0.0, y_neu = 0.0, x_neu = 0.0, flaeche_neu = 0.0, flaeche_alt = 0.0, flaeche_max = 0.0, dx = 0.0, dx_kontrolle = 0.0, m = 0.0, b = 0.0, punkt_x = 0.0, punkt_y = 0.0;
- int index = 0, scancheck = 0;
- printf("Programm zur Berechnung von rausgebrochenen Glasstuecken. Eingabe in Metern.\n");
- do
- {
- printf("\n\t Bitte geben sie die Breite ein: ");
- scancheck = scanf("%f", &x);
- tastaturpuffer_leeren();
- } while (x <= 0 || !scancheck);
- do
- {
- printf("\n\t Bitte geben sie die Hoehe ein: ");
- scancheck = scanf("%f", &y);
- tastaturpuffer_leeren();
- } while (y <= 0 || !scancheck);
- do
- {
- printf("\n\t Bitte geben sie die abgebrochene Breite ein: ");
- scancheck = scanf("%f", &v);
- tastaturpuffer_leeren();
- } while (v <= 0 || v >= x || !scancheck);
- do
- {
- printf("\n\t Bitte geben sie die abgebrochene Hoehe ein: ");
- scancheck = scanf("%f", &w);
- tastaturpuffer_leeren();
- } while(w <= 0 || w >= y || !scancheck);
- dx_kontrolle = sqrt((pow(v, 2.0) + pow(w, 2.0))); // pythagoras weil wenn dx groesser als die hypotenuse von v und w ist, geht die logik dahinter nicht auf
- do
- {
- printf("\n\t Bitte geben sie die Schrittweite fuer die Genauigkeit ein: ");
- scancheck = scanf("%f", &dx);
- tastaturpuffer_leeren();
- } while (dx <= 0 || dx >= dx_kontrolle || !scancheck);
- m = w / v;
- b = y - w;
- for (index = 0; index*dx <= v; index++)
- {
- x_neu = x - index*dx;
- y_neu = m * (index*dx) + b;
- flaeche_neu = y_neu * x_neu;
- if (flaeche_neu > flaeche_alt)
- {
- flaeche_max = flaeche_neu;
- punkt_x = (dx*index);
- punkt_y = y_neu;
- }
- flaeche_alt = flaeche_neu;
- }
- printf("\n\n\tDie Maximale Flaeche betraegt: %.2fm^2.\n\tDiese liegt bei dem Punkt ( %.2fm | %.2fm ).", flaeche_max, punkt_x, punkt_y);
- printf("\n\nFertig. Moechten Sie das Programm neu starten? J/N\n");
- scanf("%c", restart);
- tastaturpuffer_leeren();
- restart[0] = toupper(restart[0]);
- } while (restart[0] == 'J');
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement