THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: dim on October 14, 2005, 00:45:34 am



Title: 2005-06
Post by: dim on October 14, 2005, 00:45:34 am
Επειδή δεν ξέρω ακόμα αν θα πάρω το μάθημα, δεν πήγα στην πρώτη παράδοση..
Κάτι άκουσα ότι δόθηκε εκφώνηση για την 1η εργασία.
Ισχύει κάτι τέτοιο?
Αν ναι ας μας ενημερώσει κάποιος που παρακολούθησε..
(στο e-thmmy δεν είδα τπτ πάντως)
Κάθε εβδομάδα θα μπαίνει εργασία?


Title: Re: 2005-06
Post by: opolychr on October 14, 2005, 00:54:10 am
Όχι δεν δοθηκε. Αλλα απο την επομενη βδομαδα σιγουρα


Title: Re: 2005-06
Post by: shiver on October 14, 2005, 11:01:27 am
Δόθηκε η πρώτη άσκηση και είναι να παραδοθεί την Τρίτη.Δεν βαθμολογείται,είναι απλώς για εξάσκηση όπως μάλλον και οι έπομενες.


Title: Απ: 2005-06
Post by: ~Michelle~ on October 14, 2005, 11:31:29 am
Μήπως θα μπορούσε κάποιο καλό παιδάκι να μου δώσει σημειώσεις απο τις πρώτες παραδόσεις και την εκφώνηση της εργασίας?


Title: Απ: 2005-06
Post by: Alexkasgr on October 14, 2005, 14:10:11 pm
Αν και λίγο άσχετο, το λέω για να μην μπλέξετε τα μπούτια σας. Το μάθημα είναι στο 7ο εξάμηνο με το ΠΠΣ και στο 3ο με το ΝΠΣ. Γίνεται χωριστά για παλιούς και νέους?? Αν ναι όπως υποθέτω, ίσως να είναι διαφορετική η ύλη και άρα οι όποιες εργασίες.
3ο εξάμηνο Προγραμματιστικές Τεχνικές, 7ο εξάμηνο Προγραμματιστικές Τεχνικές, το 5ο στο πηγάδι κατούρησε προφανώς!  ;D ;D


Title: Απ: 2005-06
Post by: emmanuel on October 14, 2005, 14:46:55 pm
το μάθημα κατέβηκε στο ΝΠΣ,παλια ηταν στο 7ο εξάμηνο,τομέας ηλεκτρονικής,μάθημα επιλογής...


Title: Re: 2005-06
Post by: shiver on October 14, 2005, 15:07:00 pm
Αν και λίγο άσχετο, το λέω για να μην μπλέξετε τα μπούτια σας. Το μάθημα είναι στο 7ο εξάμηνο με το ΠΠΣ και στο 3ο με το ΝΠΣ. Γίνεται χωριστά για παλιούς και νέους?? Αν ναι όπως υποθέτω, ίσως να είναι διαφορετική η ύλη και άρα οι όποιες εργασίες.
3ο εξάμηνο Προγραμματιστικές Τεχνικές, 7ο εξάμηνο Προγραμματιστικές Τεχνικές, το 5ο στο πηγάδι κατούρησε προφανώς! ;D ;D


Ναι το ξέρω.Εγώ πάντως για να μην υπάρχουν μπερδέματα εννοώ ότι δόθηκε εργασία για το έβδομο εξάμηνο   :)


Title: Απ: 2005-06
Post by: ~Michelle~ on October 14, 2005, 15:08:34 pm
Αν και λίγο άσχετο, το λέω για να μην μπλέξετε τα μπούτια σας. Το μάθημα είναι στο 7ο εξάμηνο με το ΠΠΣ και στο 3ο με το ΝΠΣ. Γίνεται χωριστά για παλιούς και νέους?? Αν ναι όπως υποθέτω, ίσως να είναι διαφορετική η ύλη και άρα οι όποιες εργασίες.
3ο εξάμηνο Προγραμματιστικές Τεχνικές, 7ο εξάμηνο Προγραμματιστικές Τεχνικές, το 5ο στο πηγάδι κατούρησε προφανώς! ;D ;D


Ναι το ξέρω.Εγώ πάντως για να μην υπάρχουν μπερδέματα εννοώ ότι δόθηκε εργασία για το έβδομο εξάμηνο   :)

Φίου!!! Στο 3ο δόθηκε????


Title: Re: 2005-06
Post by: opolychr on October 14, 2005, 15:27:30 pm
Κοιταξε, μας ειπε απο βδομαδα, αλλα δεν μπορω να δω στο alexander αν βγαλανε καμια λογω των διαγραφων που εχουνε γινει.


Title: Re: 2005-06
Post by: apostolos1986 on October 14, 2005, 17:43:19 pm
Έβαλαν εργασία και για τον 3ο εξάμηνο , αλλά η ημερομηνία λήξης δηλώσεων είναι 3/11...


Title: Απ: 2005-06
Post by: dim on October 14, 2005, 18:29:40 pm
Δόθηκε η πρώτη άσκηση και είναι να παραδοθεί την Τρίτη.Δεν βαθμολογείται,είναι απλώς για εξάσκηση όπως μάλλον και οι έπομενες.
Μήπως μπορείς να την ανεβάσεις?

Ή μήπως είναι η ίδια με αυτή του 3ου εξαμήνου που ακολουθεί?
Quote
Εργασία A (Hμ/νία λήξης δηλώσεων: 03/11/2005) Ομάδες

Να γραφεί το πρόγραμμα στο οποίο ορίζεται η δομή student η οποία περιέχει ως στοιχεία τον πίνακα name με 20 στοιχεία τύπου char, την ακέραια μεταβλητή aem και την μεταβλητή point τύπου float. Τα στοιχεία της δομής αντιστοιχούν στο όνομα τον αριθμό μητρώου και το βαθμό προόδου ενός φοιτητή σε κάποιο μάθημα αντίστοιχα.
Στο πρόγραμμα να οριστεί ακόμη η δομή depart η οποία να έχει ως στοιχεία τις ακέραιες μεταβλητές st_num, st_pro και st_no_pro καθώς και ένα pointer σε δομές τύπου student. Τα στοιχεία αυτά αντιστοιχούν στον αριθμό των φοιτητών ενός τμήματος μιας σχολής, στον αριθμό των φοιτητών με προβιβάσιμο βαθμό στον αριθμό των φοιτητών με μη προβιβάσιμο βαθμό και στη διεύθυνση ενός πίνακα δομών ο οποίος περιέχει τα στοιχεία των φοιτητών του τμήματος.
Η συνάρτηση main() να διαβάζει τον αριθμό των τμημάτων της σχολής, να δεσμεύει δυναμικά μνήμη για να καταχωρηθούν τα απαραίτητα στοιχεία για τους φοιτητές κάθε τμήματος, να διαβάζει τα στοιχεία αυτά και να εκτυπώνει, για κάθε τμήμα, τα στοιχεία των φοιτητών με προβιβάσιμο βαθμό.
Ακόμη να υπολογίζεται και να εκτυπώνεται, για κάθε τμήμα, ο αριθμός των φοιτητών που προβιβάζονται και τον αριθμό των φοιτητών που δεν προβιβάζονται. Τέλος να τυπώνεται ο συνολικώς αριθμός των φοιτητών της σχολής με προβιβάσιμο βαθμό.


Title: Re: 2005-06
Post by: shiver on October 14, 2005, 19:13:10 pm
Είναι ακριβώςη ίδια με του τρίτου εξαμήνου!


Title: Απ: 2005-06
Post by: JAs0n-X on October 14, 2005, 20:21:25 pm
την εκανε κανεις?
εγω την παλευω απο δω την παλευω απο κει αλλα τα χω ξεχασει ρε γμτ...
εσεις που τα εχετε φρεσκα....??


Title: Απ: 2005-06
Post by: JAs0n-X on October 14, 2005, 21:15:09 pm
Λοιπον παιδια εγω εκανα το παρακατω ...
μου βγαζει ερορ στην γραμμη 19 που οριζω το struct depart tmimata...

τι φταιει? βγαζω και το ar_tmim και βαζω ενα νουμερο αλλα παλι τπτ...

γενικα πως σας φαινεται? πλησιασα καθολου?  :D

Code:

#include <stdio.h>

int ar_tmim, i, n, j, sum=0;

struct student {
char name[20];
int aem;
float point;
};

struct depart {
int st_num, st_pro, st_no_pro;
};

struct student *p;

void main () {
scanf("%d",&ar_tmim);

struct depart tmimata[ar_tmim];

for (i=0; i<ar_tmim; i++) {
printf ("/nDose plithos foititon gia to %d tmima/n", i);
scanf ("%d", &tmimata[i].st_num);

siz=sizeof(20*sizeof(char)*sizeof(int)*sizeof(float);
if ((p=malloc(siz))==NULL) exit(1);


for (j=0; j<tmimata[i].st_num; j++) {
tmimata[i].st_pro=0;
tmimata[i].st_no_pro=0;

printf ("/nDose onoma toy %d ou foititi/n", j);
scanf ("%s", p->name);
printf ("/nDose AEM toy %d ou foititi/n", j);
scanf ("%d", p->aem);
printf ("/nDose vathmo toy %d ou foititi/n", j);
scanf ("%d", p->point);

if (p->point >= 5) {
tmimata[i].st_pro++;}
else {
tmimata[i].st_no_pro++;}
}

printf ("/nO arithmos ton foititon me provivasimo vathmo sto %d tmima einai %d eno me mi provivasimo einai %d/n", i, tmimata[i].st_pro, tmimata[i].st_no_pro);

sum=sum+tmimata[i].st_pro;
}

printf ("/nOi provivasimoi foitites tis sxolis einai %d/n", sum);
}



Title: Απ: 2005-06
Post by: Axel on October 14, 2005, 23:33:54 pm
Edit: Χμ, τωρα κοιταξα και την εκφωνηση της ασκησης  :P Θελει να παρεις τιμη για το ar_tmim απο τη main.. Μολις βρω χρονο θα το κοιταξω. Παντως αυτο που σου ειπα πρεπει να δουλευει για fixed τιμες του ar_tmim.

Αντι γι'αυτο
Code:
#include <stdio.h>

int ar_tmim, i, n, j, sum=0;
γραψε αυτο
Code:
#define ar_tmim 10
#include <stdio.h>

int  i, n, j, sum=0;

Και κατι ακομα. C++ κανεις. Ασε τα printf και scanf και πιασε τα cin και cout. Ειναι πολυ πιο γρηγορα και ευκολα. ;)


Title: Απ: 2005-06
Post by: dim on October 15, 2005, 02:27:05 am
Είναι ακριβώςη ίδια με του τρίτου εξαμήνου!
Η εκφώνηση που κρέμασα ΕΙΝΑΙ του 3ου εξαμήνου.
Για να μην υπάρχουν παρεξηγήσειςτο λέω..
Απλά θα ήθελα κάποιος του 7ου εξαμήνου να μου πει αν στο 7ο εξάμηνο έβαλε την ίδια ή όχι, και αν όχι αν γίνεται να κάνει τον κόπο να την κρεμάσει..
Αλλά αν κρίνω από το ποστ του Τζεισον μάλλον η ίδια είναι..

ΤΙΠ
Στο e-thmmy, στο 3ο εξάμηνο δεν έχει τπτ σημειώσεις του διδάσκοντος(γιατί μοιράστηκε βιβλίο), όποιος όμως θέλει, μπορεί να βρει σημειώσεις στο 7ο..!


Title: Απ: 2005-06
Post by: JAs0n-X on October 15, 2005, 02:32:47 am
Edit: Χμ, τωρα κοιταξα και την εκφωνηση της ασκησης :P Θελει να παρεις τιμη για το ar_tmim απο τη main.. Μολις βρω χρονο θα το κοιταξω. Παντως αυτο που σου ειπα πρεπει να δουλευει για fixed τιμες του ar_tmim.

Αντι γι'αυτο
Code:
#include <stdio.h>

int ar_tmim, i, n, j, sum=0;
γραψε αυτο
Code:
#define ar_tmim 10
#include <stdio.h>

int  i, n, j, sum=0;

Και κατι ακομα. C++ κανεις. Ασε τα printf και scanf και πιασε τα cin και cout. Ειναι πολυ πιο γρηγορα και ευκολα. ;)

Τhanks για την απαντηση! θα το δοκιμασω...

απλα θα ηθελα ο αριθμος των τμηματων να μην ειναι fixed αλλα και αυτος μεταβλητος κατα την εκτελεση του προγραμματος...

τσπ...
οσο για τη C++ δεν καναμε ακομα :) πρωτο μαθημα αποτι μου ειπαν μας εκανετις δομες απο τη c... ισως επειδη ειχαμε αφησει το κεφαλαιο ΤΟΤΕ οποτε το κανει τωρα...αρα και εγω γραφω C :P
λογικα την επομενη εβδομαδα θα περασουμε στη c++...

YΓ.η ασκηση ειναι η ιδια!


Title: Re: 2005-06
Post by: shiver on October 15, 2005, 20:06:32 pm
Είναι ακριβώςη ίδια με του τρίτου εξαμήνου!
Η εκφώνηση που κρέμασα ΕΙΝΑΙ του 3ου εξαμήνου.
Για να μην υπάρχουν παρεξηγήσειςτο λέω..
Απλά θα ήθελα κάποιος του 7ου εξαμήνου να μου πει αν στο 7ο εξάμηνο έβαλε την ίδια ή όχι, και αν όχι αν γίνεται να κάνει τον κόπο να την κρεμάσει..
Αλλά αν κρίνω από το ποστ του Τζεισον μάλλον η ίδια είναι..


Αυτό εννοούσα και εγώ ότι του έβδομου εξαμήνου έναι ακρίβως ίδια με του τρίτου!
Τα μπερδέψαμε λίγο νομίζω   :)


Title: Απ: 2005-06
Post by: cheimon.axd on October 15, 2005, 23:28:18 pm
Ξέρει κανείς το προγραμμα των εργαστηρίων γιατί παρόλο που υπάρχουν οι φάκελοι στο eTHMMY δεν υπάρχουν αρχεία μέσα σ' αυτούς για να το δω!! Στο  ΜΩ-6 είμαι.


Title: Απ: 2005-06
Post by: ~Michelle~ on October 16, 2005, 01:21:27 am
Βρε παιδιά, επειδή έχω μείνει λίγο πίσω μπορει κάποιος 2ετής να μου πει τι κάναμε?


Title: Απ: 2005-06
Post by: lars on October 16, 2005, 17:36:49 pm
Λοιπον παιδια εγω εκανα το παρακατω ...
μου βγαζει ερορ στην γραμμη 19 που οριζω το struct depart tmimata...

τι φταιει? βγαζω και το ar_tmim και βαζω ενα νουμερο αλλα παλι τπτ...

γενικα πως σας φαινεται? πλησιασα καθολου? :D

Code:

#include <stdio.h>

int ar_tmim, i, n, j, sum=0;

struct student {
char name[20];
int aem;
float point;
};

struct depart {
int st_num, st_pro, st_no_pro;
};

struct student *p;


Δε ξέρω τι έχεις κάνει από τότε που έστειλες αυτό το μνμ αλλά εγώ αυτό που έκανα είναι να εισάγει ο χρήστης τον αριθμό των τμημάτων οπότε δεσμεύεις δυναμικά μνήμη για έναν πίνακα με δομές τύπου depart.Έτσι θα έχεις ένα πρώτο loop για κάθε τμήμα.Μέσα σε αυτό εισάγει πάλι ο χρήστης  τον αριθμό των φοιτητών και δεσμεύεις δυναμικά χώρο για αυτόν τον αριθμό.Εκεί θα πρέπει να εξισώσεις τον pointer της malloc με τον pointer σε δομές student που θα έχεις ορίσει ΜΕΣΑ στη δομή depart .
π.χ. αν έχεις δηλώσει μια δομή d τύπου depart(ουσιαστικά τον πίνακα τμημάτων d) στη mainκαι έναν  pointer s σε δομές student μέσα στη δήλωση της depart ενώ για τη  malloc έχεις τον pointer p, θα γράψεις 
d.s=p; 
 Έτσι δημιουργείς ουσιαστικά πίνακα δομών μέσα σε δομή

Για να εισάγεις τα στοιχεία κάθε φοιτητή θα έχεις μετά σε δεύτερο loop π.χ. για το όνομα d.s[j].name κ.ο.κ.
Αλλά μετά αυτά που ζητάει(δλδ τον αριθμό προβιβάσιμων και μη φοιτητών αλλά και τα στοιχεία του κάθε προβιβάσιμου φοιτητή) θα πρέπει να εμφανίζονται για το κάθε τμήμα πριν εισάγεις τα στοιχεία των φοιτητών για το επόμενο.Δλδ πρώτα θα εμφανίζει τα στοιχεία και τους αριθμούς φοιτητών για το πρώτο τμήμα,μετά θα εισάγεις τα στοιχεία των φοιτητών για το δεύτερο,μετά τα αντίστοιχα αποτελέσματα για το δεύτερο τμήμα,μετά εισάγεις τα στοιχεία για το τρίτο κ.ο.κ.Αυτό πρέπει να γίνει ώστε η αποδέσμευση της μνήμης για τον πίνακα με τα στοιχεία φοιτητών να γίνει αφού τελειώσει το δεύτερο loop και πριν γίνει η επόμενη επανάληψη του πρώτου(τότε ουσιαστικά αλλάζεις τμήμα οπότε θα υπάρχει διαφορετικός αριθμός φοιτητών και δε χρειάζεται η μνήμη που είχες δεσμεύσει για το προηγούμενο τμήμα).

Ελπίζω να έβγαλες άκρη γιατί έχω μια τάση να τα γράφω λίγο μπερδεμένα! :)

P.S.: Μάλλον θα το έχεις καταλάβει αλλά επειδή τώρα το είδα,τo struct student *p; που έχεις ορίσει παραπάνω  θέλει να το ενσωματώσεις μέσα στην depart νομίζω


Title: Απ: 2005-06
Post by: JAs0n-X on October 16, 2005, 22:41:44 pm
Ελπίζω να έβγαλες άκρη γιατί έχω μια τάση να τα γράφω λίγο μπερδεμένα! :)
Λαμπρο δεν τα κανεις ολα τα παραπανω ενα προγραμμα?? . . . να καταλαβουμε δηλαδη! :P

;D ;D ;D :P


Title: Απ: 2005-06
Post by: lars on October 17, 2005, 01:22:53 am
Σωστός!! :)
Δεν το είχα τελειώσει το πρόγραμμα και ακόμα έχω πρόβλημα.Κάνει κανονικά compiling αλλά κολλάει στην εκτέλεση.Κάποια βλακεία έχω κάνει με τις malloc.Βασικά δε ξέρω και σαν τι πρέπει να δηλώσω το μέγεθος του
 pointer σε  student στο siz.

Code:
#include "stdio.h"
#include "stdlib.h"

struct student{
char name[20];
int aem;
float point;
};

struct depart{
int st_num,st_pro,st_no_pro;
student *s;
};

void main()
{
int n,siz,size;
[s]void *p ,*rp;[/s] [b]struct depart *d;[/b]
      [b]  struct student *st;[/b]
printf("Dwse arithmo tmimatwn: ");
scanf("%d",&n);
[s]siz=sizeof(n*(3*sizeof(int)+sizeof(long int))); //provlima!![/s] [b]siz=n*sizeof(struct depart);[/b]
[s]if ((p=malloc(siz))==NULL) exit(1);[/s] if ((d=(struct depart *)malloc(siz))==NULL) exit(1);
[s]depart *d;[/s]
[s]d=(depart *)p[/s]
int total=0;
for(int i=0;i<n;i++){
d[i].st_no_pro = 0;
d[i].st_pro = 0;
printf("\nDwse arithmo foititwn: ");
scanf("%d",&d[i].st_num);
[s]size=sizeof(d[i].st_num*(20*sizeof(char)+sizeof(int)+sizeof(float)));[/s]΄
               [b]size=d[i].st_num*(20*sizeof(char)+sizeof(int)+sizeof(float));[/b]
               [s]if ((rp=malloc(size))==NULL) exit(1);[/s]
              [b] if ((st=(struct student *)malloc(size))==NULL) exit(1);[/b]
[s]student *st;
st=(student *)rp;[/s]
d[i].s = st;
for(int j=0;j<d[i].st_num;j++){
printf("\nDwse onoma foititi: ");
scanf("%s",&d[i].s[j].name);
printf("Dwse AEM: ");
scanf("%d",&d[i].s[j].aem);
printf("Dwse vathmo: ");
scanf("%f",&d[i].s[j].point);
}
for(j=0;j<d[i].st_num;j++){
if (d[i].s[j].point >=5){
printf("%s\n",d[i].s[j].name);
printf("%d\n",d[i].s[j].aem);
printf("%f\n",d[i].s[j].point);
d[i].st_pro++;
}
else d[i].st_no_pro++;
}
printf("\nProvivasimoi: %d\n",d[i].st_pro);
printf("Mi provivasimoi: %d\n",d[i].st_no_pro);
total+=d[i].st_pro;
[s]free (rp); [/s] [b]free (st); [/b]
}

printf("\n\nSynolika provivasimoi: %d\n\n",total);
[s]free (p);[/s] [b]free (d);[/b]
}


Title: Απ: 2005-06
Post by: BOBoMASTORAS on October 17, 2005, 19:27:33 pm
κάνε το εξής. το *p μη το δηλώνεις void αλλά struct depart *p. στο sizeof βάλε siz=n*sizeof(struct depart)
και άλλαξε τη malloc σε p=(struct depart *)malloc(siz)

αυτό που έχεις γράψει στη sizeof τώρα είναι λάθος. έχεις ένα sizeof για να υπολογήσεις το μέγεθος της δομής depart ->(sizeof(3*....). σποτέλεσμα του πρώτου sizeof είναι το μέγεθος της δομής depart. στη συνέχεια αυτό το πολ/ζεις με n και το ξαναδίνεις σε sizeof. αυτό το δεύτερο είναι λάθος. η sizeof δέχεται ως όρισμα τύπο δεδομένων όχι αριθμητική τιμή.


Title: Απ: 2005-06
Post by: lars on October 18, 2005, 00:59:35 am
Ευτυχώς που έχουμε κι εσένα ρε Μπάμπη!!!
Μεγάλη βλακεία.Απορώ πως δεν έβγαλε  κανένα error ο compiler.
Το μόνο κακό είναι ότι είδα αργά το μνμ σου και το έκανα και με new  :)

Άσχετο,γενικά ξέρει κανένας τι μέγεθος έχουν τλκ οι pointers??


Title: Απ: 2005-06
Post by: dim on October 18, 2005, 01:10:03 am
Άσχετο,γενικά ξέρει κανένας τι μέγεθος έχουν τλκ οι pointers??
Είμαι απασχολημένος αυτή τη στιγμή για το σκεφτώ παραπάνω, αλλά ο πόιντερ μέγαθος ακεραίου δε θα έχει?
Ο,τιδήποτε και αν είναι αυτό στο οποίο δείχνει, στην τελική μια διεύθυνση περιέχει..
Απλή εικασία κάνω, μπορεί να είναι κ βλακία..


Title: Απ: 2005-06
Post by: dim on October 18, 2005, 01:15:26 am
Κ κάτι που μόλις είδα..

        if ((rp=malloc(size))==NULL) exit(1);
      
...

   free (p);                        

Δεν ξέρω αν σας τρέχει κανονικά το προ/μα, αλλά εγώ έβαλα τα παρακάτω, σύμφωνα με ένα παράδειγμα από τις σημειώσεις του Κορτέση, και σε ένα παράδειγμα που έκανα, μου έβγαλε σωστό αποτέλεσμα

Code:
if (  (tmima=(struct depart*)malloc(siz))==NULL  )

...

free((void*)tmima);


Title: Απ: 2005-06
Post by: lars on October 18, 2005, 01:36:31 am
Είμαι απασχολημένος αυτή τη στιγμή για το σκεφτώ παραπάνω, αλλά ο πόιντερ μέγαθος ακεραίου δε θα έχει?
Ο,τιδήποτε και αν είναι αυτό στο οποίο δείχνει, στην τελική μια διεύθυνση περιέχει..
Απλή εικασία κάνω, μπορεί να είναι κ βλακία..

Καλά τα λες αλλά 2 ή 4 bytes δε ξέρω αν είναι.Κάπου θα υπάρχει αυτό αλλά έλεγα μήπως το ήξερε κανένας


Title: Απ: 2005-06
Post by: lars on October 18, 2005, 01:41:33 am
Κ κάτι που μόλις είδα..

 if ((rp=malloc(size))==NULL) exit(1);
      
...

   free (p);                        

Δεν ξέρω αν σας τρέχει κανονικά το προ/μα, αλλά εγώ έβαλα τα παρακάτω, σύμφωνα με ένα παράδειγμα από τις σημειώσεις του Κορτέση, και σε ένα παράδειγμα που έκανα, μου έβγαλε σωστό αποτέλεσμα

Code:
if ( (tmima=(struct depart*)malloc(siz))==NULL )

...

free((void*)tmima);

Σωστό.Νομίζω είναι αυτό που μου πρότεινε ο Μπάμπης παραπάνω.

P.S.: Πήγα πρώτη φορά να κάνω τροποποίηση στον κώδικα και τα έκανα μαντάρα!Όποιος έχει λίγη υπομονή και αντικαταστήσει ό,τι βρίσκεται ανάμεσα στα με ό,τι βρίσκεται ανάμεσα στα θα τρέξει κανονικά και το πρόγραμμα.


Title: Απ: 2005-06
Post by: dim on October 18, 2005, 02:03:48 am
Καλά τα λες αλλά 2 ή 4 bytes δε ξέρω αν είναι.Κάπου θα υπάρχει αυτό αλλά έλεγα μήπως το ήξερε κανένας
Εξαρτάται από το μηχάνημα του καθενός αν θα είναι 2 λη 4 byte..
Νομίζω με ένα
Code:
int n;
n=sizeof(p)
θα πάρεις την πιο σίγουρη απάντηση
Σωστό.Νομίζω είναι αυτό που μου πρότεινε ο Μπάμπης παραπάνω.
Ωπ, σόρυ, τώρα το πρόσεξα..
Anyway, θα πρέπει να δηλωθεί το ίδιο και στη free..


Title: Απ: 2005-06
Post by: lars on October 21, 2005, 19:48:23 pm
Μια χάρη για όποιον μπορεί(BOB?? :D).Γίνεται να ανεβάσετε την εκφώνηση της δεύτερης άσκησης?
 Γιατί ο Κορτέσης θα κάνει όπως την πρώτη που την έκανε upload τη Δευτέρα για να τη δώσουμε Τρίτη!!

Είμαι ο μόνος που ειλικρινά μου τη σπάει??Τον ευχαριστώ πάντως που με έκανε να θυμηθώ το πρώτο εξάμηνο με Φραγκάκι κ σια!! :)
 Δε φτάνει το παραπάνω,δε φτάνει που δεν "προνόησε" να μας δώσει το βιβλίο για αυτό το εξάμηνο,δε φτάνει που μου την είπε επειδή βρήκα ότι η αιθ.4 είναι ελεύθερη την Τετάρτη το πρωί,δεν  έδωσε και τις σημειώσεις σε όσους δεν πήγαν την Τετάρτη!
 Πήγα σήμερα με ένα άλλο παιδί και μας είπε να τις κατεβάσουμε.εντάξει μωρέ 109 σελίδες είναι,θα τις εκτυπώσουμε!!Και όχι τπτ άλλο,είχα κ λόγο που δεν πήγα την Τετάρτη αλλά δεν είναι αυτό που έχει σημασία..Διανομή μια φορά το εξάμηνο,άντε να δω τι θα δω ακόμα


Title: Απ: 2005-06
Post by: BOBoMASTORAS on October 21, 2005, 20:17:40 pm
Μια χάρη για όποιον μπορεί(BOB?? :D).Γίνεται να ανεβάσετε την εκφώνηση της δεύτερης άσκησης?
 Γιατί ο Κορτέσης θα κάνει όπως την πρώτη που την έκανε upload τη Δευτέρα για να τη δώσουμε Τρίτη!!

Η δεύτερη άσκηση όπως δόθηκε στο 7ο εξάμηνο:


Title: Απ: 2005-06
Post by: lars on October 21, 2005, 20:57:18 pm
Thnx again!


Title: Απ: 2005-06
Post by: dim on October 22, 2005, 01:36:32 am
Στο e-thmmy ανέβηκε ο κώδικας για την πρώτη εργασία, καθώς και για την άσκηση που έβαλε στο εργαστήριο


Title: Απ: 2005-06
Post by: cheimon.axd on October 22, 2005, 09:59:31 am
Δώθηκε παράταση για την παράδοση της εργασίας μέχρι τις 10/11/2005!


Title: Απ: 2005-06
Post by: dim on October 22, 2005, 15:20:05 pm
Στο e-thmmy ανέβηκε ο κώδικας για την πρώτη εργασία, καθώς και για την άσκηση που έβαλε στο εργαστήριο
Αυτό σημαίνει ότι όσοι 2ετείς τα βρίσκουν μπαστούνια με την άσκηση, εφόσον αυτή είναι ίδια με του 7ου 6μήνου, μπορούν να κάνουν join στις Προγραμματιστικές τεχνικές του 4ου έτους στο e-thmmy, και να δουν που κολλάνε..!


Title: Απ: 2005-06
Post by: lars on October 22, 2005, 23:15:49 pm
Ναι είναι πολύ τσακάλι ο Κορτέσης,μην το πεις ούτε του παπά!


Title: Απ: 2005-06
Post by: dim on October 30, 2005, 20:01:48 pm
Έκανε κανένας την 3η εργασία?

Γιατί έχω κολήσει και χρειάζομαι συμβουλή..

Σε κάθε κλάση δήλωσα ως friend τις
-int sum(αντικείμενο)
-main()

έχω όμως πρόβλημα με τη διεύθυνση του πίνακα..
μετά τη δέσμευση μνήμης και την "ανάγνωση" των στοιχείων του πίνακα, γράφω την εντολή
cout << a;

και στη main() γράφω
cout << AA.a ;   'οπου  AA είναι αντικείμενο τύπου Α

Αυτές οι δύο εντολές μου βγάζουν διαφορετικό αποτέλεσμα, και έτσι παίρνω ό,τι να'ναι αποτελέσματα από 'κει και κάτω..

Καμιά ιδέα???


