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

dimitris001

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 7,608 μηνύματα.
Που ακριβώς δυσκολεύεσαι; Διαίρεσαι το πρόβλημα σου σε μικρότερα πιο εύκολα.
κάτι παρόμοιο προσπάθησα να κάνω...απλά ειναι 1η φορα που ασχολούμαι με C και μου φαινεται δυσκολο. δεν έχω ασχοληθει ουτε με ΑΕΠΠ ουτε με άλλες γλωσσες περα απο την Java...και ενω μεχρι την προηγουμενη εβδομαδα εκανα κώδικες για τον πολλαπλασιαμο/προσθεση/αφαιρεση αριθμων σημερα ειναι αυτο το προβλημα....με δυσκολευει αφανταστα το πληθος των παραγοντων...σκεφτομαι να δω ποσους παραγοντες θα εχει το 1000 άρα θα ειναι σιγουρα κατα ενα λιγοτεροι...αλλα δεν ειμαι σιγουρος αμα ισχυει
κοιτα τι εκανα...τα περισσοτερα ειναι λαθος:redface::redface:

Code:
#include<stdio.h>
main()
{
 int c,x,y,z,k,l,m,n,o,p;
 printf("Grapse enan akeraio arithmo mikrotero tou 1000 : ");
 scanf("%c",&c);
 c%x=0
 c%y=0
 c%z=0
 c%k=0
 c%l=0
 c%m=0
 c%n=0
 c%o=0
 p=1;
 x+y+z+k+l+m+n+o+p=c
 
 printf("%d, %d, %d, %d, %d, %d, %d, %d, %d",x,y,z,k,l,m,n,o,p);
  
}
 

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

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

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

Ο Πληροφορικάριος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Αθήνα (Αττική). Έχει γράψει 623 μηνύματα.
Code:
#include<stdio.h>
main()
{
 int c,x,y,z,k,l,m,n,o,p;
 printf("Grapse enan akeraio arithmo mikrotero tou 1000 : ");
 scanf("%c",&c);
 c%x=0
 c%y=0
 c%z=0
 c%k=0
 c%l=0
 c%m=0
 c%n=0
 c%o=0
 p=1;
 x+y+z+k+l+m+n+o+p=c
 
 printf("%d, %d, %d, %d, %d, %d, %d, %d, %d",x,y,z,k,l,m,n,o,p);
  
}

Τι προσπαθείς να κάνεις εδώ? δεν κατάλαβα. Πρώτα πρώτα πρέπει να δείς πως δουλεύει κάθε τελεστής.

Πάντως όπως είπε και ο akikos μπορείς να το κάνεις με μία for κάπως έτσι:
Code:
#include <iostream>
using namespace std;

int main()
{
    int num;

    do
    {
        cout << ">>";
        cin >> num;
    }while(num>1000 || num<1);

    int sum=0;//άθροισμα των διαιρετών 

    for(int i=1; i<=num/2; i++)
       if( num%i == 0)
          sum+=i;
    if(sum==num)
       cout << "O arithmos " << num << " einai teleios." <<endl;
    else
       cout << "O arithmos " << num << " den einai teleios." <<endl;

    system("PAUSE");
}
 

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

akikos

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

Ο Ανδρέας αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Η.Μ.Μ.Υ. και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 11,774 μηνύματα.
Χωρίς την <ιostream> χονδρικά
Code:
int input=0;
int sum = 0;
scanf("%d",&input);   // είσοδος  ακερραίου  στη μεταβλητή input, η scanf("%c",&input); είναι για είσοδο χαρακτήρα

for (int i=1;  i<input;  i++)
   {
     if (input%i==0) sum =sum +i;
   }

if (ιnput == sum)   printf("Είναι τέλειος");
Βέβαια ο κώδικας μπορεί να βελτιστοποιηθεί κάτι που θα μετρήσει αν πέσει σε εξετάσεις.
π.χ.
1) Δεν χρείαζεται να ελέγχει τον 1 αν είναι παράγοντας της εισόδου καθώς γνωρίζουμε εκ των προτέρων ότι είναι.
2) Δεν χρειάζεται να ελέξουμε όλους τους αριθμους.π.χ. Aν μέχρι input/2 δεν υπάρχει παράγοντας τότε ο αριθμός δεν είναι σίγουρα τέλειος.
 

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

Τελευταία επεξεργασία:

kiriazispao4ever

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

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
επιχειρησα να κανω τον κωδικα της σειριακής αναζήτησης σε C++
Code:
 #include <iostream>

using namespace std;

int main()
{
    int i ,pin[10],num;
    bool brethike;
    cout<<"dwse pinaka"<<endl;
    for (i=1; i<=10; i++)
{
    cout<<"dwse to "<<i<<"o stoixeio"<<endl;
    cin>>pin[i];
}
i=1;
brethike=false;
cout<<"give num";
cin>>num;
while (i<=10 and brethike ==false)
{
    if (num==pin[i])
    {
        brethike==true;
    }

    else
    {


    i=i+1;
    }

if (brethike == true)
{
    cout<<"brethike";
    return 0;
}

else
cout<<"Den vrethike";
return 0;


}
}
είχα πολύ καιρό να ασχοληθώ με C++ . Παρακαλώ,ας τον διορθώσει κάποιον ώστε να τρέχει σωστά ...Eυχαριστωωω :)
 

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

Τελευταία επεξεργασία:

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
επιχειρησα να κανω τον κωδικα της σειριακής αναζήτησης σε C++
Code:
 #include <iostream>

using namespace std;

int main()
{
    int i ,pin[10],num;
    bool brethike;
    cout<<"dwse pinaka"<<endl;
    for (i=1; i<=10; i++)
{
    cout<<"dwse to "<<i<<"o stoixeio"<<endl;
    cin>>pin[i];
}
i=1;
brethike=false;
cout<<"give num";
cin>>num;
while (i<=10 and brethike ==false)
{
    if (num==pin[i])
    {
        brethike==true;
    }

    else
    {


    i=i+1;
    }

if (brethike == true)
{
    cout<<"brethike";
    return 0;
}

else
cout<<"Den vrethike";
return 0;


}
}
είχα πολύ καιρό να ασχοληθώ με C++ . Παρακαλώ,ας τον διορθώσει κάποιον ώστε να τρέχει σωστά ...Eυχαριστωωω :)
Δεν κατάλαβες... Το έχεις κάνει compile; Το έχεις τρέξει; Αν τρέχει, τι κάνει λάθος; Εγώ το λάθος το έχω βρει με το μάτι... segmentation fault λέγεται, αλλά δεν έχει νόημα να στο δώσω στο πιάτο. ;)
 

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

Dark_kronos

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

Ο Rognan αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Άεργος/η και μας γράφει απο Ισπανία (Ευρώπη). Έχει γράψει 20,660 μηνύματα.
Δεν ξερω τι ειναι το segmentation, αλλα εγω εχω εντοπισει ενα συντακτικο! :P
 

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

dimitris001

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 7,608 μηνύματα.
Εγω πάντως δεν εχω καταλάβει το εξης....
γιατι όταν γραφεις ετσι τον κωδικα:
Code:
....
....
scanf("%c",&ch); fflush(stdin);
....
....
το πρόγραμμα εκτελείται σωστα....ενώ αμα το γραψεις έτσι:
Code:
....
.....
scanf("%c",&ch);
fflush(stdin);
....
....
δεν τρέχει:P
 

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

iJohnnyCash

e-steki.gr Founder

Ο Panayotis Yannakas αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 34 ετών, επαγγέλεται Επιχειρηματίας και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 24,043 μηνύματα.
Σίγουρα στις υπόλοιπες γραμμές δεν σου έχει ξεφύγει κάποιο λαθάκι;
Πάντα αυτό συμβαίνει και σε όλους :P
 

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

dimitris001

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 7,608 μηνύματα.
δεν εννοούσα να γράψω ολο τον κωδικα τη μια φορα "καθετα" και την αλλη "οριζοντια"...αλλα μονο τις συγκεκριμενες εντολες...δλδ τα υπόλοιπα μέρη του κώδικα ειναι μια χαρα...απλα αυτο το fflush κάτι κανει οταν ειναι διπλα στην scanf και όταν ειναι κάτω απο αυτή.. :P
 

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

