askisi C++, mia mikri voithia parakalw!!

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

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

Απάντηση
dimi1983
Δημοσιεύσεις: 4
Εγγραφή: 04 Ιαν 2008 22:45

askisi C++, mia mikri voithia parakalw!!

Δημοσίευση από dimi1983 » 06 Ιαν 2008 16:26

Σε κλειστό τμήμα μεταπτυχιακών σπουδών οι φοιτητές για να μπορέσουν να μεταβούν στο επόμενο εξάμηνο των σπουδών τους είναι απαραίτητο να επιτύχουν στην εξέταση όλων των μαθημάτων του εξαμήνου στο οποίο βρίσκονται.
Έστω ότι το τμήμα αποτελείται από 4 φοιτητές και τα μαθήματα του κάθε εξαμήνου είναι 3.
Να γραφεί πρόγραμμα στην κύρια συνάρτηση του οποίου να δίνονται οι βαθμοί των φοιτητών για το κάθε μάθημα στο οποίο εξετάζονται και τα δεδομένα να αποθηκεύονται σε μορφή μήτρας.
Από την main να καλείται συνάρτηση μέσω της οποίας θα εξετάζεται αν ο φοιτητής είναι προβιβάσιμος στο επόμενο εξάμηνο. (Βάση ως γνωστό θεωρείται το 5).
Στη συνέχεια η main συνάρτηση του προγράμματος να εκτυπώνει με μήνυμα αν ο κάθε φοιτητής έχει επιτύχει ή όχι στις εξετάσεις του εξαμήνου.

i askisi mou einai auti. exw kanei auta:
#include <iostream>
using namespace std;


int main()
{
double g[4][3] ;
for (int i=1; i<5; i++)
{
cout<<"Dwse tous vathmous tou "<< i << " foititi: " << endl;
cin>> g[0] >> g[1]>> g[2] ;

}


return 0;
}

Poia sinartisi na xrisimopoiisw gia na eksetazei an einai prosvasimos i oxi?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

askisi C++, mia mikri voithia parakalw!!

Δημοσίευση από dva_dev » 06 Ιαν 2008 17:17

Αυτό που έχεις φτιάξει τι κάνει; Δοκίμασες αν δουλεύει;

Θεωρητικά για να είναι προβιβάσιμος (όχι προσβάσιμος γιατί πηγαίνει αλλού το πράγμα) πρέπει σε όλα τα μαθήματα κάποιος φοιτητής να έχει πιάσει τουλάχιστον τη βάση. Οπότε δεν είναι κάποια συνάρτηση από τις έτοιμες της C, αλλά θα είναι η συνάρτηση που θα γράψεις εσύ και θα κάνει ακριβώς αυτόν τον έλεγχο.

dimi1983
Δημοσιεύσεις: 4
Εγγραφή: 04 Ιαν 2008 22:45

askisi C++, mia mikri voithia parakalw!!

Δημοσίευση από dimi1983 » 06 Ιαν 2008 17:24

auto pou exw kanei zitaei vathmous gia tous fitites k tous apothikeui sti mitra. douleuei mexri edw!! apo kei k pera ti kanw? diladi poia sinartisi na ftiaksw? mporeis na voithiseis?

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

askisi C++, mia mikri voithia parakalw!!

Δημοσίευση από dva_dev » 06 Ιαν 2008 20:59

Το double g[4][3] δηλώνει έναν πίνακα πραγματικών με διαστάσεις [0...3]Χ[0...2].
Το for (int i=1; i<5; i++) πηγαίνει από 1...4, αγνοεί την 1η γραμμή και πάει και γράφει στην 5η γραμμή (με το cin>> g[0] >> g[1]>> g[2] ;) σε περιοχή μνήμης που δεν ανήκει στο πρόγραμμα.

Μπορείς να φτιάξεις μια συνάρτηση με όνομα ABC (ή κάποιο πιο βολικό για εσένα - το οποίο και θα πρότεινα), και στη συνάρτηση θα μπορούσες να περνάς παράμετρους:
α) ολόκληρο τον πίνακα μαζί με κάποιον δείκτη για να ξέρεις για ποιόν φοιτητή θα υπολογίσεις αν προβιβάζεται ή όχι.
β) να περνάς μόνο τη γραμμή του πίνακα που περιέχει τις βαθμολογίες των μαθημάτων κάποιου φοιτητή για να υπολογίσεις πάλι το ίδιο.
γ) να περνάς τους 3 βαθμούς των μαθημάτων του φοιτητή υπολογίζοντας πάλι το ίδιο.
δ) μόνο κάποιον δείκτη (σε αντιστοιχία με το α)) και θα έχεις τον πίνακα σου με τις βαθμολογίες global ώστε να μπορείς να τον χρησιμοποιήσεις.
ε) δεν θα περνάς καμία παράμετρο και ο δείκτης και ο πίνακας με τις βαθμολογίες θα είναι και οι δύο global.
στ) ...

Διαλέγεις τι προτιμάς να κάνεις (αν δεν έχεις σκεφτεί κάτι διαφορετικό).

(Αν μπορείς να γράφεις σε ελληνικά θα είναι πιο εύκολο να διαβάσουμε τι γράφεις).

Απάντηση

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

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

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