THMMY.gr

Μαθήματα Βασικού Κύκλου => Δομημένος Προγραμματισμός => Topic started by: !!DUO!!(Αγγίζοντας την τελειότητα..) on April 08, 2006, 08:47:35 am



Title: Εργασία vol B 2006
Post by: !!DUO!!(Αγγίζοντας την τελειότητα..) on April 08, 2006, 08:47:35 am
Μπορεί κάποιος να μου πεί πώς στην C μπορεί να διαβαστεί ένας πίνακας μονοδιάστατος?
Ξέρω ότι χρειάζεται μία επανάληψη αλλά δεν ξέρω την εντολή του "Διάβασε" που κάναμε στο Λύκειο στην ψευδογλώσσα

Και μήπως ξέρει κανείς πώς χρησιμοποιείται η printf() στους πίνακες για να εκτυπώσουμε τα στοιχεία?

Κάνουμε μία επανάληψη και γράφουμε printf(a) για τον πίνακα α ??? :-\ :-\

Τhanx!!


Title: Re: Εργασία vol B 2006
Post by: dim on April 08, 2006, 09:25:52 am
διάβασμα πίνακα a    (ακεραίων)

for (i=0 ; i<n ; i++)
     scanf("%d", a[ i ]);


εκτύπωση πίνακα a    (ακεραίων)

for (i=0 ; i<n ; i++)
     printf("%d    ", a[ i ]);


Τα λέει στο τελευταίο ή στο προτελευταίο κεφάλαιο (νομίζω 8???), ρίξε μια ματια..


PS sto a[ i ] MHN αφήνεις κενά ανάμεσα στο i και στις αγκύλες..
Το έκανα γιατί χωρίς κενά απλά θα έκανα ό,τι ακολουθούσε italics


Title: Απ: Εργασία vol B 2006
Post by: !!DUO!!(Αγγίζοντας την τελειότητα..) on April 08, 2006, 09:30:19 am
Να'σαι καλά dim

Θα το κοιτάξω


Title: Re: Εργασία vol B 2006
Post by: faliakman on April 10, 2006, 05:14:32 am
Η εργασια ζηταει να δωσουμε τουσ πινακες Α[n]


Title: Απ: Εργασία vol B 2006
Post by: Junior on April 10, 2006, 07:18:10 am
2ον:Μας ζηταει να βρουμε τουσ πινακες Οver και no_free με τα κοινα και μη κοινα στοιχεια των πινακων.Πως θα τους δηλωσω αφου δεν ξερω απο πριν το μεγεθος τους?

Ίσως με δυναμική δέσμευση μνήμης; Δεν το διδαχτήκαμε;


Title: Re: Εργασία vol B 2006
Post by: dim on April 10, 2006, 07:42:38 am
Σε αρχικό στάδιο, αν δεν έχετε διδαχτεί δυναμική δέσμευση μνήμης, ακολουθείτε τον κλασσικό "μπακάλικο" τρόπο..

Κάνετε έναν πίνακα αρκετά μεγάλο (πχ 100 θέσεων), με το δεδομένο ότι δε θα χρειαστείτε στην πράξη μεγαλύτερο..
Επίσης, θα πρέπει να έχεται μια ακέραια μεταβλητή, στην οποία θα αποθηκεύετε το πλήθος των θέσεων αυτού του πίνακα που θα χρεισιμοποιήσετε στην τρέχουσα εκτέλεση του προ/τος.
Αυτό θα σας χρησιμεύσει για τα for loops..


Title: Re: Εργασία vol B 2006
Post by: Verminoz on April 10, 2006, 07:48:10 am
Ρε dim παρά είναι μπακάλικο αυτό. Η δυναμική δέσμευση μνήμης δεν είναι κάτι το τόσο δύσκολο...


Title: Re: Εργασία vol B 2006
Post by: dim on April 10, 2006, 07:54:34 am
Ρε φεμιν τα παιδιά ακόμα στη 2η εργασία είναι...

Εγώ θυμάμαι ότι τότε ο ίδιος ο Κορτέσης το πρότεινε αυτό..