Title: Re: 2005-06
Post by: sakaflias7 on October 30, 2005, 23:15:53 pm
οπα τι εχει παιχτει εδω?!!τριτη εργασια?εγω ακουσα οτι την πρωτη μπορουμε να την παραδωσουμε μεχρι 10/11 επειδη χαθηκαν μερικα μαθηματα.


Title: Απ: 2005-06
Post by: JAs0n-X on October 30, 2005, 23:21:46 pm
@sakaflias:o dim μιλαει για 7ο εξαμηνο.

@Dim:

την αναγνωση την εκανες σωστα?
ο ποιντερ μπορει να γινει πινακας οποτε διαβαζεις απλα ετσι: a

ο ποιντερ σε ποιντερ γινεται δισδιαστατος πινακας οποτε διαβαζεται ετσι: a[j]

δεν καταλαβα τι ακριβως εχεις κανει εσυ δωσε καμια λεπτομερεια!


Title: Απ: 2005-06
Post by: dim on October 31, 2005, 00:58:10 am
δεν καταλαβα τι ακριβως εχεις κανει εσυ δωσε καμια λεπτομερεια!
Sorry, τα είπα λίγο λακωνικά..
Code:
class A{
     int n, s;
     int *a;
public:
     friend int sum(A);
     friend int main();
     void get_data();
};
Code:
void A::get_data()
{
     int *a, i;
     cout << "Diastasi monodiastatou pinaka___ ";
     cout << "n=> ";     cin  >> n;
     a=(int *)malloc( n*sizeof(int) );
     if (a==NULL){
          cout << "\n\n\nNo memory\n\nPress any key to end this program\n\n";
          getch();
          exit(12345);
     }
     cout << "\n\nAA.a=> " << a << "\n\n";          //-------> TEST
     cout << "\n\n";
     for (i=0 ; i<n ; i++){
         cout << "a[" << i+1 << "] => ";
         cin  >> a[i];
     }
}
Code:
int sum(A AA)
{
     int i, sum=0;
     cout << "\n\nAA.a=> " << AA.a << "\n\n";          //-------> TEST
     for (i=0 ; i<AA.n ; i++){
          if (AA.a[i]>0){
               sum+=AA.a[i];
          }
     }
     cout << "\n\nsum(A AA)___sum=> " << sum << "\n\n";
     return sum;
}
Code:
main()
{    int i, j;
     A AA;
     B BB;
     AA.get_data();
     BB.get_data();
     AA.s=sum(AA);
     BB.s=sum(BB);
...
     cout << "\n\nA__s=> " << AA.s;
...
δεν το βαζω ολόκληρο γιατί είναι μακρυνάρι και όλοι θα βαρεθούν να το δουν..
Παρόλο που μου φαίνεται σωστό, κάπου υπάρχει λάθος..
έτσι βάζω να μου εκτυπώσει τη διεύθυνση του πίνακα a σε δυο σημεία, στη A::get_data() και στη sum(A AA)..
..και παίρνω φιαφορετική ένδειξη, και έτσι όλα τα αποτελέσματα που παίρνω είναι σκατά..


Title: Απ: 2005-06
Post by: JAs0n-X on October 31, 2005, 01:30:32 am
με μια πολυ γρηγορη ματια νομιζω το βρηκα...
στην συναρτηση getdata οριζεις ως Int *a...
κατι τετοιο νομιζω δεν χρειαζεται γιατι η getdata ειναι μελος της κλασης Α και αρα μπορει να βλεπει τις private μεταβλητες...
ξαναδηλωνοντας τες νομιζω αναιρεις τις αλλες κλπ κλπ

δοκιμασε και πες μας


Title: Απ: 2005-06
Post by: dim on October 31, 2005, 01:57:52 am
FUCK!!!!!

Δεν μπορείς να φανταστείς πόσες ώρες έφαγα κοιτάζοντας από δω και από 'κει χωρίς να καταλαβαίνω τι φταίει..!
Και συ μου λες "με μια γρήγορη ματιά"..Θα τρελαθώ! :)
Eίμαι ηλίθιος!!!

Nα 'σαι καλά JAs0n-X, thanks για τη βοήθεια!!


Title: Απ: 2005-06
Post by: JAs0n-X on October 31, 2005, 02:30:00 am
πραγματικα ηταν πολυ γρηγορη η ματια απλα επεσε εκει το ματι μου!!
:P :P
χαιρομαι που βοηθησα!


Title: Απ: 2005-06
Post by: BOBoMASTORAS on October 31, 2005, 18:24:50 pm
ναι καμιά φορά όταν γράφεις το κώδικα μπορεί να κολλήσεις.

Υ.Γ. μήπως θα ήταν καλό αν δημιουργηθούν 2 τοπικ ένα για το 3ο και ένα για το 7ο εξάμηνο για να μην μπερδευόμαστε?


Title: Απ: 2005-06
Post by: cheimon.axd on November 02, 2005, 20:08:29 pm
Υ.Γ. μήπως θα ήταν καλό αν δημιουργηθούν 2 τοπικ ένα για το 3ο και ένα για το 7ο εξάμηνο για να μην μπερδευόμαστε?
Χρείαζεται οπωσδήποτε!


Title: Απ: 2005-06
Post by: JAs0n-X on November 02, 2005, 23:47:25 pm
Ναι εχετε δικιο...λυπουμαι αλλα εγω δεν μπορω να το κανω αυτο...

FUGIII ενα πινακααααα στο 3οοοοο και ενα τζατζικι στο 7ο!


Title: Απ: 2005-06
Post by: fugiFOX on November 06, 2005, 03:35:27 am
Αυτό είναι πολύ εύκολο να γίνει, αλλά όπως διαπιστώνετε εδώ έχει συγκεντρωθεί αρκετό υλικό και θα ήταν κρίμα για κάποιον που πάει απευθείας στον πίνακα του τρίτου εξαμήνου να το χάσει.
Καλύτερα θα ήταν να βάζαμε ένα λίνκ στο 3ο εξάμηνο που θα οδηγούσε εδώ. ή το αντίστροφο;


Title: Απ: 2005-06
Post by: JAs0n-X on November 06, 2005, 03:56:26 am
Εγω θα ελεγα το πρωτο...


Title: Απ: 2005-06
Post by: fugiFOX on November 06, 2005, 04:03:21 am
σοτ 3ο εξάμηνο είναι με το ΝΠΣ?


Title: Απ: 2005-06
Post by: lars on November 06, 2005, 05:43:30 am
Ναι στο 3ο εξάμηνο είναι


Title: Ανεβαστε Plz την εργασια της εβδομαδας!!
Post by: JAs0n-X on November 16, 2005, 17:07:05 pm
Παιδια οποιος πηγε σημερα στο μαθημα και πηρε εργασια ας κανει το καλο να την ανεβασει ...ειτε σκαναρισμενη ειτε πληκτρολογημενη οπως τον βολευει γιατι ελλειπα και δεν την εχω.

Ευχαριστω.

ΥΓ.Αναφερομαι στο 7ο εξαμηνο!


Title: Απ: 2005-06
Post by: BOBoMASTORAS on November 16, 2005, 17:20:36 pm
Ναι ρε παιδιά, όποιος μπορεί θα του είμαστε υπόχρεοι.


Title: Απ: 2005-06
Post by: lars on November 16, 2005, 19:46:46 pm
Επειδή το scanner χάλασε..

Άσκηση 6η
Να γραφεί το πρόγραμμα στο οποίο ορίζονται:
α) Η κλάση Α η οποία περιέχει ως protected στοιχεία τους ακεραίους n και m και τη μεταβλητή a τύπου pointer σε pointer σε στοιχεία τύπου int. Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως ορίσματα τις τιμές των n και m και να δεσμεύει δυναμικά μνήμη έτσι ώστε η μεταβλητή a να μπορεί να χρησιμοποιηθεί ως πίνακας τύπου n x m. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα.
 β) Η κλάση Β η οποία να περιέχει ως protected στοιχεία τον ακέραιο n και την μεταβλητή b τύπου pointer σε στοιχεία τύπου int Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως όρισμα την τιμή του n και να δεσμεύει δυναμικά μνήμη έτσι ώστε η μεταβλητή b να μπορεί να χρησιμοποιηθεί ως πίνακας διαστάσεως n. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα.
 γ) Η κλάση C ως public παραγόμενη από τις κλάσεις Α και Β η οποία να περιέχει ως private στοιχεία τον ακέραιο n και την μεταβλητή c τύπου pointer σε στοιχεία τύπου int.Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως όρισμα την τιμή του n  και να δεσμεύει δυναμικά μνήμη ώστε η μεταβλητή c να μπορεί να χρησιμοποιηθεί ως πίνακας διαστάσεως n. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα. Τέλος στην κλάση να ορισθεί η συνάρτηση void mul(void) η οποία να υπολογίζει το διάνυσμα c ως το γινόμενο των πινάκων a και b.
  Η συνάρτηση main να διαβάζει τις τιμές των n και m, να ορίζει ένα αντικείμενο τύπου C και να εκτυπώνει για το αντικείμενο αυτό το διάνυσμα c ως γινόμενο των πινάκων a και b.


Title: Απ: 2005-06
Post by: dim on November 16, 2005, 21:21:29 pm
Κάποιος που ήταν στο μάθημα μπορεί να μας πει μέχρι που έκανε στην παράδοση?
(ΥΓ. τις εκφωνήσεις τις έχει και στο ethmmy αν δεν κάνω λάθος, στο υλικό μαθήματος, οπότε δε χρειάζεται σκάνερ ;)  )


Title: Απ: 2005-06
Post by: BOBoMASTORAS on November 16, 2005, 23:11:16 pm
Αν δε κάνω λάθος τις εκφωνίσεις όμως τις βγάζει στο internet τη Δευτέρα και παραδίδουμε Τρίτη.


Title: Απ: 2005-06
Post by: JAs0n-X on November 17, 2005, 05:36:20 am
Τhanks a lot  lars!!


Title: Απ: 2005-06
Post by: lars on November 17, 2005, 13:00:29 pm
Τπτ ρε J=X! :)


Title: Απ: 2005-06
Post by: dim on November 18, 2005, 03:45:18 am
Αν δε κάνω λάθος τις εκφωνίσεις όμως τις βγάζει στο internet τη Δευτέρα και παραδίδουμε Τρίτη.
Μόλις έριξα μια ματιά στο ethmmy και μάλλον έχεις δίκαιο..
Πάλι καλά που την κρέμασε ο lars γιατί δεν την είχα..