kiriazispao4ever

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

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Δεν κατάλαβες... Το έχεις κάνει compile; Το έχεις τρέξει; Αν τρέχει, τι κάνει λάθος; Εγώ το λάθος το έχω βρει με το μάτι... segmentation fault λέγεται, αλλά δεν έχει νόημα να στο δώσω στο πιάτο. ;)
βασικα πριν κανω μια διορθωσουλα (ειχα βαλει ενα ';' μετα την while)
δεν ετρεχε...τώρα τρέχει αλλά όταν βρίσκει το στοιχείο δεν μου εμφανιζει "βρεθηκε"...
βρει δεν βρει το στοιχειο εμφανιζει "δεν βρεθηκε ":P.

Βασικα εχει νόημα ,γιατι μεχρι και τις πανελλήνιες δεν θα ξανασχοληθω με c++ ,αρα μην με αφήσεις ξεκρέμαστο..
Απλα καθως έτρωγα ,λεω ας δω αν θυμαμαι τιποτα ...και ετσι προέκυψε η απορία μου:P
μην ανησυχείς ,το καλοκαίρι θα με αφήσεις ξεκρέμαστο να τ βρισκω μόνος μου πολλες φορές.. :P

Δεν ξερω τι ειναι το segmentation, αλλα εγω εχω εντοπισει ενα συντακτικο! :P
ναι αλλα το προγραμμα τρέχει..:P (αν και μου βγάζει μια 'συμβουλη') :P
 

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

vassilis498

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

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Εγω πάντως δεν εχω καταλάβει το εξης....
γιατι όταν γραφεις ετσι τον κωδικα:
Code:
....
....
scanf("%c",&ch); fflush(stdin);
....
....
το πρόγραμμα εκτελείται σωστα....ενώ αμα το γραψεις έτσι:
Code:
....
.....
scanf("%c",&ch);
fflush(stdin);
....
....
δεν τρέχει:P

Δεν υπάρχει περίπτωση να ισχύει κάτι τέτοιο η C++ δε κοιτάει newline εκτός αν μιλάμε για οδηγίες του προεπεξεργαστή. Κάτι άλλο έχεις κάνει.

( ή μπορεί να ναι τίποτα του dev συνηθίζει να παίρνει τέτοιες "πρωτοβουλίες" :P )

επιχειρησα να κανω τον κωδικα της σειριακής αναζήτησης σε C++
Code:
 #include <iostream>

using namespace std;

int main()
{
    int i ,pin[10],num;
    bool brethike;
    cout<<"dwse pinaka"<<endl;
    for (i=1; i<=10; i++)
{
    cout<<"dwse to "<<i<<"o stoixeio"<<endl;
    cin>>pin[i];
}
i=1;
brethike=false;
cout<<"give num";
cin>>num;
while (i<=10 and brethike ==false)
{
    if (num==pin[i])
    {
        brethike==true;
    }

    else
    {


    i=i+1;
    }

if (brethike == true)
{
    cout<<"brethike";
    return 0;
}

else
cout<<"Den vrethike";
return 0;


}
}
είχα πολύ καιρό να ασχοληθώ με C++ . Παρακαλώ,ας τον διορθώσει κάποιον ώστε να τρέχει σωστά ...Eυχαριστωωω :)

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

Επίσης συνήθισε λίγο τα ονόματα να μη τα γράφεις σε greeklish όχι ότι δε συνηθίζεται γενικά αλλά είναι βλακεία και βγάζει μάτι. :P

κάνε και δυαδική μετά :P
 

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

Επεξεργάστηκε από συντονιστή:

dimitris001

Τιμώμενο Μέλος

Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται Φοιτητής/τρια και μας γράφει απο Αθήνα (Αττική). Έχει γράψει 7,608 μηνύματα.
Δεν υπάρχει περίπτωση να ισχύει κάτι τέτοιο η C++ δε κοιτάει newline εκτός αν μιλάμε για οδηγίες του προεπεξεργαστή. Κάτι άλλο έχεις κάνει.

