ΔΥΣΚΟΛΗ ΑΣΚΗΣΗ ΜΕ ΠΙΝΑΚΕΣ

Ξεκίνησε από michael92, 22 Νοε 2010, 05:45:33 ΜΜ

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

michael92

Καλησπέρα σας είμαι ο Μιχάλης και δίνω φέτος πανελλαδικές εξετάσεις.
Είπα να ξεκινήσω το πρώτο μου θέμα με μια δικιά μου ενδιαφέρουσα σημερινή άσκηση  :)

Να γραφεί Πρόγραμμα το οποίο θα δημιουργεί μια εικόνα RGB ΑΝΑΛΥΣΗΣ 1024 x 1024 pixels, με τον τρόπο που περιγράφεται παρακάτω:
1) Δημιουργία 3 δισδιάστατων πινάκων 1024x1024 pixels (R[1024,1024],G[1024,1024],B[1024,1024]) όπου σε κάθε κουτί του κάθε πίνακα θα αναγράφεται η τιμή του χρώματος κόκκινου, πράσινου και μπλε  (R[1024,1024],G[1024,1024],B[1024,1024]) αντίστοιχα με επιτρεπόμενα πεδία από 0 εώς 255. Να γίνει Έλεγχος επιτρεπόμενων τιμών.

2) Απόδοση θολούρας πρώτης τάξης κατά 10% σε πεδίο 9 pixel 3 x 3.
Κάθε Pixel παίρνει 10% χρώματος από τα 8 pixel που το περικυκλώνουν.
Έστω ότι στο πεδίου του R έχουμε τα εξείς χρώματα:
155 200 100
000 015 023
150 111 255
Τότε το κεντρικό χρώμα 015 θα επηρεαστεί κατά 10% από τον μέσο όρο των 8 γειτονικών του (ακέραια διαίρεση). Να εφαρμοστεί θολούρα σε κάθε pixel της εικόνας εκτός από την πρώτη και τελευταία γραμμή και στήλη.
Να αποθηκευτεί η θολούρα σε 3 πίνακες R_BLUR, G_BLUR και  B_BLUR.

3) Τέλος να μετατραπεί και να εμφανισθεί η τελική εικόνα σε έναν τελικό RGB[1024,1024] πίνακα μορφοποίηση 255255255 και σε μορφή αριθμού! Κατά σειρά R G B

Συννημένη η λύση μου  :)

Αν βρείτε κάποιο άλλο λάθος ενημερώστε με  :)

evry

Αντί για το παρακάτω
ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ 
	ΔΙΑΒΑΣΕ R
	r<- false
	ΓΙΑ k ΑΠΟ 0 ΜΕΧΡΙ 255
		ΑΝ (R=k) ΤΟΤΕ
			r<-true
		TΕΛ_ΑΝ
	ΤΕΛ_ΕΠ
ΜΕΧΡΙΣ ΟΤΟΥ (r=true)


καλύτερα έτσι
ΑΡΧΗ ΕΠΑΝΑΛΗΨΗΣ 
	ΔΙΑΒΑΣΕ R
ΜΕΧΡΙΣ ΟΤΟΥ (R>=0 ΚΑΙ R<=255)


τα υπόλοιπα δεν έχω χρόνο να τα δω, αλλά με μια πρώτη ματιά δεν φαίνεται κάτι κακό
πάντως αν σου αρέσουν αυτά προσπάθησε να φτιάξεις σε ΓΛΩΣΣΑ το παιχνίδι του Conway
http://ddi.cs.uni-potsdam.de/HyFISCH/Produzieren/lis_projekt/proj_gamelife/ConwayScientificAmerican.htm

είμαι σίγουρος ότι θα σου αρέσει
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

evry

#2
και μια και το θέμα έχει τον τίτλο δύσκολη άσκηση για πίνακες προτείνω μια άσκηση που θεωρώ αρκετά δύσκολη για όποιον έχει χρόνο.

Να γράψετε αλγόριθμο ο οποίος να δημιουργεί μια μαγική ακολουθία μήκους 7. Η μαγική ακολουθία είναι μια ακολουθία αριθμών στην οποία κάθε αριθμός είναι το πλήθος των εμφανίσεων του αριθμού-θέση στην οποία βρίσκεται. Για παράδειγμα η παρακάτω ακολουθία είναι μαγική ακολουθία μήκους 5
   Μ = [2, 1, 2, 0, 0]

διότι το 0 εμφανίζεται 2 φορές Μ[0]=2, το 1 1 φορά Μ[1]=1 το 2 2 φορές Μ[2]=2 τα 3,4 καμία

όπως καταλάβατε ξεκινάμε να μετράμε από το 0 και όχι από το 1.

Αν καταφέρετε και κάνετε το παραπάνω μπορείτε να σκεφτείτε πως θα μπορούσατε να γενικεύσετε για οποιοδήποτε μήκος ακολουθίας Ν? αν είναι εφικτό
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

soron80

