Βοήθεια με προγράμματα c++

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
Άβαταρ μέλους
Krits
Δημοσιεύσεις: 281
Εγγραφή: 07 Δεκ 2003 18:12
Τοποθεσία: Γλυφάδα-Τρίπολη
Επικοινωνία:

Βοήθεια με προγράμματα c++

Δημοσίευση από Krits » 10 Μαρ 2004 23:20

Παιδιά θα ήθελα να με βοηθήσετε να γράψω δύο προγράμματα σε c++.Μας τα έβαλαν ως εργασία στο πανεπιστήμιο και δεν έχω προλάβει να μελετήσω το βιβλίο.Πρέπει να τις παραδώσω την παρασκευή!Οι εκφωνήσεις δίνονται παρακάτω...

1. Γράψτε ένα πρόγραμμα σε C++ το οποίο θα υπερφορτώνει μία συνάρτηση με
όνομα getnumber. Εάν της περάσετε ένα όρισμα τύπου bool, η συγκεκριμένη
έκδοση της συνάρτησης θα επιστρέφει μηδέν ή ένα ανάλογα με το εάν το
όρισμά της έχει τιμή true ή false. Εάν της περάσετε ένα όρισμα τύπου int, η
έκδοση της συνάρτησης θα επιστρέφει την τιμή που εισάγατε
πολλαπλασιασμένη επί τον εαυτό της.
2. Γράψτε ένα πρόγραμμα C++ το οποίο θα χρησιμοποιεί ξεχωριστές
συναρτήσεις για την εμφάνιση προτροπής για την ηλικία σας (θα εμφανίζει
δηλαδή ένα μήνυμα που θα σας καλεί να δώσετε την ηλικία σας), την
ανάγνωση της ηλικίας σας και τη χρήση της τιμής που διάβασε για τον
υπολογισμό και την εμφάνιση της δυνατότητάς σας να συνταξιοδοτηθείτε (το
οποίο θεωρούμε ότι γίνεται σε ηλικία 62 ετών ή ανώτερη).

Ευχαριστώ πολύ...
Με εκτίμιση!

Ray
Δημοσιεύσεις: 308
Εγγραφή: 07 Μάιος 2003 03:57
Τοποθεσία: Lost Somewhere In Time

Βοήθεια με προγράμματα c++

Δημοσίευση από Ray » 11 Μαρ 2004 01:07

Φίλε krits,

Ποτέ δεν μου αρέσει να δίνω απαντήσεις σε εργασίες φοιτητών ΠΑΝΕΠΗΣΤΙΜΙΑΚΩΝ ιδρυμάτων και ειδικά σε μια γλώσσα προγραμματισμού όπως η C++

Δεν καταλαβαίνω δικαιολογίες τύπου δεν πρόλαβα να διαβάσω το βιβλίο!

Και οι δύο εργασίες είναι γελοίες και ειδικά η δεύτερη!

Δεν καταλαβαίνεις πόσο κακό κάνεις στον εαυτό σου ΜΗ ΜΑΘΕΝΟΝΤΑΣ ένα από τα βασικότερα μαθήματα της πληροφορικής

Δυστυχώς για λόγους ΙΔΕΟΛΟΓΙΑΣ δεν μπορώ να σου δώσω κάποια λύση, μπορώ όμως ευχαρίστως να σε κατευθύνω έτσι ώστε να δημιουργήσεις τις λύσεις μόνος σου

Η σύνταξη των εντολών των παρακάτω λύσεων δεν είναι 100% σωστή, μπορείς όμως εύκολα να βρεις την σύνταξη των εντολών από το βιβλίο σου (η λογική τους όμως είναι σωστή)

Ερώτημα 1ο

Function overloading (η υπερφόρτωμα μιας συνάρτησης), είναι μία τεχνική με την οποία μπορούν να υπάρχουν πολλές συναρτήσεις με το ίδιο όνομα και αποτελείτε από δύο μέρη

(α) Prototyping

Δηλαδή το όνομα της συνάρτησης και τι παράμετρο παίρνει

Void getnumber ( int x);

(b) Definition

Τι κάνει η συνάρτηση με την παράμετρο που παίρνει

Void getnumber ( int x)
{
Y=x*x
};


Οπότε το πρόγραμμα θα είναι περίπου

Κώδικας: Επιλογή όλων


#include <iostream>
using namespace std;

&#40;Διαδικασία Prototyping&#41;
Void getnumber &#40; int x&#41;;
int getnumber &#40; string x&#41;;

Int main&#40;&#41;
&#123;

&#40;Δημιούργησε 2 μεταβλητές, μία τύπου integer και μία τύπου string&#41;

int number;
string word;

&#40;Δώσε κάποιες αρχικές τιμές στις μεταβλητές σου&#41;

number = 10;

word = "True";

&#40;Κάλεσε την συνάρτηση με παράμετρο integer&#41;

cout << "Call ""integer"" version" << endl;
getnumber&#40;number&#41;;