Title: Απ: 2005-06
Post by: JAs0n-X on November 19, 2005, 04:22:12 am
Παιδια μεχρι που εφτασε στη θεωρια στο τελευταιο μαθημα (7ο εξαμηνο)?

Προσπαθω να κανω την ασκηση και εχω το εξης προβλημα..
ενω απο την κλαση C κληρονομω κανονικα τους ακεραιους m και n αυτη δεν θελει να τους "δει".
Ετσι μου βγαζει error οταν κανω τον constructor C::C(int n) : B(n),A(m,n) {...}
και αν την ορισω μετα παλι αρνειται να δει αυτες τις μεταβλητες καθως και τους pointers a και b!
και η κληρονομια ειναι public!!

Μηπως ξερει κανεις τι συμβαινει?

Ρωταω που εφτασε μηπως θελει τπτ τρελο με pointers, this κλπ!

Ευχαριστω.



ΥΓ.μαλλον εχει λαθος η εκφωνηση οσο αφορα τις n γραμμες και m στηλες!
Αφου αργοτερα γινεται πολλαπλασιασμος πινακων πρεπει να ειναι m*n και οχι n*m!


Title: Απ: 2005-06
Post by: lars on November 19, 2005, 05:53:01 am
Δεν είμαι Θεσ/κη και δεν έχω την εργασία μπροστά.Ίσως να έχω κάνει λάθος στην εκφώνηση αλλά θα στείλω την Κυριακή.Για όλα τα άλλα δε μπορώ να απαντήσω τώρα αλλά την Τετάρτη έκανε κτ για virtual συναρτήσεις οπότε ίσως χρειάζεται κτ από εκεί.Το μόνο που θυμάμαι ότι είδα είναι ότι η άσκηση έχει ξαναμπεί παρόμοια πέρυσι! ;)


Title: Απ: 2005-06
Post by: lars on November 21, 2005, 02:32:04 am
Tελικά η εκφώνηση είναι όπως την έγραψα και μάλλον είναι λάθος


Title: Απ: 2005-06
Post by: dim on November 21, 2005, 11:51:58 am
Παιδιά την εκφώνηση την είδα και εγώ μόνο από εδώ, και το πρόγραμμά μου τρέχει κανονικά..
Εκ πρώτης όψεως φαίνεται λάθος, αλλά δεν είναι μάλλον..

class C : public A, public B{
   private:
     int n, *c;
   public:
     C(int, int);
     void set_c();
     void get_c();
     void mul();
     ~C();
};

C::C(int n, int m):A(n, m), B(m){     ****
     this->n=n;
     c=(int*)malloc( n*sizeof(int*) );
     if (c==NULL){
          cout << "No memory c";
          getch();
     }
}

****
Τις κλάσεις τις κάνουμε όπως ακριβώς λέει η εκφώνηση.
και μετά, στον constructor της C
C::C(int n, int m):A(n, m), B(m)
"εξισώνουμε" τη δεύτερη διάσταση του πίνακα α με αυτή του πίνακα b.
Με ό,τι μεταβλητές και αν κάναμε την υλοποίηση, μ'αυτόν τον τρόπο ο πολ/μος γίνεται κανονικότατα.
Δεν ξλερω αν είναι σωστή η υλοποίηση, πάντως τρέχει..


Title: Απ: 2005-06
Post by: JAs0n-X on November 21, 2005, 16:04:52 pm
Εκανες ομως ενα λαθακι που εκανα και γω και το αλλαξα...
Δηλωσες τις μεταβλητες ως private ενω ζητα protected!

Ετσι δεν τις βλεπουν οι κλασεις που τις κληρονομουν!


Title: Απ: 2005-06
Post by: dim on November 21, 2005, 19:26:52 pm
Εκανες ομως ενα λαθακι που εκανα και γω και το αλλαξα...
Δηλωσες τις μεταβλητες ως private ενω ζητα protected!

Ετσι δεν τις βλεπουν οι κλασεις που τις κληρονομουν!

Σε ποιον πήγαινε αυτό?
Αν πήγαινε σε 'μένα, εγώ την eκφώνηση του lars είδα, που ζητάει private..

Επειδή το scanner χάλασε..

Άσκηση 6η
Να γραφεί το πρόγραμμα στο οποίο ορίζονται:

α) Η κλάση Α η οποία περιέχει ως protected στοιχεία τους ακεραίους n και m και τη μεταβλητή a τύπου pointer σε pointer σε στοιχεία τύπου int. Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως ορίσματα τις τιμές των n και m και να δεσμεύει δυναμικά μνήμη έτσι ώστε η μεταβλητή a να μπορεί να χρησιμοποιηθεί ως πίνακας τύπου n x m. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα.

 β) Η κλάση Β η οποία να περιέχει ως protected στοιχεία τον ακέραιο n και την μεταβλητή b τύπου pointer σε στοιχεία τύπου int Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως όρισμα την τιμή του n και να δεσμεύει δυναμικά μνήμη έτσι ώστε η μεταβλητή b να μπορεί να χρησιμοποιηθεί ως πίνακας διαστάσεως n. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα.

γ) Η κλάση C ως public παραγόμενη από τις κλάσεις Α και Β η οποία να περιέχει ως private στοιχεία τον ακέραιο n και την μεταβλητή c τύπου pointer σε στοιχεία τύπου int.Στην κλάση να ορίζεται μια συνάρτηση αρχικών συνθηκών η οποία να δέχεται ως όρισμα την τιμή του n  και να δεσμεύει δυναμικά μνήμη ώστε η μεταβλητή c να μπορεί να χρησιμοποιηθεί ως πίνακας διαστάσεως n. Στην κλάση να ορισθούν ακόμη οι κατάλληλες συναρτήσεις για το διάβασμα και την εκτύπωαη των στοιχείων του πίνακα. Τέλος στην κλάση να ορισθεί η συνάρτηση void mul(void) η οποία να υπολογίζει το διάνυσμα c ως το γινόμενο των πινάκων a και b.
 
 Η συνάρτηση main να διαβάζει τις τιμές των n και m, να ορίζει ένα αντικείμενο τύπου C και να εκτυπώνει για το αντικείμενο αυτό το διάνυσμα c ως γινόμενο των πινάκων a και b.


Title: Απ: 2005-06
Post by: JAs0n-X on November 22, 2005, 00:44:43 am
α σορρυ...
ναι εχεις δικιο..
απλα εχοντας στο νου μου αυτο που εκανα εγω (αναφεροταν στις κλασεις Α και Β) νομιζα οτι εκανες και εσυ το ιδιο.

οσο για το οτι το προγραμμα σου τρεχει εχεις δικιο...
απλα ονομαζει την μεταβλητη της κλασης Β παλι n και μας μπερδευει..
αν δωσεις το ορισμα m ολα οκ


Title: Απ: 2005-06
Post by: dim on November 22, 2005, 01:47:30 am
απλα ονομαζει την μεταβλητη της κλασης Β παλι n και μας μπερδευει..
αν δωσεις το ορισμα m ολα οκ
Αυτό ακριβώς ;)
Λίγο tricky με την πρώτη ματιά :)


Title: Απ: 2005-06
Post by: JAs0n-X on November 23, 2005, 14:53:44 pm
Παιδια παλι δεν μπορεσα να σηκωθω αυτο το πολυ κρυο πρωινο και παλι εχασα την εκφωνηση! :(
καποιος να την ανεβασει? ιδιως αν εχει σκαννερ..!

thanks


Title: Απ: 2005-06
Post by: lars on November 23, 2005, 16:00:31 pm
Σήμερα στις 9 λίγο δύσκολο να ξυπνήσει κανείς και μάλλον μας λυπήθηκε ο Κορτέσης,οπότε δε χρειάζεται scanner.. :) Την έκανε ήδη upload  στο eTHMMY


Title: Απ: 2005-06
Post by: dim on November 23, 2005, 19:31:11 pm
Toυ ζήτησα να κρεμάει τις εργασίες νωρίς όπως και για το 3ο εξάμηνο, και μου είπε ότι συνήθως τις κάνει upload την ίδια ημέρα που τις μοιράζει και στην τάξη, απλά την τελευταία φορά ξέχασε να κάνει upload..


Title: Απ: 2005-06
Post by: JAs0n-X on November 23, 2005, 22:42:13 pm
Οντως πολυ βαρυ το κλιμα...
παλι καλα που την ανεβασε...
thanks


Title: Re: 2005-06
Post by: KVR on November 24, 2005, 05:18:16 am
Μήπως ξέρει κανείς στην 7η άσκηση τι εννοεί ο Κορτέσης όταν λέει (στα γ και δ) a.n&b.n και a.n&m, γιατί δεν προσδιορίζει.Άμα έχει καταλάβει κανείς plz ας απαντήσει . thnx


Title: Απ: 2005-06
Post by: marauber on November 29, 2005, 03:22:10 am
Μήπως ξέρει κανείς στην 7η άσκηση τι εννοεί ο Κορτέσης όταν λέει (στα γ και δ) a.n&b.n και a.n&m, γιατί δεν προσδιορίζει.Άμα έχει καταλάβει κανείς plz ας απαντήσει . thnx