Παράθεση από: evry στις 22 Νοε 2010, 09:25:57 ΜΜ
και μια και το θέμα έχει τον τίτλο δύσκολη άσκηση για πίνακες προτείνω μια άσκηση που θεωρώ αρκετά δύσκολη για όποιον έχει χρόνο.

Να γράψετε αλγόριθμο ο οποίος να δημιουργεί μια μαγική ακολουθία μήκους 7. Η μαγική ακολουθία είναι μια ακολουθία αριθμών στην οποία κάθε αριθμός είναι το πλήθος των εμφανίσεων του αριθμού-θέση στην οποία βρίσκεται. Για παράδειγμα η παρακάτω ακολουθία είναι μαγική ακολουθία μήκους 5
   Μ = [2, 1, 2, 0, 0]

διότι το 0 εμφανίζεται 2 φορές Μ[0]=2, το 1 1 φορά Μ[1]=1 το 2 2 φορές Μ[2]=2 τα 4,5 καμία

όπως καταλάβατε ξεκινάμε να μετράμε από το 0 και όχι από το 1.

Αν καταφέρετε και κάνετε το παραπάνω μπορείτε να σκεφτείτε πως θα μπορούσατε να γενικεύσετε για οποιοδήποτε μήκος ακολουθίας Ν? αν είναι εφικτό

Μάλλον εννοείς 3,4 καμμία μιας και το 5 δεν μπορεί να είναι μέσα στη μαγική ακολουθία!
Τσισπαράς Βασίλης
Καθηγητής Πληροφορικής ΠΕ19

evry

ναι έχεις δίκιο, μου ξέφυγε, θα το διορθώσω παραπάνω, ευχαριστώ
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

Πανάγος94

το ότι το άθροισμα στο παράδειγμά σου βγαίνει 5 είναι τυχαίο ή όχι??

evry

αφού σε κάθε θέση έχεις το πλήθος των εμφανίσεων κάθε αριθμού, τότε το άθροισμα όλων αυτών των εμφανίσεων, θα είναι 5
Παράθεση από: Πανάγος94 στις 04 Μαρ 2012, 11:42:21 ΠΜ
το ότι το άθροισμα στο παράδειγμά σου βγαίνει 5 είναι τυχαίο ή όχι??
What I cannot create I do not understand -- Richard Feynman
http://evripides.mysch.gr

fof

Πάρα πολύ ωραία άσκηση!!!!! ευχαριστούμε evry

lykos

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

gthal

Τρομερή άσκηση !!!  Έφαγα κόλλημα  :laugh:
Μπράβο Ευριπίδη. Πώς μας διέφυγε αυτή πέρυσι ?
(Θα στείλω μια λύση σε ΠΜ)
Φιλικά,
Γιώργος Θαλασσινός

soc_h

Το είχα διαβάσει σαν θέμα προγραμματισμού πριν καμιά 30αρια χρόνια (παιδί τότε). Δεν το είχα φτιάξει σαν πρόγραμμα, όμως το είχα λύσει και μου έχει μείνει από τότε.
Για 10 αριθμούς: 6, 2, 1, 0, 0, 0, 1, 0, 0, 0
Σωκράτης

programmer

#11
προγραμμα που ζηταει απο το χρηστη τους αρι8μους και επειτα τους βαζει σε μαγικο κουτι 7 αρι8μων.με απλες μετατροπες στο οριο του πινακα και στα αν και για φτιαχνουμε μαγικο κουτι με οποιο μηκος 8ελουμε.πχ αν θελω μαγικο κουτι 100 αρι8μων οπου 7 βαζω το 100 και οπου 6 το 99

Κωστας τζιαννης

Παράθεση από: evry στις 22 Νοε 2010, 09:25:57 ΜΜ
και μια και το θέμα έχει τον τίτλο δύσκολη άσκηση για πίνακες προτείνω μια άσκηση που θεωρώ αρκετά δύσκολη για όποιον έχει χρόνο.

Να γράψετε αλγόριθμο ο οποίος να δημιουργεί μια μαγική ακολουθία μήκους 7. Η μαγική ακολουθία είναι μια ακολουθία αριθμών στην οποία κάθε αριθμός είναι το πλήθος των εμφανίσεων του αριθμού-θέση στην οποία βρίσκεται. Για παράδειγμα η παρακάτω ακολουθία είναι μαγική ακολουθία μήκους 5
   Μ = [2, 1, 2, 0, 0]

διότι το 0 εμφανίζεται 2 φορές Μ[0]=2, το 1 1 φορά Μ[1]=1 το 2 2 φορές Μ[2]=2 τα 3,4 καμία

όπως καταλάβατε ξεκινάμε να μετράμε από το 0 και όχι από το 1.

Αν καταφέρετε και κάνετε το παραπάνω μπορείτε να σκεφτείτε πως θα μπορούσατε να γενικεύσετε για οποιοδήποτε μήκος ακολουθίας Ν? αν είναι εφικτό

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