• Downloads
  • ! Read Me !
  • Μαθήματα
  • Φοιτητικά
  • Τεχνικά Θέματα
  • Συζητήσεις
  • Happy Hour!
  • About THMMY.gr
 V  < 
Search:  
Welcome, Guest. Please login or register.
June 17, 2025, 06:52:19 am

Login with username, password and session length
Links
  Thmmy.gr portal
   Forum
   Downloads
   Ενεργ. Λογαριασμού
   Επικοινωνία
  
  Χρήσιμα links
   Σελίδα τμήματος
   Βιβλιοθήκη Τμήματος
   Elearning
   Φοιτητικά fora
   Πρόγραμμα Λέσχης
   Πρακτική Άσκηση
   Ηλεκτρονική Εξυπηρέτηση Φοιτητών
   Διανομή Συγγραμμάτων
   Ψηφιακό Καταθετήριο Διπλωματικών
   Πληροφορίες Καθηγητών
   Instagram @thmmy.gr
   mTHMMY
  
  Φοιτητικές Ομάδες
   ACM
   Aristurtle
   ART
   ASAT
   BEAM
   BEST Thessaloniki
   EESTEC LC Thessaloniki
   EΜΒ Auth
   IAESTE Thessaloniki
   IEEE φοιτητικό παράρτημα ΑΠΘ
   SpaceDot
   VROOM
   Panther
  
Πίνακας Ελέγχου
Welcome, Guest. Please login or register.
June 17, 2025, 06:52:19 am

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
Ισραήλ - Ιράν: Πόλεμος στ...
by okan
[Today at 02:33:21]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[Today at 02:29:21]

[Οργάνωση Υπολογιστών] Γε...
by RAFI
[June 16, 2025, 22:46:54 pm]

[Σ.Π.Η.Ε.] Γενικές απορίε...
by Nikos_313
[June 16, 2025, 19:49:00 pm]

[ΘΤΠΑ] Γενικές απορίες κα...
by Nikos_313
[June 16, 2025, 16:56:56 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by Λαμπτήρας
[June 16, 2025, 15:55:08 pm]

[Αρχές Οικονομίας] Να επι...
by _Trob
[June 16, 2025, 13:28:21 pm]

[Σ.Α.Π.Γ.] Εργασία 2025
by Nikos_313
[June 16, 2025, 12:13:45 pm]

Αποτελέσματα Εξεταστικής ...
by Nikos_313
[June 16, 2025, 12:01:53 pm]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by George_RT
[June 16, 2025, 10:22:18 am]

[Διανεμημένη Παραγωγή] Γε...
by Διάλεξις
[June 16, 2025, 01:56:37 am]

Αντικατάστασης πυκνωτή σε...
by nmpampal
[June 15, 2025, 16:25:56 pm]

[Σ.Π.Η.Ε.] Παλιά θέματα -...
by nmpampal
[June 15, 2025, 06:43:15 am]

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]

[Λογισμός ΙΙ] Απορίες σε...
by el mariachi
[June 14, 2025, 20:47:07 pm]

ΠΡΟΣΟΧΗ στο ανέβασμα θεμά...
by tzortzis
[June 14, 2025, 16:54:08 pm]

Ρυθμίσεις Θεμάτων της Ανώ...
by el mariachi
[June 14, 2025, 11:56:45 am]

Πότε θα βγει το μάθημα; -...
by Nikos_313
[June 14, 2025, 10:00:55 am]

Αρχείο Ανακοινώσεων [Arch...
by Nikos_313
[June 14, 2025, 09:58:14 am]

Αλέξης Τσίπρας, η επιστρο...
by Yamal
[June 14, 2025, 04:42:23 am]
Στατιστικά
Members
Total Members: 9960
Latest: valco08
Stats
Total Posts: 1426680
Total Topics: 31710
Online Today: 169
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 5
Guests: 103
Total: 108
stefpapa21
Yamal
pipitsenko
Theislander
Εμφάνιση

Νέα για πρωτοετείς
Είσαι πρωτοετής;... Καλώς ήρθες! Μπορείς να βρεις πληροφορίες εδώ. Βοήθεια για τους καινούργιους μέσω χάρτη.
Κατεβάστε εδώ το Android Application για εύκολη πρόσβαση στο forum.
Ανεβάζετε τα θέματα των εξετάσεων στον τομέα Downloads με προσοχή στα ονόματα των αρχείων!

Νέα!
Για ανανέωση (ή προσθήκη νέου) avatar, πρέπει η μεγαλύτερη διάσταση της εικόνας να είναι 110 pixels.
THMMY.gr > Forum > Μαθήματα Βασικού Κύκλου > 1ο Εξάμηνο > Δομημένος Προγραμματισμός (Moderators: Tasos Bot, tzortzis, Nekt) > [Δομημένος Προγραμματισμός] Εργασία Β 2008
0 Members and 1 Guest are viewing this topic.
Pages: 1 ... 4 5 [6] 7 8 9 Go Down Print
Author Topic: [Δομημένος Προγραμματισμός] Εργασία Β 2008  (Read 18374 times)
dimvam
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 815



View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #75 on: April 15, 2008, 17:10:10 pm »

Quote from: demP on April 15, 2008, 17:06:55 pm
παιδια γεια σας, εγω ειμαι πολυ ασχετος και δεν καταλαβαινω τιποτα σχεδον απο αυτα που λέτε, διαβαζω τις σημειωσεις του τυπου και προσπαθω να κάνω και εγω κατι.

εχω φτασει στο σημειο που συγκρινεις τους 2 πινακες και εκτυπωνει 1 πινακα με
τις κοινες συχνοτητες.
έχω φτασει εδώ.
.
.
.

for(i=0; i<x; i++)
  {
for(j=0; j<y; j++)
if (m==n[j])
    {
   over=m;

printf("%d\t",over)

χ,y, αριθμος συχνοτητων


Το θεμα ειναι ότι αν ένας πίνακας έχει παραπάνω απο 1 συχν κοινες μου τις πεταει
και στον over.

π.χ. Α { 1, 2, 2, 3 }    Β { 5, 6, 2, 3}

ο over θα ειναι { 2, 2, 3 } <------έχει ένα 2 παραπάνω

πως θα το ξεφορτωθώ ?   

Δες το λίγο λογικά, μην σκέφτεσαι αυστηρά προγραμματιστικά.
Ο πίνακας περιέχεις τις συχνότητες εκπομπής ενός ραδιοφωνικού σταθμού, άρα δεν έχει νόημα να είναι ένα στοιχείο ίδιο στον πίνακα.
Logged

Στο μόνο μέρος που βρίσκεις ανθρώπους χωρίς προβλήματα είναι στο νεκροταφείο.
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #76 on: April 15, 2008, 17:15:42 pm »

Ναι πράγματι δεν το χρειάζομαι. Τελικά ξεκόλλησα και βρήκα κάτι πιο λογικό να κάνω. Αυτό ήταν μεγάλη χαζομάρα που ζητούσα. Anyway thanks!!!
Logged
sarovios
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 800


kill the fly!!!


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #77 on: April 15, 2008, 19:55:54 pm »

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

Code:
#include <stdio.h>

int main()
{
    float A[50],B[50],over[50];
    int i,j,z,n,m;
   
    printf ("Dose ton aritho ton sixnotiton tis etairias A\n");
    scanf ("%d",&n);
   
    printf ("Dose ton arithmo ton sixnotiton tis etairias B\n");
    scanf ("%d",&m);
   
    for (i=0 ; i<n ; i++)
    {
        printf ("Dose tis sixnotites tis etairias A\n");
        scanf ("%f",&A[i]);
    }
   
        for (j=0 ; j<m ; j++)
        {
            printf ("Dose sixnotites tis etairias B\n");
            scanf ("%f",&B[j]);
        }
       
        z=0;
        for (i=0 ; i<n ; i++)
        {
            for (j=0 ; j<m ; j++)
            {
                if (A[i]==B[j])
                over[z]=A[i];
                z++;
            }
        }
        printf ("%f",over[z]);
        return 0;
}               
Logged
portinos
Καταξιωμένος/Καταξιωμένη
***
Posts: 264



View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #78 on: April 15, 2008, 20:20:55 pm »

Έχω μία τελευταία απορία. Αφού καλέσω τη συνάρτηση abs βάζω, όλα τα στοιχεία που βρίσκω σε ένα καινούργιο πίνακα. Μετά βρίσκω το μικρότερο στοιχείο του πίνακα και το εκτυπώνω. Στην εκφώνηση όμως ζητάει να εκτιπώσουμε και τις συχνότητες από τις οποίες παράγεται αυτό το στοιχείο. Πως γίνεται να το κάνουμε αυτό confused.
Logged
Goklagie
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 185


Vamos Arianara


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #79 on: April 15, 2008, 20:34:46 pm »

Έτσι εγκυκλοπαιδικά, όσων αφορά το δικό μου πρόβλημα, ρώτησα τον Κορτέση και είπε πως τα incude εκτελούνται κατά την μετάφραση, άρα δεν έχει νόημα να δώσεις δεδομένα που εισάγει ο χρήστης. Wink
Logged
Mendoza
Guest
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #80 on: April 15, 2008, 20:48:12 pm »

Quote from: sarovios on April 15, 2008, 19:55:54 pm
Εχω φαει τρελο κολλημα.Εχω τον παρακατω κωδικα και μου τυπωνει 0.0000.Οτι και να βαλω για τιμες συχνοτητων... Μπορειτε να μου πειτε τι λαθος κανω ???

Code:
#include <stdio.h>

int main()
{
    float A[50],B[50],over[50];
    int i,j,z,n,m;
   
    printf ("Dose ton aritho ton sixnotiton tis etairias A\n");
    scanf ("%d",&n);
   
    printf ("Dose ton arithmo ton sixnotiton tis etairias B\n");
    scanf ("%d",&m);
   
    for (i=0 ; i<n ; i++)
    {
        printf ("Dose tis sixnotites tis etairias A\n");
        scanf ("%f",&A[i]);
    }
   
        for (j=0 ; j<m ; j++)
        {
            printf ("Dose sixnotites tis etairias B\n");
            scanf ("%f",&B[j]);
        }
       
        z=0;
        for (i=0 ; i<n ; i++)
        {
            for (j=0 ; j<m ; j++)
            {
                if (A[i]==B[j])
                over[z]=A[i];
                z++;
            }
        }
        printf ("%f",over[z]);
        return 0;
}               
Εκ πρωτης οψεως φαινεται οτι εκτυπωνεις λαθος τον πινακα

Οχι printf ( " % f ",over [ z ] );  οπως γραφεις αλλα
 
for( i = 0 ; i < z ; i + + ) {
 printf(" % f ",over[ i ] );
}

δηλαδη για να εκτυπωσεις ενα πινακα αριθμων πρεπει να εκτυπωσεις καθε μια τιμη του ξεχωριστα με ενα for
« Last Edit: April 16, 2008, 11:12:52 am by Bo@rD-RiDeR » Logged
sarovios
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 800


kill the fly!!!


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #81 on: April 15, 2008, 20:58:00 pm »

Quote from: Bo@rD-RiDeR on April 15, 2008, 20:48:12 pm
Quote from: sarovios on April 15, 2008, 19:55:54 pm
Εχω φαει τρελο κολλημα.Εχω τον παρακατω κωδικα και μου τυπωνει 0.0000.Οτι και να βαλω για τιμες συχνοτητων... Μπορειτε να μου πειτε τι λαθος κανω ???

Code:
#include <stdio.h>

int main()
{
    float A[50],B[50],over[50];
    int i,j,z,n,m;
   
    printf ("Dose ton aritho ton sixnotiton tis etairias A\n");
    scanf ("%d",&n);
   
    printf ("Dose ton arithmo ton sixnotiton tis etairias B\n");
    scanf ("%d",&m);
   
    for (i=0 ; i<n ; i++)
    {
        printf ("Dose tis sixnotites tis etairias A\n");
        scanf ("%f",&A[i]);
    }
   
        for (j=0 ; j<m ; j++)
        {
            printf ("Dose sixnotites tis etairias B\n");
            scanf ("%f",&B[j]);
        }
       
        z=0;
        for (i=0 ; i<n ; i++)
        {
            for (j=0 ; j<m ; j++)
            {
                if (A[i]==B[j])
                over[z]=A[i];
                z++;
            }
        }
        printf ("%f",over[z]);
        return 0;
}               
Εκ πρωτης οψεως φαινεται οτι εκτυπωνεις λαθος τον πινακα

Οχι printf ( " % f ",over [ z ] );  οπως γραφεις αλλα
 
for( i = 0 ; i < z ; z + + ) {
 printf(" % f ",over[ i ] );
}

δηλαδη για να εκτυπωσεις ενα πινακα αριθμων πρεπει να εκτυπωσεις καθε μια τιμη του ξεχωριστα με ενα for


Tωρα οταν βαζω τιμες για τον Α---->2 6 9 10 και γιατον Β--->4 6 9 10 μου τυπωνει συνεχεια 0.0006.Μονο τον ενα κοινο αριθμο.
P.S.χρησιμοποιω dev c++ 5 betta
Logged
Wanderer
Καταστραμμένος
********
Gender: Male
Posts: 5230


Othoum Endron Saous


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #82 on: April 15, 2008, 21:04:47 pm »

Μια μικρή διόρθωση για την παρατήρηση του Board Rider: έχω την εντύπωση ότι στο loop πρέπει να μπει "από 0 έως z-1", διότι στον κώδικά του ο sarovios αυξάνει στο τέλος του ελέγχου τον z (βλακεία είπα). Sarovios δίνεις ξανά τον τροποποιημένο κώδικα;

@Portinos: μπορείς να κάνεις αυτό (έστω C και D οι νέοι πίνακες):

min=abs(C[0]-D[0]);
di=0;
dj=0;

for(i=0;i<n;i++) {
  for(j=0;j<m;j++) {
    if(abs(C-D[j])<min) {
      min=abs(C-D[j]);
      di=i;
      dj=j;
    }
  }
}

Και έτσι έχεις τα στοιχεία που ζητάς.
« Last Edit: April 15, 2008, 21:08:02 pm by Wanderer » Logged

Preserve and keep us safe this night     *and our innocence made fun of justice*

Once we dreamt of everything
united by our love
There's a place for everyone
so we scream "Liberta"
sarovios
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 800


kill the fly!!!


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #83 on: April 15, 2008, 21:09:00 pm »

Αυτο που εχω γραψει ειναι:
Code:
#include <stdio.h>

int main()
{
    float A[50],B[50],over[50];
    int i,j,z,n,m;
   
    printf ("Dose ton aritho ton sixnotiton tis etairias A\n");
    scanf ("%d",&n);
   
    printf ("Dose ton arithmo ton sixnotiton tis etairias B\n");
    scanf ("%d",&m);
   
    for (i=0 ; i<n ; i++)
    {
        printf ("Dose tis sixnotites tis etairias A\n");
        scanf ("%f",&A[i]);
    }
   
        for (j=0 ; j<m ; j++)
        {
            printf ("Dose sixnotites tis etairias B\n");
            scanf ("%f",&B[j]);
        }
       
        z=0;
        for (i=0 ; i<n ; i++)
        {
            for (j=0 ; j<m ; j++)
            {
                if (A[i]==B[j])
                over[z]=A[i];
                z++;
            }
        }
        printf ("%f",over[z]);
        return 0;
}               
το το τροποπειησα και αντι του τελευταιου printf γραφω
Code:
for (i=0 ; i<z ; z++)
        {
            printf ("%f",over[i]);
        }
και δημιουργειται το προβλημα που ειπα παραπανω...
Logged
Wanderer
Καταστραμμένος
********
Gender: Male
Posts: 5230


Othoum Endron Saous


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #84 on: April 15, 2008, 21:21:43 pm »

ντοίγκ! Cheesy Αυξάνεις το z όχι το i το loop!

for (i=0 ; i<z ; z++)
Logged

Preserve and keep us safe this night     *and our innocence made fun of justice*

Once we dreamt of everything
united by our love
There's a place for everyone
so we scream "Liberta"
sarovios
Εθισμένος στο ΤΗΜΜΥ.gr
*****
Gender: Male
Posts: 800


kill the fly!!!


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #85 on: April 15, 2008, 21:25:22 pm »

Quote from: Wanderer on April 15, 2008, 21:21:43 pm
ντοίγκ! Cheesy Αυξάνεις το z όχι το i το loop!

for (i=0 ; i<z ; z++)

Αυτο ακριβως γραφω αν μιλας για το τελευταιο loop...
Logged
Wanderer
Καταστραμμένος
********
Gender: Male
Posts: 5230


Othoum Endron Saous


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #86 on: April 15, 2008, 21:28:24 pm »

Ναι αλλά εσύ θέλεις να αυξάνεται το i και όχι το z, αυτό λέω Wink

Η συνθήκη πρέπει να είναι for (i=0 ; i<z ; i++)

Για να βρίσκεις εύκολα πού κάνεις λάθος (διότι γενικά αυτά τα λαθάκια είναι λίγο δύσκολο να βρεθούν, ειδικά αν είσαι και κάπως κουρασμένος) κατ'αρχάς πιστεύω βοηθάει να σκέφτεσαι: "σε ποιό σημείο κολάει;" Αφού "κολάει" στο σημείο που τρέχεις loop με πεπερασμένες επαναλήψεις, προφανώς εκεί εντοπίζεται το λάθος. Διότι το z ό,τι λάθη και να έκανες παραπάνω, αποκλείεται να σου βγει αρνητικό, επομένως κάτι συμβαίνει με τη συνθήκη του τελευταίου βρόγχου επανάληψης.

Επίσης ένας πολύ αποτελεσματικός τρόπος είναι να χρησιμοποιείες εντολές printf(..); και getch(); σε σημεία κλειδιά του προγράμματος, για να διαπιστώσεις σε ποιό σημείο δεν τρέχει σωστά.
Logged

Preserve and keep us safe this night     *and our innocence made fun of justice*

Once we dreamt of everything
united by our love
There's a place for everyone
so we scream "Liberta"
difotiad
Καταξιωμένος/Καταξιωμένη
***
Gender: Male
Posts: 264


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #87 on: April 15, 2008, 21:58:59 pm »

Quote from: Wanderer on April 15, 2008, 21:04:47 pm
Μια μικρή διόρθωση για την παρατήρηση του Board Rider: έχω την εντύπωση ότι στο loop πρέπει να μπει "από 0 έως z-1", διότι στον κώδικά του ο sarovios αυξάνει στο τέλος του ελέγχου τον z (βλακεία είπα). Sarovios δίνεις ξανά τον τροποποιημένο κώδικα;

@Portinos: μπορείς να κάνεις αυτό (έστω C και D οι νέοι πίνακες):

min=abs(C[0]-D[0]);
di=0;
dj=0;

for(i=0;i<n;i++) {
  for(j=0;j<m;j++) {
    if(abs(C-D[j])<min) {
      min=abs(C-D[j]);
      di=i;
      dj=j;
    }
  }
}

Και έτσι έχεις τα στοιχεία που ζητάς.

@wanderer: αυτα που διεγραψες ειναι το πρωτο πραγμα για το οποιο με διορθωσε ο Κορτεσης σημερα που του εδειξα σε κατι κολλες Α4 τον κωδικα που εχω γραψει.Και μου ειπε π.χ. οτι αν ο over τελικα εχει μονο ενα στοιχειο (προφανως στο over[0]) το z θα εχει γινει 1.Αλλα εχω μπερδευτει λιγο και μου φαινεται οτι κανει λαθος ο Κορτεσης
Logged

The clock is running. Make the most of today. Time waits for no man. Yesterday is history. Tomorrow is a mystery. Today is a gift. That's why it is called the present
Wanderer
Καταστραμμένος
********
Gender: Male
Posts: 5230


Othoum Endron Saous


View Profile
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #88 on: April 15, 2008, 22:13:53 pm »

Αυτό που έσβησα είναι λάθος επειδή ο Board Rider γράφει:

for( i = 0 ; i < z ; i + + )

Συνεπώς με βάση αυτό επιβάλλεται να είναι αυξημένος κατα ένα ο z σε σχέση με το πλήθος των στοιχείων του πίνακα. Π.χ.: αν έχει ένα μόνο στοιχείο ο z θα είναι 1 και η συνθήκη θα τερματιστεί κανονικά στην ώρα της (αφού για i=1 θα είναι i=z, επομένως η συνθήκη θα είναι ψευδής).

Σε περίπτωση όμως που ο κώδικας ήταν for( i = 0 ; i == z ; i + + ) τότε προφανώς το z θα έπρεπε να μειωθεί κατα 1 για να τρέξει σωστά το πρόγραμμα, για να είναι ίσο με το πλήθος των στοιχείων του πίνακα.
Logged

Preserve and keep us safe this night     *and our innocence made fun of justice*

Once we dreamt of everything
united by our love
There's a place for everyone
so we scream "Liberta"
fourier
Guest
Re: [Δομημένος Προγραμματισμός] Εργασία Β 2008
« Reply #89 on: April 15, 2008, 23:37:55 pm »

Εχω γραψει το προγραμμα σχεδον ολοκληρο, και λειτουργει σωστα. Μου μενει μονο το τελευταιο κομματι.
Δηλαδη, εχω βρει τους νεους πινακες απ' οπου λειπουν οι κοινες συχνοτητες, και μενει η απολυτη τιμη της διαφορας, αλλα εχω κολλησει.

Κατ' αρχην, θα πρεπει να γινουν <= 50*50=2500 αφαιρεσεις και fabs απο πανω τους, ωστε να αφαιρεθει καθε πιθανη συχνοτητα του Α απο καθε πιθανη του Β. Αυτο δεν ειναι προβλημα, γινεται σε 2 γραμμες.
Το θεμα ειναι, αντε και καναμε την αφαιρεση, αντε και βρηκαμε με καποιον τροπο ποιο απο τα αποτελεσματα εχει τη μικροτερη απολυτη τιμη, μετα πώς θα βρουμε απο ποιων συναρτησεων τη διαφορα δημιουργηθηκε?

Καμια ιδεα????
Logged
Pages: 1 ... 4 5 [6] 7 8 9 Go Up Print
Jump to:  

Powered by SMF | SMF © 2006-2009, Simple Machines LLC
Scribbles2 | TinyPortal © Bloc | XHTML | CSS
Loading...