Προφανώς το & θα είναι το δυαδικό AND μεταξύ των αριθμών n των αντικειμένων a και b -για το ερώτημα γ (και αντίστοιχα για το δ).
Αντιλαμβάνομαι βέβαια ότι η απάντησή μου είναι αρκετά αργοπορημένη για να έχει ουσιαστική χρησιμότητα σε ανθρώπους που κοιμούνται λογικές ώρες :-[ αλλά just for the record...


Title: Απ: 2005-06
Post by: JAs0n-X on December 15, 2005, 02:28:21 am
Παιδια ανεβηκε στο εΤΗΜΜΥ ενα παιχνιδι GameShot σε γλωσσα C++!
τι παιζει με αυτο? ειπε τπτ μεσα στην ταξη ?
thanks


Title: Απ: 2005-06
Post by: JAs0n-X on December 15, 2005, 13:33:55 pm
Ρε παιδια τι ειναι αυτη η ασκηση που μας εβαλε?????
ωραια φαινεται αλλα παω να την κανω και ειναι λιγο ως πολυ δυσκολη!!!
ποια κλαση θα κανουμε template την DRAW??


Title: Re: 2005-06
Post by: KVR on December 15, 2005, 21:33:05 pm
Η εργασία αυτή είναι για μετά τις γιορτές έτσι (γιατί κάτι πήρε το αυτί μου ότι την άλλη τρίτη δεν θα γίνει εργαστήριο, ισχύει αυτο??).


Title: Απ: 2005-06
Post by: JAs0n-X on December 15, 2005, 23:28:12 pm
τελικα με λιγο προσοχη και αρκετα προβληματα την εβγαλα...
αν καποιος καταφερε να χρησιμοποιησει την delay() ας μας πει πως..!

Οσο για το μετα τις γιορτες οντως αν παιζει κατι τετοιο Plz ενημερωστε μας!!


Title: Απ: 2005-06
Post by: dim on December 16, 2005, 00:56:44 am
Για την κίνηση ποια συνάρτηση χρησιμοποίησες?
Η delay() δεν υπάρχει στον compailer  της Borland..
Στο ψάξιμο είμαι..

Πάντως η εκφώνηση νομίζω πιο πολύ σπαζοκεφαλιά είναι :)


Title: Απ: 2005-06
Post by: dim on December 16, 2005, 16:52:20 pm
template <class SHAPE>
void kinisi(SHAPE shape){
     int i;
     for( ; ; ) {
          //delay(500);
     getch();
     shape.d_shape();
     shape.x_plus_plus();
     if (shape.get_x()==76) break;
     shape.c_shape();
     }
}


Τελικά μόνο έτσι μου τρέχει..
πρέπει να σμπρώχνεις το σχήμα με το πάτημα κάποιου πλήκτρου..
Βρήκατε καμιά συνάρτηση που να μπορεί να κάνει τη δουλειά της delay()?
Χτες έψαχνα πόση ώρα, αλλά τπτ..

ΥΓ. ο compiler του ethmmy είναι για τα μπάζα !


Title: Απ: 2005-06
Post by: BOBoMASTORAS on December 16, 2005, 17:05:48 pm
Παιδιά εχώ έχω κάποιο compiler που έχει την delay αλλά δε ξέρω αν είναι πολύ μεγάλος να τον ανεβάσω. Είναι ο κλασικός TC της borland αλλά "κανονικός" από τις δισκέτες που χρηάζονταν τότε για να γίνει εγκατάσταση. Αν τον χρηάζεται κάποιος τόσο πολύ ας μου στείλει pm.


Title: Απ: 2005-06
Post by: JAs0n-X on December 16, 2005, 17:59:29 pm
Επειδη βιαζομαι λιγο δειτε τι εκανα εγω και νου δουλεψε...

Quote
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>



template<class SHAPE> class DRAW {
public:
   DRAW(int x2, int y2);
};

template<class SHAPE> DRAW<SHAPE>::DRAW (int x2, int y2) {
   SHAPE shape(x2,y2);
   for ( ; x2<76; x2++) {
      shape.c_shape(x2,y2);

      //delay (k);
      time_t start_time, cur_time;

         time(&start_time);
         do
         {
                 time(&cur_time);
         }
    while((cur_time - start_time) < 0.1);
      shape.d_shape(x2,y2);
        }

};
   


class SHP_1 {
   int x,y;
public:
   SHP_1(int x2, int y2);
   void c_shape(int x3, int y3);
   void d_shape(int x3, int y3);
};

SHP_1::SHP_1(int x2, int y2) {
   if (x2>2 && x2<76 && y2>4 && y2<23) {
         x=x2;
         y=y2;
         gotoxy(x,y);
   }
   else {
      cout << "\nLathos Suntetagmenes.";
      exit(1);
   }
}


void SHP_1::c_shape(int x3, int y3) {
   gotoxy(x3,y3);
   cout << "****";
   y3++;
   gotoxy(x3,y3);
   cout << "*  *";
   y3++;
   gotoxy(x3,y3);
   cout << "*  *";
   y3++;
   gotoxy(x3,y3);
   cout << "****";
}

void SHP_1::d_shape(int x3, int y3) {
    gotoxy(x3,y3);
   cout << "    ";
   y3++;
   gotoxy(x3,y3);
   cout << "    ";
   y3++;
   gotoxy(x3,y3);
   cout << "    ";
   y3++;
   gotoxy(x3,y3);
   cout << "    ";
}



class SHP_2 {
   int x,y;
public:
   SHP_2(int x2, int y2);
   void c_shape(int x3, int y3);
   void d_shape(int x3, int y3);
};

SHP_2::SHP_2(int x2, int y2) {
   if (x2>2 && x2<76 && y2>4 && y2<23) {
         x=x2;
         y=y2;
         gotoxy(x,y);
   }
   else {
      cout << "\nLathos Suntetagmenes.";
      exit(1);
   }
}

void SHP_2::c_shape(int x3, int y3) {
   gotoxy(x3,y3);
   cout << "   *  ";
        y3++;
   gotoxy(x3,y3);
   cout << " *   * ";
        y3++;
   gotoxy(x3,y3);
   cout << "*     *";
        y3++;
   gotoxy(x3,y3);
   cout << "*******";
}

void SHP_2::d_shape(int x3, int y3) {
   gotoxy(x3,y3);
   cout << "      ";
        y3++;
   gotoxy(x3,y3);
   cout << "       ";
        y3++;
   gotoxy(x3,y3);
   cout << "       ";
        y3++;
   gotoxy(x3,y3);
   cout << "       ";
}


void main() {
   int x,y,id;
   cout << "\nx= ";
   cin >> x;
   cout << "\ny= ";
   cin >> y;
   cout << "\nid= ";
   cin >> id;

   if (id==1) {
      DRAW<SHP_1> drawing(x,y);
   }
   else if (id==2) {
      DRAW<SHP_2> drawing(x,y);
        }
}



το σπαστικο ειναι οτι δεν μπορω να χρησιμοποιησω μικροτερο χρονο...
(το κομματι εκεινο το βρηκα στο νετ).

το παραπανω δουλευει με τον Borland C++ (μαααπααα)!

και.....

την ΤΡΙΤΗ και ΤΕΤΑΡΤΗ δεν εχουμε μαθημα!!!


Title: Re: 2005-06
Post by: Krono on February 01, 2006, 21:03:56 pm
Για το μάθημα του 3ου εξαμήνου. Μήπως γνωρίζει κανείς αν είναι αλήθεια ότι επιτρέπεται να έχουμε μαζί μας τις σημειώσεις του μαθήματος?


Title: Απ: 2005-06
Post by: apostolos1986 on February 01, 2006, 21:05:49 pm
Για το μάθημα του 3ου εξαμήνου. Μήπως γνωρίζει κανείς αν είναι αλήθεια ότι επιτρέπεται να έχουμε μαζί μας τις σημειώσεις του μαθήματος?

Ο Κορτέσης μας είπε στο τελευταίο μάθημα ότι θα γράψουμε με τις σημειώσεις ανοικτές...


Title: Re: 2005-06
Post by: Krono on February 01, 2006, 21:21:29 pm
Ουάου! Ενθουσιάστηκα!Τέλεια νέα! Σε ευχαριστώ πολύ Απόστολε.


Title: Re: 2005-06
Post by: TT_PTOLEMAIDA on February 01, 2006, 23:05:09 pm
Εγώ να συμπληρώσω ότι ο Κορτέσης είπε πως επιτρέπονται ΜΟΝΟ οι σημειώσεις του. Απαγορεύεται να έχουμε μαζί μας τα προγράμματα του εργαστηρίου..Θα εξετάζει λέει το πάχος των σημειώσεων μας για να διαπιστώνει αν 'έχουν παχύνει ύποπτα'.. :D

Επίσης (για το 7ο εξάμηνο) είπε ότι το ένα εκ των τριών θεμάτων θα είναι ένα προγραμματάκι μικρούτσικο που θα απαιτεί να γράψεις τι θα εμφανιστεί στην οθόνη. Η συμβουλή του είναι να μην κάνουμε το λάθος να αρχίσουμε να λύνουμε τα θέματα από αυτό επειδή φαίνεται μικρό και άρα εύκολο. Δεν θα είναι καθόλου εύκολο προειδοποίησε... :o


Title: Απ: 2005-06
Post by: apostolos1986 on February 01, 2006, 23:10:42 pm
Εγώ να συμπληρώσω ότι ο Κορτέσης είπε πως επιτρέπονται ΜΟΝΟ οι σημειώσεις του. Απαγορεύεται να έχουμε μαζί μας τα προγράμματα του εργαστηρίου..Θα εξετάζει λέει το πάχος των σημειώσεων μας για να διαπιστώνει αν 'έχουν παχύνει ύποπτα'.. :D

Επίσης (για το 7ο εξάμηνο) είπε ότι το ένα εκ των τριών θεμάτων θα είναι ένα προγραμματάκι μικρούτσικο που θα απαιτεί να γράψεις τι θα εμφανιστεί στην οθόνη. Η συμβουλή του είναι να μην κάνουμε το λάθος να αρχίσουμε να λύνουμε τα θέματα από αυτό επειδή φαίνεται μικρό και άρα εύκολο. Δεν θα είναι καθόλου εύκολο προειδοποίησε... :o

Και σε μας  την ίδια κασέτα έβαλε να παίζει.... :D ;D :P


Title: Απ: 2005-06
Post by: JAs0n-X on February 02, 2006, 00:51:51 am
α τωρα το δα γραφουμε 7ο με 3ο μαζι?? . . .
και μ'αρεσει το στριμωγμα!!

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

Παντως μια δυναμικη δεσμευση την ξερω οποτε ξερω τα ΣΟΣ! :P

Επισης σημειο που θελει προσοχη για τις εξετασεις ειναι η δημιουργια deconstructors και το πως χειριζομαστε αυτους (με κατι flags κλπ)...
Αν καποιος δεν μπορει να το θυμηθει ας κοιταξει μια εναλλακτικη λυση στο βιβλιο... Constructors αντιγραφου λεγονται νομιζω.


Title: Re: 2005-06
Post by: TT_PTOLEMAIDA on February 02, 2006, 18:46:27 pm
ΠΑΙΧΝΙΔΙΑ ΜΕ ΤΗΝ C++