Εννοείται ότι είναι χαζό, αλλά.. αρχή είναι..

Εννοείται δεν είναι κάτι το δύσκολο η δυν.δεσμ.μνήμης..

Πρόλαβαν να κάνουν όμως τους pointers?


Title: Re: Εργασία vol B 2006
Post by: faliakman on April 10, 2006, 11:23:24 am
Kαναμε pointers αλλα πολυ λιγο.μολις που τους ανεφερε.αλλα που χρειαζονται οι pointers στην ασκσησ? :o :o :o


Title: Re: Εργασία vol B 2006
Post by: Καμένος on April 10, 2006, 11:26:53 am
διάβασμα πίνακα a    (ακεραίων)

for (i=0 ; i<n ; i++)
     scanf("%d", a[ i ]);


εκτύπωση πίνακα a    (ακεραίων)

for (i=0 ; i<n ; i++)
     printf("%d    ", a[ i ]);


Τα λέει στο τελευταίο ή στο προτελευταίο κεφάλαιο (νομίζω 8???), ρίξε μια ματια..


PS sto a[ i ] MHN αφήνεις κενά ανάμεσα στο i και στις αγκύλες..
Το έκανα γιατί χωρίς κενά απλά θα έκανα ό,τι ακολουθούσε italics

Μου επιτρέπεται μια διόρθωση?

for (i=0 ; i<n ; i++)
     scanf("%d", &a[ i ]);


Title: Re: Εργασία vol B 2006
Post by: Καμένος on April 10, 2006, 11:29:45 am
Επίσης η δυναμική δέσμευση μνήμης είναι μία εντοή μόνο (Malloc), αλλά μάλλον δεν την έχετε διδαχθεί ακόμα.. Πιστεύω ότι θα είναι εντάξει με το Α[50],Β[50],  ...


Title: Re: Εργασία vol B 2006
Post by: dim on April 10, 2006, 12:21:01 pm
Μου επιτρέπεται μια διόρθωση?

for (i=0 ; i<n ; i++)
     scanf("%d", &a[ i ]);
Τnx καμένε, το έγραψα λίγο ασυναίσθητα...


Title: Re: Εργασία vol B 2006
Post by: elisabeth on April 10, 2006, 14:16:22 pm
τους πίνακες θα τους δίνουμε με μια scanf ή θα πρεπει να είναι:
void main(a,b)


Title: Re: Εργασία vol B 2006
Post by: Themis on April 10, 2006, 15:50:56 pm
scanf....


Title: Re: Εργασία vol B 2006
Post by: bdragon on April 11, 2006, 13:05:33 pm
Τα στοιχεία του πίνακα τα δίνουμε εμείς.Τα m & n των πινάκων θα τα βάλουμε και αυτά με scanf(),θα τα δίνει δηλαδή ο χρήστης ?Χαζό αλλά ας απαντήσει κάποιος


Title: Re: Εργασία vol B 2006
Post by: Faidon on April 11, 2006, 14:44:47 pm
Λοιπόν:

1. Αφού λέει ότι κάθε σταθμός μπορεί να υποβάλει μέχρι 50 συχνότητες η δήλωση των πινάκων θα γίνει ως εξής:
float A[50],B[50],over[50],no_free[100];

2. Τα στοιχεία των πινάκων, το m και το n θα τα δίνει ο χρήστης με scanf().

3. Η σύγκριση θα γίνει μεταξύ όλων των στοιχείων των πινάκων.

4. Τα στοιχεία κάθε πίνακα θα είναι διαφορετικά μεταξύ τους.


Title: Re: Εργασία vol B 2006
Post by: chr_ded on April 12, 2006, 12:54:16 pm
Αυτό που δεν μπορώ να καταλάβω είναι πως θα κάνω τα στοιχεία που είναι κοινα στους δυο πίνακες να διαγραφονται απο τους α και β ωστε στο τέλος να γραψω τους τελικούς χωρις τα κοινα στοιχεια.Μπορει κανεις να βοηθησει??


Title: Re: Εργασία vol B 2006
Post by: CyberCaesar on April 12, 2006, 13:56:01 pm
mporei kapoios na eksighsei pws tha diavasoume ksana tous pinakes?
sthn arxh kanw define M 50 kai N 50 gia na dhlwsw A[N],B[M] alla otan diavasw meta ta n,m pou einai o arithmos syxnothtwn pou tha dwsei kathe stathmos to programma den kanei swsta tis epanalhpseis


Title: Re: Εργασία vol B 2006
Post by: chr_ded on April 12, 2006, 14:02:09 pm
Noc, αυτό που λες με τα μηδενικά το είχα κανει ηδη αλλά στο τέλος δεν μπορώ να τα βγάλω απο τους πίνακες και εμφανιζονται και τα μηδενικα.μπορεις να βοηθησεις??


Title: Re: Εργασία vol B 2006
Post by: Faidon on April 12, 2006, 16:05:04 pm
mporei kapoios na eksighsei pws tha diavasoume ksana tous pinakes?
sthn arxh kanw define M 50 kai N 50 gia na dhlwsw A[N],B[M] alla otan diavasw meta ta n,m pou einai o arithmos syxnothtwn pou tha dwsei kathe stathmos to programma den kanei swsta tis epanalhpseis

Στην αρχή ορίζεις τους πίνακες όπως τους όρισες. Στη συνέχεια στα for() θα βάζεις άνω όριο το n ή το m.
π.χ. for(i=0;i<n;i++){
         scan("%f", A[ i ]);
      }


Title: Re: Εργασία vol B 2006
Post by: CyberCaesar on April 12, 2006, 22:57:22 pm
thanks faidon ενταξει το βγαλα


Title: Re: Εργασία vol B 2006
Post by: faliakman on April 12, 2006, 23:24:34 pm
ρε παιδια πειτε καμια ιδεα για το πωσ θα βρω τον over?αμα τον βρω μετα τα αλλα ειναι ευκολα!


Title: Απ: Εργασία vol B 2006
Post by: meltemi on April 12, 2006, 23:40:06 pm
Διάβασε τους πίνακες A και Β και μετά έλεγξε κάθε στοιχείο του Α με όλα τα στοιχεία του Β, κάπως έτσι:

for (i=0;i<n;i++) {
      for (j=0;j<m;j++) {
          if (A[ i]==B[j]) {
              over[k] = A[i ];
              k++;
           }
       }
   }
 

Όπου n και m τα πλήθη των στοιχείων των πινάκων Α και Β αντίστοιχα. Τον k δεν ξεχνάς να τον μηδενίσεις αρχικά βέβαια.

Yπάρχει ήδη και αυτό (http://www.thmmy.gr/smf/index.php?topic=4775.msg56373#msg56373) σε άλλο topic εδώ γύρω...


Title: Re: Εργασία vol B 2006
Post by: Themis on April 12, 2006, 23:42:03 pm
ρε παιδια πειτε καμια ιδεα για το πωσ θα βρω τον over?αμα τον βρω μετα τα αλλα ειναι ευκολα!


...τα υπολοιπα ειναι πιο δυσκολα απο τον over...


Title: Απ: Εργασία vol B 2006
Post by: meltemi on April 12, 2006, 23:43:45 pm
ρε παιδια πειτε καμια ιδεα για το πωσ θα βρω τον over?αμα τον βρω μετα τα αλλα ειναι ευκολα!
...τα υπολοιπα ειναι πιο δυσκολα απο τον over...
Xα, ναι, έχει δίκιο, η κατασκευή του over είναι το πλέον προφανές...
Good luck my friend...;)


Title: Re: Εργασία vol B 2006
Post by: python on April 13, 2006, 00:09:57 am
Διάβασε τους πίνακες A και Β και μετά έλεγξε κάθε στοιχείο του Α με όλα τα στοιχεία του Β

εχω κολλησει σε αυτο το σημειο, γιατι μολις τρεξει το προγραμμα και διαβασει τους δυο πινακες, περιμενει να πληκτρολογησω κατι και να πατησω enter για να συνεχισει παρακατω στη συγκριση και να τυπωσει τα υπολοιπα..
γιατι γινεται αυτο?
φυσικα δεν εχω δωσει εντολη να περιμενει για κατι τετοιο.. 
τι να κανω ??   ^banghead^



Title: Re: Εργασία vol B 2006
Post by: Themis on April 13, 2006, 00:22:43 am
ανεβασε την εργασια σου...


Title: Re: Εργασία vol B 2006
Post by: python on April 13, 2006, 00:28:55 am
..και να το αφησω ετσι ?
ειναι σαν να "κολλαει" καπου το προγραμμα  >:(


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 00:32:22 am
Εγώ έχω πρόβλημα να εκτυπώσω σωστά τον over... Στην αρχή δοκίμασα να εκτυπώσω τους Α και Β και μόνο με την cout έβγαλα σωστά αποτελέσματα  :???:
Στον over ούτε η cout μου δίνει σωστό αποτέλεσμα. Στη συνάρτηση for που προηγείται τι ορίζω λάθος μέσα στην παρένθεση::


Title: Re: Εργασία vol B 2006
Post by: 4Dcube on April 13, 2006, 00:37:44 am
Εγώ έχω πρόβλημα να εκτυπώσω σωστά τον over... Στην αρχή δοκίμασα να εκτυπώσω τους Α και Β και μόνο με την cout έβγαλα σωστά αποτελέσματα  :???:
Στον over ούτε η cout μου δίνει σωστό αποτέλεσμα. Στη συνάρτηση for που προηγείται τι ορίζω λάθος μέσα στην παρένθεση::
cout?
σε κομπάιλερ της C δε δουλέυετε στον Δομ. Προγ.?

Θα βοηθούσε αν ανέβαζες λίγο κώδικα... (δεν πιστεύω να επικαλεστείς πνευματικά δικαιώματα? ;D )


Title: Re: Εργασία vol B 2006
Post by: python on April 13, 2006, 00:46:29 am
εγω τι λάθος κανω και μολις τρεξω το προγραμμα, σταματαει αφου διαβασει τους πινακες ?

for (i=0; i<n; i++)
    {
        scanf("%f",&(A[ i ]));
    }
for (i=0; i<m; i++)
    {
        scanf("%f",&(B[ i ]));
    }

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


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 00:56:08 am
Λογικά με το που εκτελούνται οι εντολές αυτές εσύ ώς χρήστης πρέπει να βάλεις τις τιμές. Αφού τις βάλεις συνεχίζει η εκτέλεση του κώδικά σου  8) Διόρθωσέ με αν κατάλαβα λάθος...


Title: Re: Εργασία vol B 2006
Post by: 4Dcube on April 13, 2006, 00:56:57 am
εγω τι λάθος κανω και μολις τρεξω το προγραμμα, σταματαει αφου διαβασει τους πινακες ?

for (i=0; i<n; i++)
    {
        scanf("%f",&(A[ i ]));
    }
for (i=0; i<m; i++)
    {
        scanf("%f",&(B[ i ]));
    }

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

σε τι είδους κομπάιλερ το τρέχεις; Microsoft Vis.Studio? Borland? Turbo c? Dev C?
προτείνω (γιατί ορισμένοι παλιοί μου'κάναν κάτι κόγξες) να μη βάζεις πολλές παρενθέσεις όπου δε χρειάζονται, π.χ.:


for (i=0; i<n; i++)
    {
        scanf("%f",A);
    }
for (i=0; i<m; i++)
    {
        scanf("%f",B);
    }


Επίσης μπορεί να χρειάζεται "press key" ο κομπάιλερ, αλλά πάντα για να τελειώσει το πρόγραμμα.
Αλλά αν δε χρειάζεται "press key", μπορεί να εκτελεί τις πράξεις και να εκτυπώνει και να κλείνει το πρόγραμμα προτού προλάβεις να δεις τίποτε. Σε αυτή την περίπτωση φτιάξε εσύ μηχανισμό που να τερματίζει το πρόγραμμα όταν πατάς κάτι.


Title: Re: Εργασία vol B 2006
Post by: python on April 13, 2006, 01:05:08 am
Λογικά με το που εκτελούνται οι εντολές αυτές εσύ ώς χρήστης πρέπει να βάλεις τις τιμές. Αφού τις βάλεις συνεχίζει η εκτέλεση του κώδικά σου  8) Διόρθωσέ με αν κατάλαβα λάθος...

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


