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

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 18, 2025, 12:27:32 pm

Login with username, password and session length

Αναζήτηση

Google

THMMY.gr Web
Πρόσφατα
H Στοά των Off Topic
by Nikos_313
[Today at 08:53:31]

[Μεταφορά και Διανομή ΗΕ]...
by tzortzis
[Today at 07:55:05]

Πρακτική Άσκηση ΤΗΜΜΥ 201...
by chris_p30
[Today at 00:45:33]

Ισραήλ - Ιράν: Πόλεμος στ...
by Katarameno
[June 17, 2025, 21:32:50 pm]

[Ψηφιακά Ολοκληρωμένα Κυκ...
by tzortzis
[June 17, 2025, 21:25:42 pm]

[Εφ.Θερμοδυναμική] Γενικέ...
by PAPARI69
[June 17, 2025, 20:59:13 pm]

[Γραφική] Λυμένα θέματα
by okanpala
[June 17, 2025, 18:56:22 pm]

Τι ακούτε αυτήν τη στιγμή...
by Katarameno
[June 17, 2025, 14:25:00 pm]

Αντικατάστασης πυκνωτή σε...
by george14
[June 17, 2025, 13:58:20 pm]

Πότε θα βγει το μάθημα; -...
by tzortzis
[June 17, 2025, 13:19:53 pm]

Αποτελέσματα Εξεταστικής ...
by george14
[June 17, 2025, 12:08:25 pm]

[ΨEE] Γενικές απορίες και...
by Juror8
[June 17, 2025, 12:06:57 pm]

[Οργάνωση Υπολογιστών] Γε...
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 _Trob
[June 16, 2025, 13:28:21 pm]

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

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

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

Το thmmy.gr στο instagram...
by Mr Watson
[June 15, 2025, 00:50:23 am]
Στατιστικά
Members
Total Members: 9961
Latest: Poli
Stats
Total Posts: 1426709
Total Topics: 31711
Online Today: 215
Online Ever: 2093
(April 17, 2025, 08:47:49 am)
Users Online
Users: 54
Guests: 92
Total: 146
rafa98p
sofaki
Mr White
kostaspap
Roidos
Nikikouss
tzortzis
florianm
athena_apo
s4327063
palladas
Chrisvb17
nikosmonov
antontsiorvas
dimitire
grepanis
Tolizz
giannisd
romanos
Captain
Manifold
kakousios
witchingHour
nikoskaza
gdiakonikolhs
mhtsakos02
Angelos Asim
ThanosTheTT
elizabeth
kapas
nikd
vajulin
Potest
Isidora
kstavroulis
thanosk
Rizotto
chriskazakos
geoarg
PanosPapaspirou
babistso
dimpanas
elias_farhood
nicksterghs
Argyriou
kostas.de
pave
dseid
Εμφάνιση

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

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



View Profile
2η Εργασία _ Απορίες
« Reply #75 on: June 09, 2007, 10:10:35 am »

Δεν ξέρω γιατί δε μου γράφτηκε ο κώδικας Angry!!!!
Μπορείκάποιος να με βοηθήσει?????PLZZZZZZZZ!!!!!!!!!!! Roll Eyes
Logged

The APOKALIPSIS: George Clooney,Brad Pitt,Antonio Banderras,Richard Gere and Jonny Depp are mine.We all live together happily...(hot-ha?)and we don't care about the reactions of the paparazzi for the truth is one and only and u must face it:we are in love!
Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #76 on: June 09, 2007, 10:13:20 am »

Κατ' αρχάς, για να γραφεί κανονικά ο κώδικας, γράψ' τον μέσα σε code tags Smiley

Code:
[i]code tags[/i]

Κάνε quote αυτό το post για να δεις πώς γίνεται.
Logged

Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #77 on: June 09, 2007, 10:29:42 am »

Δοκίμασε αυτό στη θέση αυτού που έγραψες:

Code:
for(i=0;i<l;i++){
for(j=0;j<m;j++){
r=sqrt(pow(A[i][0]-B[i][0],2)+pow(A[i][1] -B[i][1],2));
...
(άλλες εντολές)
...
}
}

Αλλά είναι πολύ πιθανό το πρόβλημα να μη βρίσκεται σ' αυτό το τμήμα κώδικα.  Δες, για παράδειγμα, μήπως ξέχασες σε κάποια scanf να βάλεις & μπροστά από τη μεταβλητή που διαβάζεις.



Και μία δική μου απορία: Αν και το πρόγραμμα που έγραψα δουλεύει κανονικά στον Borland, όταν προσπαθώ να ορίσω τον πίνακα over ως over[2500][2] μου βγάζει stack overflow.  Αν όμως μειώσω τις θέσεις του πίνακα (για παράδειγμα σε over[500][2]), τότε δουλεύει κανονικά.  Μήπως ξέρει κανείς τι μπορεί να φταίει; 
Logged

Mendoza
Guest
2η Εργασία _ Απορίες
« Reply #78 on: June 09, 2007, 11:19:47 am »

Quote from: ifigeneia on June 09, 2007, 10:08:10 am
Υπάρχει καμιά ιδέα για το πως θα ελέγχουμε την ελάχιστη απόσταση???? Χρησιμοποιώ την βιβλιοθήκη <math.h> για τα τετραγωνα και το ριζικό στον τύπο της απόστασης αλλά κάτι πρέπει να κάνω λάθος και δεν παίρνω σωστά αποτελέσματα...
for (i=0,s=0; i<l && s<m; i++,s++)
    {
       
            z=A
  • -B
    • ;
              q=A[1]-B[1];
              p=pow(z,2)+pow(q,2);
              r=sqrt(p);
    ....... και μετά κάνω έλεγχο για r<6... αλλά δε μου βγαίνει!!!!
Εχεις υπόψη σου οτι η sqrt() επιστρέφει τιμή double έτσι?δηλαδή ορισες το r σαν μεταβλητή double?
Από κει και πέρα το λάθος προφανώς βρίσκεται στο βρόγχο for όπου ελέγχεις 2 μεταβλητές ταυτόχρονα..Δεν θέλουμε να αυξάνονται ταυτόχρονα τα i kai s..Κάντο σαν τον Wade,το ένα for κάτω από το άλλο..!!

Quote from: Wade on June 09, 2007, 10:29:42 am
Και μία δική μου απορία: Αν και το πρόγραμμα που έγραψα δουλεύει κανονικά στον Borland, όταν προσπαθώ να ορίσω τον πίνακα over ως over[2500][2] μου βγάζει stack overflow.  Αν όμως μειώσω τις θέσεις του πίνακα (για παράδειγμα σε over[500][2]), τότε δουλεύει κανονικά.  Μήπως ξέρει κανείς τι μπορεί να φταίει; 
Το μέγεθος της στοίβας καθορίζεται από τον compiler.Αν πάς στην μπάρα του Compiler==>Options/Compiler/Entry&exit code..έχει 2 stack options.Τσέκαρε Standαrt stack frame και μην τσεκάρεις(ή ξετσέκαρε) το Test stack overflow..Ετσι το χω εγώ και δεν εχει προβλήματα..Αν πάλι έχεις πρόβλημα παίξε λίγο μ αυτές τις ρυθμίσεις...Αν εξακολουθούν τα προβλήματα πήγαινε αγόρασε 1GB Ram.. Tongue
« Last Edit: June 09, 2007, 11:37:14 am by Bo@rD-RiDeR » Logged
Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #79 on: June 09, 2007, 11:40:26 am »

Quote from: Bo@rD-RiDeR on June 09, 2007, 11:19:47 am
Το μέγεθος της στοίβας καθορίζεται από τον compiler.Αν πάς στην μπάρα του Compiler==>Options/Compiler/Entry&exit code..έχει 2 stack options.Τσέκαρε Standαrt stack frame και μην τσεκάρεις(ή ξετσέκαρε) το Test stack overflow..Ετσι το χω εγώ και δεν εχει προβλήματα..Αν πάλι έχεις πρόβλημα παίξε λίγο μ αυτές τις ρυθμίσεις...Αν εξακολουθούν τα προβλήματα πήγαινε αγόρασε 1GB Ram.. Tongue

Αυτές τις ρυθμίσεις έχω, και πάλι βγάζει stack overflow...

Επί τη ευκαιρία, έχω 2 GB RAM... Tongue
Logged

ifigeneia
Ανερχόμενος/Ανερχόμενη
**
Gender: Female
Posts: 71



View Profile
2η Εργασία _ Απορίες
« Reply #80 on: June 09, 2007, 12:16:59 pm »

Ευχαριστώ πολυ!!!!
Logged

The APOKALIPSIS: George Clooney,Brad Pitt,Antonio Banderras,Richard Gere and Jonny Depp are mine.We all live together happily...(hot-ha?)and we don't care about the reactions of the paparazzi for the truth is one and only and u must face it:we are in love!
Mikros_Nikolas
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1088



View Profile
2η Εργασία _ Απορίες
« Reply #81 on: June 09, 2007, 13:09:47 pm »

Εγώ πάλι επειδή δεν κατάφερα να χρησιμοποιήσω την sqrt και γενικά τις συναρτήσεις, για να βρω την ελάχιστη απόσταση έκανα μια εξυπνάδα ας πούμε:
if((A[1]-B[j][1])*(A[1]-B[j][1])+(A[2]-B[j][2])*(A[2]-B[j][2])>25000000)continue;


Ο πίνακας over μου εμφανίζεται μια χαρά χρησιμοποιώντας αυτήν την συνθήκη.Όταν όμως θέλω τον Α πχ, να μου εμφανιστεί χωρίς τους πυλώνες που δεν ικανοποιούν την συνθήκη μου βγάζει άλλα αντί άλλων.
for(i=0;i<plh8os_A;i++)
          for(j=0;j<plh8os_B;j++)   
          if((A[1]-B[j][1])*(A[1]-B[j][1])+(A[2]-B[j][2])*(A[2]-B[j][2])<25000000)continue;   
          {
              printf("%i ",A
  • );
              printf("%i ",A[1]);
              printf("%i\n",A[2]);
          } 



Σημειώνω ότι χρησιμοποιώ Dev, έχω ορίσει πίνακα ι][0]--------->Κωδικός πυλώνα
ι][2]--------->Υ πυλώνα

Οι πίνακές μου είναι int γιατί θεώρησα ότι σε μεγέθη χιλιομέτρων, όταν χ,y είναι μέτρα, δεν χρειάζεται ακρίβεια εκατοστών.
« Last Edit: June 09, 2007, 13:16:19 pm by Mikros_Nikolas » Logged

Αν κάτι μπορεί να πάει στραβά, θα πάει.
Mendoza
Guest
2η Εργασία _ Απορίες
« Reply #82 on: June 09, 2007, 13:34:42 pm »

Quote from: Mikros_Nikolas on June 09, 2007, 13:09:47 pm
Εγώ πάλι επειδή δεν κατάφερα να χρησιμοποιήσω την sqrt και γενικά τις συναρτήσεις, για να βρω την ελάχιστη απόσταση έκανα μια εξυπνάδα ας πούμε:
if((A[1]-B[j][1])*(A[1]-B[j][1])+(A[2]-B[j][2])*(A[2]-B[j][2])>25000000)continue;


Ο πίνακας over μου εμφανίζεται μια χαρά χρησιμοποιώντας αυτήν την συνθήκη.Όταν όμως θέλω τον Α πχ, να μου εμφανιστεί χωρίς τους πυλώνες που δεν ικανοποιούν την συνθήκη μου βγάζει άλλα αντί άλλων.
for(i=0;i<plh8os_A;i++)
          for(j=0;j<plh8os_B;j++)   
          if((A[1]-B[j][1])*(A[1]-B[j][1])+(A[2]-B[j][2])*(A[2]-B[j][2])<25000000)continue;   
          {
              printf("%i ",A
  • );
              printf("%i ",A[1]);
              printf("%i\n",A[2]);
          } 