Ενδιαφέρον έχει το παρακάτω πρόγραμμα που μετράει τα δευτερόλεπτα μεταξύ κατασκευής-καταστροφής ενός αντικειμένου.

Στον δικό μου PC (Pentium III-800MHz) χρειάστηκαν 15 sec για την εκτέλεση του "άχρηστου" loop της if των 1900000000 μετρήσεων.
΄
Όσοι διαθέτετε την στάνταρ C++ (ANSI/ISO) (που περιέχεται στο Microsoft Visual C++ 6.0) μπορείτε να το τρέξετε.



#include <iostream>
#include <ctime>
using namespace std;

#define COUNTR 1900000000

class stopwatch{
   double begin,end;
public:
   stopwatch();//constructor
   ~stopwatch();//destructor
   void start();
   void stop();
   void show();
};


stopwatch::stopwatch()
{
   cout<<"The object has been maid........wait...\n";
   begin=end=0.0;
}
stopwatch::~stopwatch()
{

   cout<<"The object has been destroyed............\n";
   show();
}
void stopwatch::start()
{
   begin=(double)clock()/CLOCKS_PER_SEC;
   /* H συνάρτηση clock() περιέχεται στην στάνταρ βιβλιοθήκη της C++
   ctime η οποία επιστρέφει το πλήθος των κύκλων του ρολογιού που έχουν
   ολοκληρωθεί από την στιγμή που ξεκίνησε η εκτέλεση του προγράμματος*/
}
void stopwatch::stop()
{
   end=(double)clock()/CLOCKS_PER_SEC;
}
void stopwatch::show()
{
   cout<<"ELAPSED TIME:"<<end-begin<<" seconds\n";
}

int main ()
{
   stopwatch ob;
   long z;
   ob.start();
   for(z=0;z<COUNTR;z++); //waiting............15 seconds?........................
   ob.stop();
   
   return 0;
}


Title: Απ: 2005-06
Post by: JAs0n-X on February 02, 2006, 23:17:19 pm
The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:4.921 seconds
Press any key to continue

 :D :D

Pentium IV 2,4GHz


Title: Re: 2005-06
Post by: Fouster on February 03, 2006, 00:42:54 am
Παιδιά ξέρει κανείς αν στην ύλη είναι και οι δομες?? Εκείνο το πρώτο μάθημα που έιχαμε κάνει......


Title: Απ: 2005-06
Post by: dim on February 03, 2006, 00:48:46 am
Στην ουσία οι δομές είναι το ίδιο πράγμα με τις κλάσεις..
Οπότε απ'τη στιγμή που απ'τις 10 εργασίες οι 9 ήταν κλάσεις, φαντάζομαι δε θα πέσουν δομές..
Άλλωστε η εργασία με τις δομές πιο πολύ εισαγωγική στη λογική του μαθήματος δεν ήταν?


Title: Re: 2005-06
Post by: TT_PTOLEMAIDA on February 03, 2006, 11:26:10 am
Στην ουσία οι δομές είναι το ίδιο πράγμα με τις κλάσεις..
Η διαφορά τους είναι ότι στις  δομές τα μέλη τους είναι εξ'ορισμού δημόσια (άρα πρέπει τα ιδιωτικά να δηλώνονται με την δεσμευμένη λέξη private ). Το αντίστροφο ισχύει για τις κλάσεις.
Μονο για να υπάρχει συμβατότητα προς τα πίσω με τα προγράμματα γραμμένα σε C, είναι καλή προγραμματιστική τεχνική να χρησιμοποιείται η δομή για αντικείμενα που περιέχουν ΜΟΝΟ δεδομένα και η κλάση για αντικείμενα που περιέχουν κώδικα και δεδομένα.
The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:4.921 seconds
Press any key to continue

 :D :D

