Προγραμματισμός σε C++

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
Δεν έχει διαφορετικες επιστρεφομενες τιμες,η μία επιστρεφει την τιμή της x και η άλλη επιστρέφει αναφορά στην x.αν έχει τo & στην δήλωση επιστρέφει αναφορά.


Επιστρέφει αναφορά στην θέση μνήμης του x.Το δεύτερο που λές πρέπει να ισχύει.

Code:
#include<iostream>
using namespace std;

int x=3;
int &f(){return x;}

int main()
{
    int k=6;

    cout<<f()<<endl;
    f()=k;
    cout<<f()<<endl;
 return 0;
}
x=3
καλειτε η συνάρτηση επιστρέφει αναφορα στην x(δηλαδή αναφορά στην θέση μνήμης της x) εμφανίζετε το 3
καλειτε η συνάρτηση επιστρέφει αναφορα στην x και καταχωρήτε στο x το 6.
Βασικά το "f()" είναι σαν το όνομα της "αναφορικής μεταβλητής" στην x.

καταλαβα.
Υθελα να δω πως λειτουργει ο υπολογιστης και οχι τι ειναι το &.
Ενα κενο ομως υπαρχει ακομα.
Πως γινεται μια εντολη return x; την μια να επιστρεφει μια τιμη και την αλλη μια αναφορα στη μεταβλητη χ.
???
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
καταλαβα.
Υθελα να δω πως λειτουργει ο υπολογιστης και οχι τι ειναι το &.
Ενα κενο ομως υπαρχει ακομα.
Πως γινεται μια εντολη return x; την μια να επιστρεφει μια τιμη και την αλλη μια αναφορα στη μεταβλητη χ.
???

Η αναφορική συνάρτηση δεν επιστρέφει τα περιεχόμενα της θέσης μνήμης της x αλλα αναφορά στην θέση μνήμης της x.
Απλά αν θές η συνάρτηση να επιστρέφει αναφορά στην μεταβλητή που κάνεις return βάζεις & αν θές διεύθηνση βάζεις * και αν θες τα περιεχόμενα δεν βάζεις τίποτα.

Αν επιστέφει διεύθυνση πρέπει να είναι return &x; όπως και στις απλές μταβλητές πχ int a,*b=&a;
στις αναφορές δεν χρειάζετε τίποτα όπως και στις απλές μεταβλητές: int a,&b=a;

Απο αυτά που καταλαβαίνω σου λέω και εγώ.Ρώτα τον καθηγητή σου για καλύτερες απαντήσεις.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
γειαα ξανα..

σκεφτηκα σημερα να φτιαξω ενα προγραμμα που ο καθε μαθητης θα βάζει την κατευθυνση που ειναι
και ποσες ωρες φροντίστηριο θα κάνει σε κάθε μαθημα και αναλόγως θα του βγάζει ενα πρόγραμμα..(τις ώρες που θα έχει μαθηματα :P)
προχώρησα τον κώδικα αρκετά..αλλα επαναλάμβάνω ΣΥΝΕΧΕΙΑ ιδια...
θα ήθελα αν μπορεί κάποιος να φτιάξει το ίδιο προγραμμα (που σίγουρα θα ναι πολυ μικρότερο απο το δικό μου) ωστε να δω πώς αλλιώς θα μπορούσα...

ο κώδικας μου είναι αυτός...
(ΣΤΟΙΧΗΜΑ,οτι θα σας κουράσει,αν τον διαβάσετε... :P)

...
Code:
#include <iostream>

using namespace std;