Σημειώνω ότι χρησιμοποιώ Dev, έχω ορίσει πίνακα ι][0]--------->Κωδικός πυλώνα
ι][2]--------->Υ πυλώνα

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



Δεν είναι σωστός ο αλγόριθμος...Με βάση τον κωδικό σου αν ο πυλώνας π.χ.2 του Α και 5 του Β έχουν απόσταση μεγαλύτερη των 5 χλμ τότε το πρόγραμμα εκτυπώνει τον πυλώνα με κωδικό 2 του Α ,χωρίς να ελέγξει αν ισχύει το κριτήριο της ελάχιστης απόστασης κ με όλους τους άλλους πυλ΄ωνες του Β..δηλαδή αν μετά το πρόγραμμα βρεί ότι ο ίδιος πυλώνας 2 του Α δεν εχει μεγαλύτερη απόσταση από 5χλμ με τον π.χ. 12 του Β..τότε κακώς έχεις εκτυπώσει προηγούμενως τον 2!!Θα πρέπει να ελέγξεις κάθε πυλώνα του Α με όλους του Β και μετά να κάνεις την εκτύπωση σου,οχι δλδ σε καθε σύγκριση να εκτυπώνεις...


edit:επίσης τα άγκιστρα σου..δεν μπορώ να καταλάβω που είναι του πρώτου for και πού του δευτέρου!! Huh
« Last Edit: June 09, 2007, 13:37:54 pm by Bo@rD-RiDeR » Logged
Wanderer
Καταστραμμένος
********
Gender: Male
Posts: 5230


