myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Brauche Hilfe bei meiner Aufgabe (in C)

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 09.12.11, 10:43   #1
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard Brauche Hilfe bei meiner Aufgabe (in C)

Hallo^^
ich brauche etwas Hilfe bei meiner Programmier Aufgabe. Ein Beispiel hab ich schon, aber das zweite kapier ich nicht.
Hier ist mal die Angabe:


Es darf nur in C geschrieben werden.
Wir sind bis jetzt noch nicht weiter als bei if/else Anweisungen, und mit den Schleifen haben wir angefangen.

Wäre echt nett wenn mir da wer helfen könnte.

MfG
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 09.12.11, 11:22   #2
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Dann zeig doch mal was du schon hast.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.12.11, 12:19   #3
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Ich hab noch gar nichts. Ich weiss nich mal wo ich anfangen soll.
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 09.12.11, 12:58   #4
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Du musst da einfach systematisch vorgehen. Überleg dir, was du alles brauchst und fang an.
Zu aller erst musst du die Koordinaten der Eckpunkte einlesen. Den Code dafür habe ich dir hier mal geschrieben:
Code:
#include <stdlib.h>
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
    int Ax, Ay, Bx, By, Cx, Cy, Dx, Dy;
    
    //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);

    getch();
}
Besser wäre es hier eigentlich mit einer Struktur zu arbeiten, aber da seid ihr wohl noch nicht.
Als nächsten Schritt musst du dir überlegen, wie du aus 4 gegebenen Punkten herausfinden kannst, um was für ein Objekt es sich handelt.
Dafür hast du ja unter der Aufgabenstellung 2 wertvolle Hinweise.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 09.12.11, 14:47   #5
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Wir sind schon bei den Strukturen, wenn du damit ein Struktogramm meinst. Dass muss ich auch noch machen. Aber wenn ich den Code habe, sollte das Struktogramm kein Problem sein
Achja, wir benutzen noch immer nur #include<stdio.h> und was "using namespace std;" wissen wir auch noch nicht O:
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 09.12.11, 15:03   #6
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Nein ich meine kein Struktogramm ich meine soetwas:
Code:
struct Point {int x, y;} Point[4];
Wenn du "getch();" am Ende entfernst reicht es auch wenn du stdio.h includest und den Rest weg nimmst (auch das "using namespace std;").
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 14:32   #7
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Aber wie soll ich das coden?
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 15:11   #8
waldfee0071
Ist öfter hier
 
Benutzerbild von waldfee0071
 
Registriert seit: Nov 2009
Beiträge: 222
Bedankt: 189
waldfee0071 ist noch neu hier! | 0 Respekt Punkte
Standard

naja, du sucht die die eigenschaften der verschiedenen Körper raus und packst das ganze in if schleifen.
wenns ohne struct funktionieren soll müsste das so ähnlich ausschauen.

Code:
bool quadrat()
{
if(x2-x1 == x4-x3 && y2-y1 == y4-y3 && diagonale1 == diagonale2)
return true;
else 
return false;
}
waldfee0071 ist offline   Mit Zitat antworten
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
Ungelesen 10.12.11, 20:36   #10
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 KanuKkidz Beitrag anzeigen
Der Programmierstil ist allerdings ziemlich unterdurchschnittlich...
Aha und warum bitteschön?
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 21:48   #11
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

1. bei einem so kleinen Programm dürfte das wohl unproblematisch sein
2. hast du schon bei 1. gesagt
3. hast du schon bei 1. gesagt
4. hast du schon bei 1. gesagt
5. + 6. in meinem Code kommt keine quadrat-Funktion vor
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 22:42   #12
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

So Langsam blick ich gar nicht mehr durch O:
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 23:00   #13
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Ich glaube nicht, dass ich eine mittelmäßige Uni besuche oder einen schlechten Programmierstil habe.
Ich bin auch nicht patzig geworden und die Krituk ist unangemessen. Ich habe den Code nur mal kurz nebenbei geschrieben und nichtmal auf Fehler getestet. Da fang ich nicht erst noch an den Code in Methoden auszulagern.

Außerdem hat das hier nicht wirklich was zu suchen und wir sollte es gut sein lassen.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 10.12.11, 23:10   #14
stormwiz2
Anfänger
 
Registriert seit: Aug 2010
Beiträge: 44
Bedankt: 47
stormwiz2 wird langsam von ratten respektiert | 199 Respekt Punktestormwiz2 wird langsam von ratten respektiert | 199 Respekt Punkte
Standard

Bin mir nicht völlig sicher, aber ich glaube, der Check für den Rhombus ist so nicht ganz richtig. Vor allem würde man sich bei einem Koordinatencheck ja irgendwie auf zumindest teilweise achsenparallel liegende Objekte beschränken, was aber so aus der Angabe nicht hervorgeht.

Klarer wäre es meiner Meinung nach, noch zusätzlich AC und BD zu berechnen und den Rhombuscheck über die Länge der Diagonalen zu machen. So sollte man auch schief im Koordinatensystem liegende Quadrate erwischen und nicht fälschlicherweise zu Rhomben degradieren.
stormwiz2 ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 13:25   #15
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

@Your_Conscience du hast im Code
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
}
Einige Fehler drin,
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 13:51   #16
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Welche Fehler sind denn drin?
Also laut Compiler sind keine Fehler dirn, es sollte also höchstens falsch berechnet werden.
Bei den Abfragen um welches Viereck es sich handelt kann ich dir nicht sagen ob es richtig ist, da ich nicht nachgeguckt habe, was die Eigenschaften der jeweiligen Flächen sind.
Das ist halt nur noch das was ich noch so ungefähr aus der Schule weis

Das solltest du allerdings hinbekommen, da es ja jetzt kein programmiertechnisches, sondern nur noch ein mathematisches Problem ist.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 15:16   #17
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Bei mir sind die Fehler alle in den Zeilen 5&35.
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:09   #18
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Dann sag mal, was für einen Comiler du benutzt und welche Fehlermeldung er ausgibt,
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:13   #19
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Comiler? Du meinst doch Compiler oder?
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:15   #20
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Ja genau sry^^
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:33   #21
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Ich nehm den GNU GCC Compiler. Wir sollen auch nur den benutzen O:
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:37   #22
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Und was für eine Fehlermeldung gibt er aus?
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:44   #23
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

5 error: 'bool' undeclared(first use in this function)
5 error: (Each undeclared indentifier is reported only once
5 error: for each function it appears in)
5 error:expected ';' before 'found'
35 error: 'found' undeclared (first use in this function)
35 error: 'true' undeclared (first use in this function)

Das waren alle
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:49   #24
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Include mal stdbool.h.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:50   #25
rabite
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 3
rabite ist noch neu hier! | 0 Respekt Punkte
Standard

Der Fehler liegt also am Boolean der eh nicht notwendig ist, da es else if und else gibt

Bei der Aufgabenstellung werden die Diagonalen ja extra erwaehnt - also sollte man wohl wie stormwiz2 gesagt hat AC und BD berechnen und damit die Art des Vierecks bestimmen -> evtl. einfach mal auf einem Blatt papier aufzeichnen und nachsehen
Ansonsten koennen die x- und y-Koordinaten eigentlich auch double sein und so eingelesen werden
statt dem boolean gibt es auch if,else if und else (hier wird bei einem Quadrat auch Rechteck und Deltoid ausgegeben) und gerade bei einer "Anfaengeraufgabe" kann man ueberlegen statt einem Entscheidungsbaum alle Vierecktypen einzeln abzufragen
Ich bin mir nicht sicher ob man noch pruefen sollte ob es ueberhaupt ein Viereck ist(also maximal 2 Punkte auf einer Geraden liegen)
Ausserdem kann er das auch selbst weitermachen und nur noch bei einzelnen Fehlern nachfragen
rabite ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 16:59   #26
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 rabite Beitrag anzeigen
(hier wird bei einem Quadrat auch Rechteck und Deltoid ausgegeben)
Ein Rechteck kann auch ein Quadrat sein.
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 17:04   #27
rabite
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 3
rabite ist noch neu hier! | 0 Respekt Punkte
Standard

Ein Quadrat ist auch alle anderen Vierecktypen, allerdings soll wohl nur Quadrat ausgegeben werden
Edit: ach ja - es sollte dann beim if, else if und else natuerlich entsprechend sortiert werden
rabite ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 17:14   #28
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Ok wenn das so ist, dann kann man die Abfragen auch so schreiben und die Deklaration von "found" entfernen.
Code:
    if (AB == BC && AB == CD && AB == DA) {                                            
        if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Rhombus!");
        else printf("\nEs handelt sich um ein Quadrat!");
    } 
    else if (AB == CD && DA == BC) {
        if (Ax != Dx || Ay != Cy) printf("\nEs handelt sich um ein Parallelogramm!");
        else printf("\nEs handelt sich um ein Rechteck!");
    } 
    else if ((AB == DA && BC == CD) || (AB == BC && CD && DA)) {
        printf("\nEs handelt sich um ein Deltoid!");
    } else printf("\nEs handelt sich um ein allgemeines Viereck!");
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 11.12.11, 17:27   #29
rabite
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 3
rabite ist noch neu hier! | 0 Respekt Punkte
Standard

Allerdings denke ich, wie gesagt, dass man die Diagonalen und nicht die x- und y-Koordinaten benutzen sollte
Und eventuell um es einfacher zu machen alles einzeln abfragen statt es zu verschachteln
rabite ist offline   Mit Zitat antworten
Ungelesen 13.12.11, 18:56   #30
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Also... ich hab jetzt jemanden aus meiner Klasse gefunden, der das Beispiel geschafft hat O:
Hier ist der Code:
Code:
#include <stdio.h>
int main()
{
    //In diesen beiden Zeilen werden die Variablen deklariert
    double  a, b, c, d, Ax, Ay, Bx, By, Cx, Cy, Dx, Dy, e, f;


    printf("\n");


    //Programmbeschreibung
    printf("Dieses Programm liest die Koordinaten von vier Punkten ein und stellt fest, um  welche Art von Viereck es sich handelt.\n\n");

    //Soll den User bei der Eingabe helfen:
    printf(" Ein Beispiel der Eingabe:\n->> A:    ->> B:    ->> C:    ->> D:\n      x3        x5        x3        x5\n      y3        y5        y3        y5");


    printf("\n");
    printf("\n");
    printf("\n->> A:\n      x");            //Eingabeaufforderung von Ax



    scanf("%lf", &Ax);                          //Ax wird eingelesen
    printf("      y");                          //Eingabeaufforderung von Ay
    scanf("%lf", &Ay);                          //Ay wird eingelesen

    printf("\n->> B:\n      x");                //Eingabeaufforderung von Bx
    scanf("%lf", &Bx);                          //Bx wird eingelesen

    printf("      y");                          //Eingabeaufforderung von By
    scanf("%lf", &By);                          //By wird eingelesen

    printf("\n->> C:\n      x");                //Eingabeaufforderung von Cx
    scanf("%lf", &Cx);                          //Cx wird eingelesen

    printf("      y");                          //Eingabeaufforderung von Cy
    scanf("%lf", &Cy);                          //Cy wird eingelesen

    printf("\n->> D:\n      x");                //Eingabeaufforderung von Dx
    scanf("%lf", &Dx);                          //Dx wird eingelesen

    printf("      y");                          //Eingabeaufforderung von Dy
    scanf("%lf", &Dy);                          //Dy wird eingelesen



    //Berechnungen...

    a = sqrt ((Ax-Bx)*(Ax-Bx) + (Ay-By)*(Ay-By));           //Berechnung von a
    b = sqrt ((Bx-Cx)*(Bx-Cx) + (By-Cy)*(By-Cy));           //Berechnung von b
    c = sqrt ((Cx-Dx)*(Cx-Dx) + (Cy-Dy)*(Cy-Dy));           //Berechnung von c
    d = sqrt ((Dx-Ax)*(Dx-Ax) + (Dy-Ay)*(Dy-Ay));           //Berechnung von d
    e = sqrt (a+b);                                         //Berechnung von e
    f = sqrt (b+c);                                         //Berechnung von f


    printf("\n Es ist ein ...\n...allgemeines Viereck \n");    //Ausgabe der Vierecksart


    if(a == c && b == d && e == f && a != b)                //if-Anweisung für das Rechteck
    {
        printf("\n...Rechteck \n");                            //Ausgabe der Vierecksart
    }


    if(a == b && a == c && a == d && e == f)                //if-Anweisung für das Quadrat
    {
        printf("\n...Quadrat \n");                             //Ausgabe der Vierecksart
    }


    if(a == b == c == d&&e != f)                            //if-Anweisung für den Rhombus
    {
        printf("\n...Rhombus (Raute) \n");                     //Ausgabe der Vierecksart
    }


    if(a == b && c == d && a != c)                          //if-Anweisung für das/den Deltoid
    {
        printf("\n...Deltoid \n");                             //Ausgabe der Vierecksart
    }


    if(a == c && b == d && e != f)                          //if-Anweisung für das Parallelogramm
    {                                                       //Anfang der if-Anweisung
        printf("\n...Parallelogramm \n");                      //Ausgabe der Vierecksart
    }                                                       //Ende der if-Anweisung

    return 0;
}
Jedoch habe ich dabei 4Warnings:
Wie kann ich die beheben?
LikeATroll ist offline   Mit Zitat antworten
Ungelesen 13.12.11, 21:22   #31
rabite
Anfänger
 
Registriert seit: Jan 2011
Beiträge: 16
Bedankt: 3
rabite ist noch neu hier! | 0 Respekt Punkte
Standard

Die ersten beiden in Z50 haetten wohl gerne math.h
Z73 mag das a==b==c==d nicht so ganz(und schlaegt Klammern vor - oder einfach genau so machen wie beim Quadrat)

Ausserdem werden e und f falsch berechnet (besser wie a-d berechnen; ein [fehlerhafter] Pythagoras geht hier nicht - rechte Winkel sind nicht zwingend)

Bei den if-s wird immer "allgemeines Viereck" und der genaue Typ ausgegeben(soweit ich sehe stimmt der Typ) aber ich wuerde "allgemeines Viereck nur ausgeben wenn sonst keiner passt - also nur das erste als if, die anderen als else if und "allgemeines Viereck" in den else Fall -- Alternativ kann man natuerlich alles ausgeben was passt, dann muesste bei einem Quadrat z.B. aber alles ausgegeben werden (hier ist es so wie ich es machen wuerde ausser dem else if und else bei "allgemeines Viereck")
rabite ist offline   Mit Zitat antworten
Ungelesen 14.12.11, 13:48   #32
LikeATroll
Anfänger
 
Registriert seit: Dec 2011
Beiträge: 14
Bedankt: 1
LikeATroll ist noch neu hier! | 0 Respekt Punkte
Standard

Ich kapier ned ganz wie ich das machen soll:
Code:
Bei den if-s wird immer "allgemeines Viereck" und der genaue Typ ausgegeben(soweit ich sehe stimmt der Typ) aber ich wuerde "allgemeines Viereck nur ausgeben wenn sonst keiner passt - also nur das erste als if, die anderen als else if und "allgemeines Viereck" in den else Fall -- Alternativ kann man natuerlich alles ausgeben was passt, dann muesste bei einem Quadrat z.B. aber alles ausgegeben werden (hier ist es so wie ich es machen wuerde ausser dem else if und else bei "allgemeines Viereck")
LikeATroll ist offline   Mit Zitat antworten
Antwort


Forumregeln
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.


Sitemap

().