Lernprogramm (Funktionen)

Schnelle objektorientierte, kompilierende Programmiersprache.
Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Lernprogramm (Funktionen)

Beitrag von Xin » So Mai 04, 2014 11:51 am

Lämpi hat geschrieben:die Parameter sind hier is_cos und das angle,mit denen geh ich in meine Funktion,das ist mir klar
das is_cos und das verdammmte rand() gehen mir nicht in den Schädel

wo gibt der Computer mir eigentlich den zufälligen cos oder sin aus?? muss ich das in die gesuchte Funktion schreiben
Naja, wenn Du nichts findest, wo die verlangte Ausgabe stattfindet, wirst Du das wohl übernehmen müssen.
Lämpi hat geschrieben:das is_cos kann nur Null oder Eins sein und das ist dann ein Parameter meiner Funktion,aber was macht der in meiner Funktion get_user_input
Vielleicht ist es hilfreich, wenn Du dem User seine Aufgabe stellst?
Lämpi hat geschrieben:ich werde die Aufgabe nie lösen können
Du hast eine Aufgabe. Du erkennst, dass in dem Programm einige Dinge noch nicht funktionieren. Dein Job ist es das Programm dazu zu bringen, dem User eine Aufgabe zu stellen und eine Abfrage zu stellen.

Fang an zu programmieren und überarbeite das Programm solange bis es tut, was es soll.

Ich bin gleich weg. Ich werde also heute vermutlich nicht mehr antworten können.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 12:07 pm

Naja ich werds versuchen,werd mich wohl damit abfinden müssen dass es ne 5 geben wird

Dir trotzdem vielen Dank,und einen schönen Sonntag,dass deiner schöner ist wie meiner,denn ich bin kurz davor zu kapitullieren

LG

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: Lernprogramm (Funktionen)

Beitrag von Xin » So Mai 04, 2014 12:21 pm

Lämpi hat geschrieben:Naja ich werds versuchen,werd mich wohl damit abfinden müssen dass es ne 5 geben wird

Dir trotzdem vielen Dank,und einen schönen Sonntag,dass deiner schöner ist wie meiner,denn ich bin kurz davor zu kapitullieren
Sorry... Du hast ein klar genanntes Problem und ein Programm, was diese Aufgabe nur teilweise übernimmt.
Ich konnte nicht erkennen, dass Du Dir das Programm mal genommen hast und damit etwas ausprobiert oder gespielt hast. Oder irgendwas versucht hast.
Es kam nichtmals eine Fehlermeldung von einem Compiler, die Du nicht verstanden hast. Das Tutorial hast du nun 2-3 durch und dazu offenbar auch keine Fragen gehabt. Theoretisch alles verstanden, aber nichts davon eigenhändig angepackt, oder?

So leid es mir tut, aber ich habe den Eindruck, dass Du versuchst die Aufgabe 'theoretisch' zu lösen. Schonmal ein Kind gesehen, dass das Problem zu Laufen theoretisch gelöst hat? Die Schwungmassen und Kräfte, die beim Laufen entstehen, berechnet man nachdem man Laufen gelernt hat. Theorie ist schön, aber zum BEGREIFEN, muss man sich auch mal die Finger schmutzig machen.
Oder sich praktisch halt mit einer Fünf zufrieden geben.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 12:33 pm

was soll ich probieren wenn ich überhaupt nicht weiß,was ich schreiben soll in der Funktion,mir fehlt jegliche Idee dazu,ich begreife einfach das is_cos und das rand() nicht, und was in den eckigen Klammer stehen soll

Ich versuche imme das irgendwie zu lösen,meinst du ich sitz gerne jeden Tag um die 10 Stunden dran, um dann nichts rauszubekommen,dass schlägt halt irgendwann aufs Gemüt

Ich will das ja können mich interessiert auch,und bin motiviert es zu lernen aber irgendwann kommt der Punkt wo die Nerven blank liegen,weil man einfach nicht weiß was gewisse Sachen in diesem Programm bedeuten

aber scheiß drauf ,ich probiers jetzt mal zu programmieren,kommt aber eh nur Unsinn raus

Also schönen Sonntag dir

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 2:03 pm

Code: Alles auswählen

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define PI (acos(-1))
#define ACCURACY 1e-4

int get_user_input(int Winkelfunktion, int Winkel){
    float faktor;
    float wurzel;
    int rueckgabe;   
    
    if(Winkelfunktion==1){
        printf("Was ist der Wert der Funktion cos(%i)\n",Winkel);
        rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel);
    }
    else{
         printf("Was ist der Wert der Funktion sin(%i)\n",Winkel);
         rueckgabe=scanf("%fsqrt(%f)",&faktor,&wurzel);
    }
       
    return(rueckgabe);
}
        