int main()
{
    cout << "geiaa sou.eimai ena programma gia tous mathites..kai voithaw sto programma tous. " << endl;
int x;
int y;
int k;
int a;
int i;
int o;
int q,w,e,r,t,u;
int s,d,f,g,h,j;

cout<<"ti kateuthinsh eisai? \n texnologikh?\n thetikh?\n thewritiki?\n\n"<<endl;
cout<<"grapse thn kateythinsh sou me arithmo.\n\n1=texnologikh\n2=thetikh\n3=thewrithikh :" <<endl;
cin>>a;

if(a==1)
cout<<"ta mathimata sou einai \n1.mathimatika kateu8inshs\n2.fysikh kateythynshs\n3.fysikh h mathimatika h viologia genikis\n4.AODE\n5.programmatismos\n6.ekthesi\n\n";

else if(a==2)
cout<<"ta mathimata sou einai \n1.mathimatika kateu8inshs\n2.fysikh kateythynshs\n3.fysikh h mathimatika h viologia genikhs\n4.xhmeia kateythinshs\n5.ek8esh\n6.viologia kateythinshs\n\n";

else if(a==3)
cout<<"ta mathimata sou einai \n1.arxaia kateu9unshs\n2.latinika\n3.ekthesi\n4.mathimatika h viologia genikhs\n5.istoria\n6.logotexnia\n\n";

while (a==1)
{
cout<<"dwse wres frontisthriwn.\n mathimatika kat. : "<<endl;
cin>>x;
cout<<"fysikh kat. :"<<endl;
cin>>y;
cout<<"mathima genikhs :"<<endl;
cin>>k;
cout<<"aode :"<<endl;
cin>>i;
cout<<"ekthesi :"<<endl;
cin>>o;
return 0;
}
while (a==3)
{cout<<"dwse wres frontistiriwn.\n arxaia kat : "<<endl;
cin>>q;
cout<<"latinika :"<<endl;
cin>>w;
cout<<"ekthesi :"<<endl;
cin>>e;
cout<<"mathima genikhs :"<<endl;
cin>>r;
cout<<"istoria :"<<endl;
cin>>t;
cout<<"logotexnia :"<<endl;
cin>>u;
return 0;
}

while (a==2)
{
cout<<"dwse wres frontistiriwn.\n mathimatika kat. :"<<endl;
cin>>s;
cout<<"fysikh kat. :"<<endl;
cin>>d;
cout<<"ekthesi :"<<endl;
cin>>f;
cout<<"xhmeia kat. :"<<endl;
cin>>g;
cout<<"viologia kat. :"<<endl;
cin>>h;
cout<<"mathima genikhs :"<<endl;
cin>>j;
return 0;
}



}

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

ευχαριστώώώ
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

g1wrg0s

Επιφανές μέλος

Ο 01001 αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια. Έχει γράψει 9,074 μηνύματα.
δυο ερωτησεις:
Το προγραμμα σου θες να παιρνει μονο τις ωρες φρονυιστηριων ή θες να κανει και κατι με αυτες.
Επισης εφοσον εχεις βαλει return 0; σε ολα τα while loop , τοτε γιατι εχει βαλει while και οχι απλως if statements;
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
1.Τα προγράμματα δεν χαιρετάνε.:P
2.Να δηλώνεις όσο πιο λίγες μεταβλητές μπορείς.
3.Στην προκειμένη περίπτωση καλύτερα να χρησιμοποιήσεις την switch αν δε ξέρεις τι είναι μάθε το.
4.Τα while ειναι για επαναληπτική διαδικασία κατι που δεν θες τώρα.Με το ίδιο switch θα γίνετε και αυτό.Ένωσε τα if και τα while σε ένα switch.
5.return 0 να βάζεις μόνο στο τέλος του προγράμματος.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
γειαα ξανα..

σκεφτηκα σημερα να φτιαξω ενα προγραμμα που ο καθε μαθητης θα βάζει την κατευθυνση που ειναι
και ποσες ωρες φροντίστηριο θα κάνει σε κάθε μαθημα και αναλόγως θα του βγάζει ενα πρόγραμμα..(τις ώρες που θα έχει μαθηματα :P)
προχώρησα τον κώδικα αρκετά..αλλα επαναλάμβάνω ΣΥΝΕΧΕΙΑ ιδια...
θα ήθελα αν μπορεί κάποιος να φτιάξει το ίδιο προγραμμα (που σίγουρα θα ναι πολυ μικρότερο απο το δικό μου) ωστε να δω πώς αλλιώς θα μπορούσα...

ο κώδικας μου είναι αυτός...
(ΣΤΟΙΧΗΜΑ,οτι θα σας κουράσει,αν τον διαβάσετε... :P)

...
Code:
#include <iostream>

using namespace std;

