jkhsjdhjs

Programm zum Berechnen des Schnittpunktes zweier Geraden

Feb 16th, 2013
288
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 6.72 KB | None | 0 0
  1. // 2 Geraden Schnittpunkt Rechn.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
  2. //
  3.  
  4. #include "stdafx.h"
  5. #include <conio.h>
  6. #include <iostream>
  7. #include <limits>
  8.  
  9. using namespace std;
  10.  
  11. float X11, Y11, X21, Y21, X12, Y12, X22, Y22, m1, b1, m2, b2, x, y, parallelcheck, b3, b4;
  12. char ant;
  13.  
  14.  
  15. int _tmain(int argc, _TCHAR* argv[])
  16. {
  17. punkt3:
  18.     cout<<"Dies ist ein Programm zur Berechnung des Schnittpunktes zweier Geraden!"<<endl;
  19.     cout<<"-----------------------------------------------------------------------"<<endl;
  20. punkt1:
  21.     cout<<""<<endl;
  22.     cout<<""<<endl;
  23.     cout<<"Geben Sie die X Koordinate des ERSTEN Punktes der ERSTEN Gerade ein: ";
  24.     while( !(cin >> X11) ) {
  25.         cin.clear();
  26.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  27.         cout<<""<<endl;
  28.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  29.         cout<<"Geben Sie die X Koordinate des ERSTEN Punktes der ERSTEN Gerade ein: ";
  30.     }
  31.     cin.get();
  32.     cout<<""<<endl;
  33.     cout<<"Geben Sie die Y Koordinate des ERSTEN Punktes der ERSTEN Gerade ein: ";
  34.     while( !(cin >> Y11) ) {
  35.         cin.clear();
  36.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  37.         cout<<""<<endl;
  38.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  39.         cout<<"Geben Sie die Y Koordinate des ERSTEN Punktes der ERSTEN Gerade ein: ";
  40.     }
  41.     cin.get();
  42.     cout<<""<<endl;
  43.     cout<<"Geben Sie die X Koordinate des ZWEITEN Punktes der ERSTEN Gerade ein: ";
  44.     while( !(cin >> X21) ) {
  45.         cin.clear();
  46.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  47.         cout<<""<<endl;
  48.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  49.         cout<<"Geben Sie die X Koordinate des ZWEITEN Punktes der ERSTEN Gerade ein: ";
  50.     }
  51.     cin.get();
  52.     cout<<""<<endl;
  53.     cout<<"Geben Sie die Y Koordinate des ZWEITEN Punktes der ERSTEN Gerade ein: ";
  54.     while( !(cin >> Y21) ) {
  55.         cin.clear();
  56.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  57.         cout<<""<<endl;
  58.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  59.         cout<<"Geben Sie die Y Koordinate des ZWEITEN Punktes der ERSTEN Gerade ein: ";
  60.     }
  61.     cin.get();
  62.  
  63.     if (X11 == X21 && Y11 == Y21) {
  64.         cout<<""<<endl;
  65.         cout<<"Gerade 1 ist laut den Koordinaten keine Gerade, sondern ein Punkt!"<<endl;
  66.         cout<<"Bitte geben Sie andere Koordinaten fuer Gerade 1 ein!"<<endl;
  67.         cout<<""<<endl;
  68.         cout<<"Druecken Sie eine beliebige Taste zum Fortfahren..."<<endl;
  69.         _getch();
  70.         goto punkt1;
  71.     }
  72.  
  73.     else if (X11 == X21 && Y11 != Y21) {
  74.         cout<<""<<endl;
  75.         cout<<"Gerade 1 verlaeuft laut den Koordinaten senkrecht!"<<endl;
  76.         cout<<"Daher ist keine Funktionsgleichung berechenbar!"<<endl;
  77.         cout<<"Bitte geben Sie andere Koordinaten fuer Gerade 1 ein!"<<endl;
  78.         cout<<""<<endl;
  79.         cout<<"Druecken Sie eine beliebige Taste zum Fortfahren..."<<endl;
  80.         _getch();
  81.         goto punkt1;
  82.     }
  83.  
  84. punkt2:
  85.     cout<<""<<endl;
  86.     cout<<""<<endl;
  87.     cout<<"Geben Sie die X Koordinate des ERSTEN Punktes der ZWEITEN Gerade ein: ";
  88.     while( !(cin >> X12) ) {
  89.         cin.clear();
  90.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  91.         cout<<""<<endl;
  92.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  93.         cout<<"Geben Sie die X Koordinate des ERSTEN Punktes der ZWEITEN Gerade ein: ";
  94.     }
  95.     cin.get();
  96.     cout<<""<<endl;
  97.     cout<<"Geben Sie die Y Koordinate des ERSTEN Punktes der ZWEITEN Gerade ein: ";
  98.     while( !(cin >> Y12) ) {
  99.         cin.clear();
  100.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  101.         cout<<""<<endl;
  102.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  103.         cout<<"Geben Sie die Y Koordinate des ERSTEN Punktes der ZWEITEN Gerade ein: ";
  104.     }
  105.     cin.get();
  106.     cout<<""<<endl;
  107.     cout<<"Geben Sie die X Koordinate des ZWEITEN Punktes der ZWEITEN Gerade ein: ";
  108.     while( !(cin >> X22) ) {
  109.         cin.clear();
  110.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  111.         cout<<""<<endl;
  112.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  113.         cout<<"Geben Sie die X Koordinate des ZWEITEN Punktes der ZWEITEN Gerade ein: ";
  114.     }
  115.     cin.get();
  116.     cout<<""<<endl;
  117.     cout<<"Geben Sie die Y Koordinate des ZWEITEN Punktes der ZWEITEN Gerade ein: ";
  118.     while( !(cin >> Y22) ) {
  119.         cin.clear();
  120.         cin.ignore(numeric_limits<streamsize>::max(), '\n');
  121.         cout<<""<<endl;
  122.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  123.         cout<<"Geben Sie die Y Koordinate des ZWEITEN Punktes der ZWEITEN Gerade ein: ";
  124.     }
  125.     cin.get();
  126.  
  127.     m1 = (Y21-Y11)/(X21-X11);
  128.     b1 = Y11-(m1*X11);
  129.     m2 = (Y22-Y12)/(X22-X12);
  130.     b2 = Y12-(m2*X12);
  131.     x = (b2-b1)/(m1-m2);
  132.     y = (m1*x)+b1;
  133.     parallelcheck = m1-m2;
  134.     b3 = b1*(-1);
  135.     b4 = b2*(-1);
  136.  
  137.     if (X12 == X22 && Y12 == Y22) {
  138.         cout<<""<<endl;
  139.         cout<<"Gerade 2 ist laut den Koordinaten keine Gerade, sondern ein Punkt!"<<endl;
  140.         cout<<"Bitte geben Sie andere Koordinaten fuer Gerade 2 ein!"<<endl;
  141.         cout<<""<<endl;
  142.         cout<<"Druecken Sie eine beliebige Taste zum Fortfahren..."<<endl;
  143.         _getch();
  144.         goto punkt2;
  145.     }
  146.  
  147.     else if (X12 == X22 && Y12 != Y22) {
  148.         cout<<""<<endl;
  149.         cout<<"Gerade 2 verlaeuft laut den Koordinaten senkrecht!"<<endl;
  150.         cout<<"Daher ist keine Funktionsgleichung berechenbar!"<<endl;
  151.         cout<<"Bitte geben Sie andere Koordinaten fuer Gerade 2 ein!"<<endl;
  152.         cout<<""<<endl;
  153.         cout<<"Druecken Sie eine beliebige Taste zum Fortfahren..."<<endl;
  154.         _getch();
  155.         goto punkt2;
  156.     }
  157.  
  158.  
  159.     cout<<""<<endl;
  160.     cout<<""<<endl;
  161.     cout<<"Die Funktionsgleichung der ersten Gerade lautet:"<<endl;
  162.  
  163.     cout<<"y = "<<m1<<" * x";
  164.     if (b1 > 0) {
  165.         cout<<" + "<<b1;
  166.     }
  167.     else if (b1 < 0) {
  168.         cout<<" - "<<b3;
  169.     }
  170.     cout<<'\n';
  171.  
  172.     cout<<""<<endl;
  173.     cout<<"Die Funktionsgleichung der zweiten Gerade lautet:"<<endl;
  174.  
  175.     cout<<"y = "<<m2<<" * x";
  176.     if (b2 > 0) {
  177.         cout<<" + "<<b2;
  178.     }
  179.     else if (b2 < 0) {
  180.         cout<<" - "<<b4;
  181.     }
  182.     cout<<'\n';
  183.     cout<<""<<endl;
  184.  
  185.     if (parallelcheck == 0) {
  186.         cout<<"Die beiden Geraden verlaufen parallel zueinander!"<<endl;
  187.         cout<<"Deshalb haben sie keinen Schnittpunkt."<<endl;
  188.     }
  189.  
  190.     else {
  191.         cout<<"Die Geraden treffen sich im Punkt S("<<x<<"|"<<y<<")."<<endl;
  192.     }
  193.  
  194.     cout<<""<<endl;
  195.     cout<<""<<endl;
  196.     cout<<"Moechten Sie das Programm wiederholen?"<<endl;
  197.     cout<<"Fuer Ja geben Sie bitte ein j ein und fuer Nein ein n!"<<endl;
  198. punkt4:
  199.     cout<<"Programmwiederholung?: ";
  200.     cin>>ant;
  201.     cout<<""<<endl;
  202.    
  203.     if (ant == 'j' || ant == 'J') {
  204.         cout<<""<<endl;
  205.         cout<<"--------------------------------------------------------------------------------"<<endl;
  206.         cout<<""<<endl;
  207.         cout<<""<<endl;
  208.         cout<<""<<endl;
  209.         goto punkt3;
  210.     }
  211.  
  212.     else if (ant == 'n' || ant == 'N') {
  213.         cout<<""<<endl;
  214.     }
  215.  
  216.     else {
  217.         cout<<"Bitte wiederholen Sie Ihre Eingabe!"<<endl;
  218.         goto punkt4;
  219.     }
  220.  
  221.     cout<<"Druecken Sie eine beliebige Taste um das Programm zu beenden..."<<endl;
  222.     _getch();
  223.     return 0;
  224. }
Advertisement
Add Comment
Please, Sign In to add comment