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

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

Δημοσ.

kalhmera exo mia siggekrimeni askhsh ston programmatismo na liso borei kapios na me voithisi

 

ASKHSH :

 

Να γίνει ανάπτυξη προγράμματος σε γλώσσα C++ με το οποίο θα γίνεται εισαγωγή δύο πραγματικών αριθμών και

ενός ακέραιου κωδικού. Ο κωδικός θα εισάγεται με επαναληπτική διαδικασία και να είναι το 1 ή το 2. Αν ο χρήστης

δώσει αριθμό που δεν είναι 1 ή 2 να γίνεται εμφάνιση μηνύματος που να προειδοποιεί τον χρήστη ότι επιτρέπεται

είσοδος μόνο των κωδικών 1 ή 2 και μετά επανάληψη της διαδικασίας εισόδου του κωδικού.

Το πρόγραμμα θα περιλαμβάνει τις συναρτήσεις:

1) sinartisi1 Βρίσκει και επιστρέφει το άθροισμα και την διαφορά των δύο αριθμών. Οι αριθμοί θα

2) sinartisi2 Βρίσκει και επιστρέφει το γινόμενο και το πηλίκο των δύο αριθμών Οι αριθμοί θα εμφανίζονται

Στο main:

• Θα γίνεται είσοδος των αριθμών και του κωδικού

• Θα γίνεται κλήση της συνάρτησης sinartisi1 ή sinartisi2 ανάλογα με τον κωδικό που εισάγει ο χρήστης.

• Θα γίνεται εμφάνιση των αποτελεσμάτων της συνάρτησης με τα κατάλληλα μηνύματα.

εμφανίζονται μέσα από το main.

μέσα από το main.

 

EYHARISTO GIA OPIADIPOTE VOITHIA

Δημοσ.

hanselg καλωσήρθες στο insomnia

γράψε τον κώδικα που εχεις φτιάξει μεχρι τώρα και σε ποιο κομμάτι δυσκολεύεσαι ή δε σου δουλεύει.

Δημοσ. (επεξεργασμένο)

oriste gia na min nomizei kapios oti den exo doulepsei me thn askhsh

 

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int ar1,ar2,code,c1,c2;
    cout <<"dose ton proto pragmatiko arithmo"<< endl;
    cin>>ar1;
    cout<<"dose ton deytero pragmatiko arithmo"<<endl;
    cin>>ar2;
    cout<< "dose ton kodiko analoga me thn epexergasia pou theleis na kaneis me tous dio arithmous"<< endl;
    cin>>code;
        while (code==1) || (code==2)
          {
            if (code==1)
               {
                        c1=sinartisi1 (ar1,ar2);
                        }
                        else
                        {
                            c2=sinartisi2(ar1,ar2);
                            }
                            }
                            system("PAUSE");
                            return EXIT_SUCCESS;
           }

            int sinartisi1 (int num1,int num2)
                {
                           int ath, diaf;
                           ath=num1+num2;
                           diaf=num1-num2;
                           return(ath,diaf);
                           }
            int sinartisi2(int num1, int num2)
                {
                                  int gin,pil;
                                  gin=num1*num2;
                                  pil=num1/num2;
                                  return(gin,pil);
                                  }

Επεξ/σία από hanselg
Δημοσ.

Μην γραφεις greeklish. Δεν επιτρεπεται και θα σου σβηστει το νημα.

 

Στην ασκηση. Που εχεις προβλημα; Που χρειαζεσαι βοήθεια;

Δημοσ.

Αυτό το ξέρω, αλλά που στο βγάζει λάθος και γιατί κατά τη γνώμη σου;

Την ασκηση δεν θα στην δώσω έτοιμη (αν το κανει αλλος δεν ξέρω)

 

Tips:

Αφου τα ar1 και ar2 ειναι πραγματικοί αριθμοί, γιατί τα δηλώνεις int;

Αφου τα c1,c2 θα περιέχουν πολλάπλά αποτελέσματα γιατί δεν είναι πίνακες και επισης γιατί πρέπει να ειναι int ;

Δημοσ.

Εχω προβλημα με τις συναρτησεις θελω να μου επιστρεφουν δυο αποτελεσματα η καθε μια 


τη λογικη την ξερω στο κωδικα αντιμετωπιζω προβλημα 

Δημοσ.

 

Αφου τα c1,c2 θα περιέχουν πολλάπλά αποτελέσματα γιατί δεν είναι πίνακες και επισης γιατί πρέπει να ειναι int ;

  • Like 1
Δημοσ.

Εχω προβλημα με τις συναρτησεις θελω να μου επιστρεφουν δυο αποτελεσματα η καθε μια 

τη λογικη την ξερω στο κωδικα αντιμετωπιζω προβλημα 

Τα return τους ειναι λαθος.

Περνας δεικτες στην συναρτηση και περνεις τα αποτελεσματα.

