Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
 

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

 
Επεξ/σία από billydot
Δημοσ.

Σε ρωταω... Αν μπορεις να κανεις την ιδια ασκηση με μονοδιαστατο.

 

Γραψτε τρεις συναρτησεις οι οποιες δεχονται ως ορισμα εναν μονοδιαστατο πινακα A[n] και επιστρεφουν μπλα μπλα μπλα

Δημοσ.

Οχι, δεν παει πουθενα. Δοκημασε να την κανεις με μονοδιαστατο που ειναι πιο εφκολη και πρακτικα θα "μαθεις" αυτο που χρειαζονται για να την κανεις με πολυδιαστατο.

Δημοσ.

Αφού η εκφώνηση λέει ξεκάθαρα να περάσεις τον πίνακα ως 2-διάστατο στις συναρτήσεις, δεν νομίζω ότι χρειάζεται να δυσκολέψεις τη ζωή σου. Οπότε κάνε το εξαρχής 2-διάστατο.

 

Όσο για το άγνωστο άνω όριο, θα σου το δώσει ο χρήστης πρώτα και κατόπιν ότι σου δώσει, αφού το κάνεις validate θα το χρησιμοποιήσεις στη malloc().

 

ΥΓ. Εν τω μεταξύ, σε ένα άλλο φόρουμ κάποιος μάλλον συμφοιτητής σου πόσταρε ακριβώς την ίδια άσκηση αλλά μας είπε πως δεν έχετε μάθει malloc() :lol:

  • Like 3
Δημοσ.

Άσχετο, ειλικρινά αν ήμουν καθηγητής και έβλεπα greeklish "dwse ari8mo", αλλά ακόμα χειρότερα και σχόλια greeklish θα έβαζα απευθείας 0 στην άσκηση.

  • Like 3
Δημοσ. (επεξεργασμένο)

Άσχετο, ειλικρινά αν ήμουν καθηγητής και έβλεπα greeklish "dwse ari8mo", αλλά ακόμα χειρότερα και σχόλια greeklish θα έβαζα απευθείας 0 στην άσκηση.

Αναλόγως αν έγραφε σε linux και εσύ είχες windows και έβλεπες κινέζικα τι θα έκανες;

 

Στις 2 πρώτες μια λύση είναι να ταξινομήσεις τον πίνακα κατά αύξουσα (τα στοιχεία μιας γραμμής να είναι μεγαλύτερα από την προηγούμενη και μικρότερα από την επόμενη και ένα στοιχείο j μιας γραμμής i να είναι stoixeio[j-1]<stoixeio[j]<stoixeio[j+1]) και να πάρεις τo πρώτο στοιχείο που δεν είναι ίσιο με το στοιχείο [1][1] και το πρώτο το στοιχείο που δεν είναι ίδιο με το [m-1][n-1] ξεκινώντας από το τέλος.

 

Για την ταξινόμηση μπορείς να υλοποιήσεις έναν δισδιάστατο πίνακα σαν μονοδιάστατο. Ειδάλλως να ταξινομήσεις πρώτα ανά γραμμή και μετά ανά στήλη και μετά πάλι ανά γραμμή.

Επεξ/σία από PC_MAGAS
  • Like 1
Δημοσ.

Άσχετο, ειλικρινά αν ήμουν καθηγητής και έβλεπα greeklish "dwse ari8mo", αλλά ακόμα χειρότερα και σχόλια greeklish θα έβαζα απευθείας 0 στην άσκηση.

 

 

Κι όμως στην πραγματικότητα μας προτρέπουν να το κάνουμε κιόλας! Με την δικαιολογία ότι θα αντιμετωπίσουμε περίεργα προβλήματα αν χρησιμοποιήσουμε non-ASCII χαρακτήρες στα source files μας. Στους κώδικες-παραδείγματα που δίνουν αυτοί όχι μόνο χρησιμοποιούν greeklish σε string literals αλλά το ίδιο και στα ονόματα μεταβλητών, μεθόδων κτλ! (+ ότι ο κώδικας απλά δεν διαβάζεται, αλλά αυτό είναι άλλο θέμα)

 

Πχ. http://aetos.it.teithe.gr/~sfetsos/LAB_8.pdf (άσκηση 2)

 

Δημοσ.

Αναλόγως αν έγραφε σε linux και εσύ είχες windows και έβλεπες κινέζικα τι θα έκανες;

 

Ας πούμε το να γράψεις τα σχόλια/stdout στα Αγγλικά δεν παίζει ως επιλογή έτσι;

 

Κι όμως στην πραγματικότητα μας προτρέπουν να το κάνουμε κιόλας! Με την δικαιολογία ότι θα αντιμετωπίσουμε περίεργα προβλήματα αν χρησιμοποιήσουμε non-ASCII χαρακτήρες στα source files μας. Στους κώδικες-παραδείγματα που δίνουν αυτοί όχι μόνο χρησιμοποιούν greeklish σε string literals αλλά το ίδιο και στα ονόματα μεταβλητών, μεθόδων κτλ! (+ ότι ο κώδικας απλά δεν διαβάζεται, αλλά αυτό είναι άλλο θέμα)

 

Πχ. http://aetos.it.teithe.gr/~sfetsos/LAB_8.pdf (άσκηση 2)

 

 

Ας πούμε ότι το ouput στο stdout το καταλαβαίνω...αλλά το DidiastatosPinakasTyxaionArithmon πραγματικά απαράδεκτο...

Δημοσ.

Πρώτα πρέπει να μάθεις να χρησιμοποιείς τη malloc για να δεσμεύσεις τους πίνακες (ζητάς από το χρήστη τις διαστάσεις δεσμεύεις τον πίνακα and you are good to go). Με ένα απλό google search τα βρίσκεις.

Μετά γράψε τις συναρτήσεις σου. Θα σου πρότεινα με ορίσματα της μορφής int **my_2d_array και όχι int my_2d_array[][] όπως συναντάται σε διάφορα βιβλία.

Η λογική του προγράμματος είναι εξαιρετικά εύκολη οπότε δε νομίζω να θες διευκρίνιση σε κάτι άλλο πέρα από τους ιδιωματισμούς.

Αν χρειαστείς γενικά κάτι συγκεκριμένο ξαναρώτα.

Btw γενικά επειδή είσαι λογικά νέος στο άθλημα:

Γνωρίσου με το stackoverflow.

Λιώσε το βιβλίο του Kerringan και Ritchie (και αργότερα το Αλγόριθμοι σε C του Sedgewick αν το σηκώνεις).

Απ' ότι βλέπω και το identation προσέχεις και γράφεις comments οπότε kudos γι' αυτό.

Μην περιμένεις ποτέ μα ποτέ μα ΠΟΤΕ όμως να σου τρέξει κάτι με την πρώτη φορά όσο απλό και να είναι.

Και κυρίως

while(1) {

φτιάξε καφέ, άναψε τσιγάρο (αν καπνίζεις, αν δεν καπνίζεις μην το ξεκινήσεις), κάτσε μπροστά στο pc και γράψε κώδικα, βρίσε, κάνε debug, ξαναβρίσε, διόρθωσε το SEGFAULT, δες το να παίζει

}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...