Einzelnen Beitrag anzeigen
Ungelesen 10.12.11, 17:42   #9
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Zitat:
Zitat von waldfee0071 Beitrag anzeigen
Code:
bool quadrat()
{
if(x2-x1 == x4-x3 && y2-y1 == y4-y3 && diagonale1 == diagonale2)
return true;
else 
return false;
}
Dafür würde ich keine extra Funktion schreiben. Die Kurzform von deinem Code wäre nämlich
Code:
bool quadrat() { return (x2-x1 == x4-x3 && y2-y1 == y4-y3 && diagonale1 == diagonale2); }
Ich habe mal etwas Code zu meinem vorigen Post ergänzt. Getestet habe ich es nicht wirklich, Fehler können also durchaus noch drin sein. Aber ansonsten sollte es so eigentlich funktionieren.
Code:
#include <stdio.h>
#include <Math.h>

int main(){
    bool found = false;
    int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
    double AB, BC, CD, DA;
    
    //Eckunkte einlesen
    printf("Bitte Punkt A in der Form x.y eingeben: ");
    scanf("%d.%d", &Ax, &Ay);
     
    printf("Bitte Punkt B in der Form x.y eingeben: ");
    scanf("%d.%d", &Bx, &By);
    
    printf("Bitte Punkt V in der Form x.y eingeben: ");
    scanf("%d.%d", &Cx, &Cy);
    
    printf("Bitte Punkt D in der Form x.y eingeben: ");
    scanf("%d.%d", &Dx, &Dy);
    
    //Eckpunkte zur Kontrolle nochmal ausgeben
    printf("\nWerte:\n");
    printf("A: x = %d, y = %d\n", Ax, Ay);
    printf("B: x = %d, y = %d\n", Bx, By);
    printf("C: x = %d, y = %d\n", Cx, Cy);
    printf("D: x = %d, y = %d\n", Dx, Dy);
    
    AB = sqrt((Ax - Bx) * (Ax - Bx) + (Ay - By) * (Ay - By));
    BC = sqrt((Bx - Cx) * (Bx - Cx) + (By - Cy) * (By - Cy));
    CD = sqrt((Cx - Dx) * (Cx - Dx) + (Cy - Dy) * (Cy - Dy));
    DA = sqrt((Dx - Ax) * (Dx - Ax) + (Dy - Ay) * (Dy - Ay));
    
    if (AB == BC && AB == CD && AB == DA) {                                            //alle 4 Seiten sind gleich lang
        found = true;
        if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Rhombus!");         //da kein rechter Winkel existiert 
        else printf("\nEs handelt sich um ein Quadrat!");                              //da 4 rechte Winkel existieren
    } 
    if (AB == CD && DA == BC) {                                                        //die jeweils gegenüberliegenden Seiten sind gleich lang
        found = true;
        if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Parallelogramm!");  //da kein rechter Winkel existiert 
        else printf("\nEs handelt sich um ein Rechteck!");                             //da 4 rechte Winkel existieren
    }     
    if ((AB == DA && BC == CD) || (AB == BC && CD && DA)) {
        found = true;
        printf("\nEs handelt sich um ein Deltoid!");                                   //da 2x2 oder 4 gleichlange Seiten existieren
    } 
    
    if (!found) printf("\nEs handelt sich um ein allgemeines Viereck!");               //da bis jetzt keine übereinstimmung gefunden wurde
}
Your_Conscience ist offline   Mit Zitat antworten