( ή μπορεί να ναι τίποτα του dev συνηθίζει να παίρνει τέτοιες "πρωτοβουλίες" :P )
κι όμως...:P
στο dev++ ενω ειχα τα fflush κατω απο την scanf...δεν ετρεχε ο κωδικας και εσπαγα το κεφαλι μου να βρω το λαθος...και ο compiler δεν εβγαζε εννοείται λαθος...
και μεσα στην απογνωση μου...μου περασε απο το μυαλο να βαλω το fflush διπλα απο την scanf, και συνειδητοποιήσα οτι τώρα τρεχει μια χαρα!:D:P
και μου φαινεται ΠΑΡΑ πολυ περιεργο αυτο το πραγμα:P:P
 

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

Monte Cristo

Πολύ δραστήριο μέλος

Ο Mad Max αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 1,336 μηνύματα.
κι όμως...:P
στο dev++ ενω ειχα τα fflush κατω απο την scanf...δεν ετρεχε ο κωδικας και εσπαγα το κεφαλι μου να βρω το λαθος...και ο compiler δεν εβγαζε εννοείται λαθος...
και μεσα στην απογνωση μου...μου περασε απο το μυαλο να βαλω το fflush διπλα απο την scanf, και συνειδητοποιήσα οτι τώρα τρεχει μια χαρα!:D:P
και μου φαινεται ΠΑΡΑ πολυ περιεργο αυτο το πραγμα:P:P

Ίσως να είναι παραξενιά του compiler. Υπάρχουν πολλοί compilers, και μπορεί να έχει ξεφύγει κανα bug στον συγκεκριμένο :hmm:
ΔΟκίμασε και εδώ, έτσι για την περιέργεια. Εδώ έχουν τον GCC 4.4.7, στο dev++ νομίζω έχουν τον miniGW 4.7.2
 

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

kiriazispao4ever

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

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Δεν υπάρχει περίπτωση να ισχύει κάτι τέτοιο η C++ δε κοιτάει newline εκτός αν μιλάμε για οδηγίες του προεπεξεργαστή. Κάτι άλλο έχεις κάνει.

( ή μπορεί να ναι τίποτα του dev συνηθίζει να παίρνει τέτοιες "πρωτοβουλίες" :P )



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

Επίσης συνήθισε λίγο τα ονόματα να μη τα γράφεις σε greeklish όχι ότι δε συνηθίζεται γενικά αλλά είναι βλακεία και βγάζει μάτι. :P

κάνε και δυαδική μετά :P
βασικα δεν ειναι απο απροσεξια :P
οπως ειπα ειχα παρα πολυ καιρο να γραψω σε c++
και για να ειμαι ειλικρινης ειναι η πρωτη φορα που χρησιμοποιω πινακες σε C++ :P
τα εγραψα greeklish γιατι δεν ασχοληθηκα πανω απο 3 λεπτά με τον κώδικα :P
θα τον ξανακοιτάξω..και θα δουμε :P
ευχαριστω man :)
 

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

kiriazispao4ever

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

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
Άλλη ερώτηση.Πως δημιουργούμε βιβλιοθήκες?(ειμαι εντελώς άσχετος,οπότε θα χρειαστώ πολύ καλή επεξήγηση :P)
και πως τις καλώ?
πχ αν έχω την φυσαλίδα ...πως θα την καλέσω? :)
Σε μια βιβλιόθηκη ,μπορούμε να έχουμε πανω απο μια συναρτήσεις? Πχ και μιν και μαχ?
Ευχαριστώ :)
 

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

Γιώργος

Τιμώμενο Μέλος

Ο Γιώργος αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Ελβετία (Ευρώπη). Έχει γράψει 30,791 μηνύματα.
Άλλη ερώτηση.Πως δημιουργούμε βιβλιοθήκες?(ειμαι εντελώς άσχετος,οπότε θα χρειαστώ πολύ καλή επεξήγηση :P)
και πως τις καλώ?
πχ αν έχω την φυσαλίδα ...πως θα την καλέσω? :)
Σε μια βιβλιόθηκη ,μπορούμε να έχουμε πανω απο μια συναρτήσεις? Πχ και μιν και μαχ?
Ευχαριστώ :)
Δες ένα παράδειγμα:

File lib.h:
Code:
#ifndef _LIB_H_
#define _LIB_H_
extern int max( int , int );
extern int min( int , int );
#endif
File lib.cpp:
Code:
#include "lib.h"

int max( int a , int b ) {
  return ( a < b ) ? b : a;
}

int min( int a , int b ) {
  return ( a < b ) ? a : b;
}
File main.cpp:
Code:
#include <iostream>
#include "lib.h"
using namespace std;

int main() {
  int a = 42, b = 21;
  cout << "Max = " << max(a,b) << ", min = " << min(a,b) << endl;
  return 0;
}
Και κάνεις compile:
Code:
g++ main.cpp lib.cpp -o program.out
Subject to errors, δεν ξέρω αν κάνει compile, αλλά αυτή είναι η γενική ιδέα. Μπορείς να κάνεις ό,τι γουστάρεις και να 'χεις ό,τι θέλεις σε ένα αρχείο βιβλιοθήκης. Αν έχεις απορίες, πες τις.
 

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

vassilis498

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

Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,079 μηνύματα.
Άλλη ερώτηση.Πως δημιουργούμε βιβλιοθήκες?(ειμαι εντελώς άσχετος,οπότε θα χρειαστώ πολύ καλή επεξήγηση :P)
και πως τις καλώ?
πχ αν έχω την φυσαλίδα ...πως θα την καλέσω? :)
Σε μια βιβλιόθηκη ,μπορούμε να έχουμε πανω απο μια συναρτήσεις? Πχ και μιν και μαχ?
Ευχαριστώ :)

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

Αν ας πούμε θες να φτιάξεις σε C μια διεπαφή λίστας μπορείς να έχεις ένα ή περισσότερα .c αρχεία που θα περιέχουν τους ορσμούς των συναρτήσεων της λίστας ( εισαγωγή, διαγραφή, αναζήτηση κι άλλες ) και ένα αρχείο επικεφαλίδας που θα έχεις τις δηλώσεις των συναρτήσεων αυτών και τη δομή της λίστας + κάποια defines/typedef

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

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

kiriazispao4ever

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

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

File lib.h:
Code:
#ifndef _LIB_H_
#define _LIB_H_
extern int max( int , int );
extern int min( int , int );
#endif
File lib.cpp:
Code:
#include "lib.h"

int max( int a , int b ) {
  return ( a < b ) ? b : a;
}

int min( int a , int b ) {
  return ( a < b ) ? a : b;
}
File main.cpp:
Code:
#include <iostream>
#include "lib.h"
using namespace std;

int main() {
  int a = 42, b = 21;
  cout << "Max = " << max(a,b) << ", min = " << min(a,b) << endl;
  return 0;
}
Και κάνεις compile:
Code:
g++ main.cpp lib.cpp -o program.out
Subject to errors, δεν ξέρω αν κάνει compile, αλλά αυτή είναι η γενική ιδέα. Μπορείς να κάνεις ό,τι γουστάρεις και να 'χεις ό,τι θέλεις σε ένα αρχείο βιβλιοθήκης. Αν έχεις απορίες, πες τις.

στο Code blocks,ίσως αν μου εξηγούσες θα βοηθούσε περίσσοτερο,γιατί περί compiling, τα αφήνω μόνο του :P
χαχα
στο Code blocks έχει επιλογή για δημιουργία βιβλίοθηκης...:hmm:

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

Αν ας πούμε θες να φτιάξεις σε C μια διεπαφή λίστας μπορείς να έχεις ένα ή περισσότερα .c αρχεία που θα περιέχουν τους ορσμούς των συναρτήσεων της λίστας ( εισαγωγή, διαγραφή, αναζήτηση κι άλλες ) και ένα αρχείο επικεφαλίδας που θα έχεις τις δηλώσεις των συναρτήσεων αυτών και τη δομή της λίστας + κάποια defines/typedef

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

αυτά νομίζω είναι η θεωρία,που εν μερει την έχω καταλάβει απο τα υποπρογράμματα στο φροντιστήριο...
η απορία μου είναι πως δημιουργείται και χρησιμοποιείται μια βιβλιοθήκη στην πράξη.