&#40;Κάλεσε την συνάρτηση με παράμετρο string&#41;

cout << "Call ""boolean"" version" << endl;
getnumber&#40;word&#41;;

&#125;

&#40;Διαδικασία Definition&#41;

Πρώτα τι να κάνει η συνάρτηση αν έχει παράμετρο τύπου integer
void getnumber&#40; int x&#41;
&#123;
        y = x*x;
&#125;

Και αν έχει παράμετρο τύπου string
int getnumber&#40; string x&#41;
&#123;

Εδώ έχουμε δύο περιπτώσεις ή το χ να έχει την τιμή True, οπότε έχουμε output 1

if x="True" 
y=1;
Η την περίπτωση το χ να έχει την τιμή False, οπότε έχουμε output 0

if x="False" 
y=0;

Return &#40;y&#41;

&#125;

Και τελείωσες&#8230;

Υπάρχουν πολλοί ποιο ενδιαφέροντες τρόποι να λύσεις αυτό το πρόβλημα, απλά ελπίζω ότι αυτός είναι ένας κατάλληλος αλγόριθμος για να παρουσιάσεις στον καθηγητή σου (για beginner)&#8230;

Να σημειώσω εδώ ότι μπορείς να βελτιώσεις αρκετά το παραπάνω προσθέτοντας π.χ. την εισαγωγή δεδομένων από τον χρήστη ή κάποιο απλό error correction σε περίπτωση που ο χρήστης δώσει π.χ. float τιμή


Ερώτηση 2η

Εδώ χρειάζεσαι

(α) Μια συνάρτηση που θα ρωτάει την ηλικία του χρήστη

Π.χ.

Κώδικας: Επιλογή όλων

Int InputFromUser&#40;&#41;&#123;

Int age;
printf&#40;"Enter your age&#58; "&#41;;
scanf&#40;"%s",age&#41;;

return &#40;age&#41;

&#125;
(β) Και μια που θα υπολογίζει πότε θα συνταξιοδοτηθείς με βάση ηλικίας τα 62
(Αλήθεια τόσο παλιά είναι αυτή η εργασία ποια, τότε οι άνθρωποι έβγαιναν σε σύνταξη στα 62&#8230; :D )

Κώδικας: Επιλογή όλων

Int CalculateRetirement &#40;int MyAge&#41;&#123;

&#40;Παρατήρησε ότι αυτή η συνάρτηση παίρνει σαν παράμετρο την ηλικία που δίνει ο χρήστης στην παραπάνω συνάρτηση&#41;

&#40;Δηλώνουμε ηλικία συνταξιοδότησης&#41;
Int RetirementAge=62;

&#40;Και έχουμε δύο περιπτώσεις αν παίρνεις σύνταξη οπώτε&#41;

If RetirementAge= MyAge
Y=1;
elseif
If RetirementAge<MyAge
Y=1;
else
&#40;Και μία περίπτωση στην οποία δεν παίρνεις σύνταξη&#41;

If RetirementAge>MyAge
Y=0;


&#40;οπότε επιστρέφουμε το αποτέλεσμα στο πρόγραμμά μας&#41;

Return &#40;y&#41;;

&#125;

Άρα στο main function περίπου θα γίνετε

Κώδικας: Επιλογή όλων


Void main&#40;&#41;
&#123;

Int output;
Int MyAge;

&#40;input από χρήστη&#41;

MyAge = InputFromUser&#40;&#41;;

&#40;Έλεγχος συνταξιοδώτησης&#41;

Output = CalculateRetirement &#40;MyAge&#41;;

&#40;και τελικά&#41;

If output=1
Cout Perneis Syntaksh

If output=0
Cout Den Perneis Syntaksh

&#125;

Αυτά&#8230;

Ελπίζω να σε βοήθησα αρκετά&#8230;

Ξαναθυμίζω ότι οι παραπάνω λύσεις στις δίνω με βάση την λογική με την οποία σκέφτεται ένας αρχάριος προγραμματιστής και όχι ένας επαγγελματίας&#8230;


Για ότι απορίες έχεις μην διστάσεις να ρωτήσεις


Φιλικά,

Χρήστος
Τελευταία επεξεργασία από το μέλος Ray την 11 Μαρ 2004 06:53, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
Krits
Δημοσιεύσεις: 281
Εγγραφή: 07 Δεκ 2003 18:12
Τοποθεσία: Γλυφάδα-Τρίπολη
Επικοινωνία:

Βοήθεια με προγράμματα c++

Δημοσίευση από Krits » 11 Μαρ 2004 01:43

exeis apolito dikeio...kserw oti einai xazo auto pou kanw!eimai adikaiologitos...
euxaristw pantws gia oti ekanes gia mena...
ma panw apo ola s euxaristw pou me ekanes na ksupnisw apo tin ideologia tou antigrafea!!
tha me boithisoun poli oi simeiwseis sou na kanw estw kai twra mia kali arxi!
euxaristw kai pali!
me ektimisi...

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες