Πανελλήνιες Θέμα Γ 2013

Ξεκίνησε από deniaa, 21 Μαρ 2014, 01:34:25 ΜΜ

« προηγούμενο - επόμενο »

deniaa

Για i από 2 μέχρι 30
Για j από 30 μέχρι i με βήμα -1
Αν ΜΟ[j-1,1]< ΜΟ[j,1] τότε
Αντιμετάθεσε ΜΟ[j-1,1], ΜΟ[j,1]
Αντιμετάθεσε ΜΟ[j-1,2], ΜΟ[j,2]
Αντιμετάθεσε ΚΩΔ[j-1], ΚΩΔ[j]
Τέλος_αν
Τέλος_Επανάληψης
Τέλος_Επανάληψης
Εμφάνισε ΚΩΔ[1], ΜΟ[1,1], ΚΩΔ[2], ΜΟ[2,1], ΚΩΔ[3], ΜΟ[3,1]
Για i από 2 μέχρι 30
Για j από 30 μέχρι i με βήμα -1
Αν ΜΟ[j-1,2]< ΜΟ[j,2] τότε
Αντιμετάθεσε ΜΟ[j-1,1], ΜΟ[j,1]
Αντιμετάθεσε ΜΟ[j-1,2], ΜΟ[j,2]
Αντιμετάθεσε ΚΩΔ[j-1], ΚΩΔ[j]
Τέλος_αν
Τέλος_Επανάληψης
Τέλος_Επανάληψης
Εμφάνισε ΚΩΔ[1], ΜΟ[1,2], ΚΩΔ[2], ΜΟ[2,2], ΚΩΔ[3], ΜΟ[3,2]



Ο παραπάνω κώδικας είναι η λύση του τελευταίου ερωτήματος του τρίτου θέματος.

H ερώτησή μου είναι η εξής: Αφού η λογική είναι ότι πρώτα ταξινομούμε τα στοιχεία της πρώτης στήλης και μετά αυτά της δεύτερης, γιατί στον πρώτο βρόχο επανάληψης (αφορά πρώτη στήλη) εμπλέκονται και τα στοιχεία της δεύτερης;Και αντίστοιχα, γιατί στο δεύτερο βρόχο εμπλέκονται τα στοιχεία της πρώτης στήλης;


Δεν μπορώ δηλαδή να καταλάβω γιατί υπάρχει στον πρώτο βρόχο η γραμμή Αντιμετάθεσε ΜΟ[j-1,2], ΜΟ[j,2] και στον δεύτερο η γραμμή Αντιμετάθεσε ΜΟ[j-1,1], ΜΟ[j,1].

Όποιος μπορεί, ας με βοηθήσει!

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


Λαμπράκης Μανώλης

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

αν δεν κάνω κάποιο λάθος   :P :D ;D

petrosp13

δεν κανείς κανένα λάθος
Παπαδόπουλος Πέτρος
Καθηγητής Πληροφορικής

deniaa

Ευχαριστώ πάρα πολύ, αλλά και πάλι κάπου μπλέκομαι. :( Μετά το τέλος του πρώτου βρόχου εμφανίζω κωδικούς και στοιχεία μόνο της πρώτης στήλης. Όχι της δεύτερης. Συνεπώς γιατί στον πρώτο βρόχο χρειάζεται και αντιμετάθεση των στοιχείων της δεύτερης στήλης; Και αντίστοιχα και για τον δεύτερο βρόχο. Μετά το τέλος του εμφανίζω κωδικούς και στοιχεία της δεύτερης στήλης μόνο. Άρα γιατί χρειάζεται να αντιμεταθέσω αυτά της πρώτης; (τα οποία σημειωτέον ότι τα έχω ήδη αντιμεταθέσει στον πρώτο βρόχο!)

Λαμπράκης Μανώλης

στην πρώτη επανάληψη εμφανίζεις στοιχέια της πρώτης στήλης.... μέχρι αυτό το καμμάτι δεν χρειάζεται η αντιμετάθεση της άλλης στήλης....όμως στην συνέχεια, πρέπει να ταξινομήσεις ΚΑΙ την δεύτερη στήλη....η οποία αν δεν κάνεις αντιμετάθεση στον πρώτο βρόγχο ΔΕΝ θα είναι πλέον παράλληλη με τους κωδικούς... δηλαδή η αντιμετάθεση στον πρώτο βρόγχο, χρειάζεται για να μπορεί να γίνει η δεύτρεη στήλη σωστά ...

τώρα καλύτερα ???   :) :)


deniaa

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

Λαμπράκης Μανώλης

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

deniaa

Συνεπώς η παρακάτω λύση είναι σωστή! Σωστά; :)





Για i από 2 μέχρι 30
Για j από 30 μέχρι i με βήμα -1
Αν ΜΟ[j-1,1]< ΜΟ[j,1] τότε
Αντιμετάθεσε ΜΟ[j-1,1], ΜΟ[j,1]
Αντιμετάθεσε ΜΟ[j-1,2], ΜΟ[j,2]
Αντιμετάθεσε ΚΩΔ[j-1], ΚΩΔ[j]
Τέλος_αν
Τέλος_Επανάληψης
Τέλος_Επανάληψης
Εμφάνισε ΚΩΔ[1], ΜΟ[1,1], ΚΩΔ[2], ΜΟ[2,1], ΚΩΔ[3], ΜΟ[3,1]
Για i από 2 μέχρι 30
Για j από 30 μέχρι i με βήμα -1
Αν ΜΟ[j-1,2]< ΜΟ[j,2] τότε
Αντιμετάθεσε ΜΟ[j-1,2], ΜΟ[j,2]
Αντιμετάθεσε ΚΩΔ[j-1], ΚΩΔ[j]
Τέλος_αν
Τέλος_Επανάληψης
Τέλος_Επανάληψης
Εμφάνισε ΚΩΔ[1], ΜΟ[1,2], ΚΩΔ[2], ΜΟ[2,2], ΚΩΔ[3], ΜΟ[3,2]

Λαμπράκης Μανώλης


tdrivas

Thanassis Drivas
BSc in Computer Science
MSc in Space Science Applications and Technologies
https://github.com/tdrivas

deniaa

Τέλεια!  :) Σας ευχαριστώ πάρα πολύ!