Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

  • Απαντ. 36
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Συχνή συμμετοχή στο θέμα

Δημοσ.

βλέποντας τον αρχικό κώδικα, και χωρίς να ξέρω αν το έχεις διορθώσει... Αν ο χρήστης δώσει a=0, τι θα βγάλει το πρόγραμμα;

Δημοσ.

Ανεβασε λιγο κωδικα να σε βοηθησουμε

#include<iostream>
#include<math.h>

using namespace std;

int main(){
    int a,b,g,y,i,j;
    double tbl[3][2];
    double d,x,x1,x2,rsq;
    cout<<"dwse arithmo exiswsewn: ";
    cin>> y;

    cout<<"dwse mou to a gia tis exiswseis:";
    cin>> a;
    cout<<"dwse mou to b gia tis exiswseis:";
    cin>>b;
    cout<<"dwse mou to g gia tis exiswseis:";
    cin>>g;
    for(i=0; i<3; i++){
    for (j=0; j<2; j++){

    d=b*b-4*a*g;
    rsq=sqrt(d);

  if(d>0){
        x1 = (-b+sqrt(d)) / (2*a);
        x2 = (-b-sqrt(d)) / (2*a);
        cout<<"x1= " << x1 << "x2= " << x2<< endl;
  }
        else if(d==0){
            x1 = -b / (2*a);
            cout<<"x1= " << x1 << "x2= " << x2<< endl;
  }
      else {

        cout<<"adinato apotelesma " << endl;
      }
    }
    }

}

Δημοσ.

Για το μαθηματικο θεμα εχει δικιο ο deninho οτι αν δωσεις 0 για το a εχεις προβλημα.

Βλεπεις συνεχεια τις ιδιες τιμες γιατι εχεις βαλει το διαβασμα των τιμων εκτος της επαναληψης . Οποτε οι τιμες για τα a,b,c δεν αλλαζει ποτε και αρα υπολογισμοι ειναι ιδιοι.  Ο πινακας που οριζεις δεν εχει νοημα. Αν εγω θελω να λυσω 4,10, 100 εξισωσεις τι θα κανεις( Την λυση θα την βρεις αν διαβασεις εδω http://www.cplusplus.com/doc/tutorial/dynamic/  Απλα σε πρωτη φαση κοιτα να κανεις σωστα την επαναληψη και μετα βλεπεις που θα αποθηκευεις τις τιμες.

  • Like 1
Δημοσ.

Δεν ξέρω με ποιον τρόπο πρέπει να χρησιμοποιήσω την δυναμική μνήμη στο πρόβλημα μου.Άλλαξα και την επανάληψη και τώρα μου βγάζει για κάθε εξίσωση το δικό της αποτέλεσμα σωστά,βέβαια με το α=0 έχω πάλι πρόβλημα και δεν το βρήκα.Απλά έτσι όπως τρέχει τώρα δεν έχω το επιθυμητό αποτέλεσμα αφού εγώ θέλω για κάθε εξίσωση να δίνω πρώτα τις τιμές ,μετα να τις αποθηκεύει σε έναν πίνακα 2σδιάστατο και στο τέλος να μου εμφανίζει όλα τα αποτελέσματα μαζί.

#include<iostream>
#include<math.h>


using namespace std;

int main(){
    int a,b,g,y,i,j,n;

    
    double d,x1,x2,rsq;
    cout<<"dwse arithmo exiswsewn: ";
    cin>> y;

    for(n=0; n<y; n++){

    cout<<"dwse mou to a gia tis exiswseis:";
    cin>> a;
    cout<<"dwse mou to b gia tis exiswseis:";
    cin>>b;
    cout<<"dwse mou to g gia tis exiswseis:";
    cin>>g;


    d=b*b-4*a*g;
    rsq=sqrt(d);

  if(d>0){
        x1 = (-b+sqrt(d)) / (2*a);
        x2 = (-b-sqrt(d)) / (2*a);
        cout<<"x1= " << x1 << "x2= " << x2<< endl;
  }
        else if(d==0){
            x1 = -b / (2*a);
            cout<<"x1= " << x1 << "x2= " << x2<< endl;
  }
      else {

        cout<<"adinato apotelesma " << endl;
      }

    }
    }


Δημοσ.

Σκεψου οτι εχεις μια εξισωση με α=0 ( ας πουμε την 2χ+4=0) αυτην πως θα την ελυνες? Αποτυπωσε τωρα την σκεψη σου στο κωδικα. Αυτο που πρεπει να κανεις ειναι πριν τον υπολογισμο της διακρινουσας να δεις να αν χρειαζεται οντως να υπολογισεις διακρινουσα. Θελεις να μου πεις οτι διαβασες αυτο που σου εστειλα και δεν καταλαβες ποια ειναι η χρησιμοτητα της δυναμικης δεσμευσης μνημης στο προβλημα σου. Το πρωτο παραδειγμα δηλαδη που εχει εκει δεν μοιαζει με την περιπτωση σου? 

Δημοσ.

με a = 0 έχουμε διαιέρεση με το μηδέν...(αδύντατη). δες  (-b+sqrt(d)) / (2*a);

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα

  • Δημιουργία νέου...