int main()
{
    cout << "geiaa sou.eimai ena programma gia tous mathites..kai voithaw sto programma tous. " << endl;
int x;
int y;
int k;
int a;
int i;
int o;
int q,w,e,r,t,u;
int s,d,f,g,h,j;

cout<<"ti kateuthinsh eisai? \n texnologikh?\n thetikh?\n thewritiki?\n\n"<<endl;
cout<<"grapse thn kateythinsh sou me arithmo.\n\n1=texnologikh\n2=thetikh\n3=thewrithikh :" <<endl;
cin>>a;

if(a==1)
cout<<"ta mathimata sou einai \n1.mathimatika kateu8inshs\n2.fysikh kateythynshs\n3.fysikh h mathimatika h viologia genikis\n4.AODE\n5.programmatismos\n6.ekthesi\n\n";

else if(a==2)
cout<<"ta mathimata sou einai \n1.mathimatika kateu8inshs\n2.fysikh kateythynshs\n3.fysikh h mathimatika h viologia genikhs\n4.xhmeia kateythinshs\n5.ek8esh\n6.viologia kateythinshs\n\n";

else if(a==3)
cout<<"ta mathimata sou einai \n1.arxaia kateu9unshs\n2.latinika\n3.ekthesi\n4.mathimatika h viologia genikhs\n5.istoria\n6.logotexnia\n\n";

while (a==1)
{
cout<<"dwse wres frontisthriwn.\n mathimatika kat. : "<<endl;
cin>>x;
cout<<"fysikh kat. :"<<endl;
cin>>y;
cout<<"mathima genikhs :"<<endl;
cin>>k;
cout<<"aode :"<<endl;
cin>>i;
cout<<"ekthesi :"<<endl;
cin>>o;
return 0;
}
while (a==3)
{cout<<"dwse wres frontistiriwn.\n arxaia kat : "<<endl;
cin>>q;
cout<<"latinika :"<<endl;
cin>>w;
cout<<"ekthesi :"<<endl;
cin>>e;
cout<<"mathima genikhs :"<<endl;
cin>>r;
cout<<"istoria :"<<endl;
cin>>t;
cout<<"logotexnia :"<<endl;
cin>>u;
return 0;
}

while (a==2)
{
cout<<"dwse wres frontistiriwn.\n mathimatika kat. :"<<endl;
cin>>s;
cout<<"fysikh kat. :"<<endl;
cin>>d;
cout<<"ekthesi :"<<endl;
cin>>f;
cout<<"xhmeia kat. :"<<endl;
cin>>g;
cout<<"viologia kat. :"<<endl;
cin>>h;
cout<<"mathima genikhs :"<<endl;
cin>>j;
return 0;
}



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

ευχαριστώώώ

Πίνακες!Επιβάλεται όταν έχεις πολλές μεταβλητές.
Όταν άρχισα να διαβάζω με έπιασε πονοκέφαλος :P γράφε πιο όμορφο κώδικα και χρησιμοποίησε κατατοπιστικά ονόματα μεταβλητών.
Χρησιμοποίησε συναρτήσεις της stdio αντί για ρεύματα,γλιτώνεις πολύ σε χρόνο.
Τα greeklish στο πρόγραμμα είναι ενας ακόμη πονοκέφαλος.
Στις πολλές συνθήκες που έχεις καλύτερα χρησιμοποίησε switch για συγχώνευση των συνθηκών
σύνταξη switch:

switch(μεταβλητή)
{
case x:
//αν είναι ίση με χ κάνε αυτό
break;
case y:
.....
break;
case z:
....
break;
default:
//αν είναι κάτι άλλο κάνε αυτό
break;
}
1.χρησιμοποίησε break για να βγεις από την switch
2. χρησιμοποίησε την default για ανίχνευση εξαιρέσεων

Αυτά, καλή προσπάθεια πάντως.. ακόμα καλύτερα την επόμενη φορά ;)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
δυο ερωτησεις:
Το προγραμμα σου θες να παιρνει μονο τις ωρες φρονυιστηριων ή θες να κανει και κατι με αυτες.
Επισης εφοσον εχεις βαλει return 0; σε ολα τα while loop , τοτε γιατι εχει βαλει while και οχι απλως if statements;
το προγραμμα θα παιρνεις τις ωρες(ηδη το κανει..) και στην συνεχεια θα βγάζει ενα προγραμμα για τον μαθητη..
πχ δευτερα->3-5 εκθεση και 7-8.30 μαθηματικα κατ. (καπως ετσι :P)

ευχαριστώ πάντως.
εχεις δικιο λειτουργει και με if ...(την while πρώτη φορά την χρησιμοποίησα :P)

1.Τα προγράμματα δεν χαιρετάνε.:P
2.Να δηλώνεις όσο πιο λίγες μεταβλητές μπορείς.
3.Στην προκειμένη περίπτωση καλύτερα να χρησιμοποιήσεις την switch αν δε ξέρεις τι είναι μάθε το.
4.Τα while ειναι για επαναληπτική διαδικασία κατι που δεν θες τώρα.Με το ίδιο switch θα γίνετε και αυτό.Ένωσε τα if και τα while σε ένα switch.
5.return 0 να βάζεις μόνο στο τέλος του προγράμματος.
1.δεν ηξερα πως να αρχίσω..:P
2.εεε αυτο ειναι το θεμα..πως να δηλώσω λιγότερες?:P
3.θα μπω να μαθω.
4.δεν σε πιάνω..αλλα θα μαθω για το while και πιστευω να σε πιάσω :P.
5.εβαλα return παντου ..γιατι αν δεν εμπαινε..μου ξαναζητουσε ώρες φροντιστηριων σε καθε μαθημα..(αν θες τρέξε το προγραμμα χωρις return..και με return,για να καταλάβεις..:P)

ευχαριστώ πάντως.
Πίνακες!Επιβάλεται όταν έχεις πολλές μεταβλητές.
Όταν άρχισα να διαβάζω με έπιασε πονοκέφαλος :P γράφε πιο όμορφο κώδικα και χρησιμοποίησε κατατοπιστικά ονόματα μεταβλητών.
Χρησιμοποίησε συναρτήσεις της stdio αντί για ρεύματα,γλιτώνεις πολύ σε χρόνο.
Τα greeklish στο πρόγραμμα είναι ενας ακόμη πονοκέφαλος.
Στις πολλές συνθήκες που έχεις καλύτερα χρησιμοποίησε switch για συγχώνευση των συνθηκών
σύνταξη switch:

switch(μεταβλητή)
{
case x:
//αν είναι ίση με χ κάνε αυτό
break;
case y:
.....
break;
case z:
....
break;
default:
//αν είναι κάτι άλλο κάνε αυτό
break;
}
1.χρησιμοποίησε break για να βγεις από την switch
2. χρησιμοποίησε την default για ανίχνευση εξαιρέσεων

Αυτά, καλή προσπάθεια πάντως.. ακόμα καλύτερα την επόμενη φορά ;)
αν ήξεραα πίνακες :P...
εγω είπα όποιος καταφέρει να τον διάβασει..ειναι ήρωας :P
για τα greeklish..εχω ενα πρόβλημα οταν γράφω ελληνικα..αν κλεισω και ξανανοιξω το codeblocks μου τα βγάζει κινέζικα :P
ευχαριστω για τις πληροφορίες για την switch.
θα ψάξω να την μάθω...:P

ευχαριστώωωω...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
αν ήξεραα πίνακες :P...

δες αυτό, μην ασχοληθείς με ανατριχιαστικές λεπτομέρεις.. τα απλά για αρχή προσπέλαση και διαγραφή στοιχείων κτλ.
https://www.e-steki.gr/www.softlab.ntua.gr/~nickie/tmp/camp/Data_Structures_Arrays.pdfhttps://www.softlab.ntua.gr/~nickie/tmp/camp/Data_Structures_Arrays.pdf
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
δες αυτό, μην ασχοληθείς με ανατριχιαστικές λεπτομέρεις.. τα απλά για αρχή προσπέλαση και διαγραφή στοιχείων κτλ.
https://www.e-steki.gr/www.softlab.ntua.gr/~nickie/tmp/camp/Data_Structures_Arrays.pdfhttps://www.softlab.ntua.gr/~nickie/tmp/camp/Data_Structures_Arrays.pdf