Title: Re: Εργασία vol B 2006
Post by: Faidon on April 13, 2006, 01:11:29 am
εγω τι λάθος κανω και μολις τρεξω το προγραμμα, σταματαει αφου διαβασει τους πινακες ?

for (i=0; i<n; i++)
    {
        scanf("%f",&(A[ i ]));
    }
for (i=0; i<m; i++)
    {
        scanf("%f",&(B[ i ]));
    }

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


Ο Κώδικας είναι σωστός... Μόνο αυτό που είπε ο 4Dcube έχω να παρατηρήσω, δηλαδή αρκεί να γράψεις scanf("%f",&B[ i ]); , οι παρενθέσεις δε χρειάζονται

Αν παρακάτω στο πρόγραμμα δεν έχεις καμία άλλη scanf() εμένα μου φαίνεται αδύνατο ή πολύ περίεργο να σου ζητάει να πληκτρολογήσεις κάτι ακόμα...
Ίσως να ανεβάσεις μεγαλύτερο μέρος του κώδικά σου.


Title: Re: Εργασία vol B 2006
Post by: python on April 13, 2006, 01:15:21 am
σε τι είδους κομπάιλερ το τρέχεις; Microsoft Vis.Studio? Borland? Turbo c? Dev C?
..
προτείνω (γιατί ορισμένοι παλιοί μου'κάναν κάτι κόγξες) να μη βάζεις πολλές παρενθέσεις όπου δε χρειάζονται
Επίσης μπορεί να χρειάζεται "press key" ο κομπάιλερ, αλλά πάντα για να τελειώσει το πρόγραμμα.
Αλλά αν δε χρειάζεται "press key", μπορεί να εκτελεί τις πράξεις και να εκτυπώνει και να κλείνει το πρόγραμμα προτού προλάβεις να δεις τίποτε. Σε αυτή την περίπτωση φτιάξε εσύ μηχανισμό που να τερματίζει το πρόγραμμα όταν πατάς κάτι.

ο compiler ειναι DEV-C
το δοκιμασα και χωρις παρενθεσεις αλλα το προβλημα εξακολουθει να υπαρχει..
οσο για τον μηχανισμο, εχω τετοιον στο τελος
το θεμα ειναι γιατι "εμφανιζει" press key στη μεση του προγραμματος
(δεν βγαζει κειμενο, αλλα αναβοσβηνει ο κερσορας μεχρι να πατησω κατι και μετα enter για να συνεχισει το προγραμμα κανονικα)


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 01:16:40 am
Ανεβάζω κι εγώ τον κώδικά μου μέχρι το σημείο που δεν λειτουργεί... Ελπίζω να μπορεί κάποιος να με βοηθήσει..
int n, m, i, j, c, e;
    float A[50], B[50], over[50], no_free[100];
   
    printf("\n\n###############################################################################\n\n");
   
    printf("Eishgage to plh8os n twn syxnothtwn pou kata8etei o sta8mos A \n n=");
    scanf("%d", &n);
    printf("Dwse ta stoixeia tou pros dhmiourgia pinaka A\n");
    for (i=0; i<n; i++)
         scanf("%f",&A[ i ]);
    for (i=0; i<n; i++)
         printf("%f", &A[ i ]);
         
    printf("\n\n###############################################################################\n\n");
   
    printf(" \n Eishgage to plh8os m twn syxnothtwn pou kata8etei o sta8mos B \n m=");
    scanf("%d", &m); 
    printf(" \n Dwse ta stoixeia tou pros dhmiourgia pinaka B\n");
    for (j=0; j<m; j++)
         scanf("%f", &B[j]);
    for (j=0; j<m; j++)       
         printf("%f", &B[j]);
         
    printf("\n\n###############################################################################\n\n");
           
    c=0;
    for (i=0; i<n; i++)
    {
        for (j=0; j<m; j++)
        {
            if (A==B[j])
            {
                           over[c]=A[ i ];
                           c++;
            }
        }
    }
    for (c=0; c<n; c++)
    printf("%f", &over[c]);.


Title: Re: Απ: Εργασία vol B 2006
Post by: Faidon on April 13, 2006, 01:28:49 am
   
    for (c=0; c<n; c++)
    printf("%f", &over[c]);.

To σωστό είναι:

for (i=0; i<c; i++)
    printf("%f", over[ i ]);

Αφού ο c δείχνει το πλήθος των στοιχείων του over.

Και στα printf(); δε πρέπει να έχεις & μπροστά από τις μεταβλητές...


Title: Re: Εργασία vol B 2006
Post by: 4Dcube on April 13, 2006, 01:33:17 am
σε τι είδους κομπάιλερ το τρέχεις; Microsoft Vis.Studio? Borland? Turbo c? Dev C?
..
προτείνω (γιατί ορισμένοι παλιοί μου'κάναν κάτι κόγξες) να μη βάζεις πολλές παρενθέσεις όπου δε χρειάζονται
Επίσης μπορεί να χρειάζεται "press key" ο κομπάιλερ, αλλά πάντα για να τελειώσει το πρόγραμμα.
Αλλά αν δε χρειάζεται "press key", μπορεί να εκτελεί τις πράξεις και να εκτυπώνει και να κλείνει το πρόγραμμα προτού προλάβεις να δεις τίποτε. Σε αυτή την περίπτωση φτιάξε εσύ μηχανισμό που να τερματίζει το πρόγραμμα όταν πατάς κάτι.

ο compiler ειναι DEV-C
το δοκιμασα και χωρις παρενθεσεις αλλα το προβλημα εξακολουθει να υπαρχει..
οσο για τον μηχανισμο, εχω τετοιον στο τελος
το θεμα ειναι γιατι "εμφανιζει" press key στη μεση του προγραμματος
(δεν βγαζει κειμενο, αλλα αναβοσβηνει ο κερσορας μεχρι να πατησω κατι και μετα enter για να συνεχισει το προγραμμα κανονικα)
Τότε έχεις κάνει λάθος αμέσως μετά που διαβάζει τους πίνακες και αναγκάζεται να τερματίσει το πρόγραμμα.
Μπορείς κάλιστα να ανεβάσεις κι εσύ τον κώδικά σου.


Άρε παιδιά, αν δυσκολευτήκατε με τους πίνακες να σας ανεβάσω την περσυνή δεύτερη εργασία! ^knuppel^
*θα την ανεβάσω αύριο στα downloads


Title: Απ: Εργασία vol B 2006
Post by: meltemi on April 13, 2006, 02:14:40 am
To σωστό είναι:

for (i=0; i<c; i++)
    printf("%f", over[ i ]);

Αφού ο c δείχνει το πλήθος των στοιχείων του over.

Και στα printf(); δε πρέπει να έχεις & μπροστά από τις μεταβλητές...

@PreDa
Συμφωνώ απόλυτα, θα το δεις και στον κώδικα που σου έστειλα, επίσης πρόσθεσε τα στοιχεία που είχες και πριν, να δούμε τι παίζει...


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 02:21:14 am
Απάντησα και με πουμου απαντώ κι εδώ και είμαι ευγνώμων για τη βοήθειά σας. Θα κανω διορθώσεις και ρυθμίσεις αργότερα. τώρα πλέον δουλεύει μία χαρά  8)


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 05:56:07 am
Μια χαρά και τρεις τρομάρες... :o Δεν μπορώ να δημιουργήσω τον πίνακα no_free. Σε ενα ποστ στο τόπικ "απορία για τους πίνακες" ο Faidon αναφέρει ότι ορίζουμε μία μεταβλητή (t=0) πριν το 2ο for και αφού ελεγξουμε την τιμή μίας  συχνότητας Α για όλες τις τιμές του Β ελέγχουμε τη μεταβλητή αυτή. Αν η Α είναι κοινή έστω για μια τιμή του Β θέτουμε t=1, αν όχι το t παραμένει 0. Μένει μετά να ελέγξουμε στο τέλος του 2ου for ποιά είναι η τιμή του t. Αν t=0 προσθέτουμε τη συχνότητα Α στον πίνακα no_free. Λογικά ανάλογα πράττουμε για τον πίνακα Β, δλδ. στο πρώτο for οι συχνότητες του Β και στο 2ο αυτές του Α και πάλι μία μεταβλητή (πχ. s) να ελέγχει αν το Β έχει κοινή συχνότητα με το Α. Στο τέλος το πλήθος των συχνοτήτων της no_free ειναι s+t. Το πρόβλημά μου είναι ότι δεν μπορώ να ελέγξω μετά το 2ο for την τιμή του t με κάποιον τρόπο, καθώς μία συνάρτηση if έξω από το 2ο for δεν λειτουργεί, επειδή την ορίζω 0 έξω από αυτό. Ίσως η λύση είναι πολύ απλή, αλλά τέτοια ώρα τέτοια λόγια... Ο εγκέφαλός μου κοιμάται και δεν μπορώ να σκεφτώ κάτι αυτή τη στιγμή... :-\


Title: Απ: Εργασία vol B 2006
Post by: meltemi on April 13, 2006, 08:09:47 am
@PreDa
Pm.  ;)
Δε μπορώ να μείνω άλλο τώρα για περαιτέρω εξηγήσεις.