πχ
να κανω σε μια βιβλιοθήκη την φυσαλίδα (αν την μάθω να την κανω σε c++:P) και έπειτα σε άλλο προγραμμα να διαβάζω εναν πίνακα
, να καλω την συναρτηση φυσαλίδα...και να μου εμφανίζει ταξινομημένα τα αποτελέσματα..
ευχαριστώ πάντως..χρήσιμες οι πληροφορίες σου:clapup:
 

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

vassilis498

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

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

πχ
να κανω σε μια βιβλιοθήκη την φυσαλίδα (αν την μάθω να την κανω σε c++:P) και έπειτα σε άλλο προγραμμα να διαβάζω εναν πίνακα
, να καλω την συναρτηση φυσαλίδα...και να μου εμφανίζει ταξινομημένα τα αποτελέσματα..
ευχαριστώ πάντως..χρήσιμες οι πληροφορίες σου:clapup:

έχεις σκέψου τον κώδικα της συνάρτησης αυτής μέσα σε ένα bubblesort.cpp και τη δήλωσή της σε ένα bubblesort.h ( που οκ το τελευταίο μια γραμμή θα ναι αλλά τη λογική λέμε ).

στο πηγαίο σου εσύ θα χεις ένα

#include "bubblesort.h"

και αν θες να καλεσεις τη συνάρτηση για ένα πίνακα θα χεις μια γραμμή που θα πηγαίνει πχ κάπως έτσι:

sorted = bubblesort( array, size );

edit: βασικά κάτι πιο αναλυτικό σου έκανε και ο Γιώργος τέλος πάντων.

στο Code blocks,ίσως αν μου εξηγούσες θα βοηθούσε περίσσοτερο,γιατί περί compiling, τα αφήνω μόνο του :P
χαχα
στο Code blocks έχει επιλογή για δημιουργία βιβλίοθηκης...:hmm:
για αυτό εγώ λέω στον κόσμο αν έχετε διάθεση χώστε κάνα linux... ένας text editor και ένας compiler απλά τα πράγματα.

Τώρα για να μάθεις να χρησιμοποιείς το κάθε IDE και πώς κάνει τι, google is your friend.
 

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

kiriazispao4ever

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

Ο kiriazispao4ever αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 29 ετών. Έχει γράψει 526 μηνύματα.
έχεις σκέψου τον κώδικα της συνάρτησης αυτής μέσα σε ένα bubblesort.cpp και τη δήλωσή της σε ένα bubblesort.h ( που οκ το τελευταίο μια γραμμή θα ναι αλλά τη λογική λέμε ).

στο πηγαίο σου εσύ θα χεις ένα

#include "bubblesort.h"

και αν θες να καλεσεις τη συνάρτηση για ένα πίνακα θα χεις μια γραμμή που θα πηγαίνει πχ κάπως έτσι:

sorted = bubblesort( array, size );

edit: βασικά κάτι πιο αναλυτικό σου έκανε και ο Γιώργος τέλος πάντων.

για αυτό εγώ λέω στον κόσμο αν έχετε διάθεση χώστε κάνα linux... ένας text editor και ένας compiler απλά τα πράγματα.

Τώρα για να μάθεις να χρησιμοποιείς το κάθε IDE και πώς κάνει τι, google is your friend.

απανταω στο τελευταιο μέρος λόγω περιορισμένου χρόνου..
τα υπολοιπα θα τα επεξεργαστώ οταν βρω χρόνο,
χρησιμοποιω fedora , ubuntu και win 7 ,αλλα σε όλα με το code blocks :P
για να είμαι ειλικρινής ,ΔΕΝ ΕΧΩ ΙΔΕΑ πως να κανω compile στο τερματικό :P

ΤΕΛΟΣ,μια ερωτηση ακόμα,αν κάποιος έχει η μπορεί να υλοποιήσει τον κωδικα κρυπτογραφησης του καισαρα (η οποιονδηποτε αλλον κώδικα κρυπτπο/απο κρυπτογραφησης ),σε c++ θα ήθελα να τον δω. :P
Ευχαριστώ
vasillis498 αν εχεις κανα καλό οδηγό για compiling σε linux ,αν μπορείς να τον παραθέσεις θα βοηθήσεις πολύ :)
 

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

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

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