Othoum Endron Saous


View Profile
2η Εργασία _ Απορίες
« Reply #83 on: June 09, 2007, 15:28:31 pm »

Quote from: Wade on June 09, 2007, 10:29:42 am
Και μία δική μου απορία: Αν και το πρόγραμμα που έγραψα δουλεύει κανονικά στον Borland, όταν προσπαθώ να ορίσω τον πίνακα over ως over[2500][2] μου βγάζει stack overflow.  Αν όμως μειώσω τις θέσεις του πίνακα (για παράδειγμα σε over[500][2]), τότε δουλεύει κανονικά.  Μήπως ξέρει κανείς τι μπορεί να φταίει; 
Και το δικό μου πρόγραμμα αν το τρέξω στην Borland C++ μου βγάζει τέτοιο μήνυμα, ενώ στη DevC++ το τρέχει χωρίς πρόβλημα. Οπότε μάλλον δεν χρειάζεται να ανησυχείς, το πρόγραμμά σου κατα πάσα πιθανότητα είναι μια χαρά Smiley Τρέξτο και στην DevC++ για σιγουριά όμως.

Για περισσότερες πληροφορίες, πήγαινε στη βοήθεια της Borland, στην επιλογή error messages και από εκεί στην κατηγορία run-time errors. Θα βρεις την περίπτωση stack overflow. Εξηγεί εκεί περισσότερα.
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"
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
2η Εργασία _ Απορίες
« Reply #84 on: June 09, 2007, 15:47:31 pm »

Μπορεί κάποιος να εξηγήσει κάποια πράγματα για τους pointer .
Και κυρίως για την χρήση τους μέσα σε συναρτήσεις.
Έχω κάνει το πρόγραμμα άλλα τελικά μου εμφανίζει διευθύνσεις μνήμεις και όχι το περιεχόμενο.
Τι κάνω λάθος δεν ξέρω .
 beg beg beg beg Help.
Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #85 on: June 09, 2007, 16:05:22 pm »