int main() {
    double right;
    int correct;
    int angles []={0,30,45,60,90,180,270,360};

    srand(time(NULL));
    int is_cos = rand()%2;
    int angle = angles[rand()];

    if (is_cos==1){
               right=cos(angle/180.*PI);
    } else {
               right=sin(angle/180.*PI);
    }

   correct=fabs(get_user_input(is_cos,angle)/right-1)<=ACCURACY;
   printf("Ihre Antwort war %s!\n",correct ? "richtig" : "falsch");

   return 0;

}
Ich habs mal versucht jetzt,aber ich weiß einfach nicht was in die eckige Klammer noch reingehört bei
int angle = angles[rand()];

und ich weiß nicht ob die Funktion so stimmt,beim Kompilieren kommt kein Fehler doch wenn ich es ausführe kommt

"Buszugriffsfehler (Speicherabzug geschrieben)" was auch immer das Bedeutet

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Lernprogramm (Funktionen)

Beitrag von cloidnerux » So Mai 04, 2014 2:46 pm

Ich habs mal versucht jetzt,aber ich weiß einfach nicht was in die eckige Klammer noch reingehört bei
int angle = angles[rand()];
Hast du dir schon mal überlegt, welche Werte in den eckigen Klammern im Bezug auf die Funktionalität sinn machen?
Hast du dir mal die Dokumentation zu rand() angeschaut:
http://www.cplusplus.com/reference/cstdlib/rand/
"Buszugriffsfehler (Speicherabzug geschrieben)" was auch immer das Bedeutet
In der Regel irgendwelche Fehler mit Pointern

Dann Funktional:

Code: Alles auswählen

 correct=fabs(get_user_input(is_cos,angle)/right-1)<=ACCURACY;
Hier wird der Rückgabewert von get_user_input durch den korrekten Wert geteilt. Wenn noch etwas aus dem Mathematikunterricht hängen geblieben ist, weißt du das x/x = 1 ist. Sobald deine Funktion also den richtigen Wert zurückgegeben hat, der User also den richtigen Winkel eingegeben hat, sollte

Code: Alles auswählen

get_user_input(is_cos,angle)/right
genau 1 sein. 1 minus 1 ist 0, der Absolutwert von 0 ist 0, 0 ist kleiner gleich der Genauigkeit(ACCURACY)
Genauer gesagt wird hier überprüft, ob der Rückgabewert innerhalb der Toleranzgrenze zum richtigen Wert liegt.
Nun spreche ich die ganze Zeit davon, dass hier der Wert, den deine Funktion zurück geben sollte, mit dem "richtigen" Ergebnis verglichen wird, überlege doch mal ob deine Funktion im Moment das zurück gibt, was erwartet wird.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 3:10 pm

also in die eckige Klammer kommt rand()%7, das müsste so stimmen,der Fehler ist jetzt auch weg

aber irgendetwas stimmt mit der Funktion nicht denn wenn ich eigentlich das Richtige eingebe sagt er es sei falsch,tut mir leid aber für mich schaut die Funktion logisch aus wo ich geschrieben habe,wo liegt der Fehler

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Lernprogramm (Funktionen)

Beitrag von cloidnerux » So Mai 04, 2014 3:57 pm

aber irgendetwas stimmt mit der Funktion nicht denn wenn ich eigentlich das Richtige eingebe sagt er es sei falsch,tut mir leid aber für mich schaut die Funktion logisch aus wo ich geschrieben habe,wo liegt der Fehler
cloidnerux hat geschrieben:Dann Funktional:

Code: Alles auswählen

correct=fabs(get_user_input(is_cos,angle)/right-1)<=ACCURACY;
Hier wird der Rückgabewert von get_user_input durch den korrekten Wert geteilt. Wenn noch etwas aus dem Mathematikunterricht hängen geblieben ist, weißt du das x/x = 1 ist. Sobald deine Funktion also den richtigen Wert zurückgegeben hat, der User also den richtigen Winkel eingegeben hat, sollte

Code: Alles auswählen

get_user_input(is_cos,angle)/right
genau 1 sein. 1 minus 1 ist 0, der Absolutwert von 0 ist 0, 0 ist kleiner gleich der Genauigkeit(ACCURACY)
Genauer gesagt wird hier überprüft, ob der Rückgabewert innerhalb der Toleranzgrenze zum richtigen Wert liegt.
Nun spreche ich die ganze Zeit davon, dass hier der Wert, den deine Funktion zurück geben sollte, mit dem "richtigen" Ergebnis verglichen wird, überlege doch mal ob deine Funktion im Moment das zurück gibt, was erwartet wird.
Hinweis: Deine Funktion gibt nicht das zurück, was sie zurück geben sollte.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 3:59 pm

bitte sag mir wo der Fehler liegt,ich finde ihn einfach nicht

Lämpi
Beiträge: 57
Registriert: So Mär 23, 2014 4:46 pm

Re: Lernprogramm (Funktionen)

Beitrag von Lämpi » So Mai 04, 2014 4:27 pm

warum stimmt die verdammte scheiß Funktion nicht,das gibts doch gar nicht,ich kanns mir hunderte male anschauen ich finde keinen Fehler,das ist zum durchdrehen

Antworten