void sinartisi1 (int num1,int num2, int* ath, int* diaf)
{
   ...
  *ath=5;
  *diaf=6; 
}
  • Like 1
Δημοσ.

και αυτό σωστό, άλλωστε στην εκφώνηση θέλει επιστροφή αποτελεσμάτων, χωρίς να αναφερει για array.

 

Δοκίμασε το έτσι. 

  • Like 1
Δημοσ.

Παιδιά εγώ έτσι όπως αντιλαμβάνομαι την εκφώνηση, χωρίς να είναι και απόλυτα κατανοητή σε μένα,

 

το Code, είναι το mode που θα δουλεύουν οι συναρτήσεις.

 

δηλαδή αν το Code είναι 1, τότε η συνάρτηση 1 θα επιστρέφει άθροισμα,

αν το Code είναι 2 τότε η συνάρτηση θα επιστρέφει υπόλοιπο.

 

 

με αυτή τη λογική, οι συναρτήσεις μπορούν να είναι της μορφής:

//Code snippet #1
real synartisi1 ( real a,real b, int mode)
{
     real sum, dif;
     sum = a+b; 
     dif = a-b;
     return (mode==1?sum:dif);
}

ομοίως για τη συνάρτηση 2. φυσικά ο παραπάνω κώδικας είναι ψευδοκώδικας και θα πρέπει εσύ να τον μετατρέψεις σε c++ η σε ό,τι θέλεις.

// Code Snippet #2
Code = 0;
while (Code == 1 or Code == 2)
{
   clearscr;
   print ( ' parakalw dwste ton kwdiko apodektes times (1 i 2) : ' );
   scanf( Code );
}

Απλά ορισμένες παρατηρήσεις.

 

 

1) οι αριθμοί που μετέχουν σε αριθμητικές πράξεις είναι πραγματικοί.

2) ΜΟΝΟ το mode (ακα Code) είναι ακέραιος.

3) οι συναρτήσεις επιστρέφουν Πραγματικό αριθμό

4) ακόμα και αν περάσει το compile, έχεις λάθος προσέγγιση στην εισαγωγή των δεδομένων, προσπάθισε να ακολουθήσεις το code snippet #2 που αναφέρω παραπάνω.

5) κάτσε διάβασε φίλε, δεν υπάρχει return ( a,b ) σε καμία functional γλώσσα προγραμματισμού

 

 

Τέλος, καταλαβαίνω ότι το Code μπορεί να θεωρηθεί ότι αναλαμβάνει να κάνει την επιλογή ανάμεσα στις συναρτήσεις 1,2.

 

αλλά θεωρώ ότι έχει μεγαλύτερη πρακτική αξία να επιλέγει το mode της συνάρτησης. και επίσης είναι μεθοδολογία για αλάνια.

Δημοσ.

Μια ακόμα προσέγγιση θα μπορούσε να είναι να καλείται η κάθε συνάρτηση 2 φορές για κάθε code (αν και ίσως αντιτίθεται στην εκφώνηση, δεν ξέρω)...

cin >> code >> x >> y;
if ( 1 == code ) {
    cout << "athroisma = " << sum(x,y) << ", diafora =  " << sum(x,-y);
}
else if ( 2 == code ) {
    cout << "ginomeno = " << mul(x,y) << ", phliko = " << mul(x,1/y);
}
Δημοσ.

παλι η ασκηση δεν μου βγαινει σωστη ενω εχω κανει τα παντα για ριξτε μια ματια : 

 

#include 
#include 

using namespace std;

void sinartisi1 (float & , float &, float &,float &);
void sinartisi2 (float & , float &, float &,float &);


int main(int argc, char *argv[])
{
float m2,m1,code, num1, num2 ;

cout <<"dose tous dio protous pragmatikous arithmous"<<"\n";
cin >> num1;
cin >> num2;
cin >> code;

while (code==1) || (code==2) 
{
if (code==1) 
{
sinartisi1(m1, m2);
cout << "to athrisma einai:" << num1 <<" "<<"kai i diafora einai" << num2 << "\n";
}
if (code==2)
{
sinartisi2(m1, m2);
cout << "to ginomeno einai:" << num1 <<" "<<" kai to piliko einai" << num2 << "\n";
}

}

system("PAUSE");
return EXIT_SUCCESS;
}

void sinartisi1(float & sum, float & dia, float & ar1, float & ar2)

{
sum=ar1+ar2;
dia=ar1-ar2;
cout<<"too athroisam kai i diafora einai" << sum <<" "<< dia <<"\n";

}

void sinartisi2(float & gin, float & pil, float & ar1, float ar2)

{
gin=ar1*ar2;
pil=ar1/ar2;
cout<<"to ginomeno kai to piliko einai" << gin <<" "<< pil <<"\n";

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

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

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

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

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

Σύνδεση

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

Συνδεθείτε τώρα
  • Δημιουργία νέου...