@Wanderer: Ευχαριστώ για τη βοήθεια, αλλά ο Borland είναι ο μόνος compiler που κατάφερα να τρέξω στα Vista, και ο καθηγητής τα ελέγχει με Borland Undecided  Τέσπα, στη χειρότερη περίπτωση θα φτιάξω μικρότερο πίνακα και θα βάλω σαν comment την αιτιολόγηση...

@ampoulog: Μπορείς, αντί για "κανονικές" μεταβλητές, να χρησιμοποιήσεις pointers βς ορίσματα σε συναρτήσεις.  Για παράδειγμα, όταν ορίζεις μια συνάρτηση και θέλεις να δέχεται ως είσοδο έναν pointer, το κάνεις ως εξής:

void fun(int *var){
...
}

Στο παραπάνω παράδειγμα, η συνάρτηση περιμένει ως όρισμα έναν pointer.  Όταν καλείς αυτή τη συνάρτηση, ως όρισμα θα πρέπει να βάλεις τη θέση μνήμης στην οποία αποθηκεύεται η μεταβλητή που θέλεις.  Έτσι, μέσα στη συνάρτηση, θα λες ουστιαστικά στο πρόγραμμα "πάρε την τιμή από την τάδε θέση στη μνήμη", "γράψε κάτι στην τάδε θέση μνήμης".  Για παράδειγμα:

void fun(int *point){
int k;
k=*point+3
return k;
}

Σ' αυτό το παράδειγμα, το πρόγραμμα παίρνει την τιμή από τη θέση μνήμης που υποδεικνύει η μεταβλητή point (με τον τελεστή *), της προσθέτει το 3, και την καταχωρεί στην k.  Έπειτα επιστρέφει την τιμή της k.

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

Για πίνακες, θα πρέπει να δεις πώς αποθηκεύονται οι πίνακες στη μνήμη.  Δε θα χειρίζεσαι δηλαδή τους πίνακες με τον κλασικό τρόπο, αλλά θα υποδεικνύεις τις θέσεις στις οποίες είναι αποθηκευμένα τα στοιχεία τους.

Δεν ξέρω αν το είπα καλά...  Ελπίζω να βοήθησα Embarrassed
Logged

Mendoza
Guest
2η Εργασία _ Απορίες
« Reply #86 on: June 09, 2007, 16:10:50 pm »

καλά τα πες...εγώ θα βαζα (*point)+3 για καλό και για κακό Cheesy
Logged
ampoulog
Μόνιμος κάτοικος ΤΗΜΜΥ.gr
******
Gender: Male
Posts: 1378



View Profile
2η Εργασία _ Απορίες
« Reply #87 on: June 09, 2007, 16:19:41 pm »

Και αν θέλεις η συνάρτηση να παίρνει τιμές από έναν πίνακα τότε τι κάνεις; Shocked Shocked
Logged

Bλάκας δεν είναι αυτός που δεν έχει νοημοσύνη , αλλά αυτός που πιστεύει

σε ό,τι του δείξουν ως αληθινό και σε ό,τι του εξυψώνει την αυταρέσκεια,

χωρίς να κρίνει και χωρίς να σκέφτεται.
Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #88 on: June 09, 2007, 16:21:17 pm »

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

Wade
Veteran
Καταστραμμένος
******
Gender: Male
Posts: 5795



View Profile WWW
2η Εργασία _ Απορίες
« Reply #89 on: June 09, 2007, 16:30:40 pm »

Και κάτι ακόμα, χωρίς να είμαι σίγουρος αν κάποιος το έχει ξαναρωτήσει: Όταν λέει "να αφαιρεθούν τα στοιχεία του πίνακα" στην εκφώνηση, τι ακριβώς εννοεί;
Logged

Pages: 1 ... 4 5 [6] 7 8 ... 11 Go Up Print
Jump to:  

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