Title: Re: Εργασία vol B 2006
Post by: Faidon on April 13, 2006, 13:59:49 pm
Από το post σου δεν ξέρω αν κατάλαβες καθόλου την χρήση της μεταβλητής t...

Πριν το 2o for() ορίζεις t=0, αφού για τη συγκεκριμένη συχνότητααν η συχνότητα Α[ι] ήταν κοινή (t=1) ή όχι (t=0);
Αυτό το επαναλαμβάνεις για όλες τις συχνότητες


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 14:01:23 pm
Ακολούθησα τον τρόπο σου μελτέμι και μου βγάζει ένα σφάλμα μνήμης και τερματίζει το πρόγραμμα μου πριν αρχίσει να δουλεύει τον πίνκακα no_free  :-[ Δεν νομίζω ότι είναι κάτι που μπορώ να επιλύσω... Ίσως αν ακολουθούσα διαφορετικό τρόπο...


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 14:05:50 pm
@ Faidon
Με κατατόπισε και το μελτέμι σχετικά και χρησιμοποιώ μόνο t. Σύμφωνα με τον κώδικά της ελέγχει τα στοιχεία του πίνακα Α με αυτά του over με τον τρόπο που έχεις προσημάνει και έπειτα κάνει το ίδιο για το Β. Και τις 2 φορές χρησιμοποιεί μόνο μια μεταβλητή την t. Το πρόβλημα που αντιμετωπίζω τώρα είναι ένα σφάλμα μνήμης που πετάει το πρόγραμμα μου  :-[


Title: Απ: Εργασία vol B 2006
Post by: PreDa on April 13, 2006, 14:16:43 pm
Πιο συγκεκριμένα το askisi2.exe προσπαθεί να τρέξει το C:\\WINDOWS\system32\dwwin.exe και αν το επιτρέψω μου βγάζει σφάλμα των windows, ενώ αν το αππορίψω μου παρουσιάζει σφάλμα μνήμης... Αν μπορεί κάποιος να με βοηθήσει θα το εκτιμούσα.. Να τρέξω το πρόγραμμα σε άλλον compiler?


Title: Re: Εργασία vol B 2006
Post by: Faidon on April 13, 2006, 14:28:55 pm
Καλά τώρα ξαφνικά στο έβγαλε; Βεβαιώσου ότι δεν έχεις ξεχάσει κανένα & στα scanf().