Pentium IV 2,4GHz
4.921 seconds?????????????? >:( >:(
Θα αλλάξω πισι!!! ^angryhot^ :angry4:
Το αποφάσισα! Δεν πάει άλλο!


Title: Re: 2005-06
Post by: TT_PTOLEMAIDA on February 04, 2006, 01:56:16 am
Εγώ να ρωτήσω:
Το κεφάλαιο 5 των σημειώσεων του κΚορτέση είναι στην ύλη?


Title: Απ: 2005-06
Post by: dim on February 04, 2006, 03:02:20 am
yes..

Τα έκανε στο τελευταίο μάθημα πριν τα χριστούγεννα νομίζω..
(ή στο προτελευταίο??? μάλλον αυτό είναι..)


Title: Απ: 2005-06
Post by: marauber on February 04, 2006, 03:24:58 am
The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:4.921 seconds
Press any key to continue

 :D :D

Pentium IV 2,4GHz

The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:8.609 seconds
Press any key to continue

Σε Sempron64 2600+(στα 1.6GHz)
 >:( >:( >:( >:( >:( Τα νεύρα μου :angry4: :angry4:
Προφανώς δεν είναι και το πιο αντιπροσωπευτικό benchmark αλλά ούτε και το φόρτε του Sempron κώδικες τέτοιου τύπου (άλλα είναι τα δυνατά του σημεία). Αλλά 8.609sec;;;;;
Jason τι χακεριά έκανες;;;

 ^shout^ Φέρτε μου έναν Athlon64 τώρααααααα ^mad^ ^mad^


Title: Re: 2005-06
Post by: Fouster on February 04, 2006, 10:08:05 am
Το 5 ρε παιδιά είναι μέσα τυπικά?
Γιατί δεν θυμάμαι να είχαμε καμμία άσκηση που να απαιτούσε στοιχεία από αυτό το κεφάλαιο.


Title: Απ: 2005-06
Post by: ~Michelle~ on February 04, 2006, 10:09:05 am
Γενικά μήπως μπορεί να πει κανείς ποια είναι η ύλη?? Περιλαμβάνει και καμιά θεωρία όπως πέρσι;


Title: Απ: 2005-06
Post by: JAs0n-X on February 04, 2006, 11:26:17 am
Δεν νομιζω να χρειαστει οτιδηποτε απο θεωρια...
Οι σημειωσεις ετσι κ αλλιως θα ειναι ανοιχτες οποτε εγω προσωπικα δεν τις διαβαζω. Δειτε καμμια ασκηση, δειτε τα βασικα κεφαλαια του βιβλιου και ολα καλα.

Οσο για το benchmark δεν εκανα τπτ... Ειμαι σιγουρος οτι με αλλον υπολογιστη καποιος σιγουρα μπορει να ριξει το χρονο και αλλο...κανας Athlon σιγουρα.


Title: Απ: 2005-06
Post by: ~Michelle~ on February 04, 2006, 11:30:26 am
Ποιό βιβλίο; Εγώ έχω μόνο κάτι σημειώσεις τυπωμένες! Αυτές επιτρέπεται να τις έχουμε μαζί; Το βιβλίο μήπως είναι ένα που είχαμε πάρει περσι;


Title: Απ: 2005-06
Post by: JAs0n-X on February 04, 2006, 11:35:38 am
οι τυπωμενες σημειωσεις επιτρεπονται ανοιχτες (τουλαχιστον ετσι ειπε σε μας του 7ου). Το βιβλιο νομιζω εσεις το πηρατε περυσι (ενα του Herbert Schmidt ειναι - C++ απ΄το μηδεν). Εμεις το πηραμε φετος!


Title: Απ: 2005-06
Post by: ~Michelle~ on February 04, 2006, 11:44:42 am
Aαα ναι το είχαμε πάρει. Αυτό τι ρόλο βαράει; Ούτε στις εργασίες δεν το χρησιμοποίησα ποτέ...


Title: Απ: 2005-06
Post by: BOBoMASTORAS on February 04, 2006, 13:51:40 pm
The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:4.921 seconds
Press any key to continue

 :D :D

Pentium IV 2,4GHz

Παίζει να φτάει το emulation για dos των windows XP. Εγώ όταν ανοίγω εφαρμογή σε παράθυρο τα πάντα πάνε... ε, λίγο αργά μπορώ να πω. Σε fullscreen νομίζω τρέχει πιο γρήγορα.


Title: Απ: 2005-06
Post by: cheimon.axd on February 05, 2006, 01:57:01 am
Εμένα έκανε 4,5 sec.( p4 3ghz)


Title: Απ: 2005-06
Post by: marauber on February 05, 2006, 02:16:25 am
Καλά ύλη δε δίνει αυτός ο άνθρωπος; Πήγα στο eTHMMY και τίποτα! Επειδή έχασα λίγο την επαφή με το μάθημα τον τελευταίο καιρό: Το 6ο κεφάλαιο το έκανε όλο; Και το 5ο αν κατάλαβα καλά το έκανε αλλά δεν έχει άσκηση από εκεί οπότε off the record είναι έξω, ή τελοσπάντων όχι πιθανό να πέσει θέση από εκεί;

Όσοι παρακολουθήσατε τα τελευταία μαθήματα βοηθήστε plz!!!!


Title: Re: 2005-06
Post by: Fouster on February 05, 2006, 10:31:44 am
Ναι ήμουν στο τελευταίο μάθημα μάζι με άλλους 2 καμένους  ;D
Στο τελευταίο μάθημα τίποτα δεν έκανε σχεδόν μας έδειξε την προγραμματάκι που πυροβολούσες τον στόχο και εμέις
τον κοροιδεύαμε που δεν μπορούσε να το πετύχει  :D
Οποτε μάλλον το 6 και αυτό τυπικά έξω είναι ,άντε καμμιά εντολή new,delete μάθετε.


Title: Απ: 2005-06
Post by: poumpa on February 05, 2006, 14:49:48 pm
Στο μάθημα έχει κάνει ότι υπάρχει στις σημειώσεις και επιπλέον τα templates.
Εκτός ίσως από τις στατικές συναρτήσεις και μεταβλητές και τις δηλώσεις προσπέλασεις αλλά τα έχει αναφέρει κάποιες φορές.
Επίσης σχολίασε σε ένα μάθημα είναι ότι τα streams και οι manipulators (κεφάλαιο 5) είναι "βαρετά"...
Δεν είμαι σίγουρος αν σημαίνει κάτι.


Title: Re: 2005-06
Post by: ROSTY on February 05, 2006, 14:54:35 pm
τι ειναι αυτα τα templates??? τα εχει στις σημειωσεις????η στο βιβλιο?


Title: Re: 2005-06
Post by: dim on February 05, 2006, 14:58:22 pm
sto e-thmmy, αλλά για το 7ο 6μηνο..
Για 'σας δεν ξέρω αν τα έκανε..


Title: Re: 2005-06
Post by: dim on February 05, 2006, 22:42:56 pm
Στην 4η άσκηση (7ο εξ), μας είχε βάλει ο Κορτέσης να χρησιμοποιήσουμε flags, για να ελέγξουμε το πότε θα εκτελεστεί ο κάθε destructor..

Θυμάστε γιατί μας το έβαλε?
Δλδ ποιο ήταν το λάθος αν δε βάζαμε flags?
Κάτι θυμάμαι ότι το αποτέλεσμα διαφέρει από compiler σε compiler..


Title: Απ: 2005-06
Post by: marauber on February 05, 2006, 23:11:16 pm
Κάτι θυμάμαι για αποδέσμευση μνήμης 2 φορές, που συμβαίνει σε oρισμένους compilers. Δηλαδή να εκτελεστεί 2 φορές ο deconstructor ή να καταστραφεί 2 φορές το αντικείμενο. Περισσότερα για το είδος της άσκησης δυστυχώς δε θυμάμαι. Ελπίζω όμως να μας λυπηθεί και να μη μας τα μπλέξει τόσο πολύ.
Στο χαρτί γράφουμε, που να ξέρουμε πως το κάνει compile το πρόγραμμα το μυαλό του Κορτέση;

Υ.Γ. Παρεπιπτόντως το θεωρώ μεγάλη βλακεία να εξεταζόμαστε σε γλώσσα προγραμματισμού στο χαρτί. Εγώ όταν γράφω πρόγραμμα πάντα το γράφω στον editor, αρχίζω από κάπου, μετά προσθέτω κάτι στην αρχή, το κάνω compile, βλέπω λάθη και το διορθώνω ανάλογα. Ποτέ δεν έτυχε να το γράψω με την πρώτη σωστά ούτε και είναι αυτό το ζητούμενο στην εκμάθηση μιας γλώσσας. Ξέρω βέβαια ότι αυτό που ζητάω είναι δύσκολα υλοποιήσιμο, απλώς εκθέτω τους προβληματισμούς μου :-\

Τουλάχιστον ελπίζω τα συντακτικά λάθη να μην τα λαμβάνει πολύ υπόψη...


Title: Απ: 2005-06
Post by: JAs0n-X on February 06, 2006, 00:40:59 am
Στην 4η άσκηση (7ο εξ), μας είχε βάλει ο Κορτέσης να χρησιμοποιήσουμε flags, για να ελέγξουμε το πότε θα εκτελεστεί ο κάθε destructor..

Θυμάστε γιατί μας το έβαλε?
Δλδ ποιο ήταν το λάθος αν δε βάζαμε flags?
Κάτι θυμάμαι ότι το αποτέλεσμα διαφέρει από compiler σε compiler..

Flags βαζεις οταν ο destructor εχει μια εντολη τυπου free ή delete ΚΑΙ το αντικειμενο μεταβαινει σε καποια συναρτηση ως ορισμα.
Τοτε γινεται το εξης: για την εκτελεση της συναρτησης δημιουργειται ενα αντιγραφο του αντικειμενου που παιρνει αυτη ως ορισμα. Οταν θα τελειωσει η συναρτηση θα καλεσει destructor για το αντιγραφο αυτο.
Εκει ομως εσυ εχει εντολη τυπου free, delete και αποδεσμευεις την μνημη που δειχνει ο ποιντερ αρα και την αρχικη. Γιαυτο χρησιμοποιεις flags.
Κανοντας το flag πχ 1 μεσα στην συναρτηση και ελεγχοντας αυτο να μην ειναι 1 για να κανεις αποδεσμευση εχεις το επιθυμητο αποτελεσμα!


Title: Απ: 2005-06
Post by: ~Michelle~ on February 06, 2006, 02:57:43 am
Υ.Γ. Παρεπιπτόντως το θεωρώ μεγάλη βλακεία να εξεταζόμαστε σε γλώσσα προγραμματισμού στο χαρτί. Εγώ όταν γράφω πρόγραμμα πάντα το γράφω στον editor, αρχίζω από κάπου, μετά προσθέτω κάτι στην αρχή, το κάνω compile, βλέπω λάθη και το διορθώνω ανάλογα. Ποτέ δεν έτυχε να το γράψω με την πρώτη σωστά ούτε και είναι αυτό το ζητούμενο στην εκμάθηση μιας γλώσσας. Ξέρω βέβαια ότι αυτό που ζητάω είναι δύσκολα υλοποιήσιμο, απλώς εκθέτω τους προβληματισμούς μου :-\

ΠΕΣΤΑ ΧΡΥΣΟΣΤΟΜΕ!!!!!!!!!!!!!!


Title: Απ: 2005-06
Post by: JAs0n-X on February 06, 2006, 20:53:17 pm
#include <iostream.h>

void main() {
   cout << "\a";
}



δοκιμαστε το...


Title: Απ: 2005-06
Post by: marauber on February 06, 2006, 20:58:36 pm
Μας δουλεύεις ρε συ; Τίποτα δε βγάζει ;D!


Title: Απ: 2005-06
Post by: JAs0n-X on February 07, 2006, 00:28:44 am
Ακουγεται το ηχειακι του κουτιου...
λες να κανουμε κανα ringtone? μονοφωνικο...! :P


Title: Απ: 2005-06
Post by: marauber on February 07, 2006, 00:36:23 am
Λέω και εγώ ;D. Το έχω βγάλει το καλώδιο του PC Speaker. Έχω...τραυματικές εμπειρίες από τη "μουσική" που έπαιζε σε μερικά παλιά παιχνίδια. Δεν το γυρίζουμε στο πολυφωνικό καλύτερα, σχεδόν όλα τα κινητά το υποστηρίζουν.


Title: Re: 2005-06
Post by: Megawatt on September 16, 2006, 03:35:41 am
Γαμώ την νύσταα μου! Κάποια μαλακία έχω κάνει σίγουρα και δεν μπορώ να την βρώ στο παρακάτω:

ο compiler ΔΕΝ ΜΟΥ ΒΓΑΖΕΙ λάθος, αλλά όταν πάω να το κάνω build μου βγάζει το παρακάτω μήνυμα:

---------Configuration: selida 54 - Win32 Debug----------
Linking...
selida 54.obj : error LNK2001: unresolved external symbol "public: virtual int __thiscall B::sum(void)" (?sum@B@@UAEHXZ)
Debug/selida 54.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

selida 54.exe - 2 error(s), 0 warning(s)

Πρόκειται για το παράδειγμα στη σελίδα 54 των σημειώσεων του κ.Κορτέση:

#include <iostream>
using namespace std;

class B {
  protected:
    int k,m;
  public:
    //B(){cout<<"Antikeimeno B dimioyrgh8ike!\n"; k=3;}
    void set(int i, int j);
   virtual int sum ();
};

class D1:public B{//ara ola ta public kai protected ths B ginontai ta antistoixa gia thn D1
  int d1;
public:
   //D1(){ cout<<"Antikeimeno D1 dimioyrgh8ike!\n"; k=7;}
    int sum ();
   void out();
};

class D2:public B{
  int d2;
public:
   //D2(){ cout<<"Antikeimeno D2 dimioyrgh8ike!\n"; k=7;}
    int sum ();
   void out();
};
void B::set(int i, int j)
{
   k=i;
   m=j;
}
int sum (void)
{
   cout<<"Den yparxei a8roisma gia tin basikh class\n";
   return 0;
}

int D1::sum (void)
{
   d1=2*(k+m);
   return d1; // d1 artios akeraios
}
void D1::out(void)
{
   cout<<"d1="<<d1<<"\n";
}
int D2::sum (void)
{
   d2=2*(k+m)+1;
   return d2; // d2 perittos akeraios
}
void D2::out(void)
{
   cout<<"d2="<<d2<<"\n";
}

void fun (B *p)
{
   int k;
   k=p->sum();
   
   if (!(k%2))
      cout<<"H synartisi ekteleitai gia tin class D1, afoy k%2= "<<k%2<<" \n";
   else
      cout<<"H synartisi ekteleitai gia tin class D2\n";
}
void main(void)
{
   B *p;
   D1 a;
   D2 b;
   a.set(2,3);
   b.set(4,5);

   p=&a;
   fun(p);
   a.out();

   fun(&b);
   b.out();
}  

Τα σχόλια αγνοείστε τα. Επίσης χρησιμοποιώ την Microsoft Visual C++ 6.0

Όχι πως επήγει δλδ, αλλά ΠΡΩΤΗ φορά μου τυχαίνει να μην βρίσκει σφάλμα ο compiler και να βρίσκει σφάλμα ο builder.  :D :D :D :D :D


Title: Απ: 2005-06
Post by: poumpa on September 16, 2006, 23:17:37 pm
(Αν δεν το βρήκες ακόμα)
Η δήλωση

          int sum (void)

που αναφέρεται στην κλάση Β πρέπει να είναι  int B::sum()

Δεν είμαι απολύτος σίγουρος αν είναι αυτό το σφάλμα πάντως. Δεν θυμάμαι καλα αν τις virtual είναι υποχρεωτικό να τις υλοποιήσεις στην βασικη κλάση ή όχι. Νομίζω ότι είναι υποχρεωτικό άρα μάλλον αυτό είναι το σφάλμα.

Πάντως επειδή στο namespace std υπάρχει μια sum καλύτερα να βγάλεις εκείνο το using ή τουλάχιστον αλλάξε τα ονόματα των μεταβλητών και των συναρτήσεων σου με κάποιο χαρακτηριστικό δικό σου (π.χ. My_sum() ).
Το namespace "δείχνει" και άλλα ονόματα μεταβλητών στον Compiler αλλα δεν τα συνδέει με το πρόγραμμα σου και έτσι μπορεί να εμφανιστούν λάθη στο Linking.


Title: Απ: 2005-06
Post by: odys2008 on September 17, 2006, 00:32:46 am
Ligo offtopic

The object has been maid........wait...
The object has been destroyed............
ELAPSED TIME:3.875 seconds
Press any key to continue . . .
Σε p4 HT 3.2Ghz@3.63Ghz


Title: deleted
Post by: BOBoMASTORAS on September 17, 2006, 00:47:32 am
deleted