Advertisement
Guest User

Untitled

a guest
Nov 20th, 2017
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #define grenze 0.001 /*grenze weil..... ungenauigkeit*/
  3.  
  4. #include <stdio.h>
  5. #include <math.h>
  6. #include <ctype.h>
  7. #include "fhswf_service.h"
  8.  
  9. int main(void)
  10. {
  11. /* Restart Variablen deklaration*/
  12. char restart[2];
  13. /* Restart Schleife skrt*/
  14. do
  15. {
  16. 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;
  17. int index = 0, scancheck = 0;
  18.  
  19. printf("Programm zur Berechnung von rausgebrochenen Glasstuecken. Eingabe in Metern.\n");
  20. do
  21. {
  22. printf("\n\t Bitte geben sie die Breite ein: ");
  23. scancheck = scanf("%f", &x);
  24. tastaturpuffer_leeren();
  25. } while (x <= 0 || !scancheck);
  26.  
  27. do
  28. {
  29. printf("\n\t Bitte geben sie die Hoehe ein: ");
  30. scancheck = scanf("%f", &y);
  31. tastaturpuffer_leeren();
  32. } while (y <= 0 || !scancheck);
  33.  
  34. do
  35. {
  36. printf("\n\t Bitte geben sie die abgebrochene Breite ein: ");
  37. scancheck = scanf("%f", &v);
  38. tastaturpuffer_leeren();
  39. } while (v <= 0 || v >= x || !scancheck);
  40.  
  41. do
  42. {
  43. printf("\n\t Bitte geben sie die abgebrochene Hoehe ein: ");
  44. scancheck = scanf("%f", &w);
  45. tastaturpuffer_leeren();
  46. } while(w <= 0 || w >= y || !scancheck);
  47.  
  48. 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
  49.  
  50. do
  51. {
  52. printf("\n\t Bitte geben sie die Schrittweite fuer die Genauigkeit ein: ");
  53. scancheck = scanf("%f", &dx);
  54. tastaturpuffer_leeren();
  55. } while (dx <= 0 || dx >= dx_kontrolle || !scancheck);
  56.  
  57. m = w / v;
  58. b = y - w;
  59.  
  60. for (index = 0; index*dx <= v; index++)
  61. {
  62. x_neu = x - index*dx;
  63.  
  64. y_neu = m * (index*dx) + b;
  65.  
  66. flaeche_neu = y_neu * x_neu;
  67.  
  68. if (flaeche_neu > flaeche_alt)
  69. {
  70. flaeche_max = flaeche_neu;
  71.  
  72. punkt_x = (dx*index);
  73. punkt_y = y_neu;
  74. }
  75.  
  76. flaeche_alt = flaeche_neu;
  77.  
  78. }
  79.  
  80. printf("\n\n\tDie Maximale Flaeche betraegt: %.2fm^2.\n\tDiese liegt bei dem Punkt ( %.2fm | %.2fm ).", flaeche_max, punkt_x, punkt_y);
  81. printf("\n\nFertig. Moechten Sie das Programm neu starten? J/N\n");
  82. scanf("%c", restart);
  83. tastaturpuffer_leeren();
  84.  
  85. restart[0] = toupper(restart[0]);
  86.  
  87. } while (restart[0] == 'J');
  88.  
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement