Beiträge von xxyy

    Hallo Leute,

    danke nochmal und frohes neues Jahr euch!

    Habe etwas rumprobiert, aber so nichts hinbekommen.

    Jetzt habe ich die math.h eingebunden und habe floor wie mdk es gezeigt hat benutzen können.


    Code
    t = (floor(jahr * 365.25) - 620628);
    t =t%7;
    
    
    
    
    printf("%d", t);

    Das Problem ist, wenn ich eingebe...

    2006 -> 0 (ok)
    2007 -> 1 (ok)
    2008 -> 3, müsste 2 sein ?!
    2009 -> 4, müsste 3 sein?
    2010 -> 5
    2011 -> 6

    2012 -> 1


    Also noch stimmt was nicht, oder habe ich was vergessen?

    Danke für die Hinweise!

    @Paulchen
    Danke für den Link.


    In einer Zeile mit modulo nimmt er es nicht an. Also hab ich

    Code
    t = ((jahr * 365.25) - 620628);
    t=t % 7;

    Und das mit dem Abrunden, also für t nehme ich ja den Datentyp float.
    Wenn ich aber dann t an eine integer Variable übergebe, müsste er dann nicht automatisch abrunden?

    Hi Leute,

    ich hoffe ihr habt Weihnachten gut verbracht.

    Ich überlege grad an einem Programm wo man die Jahreszahl eingibt und es gibt mir dann den Wochentag vom 24. Dezember aus.

    Eine Idee habe ich zwar, aber umsetzen kann ich sie nicht.

    Und zwar habe ich mir gedacht die Wochentage in einem array tag[6] mit 7 Plätzen zu speichern.
    Von der eingegebenen Jahreszahl z.B. 2007 subtrahiert man 2006 (denn ich weiß ja dass 2006=Sonntag).

    Die Ausgabe würde dann tag[6+1] lauten und das heisst tag[0]=Montag.
    Wenn man 2008 eingibt, dann tag[6+2]=Dienstag usw...

    Wie aber weisst man einem bestimmten Platz von einem Array einen "string" zu, so dass dieser dann ausgegeben werden kann?

    Oder ist die Idee falsch und man kann es anders/besser machen?

    Mein Code sieht so aus (die Zuweisungen sind offensichtlich falsch)


    Danke fürs Lesen und einen schönen Abend euch noch.

    Ich denke eher ich muss es so machen wie du es eben vorgeschlagen hast. Das passt zur Aufgabenstellung, wo die Funktionen so deklariert sind wie in der .h Datei.
    Und im Script habe ich eine Abbildung mit Feld.h->Feld.c, main.c

    Läuft jetzt einwandfrei. Vielen vielen Dank nochmal für die Mühe!

    Ja ist eleganter.

    Musste nur noch in im case '*' die Adressierung &v2 zu &v1 ändern, weil ja der erste Vektor v1 ist.

    Eigentlich ist es jetzt fertig, aber das mit dem Modul habe ich so gemacht, dass ich in meinem Projektmappen-Explorer in Visual Studio beim Punkt Headerdatei eine neue hinzugefügt habe und dann alles was ich vor main() definiert habe dort rein kopiert.
    Und am Ende in die c Datei #include "vek.h" ergänzt habe.
    Läuft auch so das Programm. Wird das mit einem Modul gemeint?

    hal

    danke, werde es mir mal ausdrucken und anschauen.

    Vevusio

    Danke, jetzt läuft es fast wie ich es mir vorgestellt habe.

    Habe insgesamt:

    Wollte die Ausgabe zuerst nach switch(op) einbringen, aber wegen dem Punktprodukt gehts nicht.
    Auch wegen der Multiplikation mit einem Skalar.

    Habe die Multiplikation mit dem Skalar zunächst als Kommentar, weil bei der Eingabe ja Vektoren eingegeben werden. Und das Skalar ist nur eine Zahl.

    D.h. ich müsste die Abfrage über den Operator zu Beginn machen und in in der switch(op) die Ein -und Ausgabe für jede einzelne Operation rein machen.

    Gibt es vielleicht noch eine andere Möglichkeit?

    Hab grad gemerkt, dass ich auch einen Fehler in der scanf hatte.

    die main() habe ich erst mal für die add gemacht.

    Zum Üben habe ich bisher immer das Tutorial Pronix benutzt, ein Buch noch nicht.
    Das Script vom Prof kann man vergessen, zumindest wenn man es zum ersten Mal macht.

    Hallo Hal,

    danke für deine Anmerkung.

    Habe jetzt insgesamt


    Nun bekomme ich nur ab der scanf einen Fehler

    \vektor.c(41) : error C2065: 'v1': nichtdeklarierter Bezeichner
    \vektor.c(41) : error C2223: Der linke Teil von '->y' muss auf eine Struktur/Union zeigen
    \vektor.c(41) : error C2223: Der linke Teil von '->z' muss auf eine Struktur/Union zeigen
    \vektor.c(44) : error C2065: 'v2': nichtdeklarierter Bezeichner
    \vektor.c(44) : error C2223: Der linke Teil von '->y' muss auf eine Struktur/Union zeigen
    \vektor.c(44) : error C2223: Der linke Teil von '->z' muss auf eine Struktur/Union zeigen
    \vektor.c(46) : error C2198: "printVector": Nicht genügend Argumente für Aufruf.

    Danke!!!

    ich wollte es jetzt erst mal einfach mit der Addition laufen lassen und es kommen paar Fehler.
    So sieht es aus:


    Fehler

    printVektor gibt das Ergebnis aus oder? Wenn ja, woher soll er wissen, dass "v" zu "result.x, result.y, result.z" gehört?

    Vevusio

    Zuerst mal danke für die Erklärungen.

    Wir programmieren das in C
    C++ hab ich noch nie gemacht, deshalb schwer die Sachen im Internet zu unterscheiden.

    Muss leider so gemacht werden wie in der Aufgabenstellung.

    1. Stimmt, habe muss float/double dot heissen und nicht Vector dot. Das hat er mittlerweile korrigiert. Also:

    double dot( const Vector *v1, const Vector *v2 );


    sauzachn

    Ist leider in C. Im Internet habe ich auch gesucht, nur habe ich bisher Beispiele in C++ gefunden.
    Für mich ist es dann vor allem schwer, weil ich noch die in Zusammenhang von einer Moduldatei programmiert habe..also wo ich selber eine machen musste.

    Hallo Blackie,

    danke für den Tipp.
    Die Rechenregeln sind mir soweit bekannt.

    Wieso heisst es bei der Multiplikation
    Vector mult( double value, const Vector *v2 );
    und nicht
    Vector mult( const Vector *v1, const Vector *v2 );
    ??

    Und was ist dann
    Vector dot( const Vector *v1, const Vector *v2 );
    ?

    Oder hat er die beiden verwechselt? Unter Vector dot verstehe ich eigentlich die Multiplikation mit einem Skalar.

    Aber das ist nicht das Hauptproblem.
    Sondern wie macht man dann die Eingabe Ausgabe?

    Und was kommt in das Modul scalar.h und was in scalar.c ?

    Ich kann mir vorstellen, dass es nicht wirklich schwer ist, aber ich habe noch nie auf die Art mit Pointer usw. zu tun gehabt. Im Internet finde ich auch nichts hilfreiches.

    Und wie sehen aus...

    Vector set( double vec[3] );
    void printVector( const Vector * v )
    ?

    Etwa so ?

    Hi Leute,

    ich habe mal wieder ein Problem bzw. brauche Hilfe.
    Diesmal weiß ich gar nicht weiter.
    Habe im Internet nach plausiblen Beispielen gesucht, aber nichts hilfreiches gefunden.


    ich seh schon...da kommt einiges auf mich zu..

    Vielen Dank fürs Lesen wie immer!!

    Ah, das hab ich ganz übersehen/verpeilt...

    Jetzt bekomm ich aber egal was ich eingebe
    -1851192085.......00000000 -18511920....00000000i raus.


    EDIT:

    Habe die Variablen x,y ganz oben mit float definiert und jetzt geht alles super!


    Danke euch allen nochmal!

    Danke für die Antwort!

    Also habe jetzt für die Addition insgesamt

    Kompilieren ohne Fehler.
    Aber als Ergebnis bekomm ich immer 0.00000 0.00000i
    Warum?

    Ja stimmt.
    Hab draus Complex z1, z2; gemacht.

    Bekomme dann die Fehlermeldung:
    Complex': nichtdeklarierter Bezeichner
    Fehlendes ';' vor Bezeichner 'z1'
    'z1': nichtdeklarierter Bezeichner

    Das macht mich echt wahnsinnig. Hab zwar ein Beispielprogramm in C++ was mir das alles rechnet, aber es ist eben nicht in C...

    Danke für eure Antworten...

    die main() hab ich jetzt so:

    Aber bekomme den Fehler

    Der linke Teil von '.x' muss eine Struktur/Union sein
    Der linke Teil von '.y' muss eine Struktur/Union sein

    Ja ist in C. Den Imaginärteil und Realteil werde ich noch umbenennen. Hast recht.