φχαριστωω..θα το διαβάσωω :D
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Guest 986132

Επισκέπτης

αυτή τη στιγμή δεν είναι συνδεδεμέν. Δεν έχει γράψει κανένα μήνυμα.
Πολύ σωστές οι παρατηρήσεις των παιδιών, που σου απάντησαν.
Δεν πειράζει που δεν ξέρεις πίνακες. Για αρχή προσπάθησε να το φτιάξεις με όσα ξέρεις τώρα, κι έπειτα επιχειρείς να το φτιάξεις και με πίνακα. Δοκίμασε να χρησιμοποιήσεις τη switch (τη δομή της σ' την έδωσαν παραπάνω), για να μη γεμίσεις όλο if.

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

Ο πιο σωστός τρόπος, θα ήταν να χρησιμοποιούσες μια δομή επανάληψης, μέσα στην οποία θα έπαιρνες απ' τον χρήστη το ονοματεπώνυμο και την επιλογή, για την κατεύθυνση. Έπειτα, θα είχες την switch, με τις ανάλογες περιπτώσεις, όπου θα είχες τα μαθήματα της κατεύθυνσης, θα έπαιρνες τις ώρες απ' τον χρήστη και τέλος, θα πετούσες ένα μηνυματάκι ότι ο τάδε μαθητής είναι στην τάδε κατεύθυνση κι έχει Χ ώρες Χ μάθημα. Κι όλο αυτό θα επαναλαμβάνεται για όσους μαθητές επιλέξεις εσύ, ή ο χρήστης -ανάλογα πώς θες να κάνεις το πρόγραμμά σου.

Δεν ξέρω C++, αλλά στην έφτιαξα σε C#, για να την δεις. Αλλά προσπάθησε πρώτα, κι έπειτα δες την.

Code:
using System;

namespace proxeiro
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            string onoma, epitheto;
            int i,epil,math_kat,fus_kat,lat,ekth;
            
            for(i=0;i<=10;i++){                
                        
                Console.WriteLine("Δωσε ονοματεπωνυμο");
                onoma=Console.ReadLine();
                epitheto=Console.ReadLine();        

                do{
                    
                    Console.WriteLine("Δωσε κατευθυνση");
                    Console.WriteLine("1. Tεχνολογική 2. Θετική 3. Θεωρητική");
                    epil=Int32.Parse(Console.ReadLine());
                    
                }while(epil<1 || epil>3);
                
                switch(epil){
                    
                case 1: 
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    math_kat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    fus_kat=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Τεχνολογικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες μαθηματικα κατευθυνσης και {1} ωρες φυσικη κατευθυνσης",math_kat,fus_kat);
                    
                    break;
                    
                case 2:
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    math_kat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    fus_kat=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Θετικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες μαθηματικα κατευθυνσης και {1} ωρες φυσικη κατευθυνσης", math_kat,fus_kat);
                    
                    break;
                    
                case 3:
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Λατινικα");
                    Console.WriteLine("Εκθεση");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Λατινικα");
                    lat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Εκθεση");
                    ekth=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Θεωρητικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες Λατινικα και {1} ωρες Εκθεση",lat,ekth);
                    
                    break;                                                 
                    
                }
                                
            }

    Console.ReadKey();

        }
    }
}
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Πολύ σωστές οι παρατηρήσεις των παιδιών, που σου απάντησαν.
Δεν πειράζει που δεν ξέρεις πίνακες. Για αρχή προσπάθησε να το φτιάξεις με όσα ξέρεις τώρα, κι έπειτα επιχειρείς να το φτιάξεις και με πίνακα. Δοκίμασε να χρησιμοποιήσεις τη switch (τη δομή της σ' την έδωσαν παραπάνω), για να μη γεμίσεις όλο if.

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

Ο πιο σωστός τρόπος, θα ήταν να χρησιμοποιούσες μια δομή επανάληψης, μέσα στην οποία θα έπαιρνες απ' τον χρήστη το ονοματεπώνυμο και την επιλογή, για την κατεύθυνση. Έπειτα, θα είχες την switch, με τις ανάλογες περιπτώσεις, όπου θα είχες τα μαθήματα της κατεύθυνσης, θα έπαιρνες τις ώρες απ' τον χρήστη και τέλος, θα πετούσες ένα μηνυματάκι ότι ο τάδε μαθητής είναι στην τάδε κατεύθυνση κι έχει Χ ώρες Χ μάθημα. Κι όλο αυτό θα επαναλαμβάνεται για όσους μαθητές επιλέξεις εσύ, ή ο χρήστης -ανάλογα πώς θες να κάνεις το πρόγραμμά σου.

Δεν ξέρω C++, αλλά στην έφτιαξα σε C#, για να την δεις. Αλλά προσπάθησε πρώτα, κι έπειτα δες την.

Code:
using System;

namespace proxeiro
{
    class MainClass
    {
        public static void Main (string[] args)
        {
            string onoma, epitheto;
            int i,epil,math_kat,fus_kat,lat,ekth;
            
            for(i=0;i<=10;i++){                
                        
                Console.WriteLine("Δωσε ονοματεπωνυμο");
                onoma=Console.ReadLine();
                epitheto=Console.ReadLine();        

                do{
                    
                    Console.WriteLine("Δωσε κατευθυνση");
                    Console.WriteLine("1. Tεχνολογική 2. Θετική 3. Θεωρητική");
                    epil=Int32.Parse(Console.ReadLine());
                    
                }while(epil<1 || epil>3);
                
                switch(epil){
                    
                case 1: 
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    math_kat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    fus_kat=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Τεχνολογικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες μαθηματικα κατευθυνσης και {1} ωρες φυσικη κατευθυνσης",math_kat,fus_kat);
                    
                    break;
                    
                case 2:
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Μαθηματικα κατευθυνσης");
                    math_kat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Φυσικη κατευθυνσης");
                    fus_kat=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Θετικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες μαθηματικα κατευθυνσης και {1} ωρες φυσικη κατευθυνσης", math_kat,fus_kat);
                    
                    break;
                    
                case 3:
                    
                    Console.WriteLine("ΜΑΘΗΜΑΤΑ");
                    Console.WriteLine("Λατινικα");
                    Console.WriteLine("Εκθεση");
                    
                    Console.WriteLine("ΔΩΣΕ ΩΡΕΣ");
                    Console.WriteLine("Λατινικα");
                    lat=Int32.Parse(Console.ReadLine());
                    Console.WriteLine("Εκθεση");
                    ekth=Int32.Parse(Console.ReadLine());
                    
                    Console.WriteLine("EΚΤΥΠΩΣΗ ΠΛΗΡΟΦΟΡΙΩΝ");
                    Console.WriteLine("Ο μαθητης {0} {1} ειναι Θεωρητικη κατευθυνση", onoma, epitheto);
                    Console.WriteLine("Εχει {0} ωρες Λατινικα και {1} ωρες Εκθεση",lat,ekth);
                    
                    break;                                                 
                    
                }
                                
            }

    Console.ReadKey();

        }
    }
}

ευχαριστώ πολύ για τις πληροφόριες,οσο και για τον κώδικα που μπήκες στην διαδικασία για να γράψεις :D(του έριξα μια ματιά:whistle:)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Πληροφορικάριος

Δραστήριο μέλος

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
4.δεν σε πιάνω..αλλα θα μαθω για το while και πιστευω να σε πιάσω :P.
5.εβαλα return παντου ..γιατι αν δεν εμπαινε..μου ξαναζητουσε ώρες φροντιστηριων σε καθε μαθημα..(αν θες τρέξε το προγραμμα χωρις return..και με return,για να καταλάβεις..:P)

Σου ξαναζητάει ώρες φροντιστηρίων γιατί τα έχεις βάλει μέσα σε ένα ατέμονο while.Βάλε if ή καλύτερα switch.Παραδειγμα while:

Code:
i=1;
while(i<=3)//όσο i μικρότερο ή ίσο του 3
          cout<<i++<<endl;
Θα εκτυπώσει:
1
2
3
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
ακριβώς αυτή είναι η λογική του while όσο x->αληθές, τρέχε...
Εσύ απλώς το σταματας βίαια στην πρώτη επανάληψη(κανονικά είναι infinite loops) με την return 0; αλλά δεν πειράζει..
συνέχισε και σίγουρα θα τα πας καλά.. Αλήθεια πόσο καιρό ασχολήσε με c++?
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
ακριβώς αυτή είναι η λογική του while όσο x->αληθές, τρέχε...
Εσύ απλώς το σταματας βίαια στην πρώτη επανάληψη(κανονικά είναι infinite loops) με την return 0; αλλά δεν πειράζει..
συνέχισε και σίγουρα θα τα πας καλά.. Αλήθεια πόσο καιρό ασχολήσε με c++?

δεν ξερω... μισο μήνα ? ενα? εναμιση μαξ.

ευχαριστώ για τις πληροφορίες ...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Σου ξαναζητάει ώρες φροντιστηρίων γιατί τα έχεις βάλει μέσα σε ένα ατέμονο while.Βάλε if ή καλύτερα switch.Παραδειγμα while:

Code:
i=1;
while(i<=3)//όσο i μικρότερο ή ίσο του 3
          cout<<i++<<endl;
Θα εκτυπώσει:
1
2
3

αααα... ελεγα και εγω :P
χαχα ζητούσε συνεχεια το ιδιο και το ιδιο ...:P
ευχαριστωωωωωω μαν
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
δεν ξερω... μισο μήνα ? ενα? εναμιση μαξ.

Μπράβο, για τόσο λίγο καιρό μια χαρά είσαι.Αν θες να μάθεις C++ συστηματικά πάντως καλό θα ήταν να αγοράσεις κάποιο βιβλίο και να ασχοληθείς λίγο..Σε 1 μήνα θα είσαι και γαμώ αν ασχοληθείς..
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Μπράβο, για τόσο λίγο καιρό μια χαρά είσαι.Αν θες να μάθεις C++ συστηματικά πάντως καλό θα ήταν να αγοράσεις κάποιο βιβλίο και να ασχοληθείς λίγο..Σε 1 μήνα θα είσαι και γαμώ αν ασχοληθείς..

έχω δανειστεί βιβλίο..παλιό βέβαια αλλα την δουλειά του την κάνει :P
λιγο δύσκολο να ασχολούμαι μιας που θα παω γ'λυκειου...
αλλα οταν έχω χρόνο,κάτι θα κάνω :P

ευχαριστώ πολύ...
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

vassilis498

Διακεκριμένο μέλος

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
γιατί να τα σκάσει για βιβλίο ρε, τόσα καλά guides υπάρχουν στο internet ok για C++ συγκεκριμένα δεν το χω ψάξει πολύ αλλά αλλά το ίδιο θα ισχύει.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

infinity

Εκκολαπτόμενο μέλος

Ο Παναγιώτης αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 190 μηνύματα.
γιατί να τα σκάσει για βιβλίο ρε, τόσα καλά guides υπάρχουν στο internet ok για C++ συγκεκριμένα δεν το χω ψάξει πολύ αλλά αλλά το ίδιο θα ισχύει.

εγώ είχα παιδευτεί πολύ με guides,video tuts στην αρχή...αλλά κατάλαβα ότι μόνο με βιβλίο μπορείς να μάθεις σωστά...πάντως και αυτό μπορεί να είναι χρήσιμο https://www.cprogramming.com/

@kiriazispao4ever εννοείται..δώσε βάση στο σχολείο και c++ στον ελεύθερο χρόνο σου :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

kiriazispao4ever

Δραστήριο μέλος

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
https://www.youtube.com/watch?v=-jMmP4LT9Bc&list=PLE73F430271277C96&index=1&feature=plpp_video

https://www.youtube.com/watch?v=tvC1WCdV1XU


απο αυτες τις σειρές μαθαίνω...:P
και συνδυάζω καi το βιβλίο...

παραθέτω τους σύνδεσμους...μπας και θέλει και κανείς άλλος να μάθει...
και είναι και στα ελληνικα:P(η πρώτη σειρά.)
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 11 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 3 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top