Κυριακή, 14 Φεβρουαρίου 2010

Ένας κύκλος μέσα σε ένα τετράγωνο

Η απογοήτευσή μου λόγω της κατάληψης του σχολείου μου είναι αντιστρόφως ανάλογη με την συχνότητα που γράφω εδώ αναρτήσεις το τελευταίο δίμηνο.
Είναι η τελευταία χρονιά που διδάσκω το μάθημα ΑΕΠΠ και θα ήθελα να παρουσιάσουν οι μαθητές μου κάπως μεγαλύτερη επίδοση φέτος.
Δυστυχώς χάσαμε αρκετές ώρες και θα έχουν την συνηθισμένη επίδοση που παρουσιάζουν όσοι παρακολουθούν φροντιστήρια : οι καλοί γράφουν και οι άλλοι θα ξαναδώσουν του χρόνου. Ας ελπίσουμε ότι θα διαψευσθώ και θα πάρουν όλοι στα γραπτά 20.

Δίνω την εξής άσκηση :
Ορίζουμε έναν τετραγωνικό πίνακα p με διαστάσεις imax=10, jmax=10.
Γεμίζουμε κάθε στοιχείο του πίνακα p με μονάδες (1).
Διαβάζουμε την ακτίνα r ενός κύκλου.
Μετά αλλάζουμε μερικά στοιχεία του πίνακα σε μηδενικά (0), ώστε να σχηματίζεται ένας κύκλος μηδενικών με κέντρο το μέσο του τετραγωνικού πίνακα και ακτίνα r.
Γράφουμε τον πίνακα για να δούμε το αποτέλεσμα.

Περιμένω τις λύσεις σας στην διεύθυνση manolas@sch.gr.
Θα αναρτήσω την προτεινόμενη από εμένα λύση (το πρόγραμμα που έχω φτιάξει έχει 32 συνολικά γραμμές) μετά από μία εβδομάδα περίπου.


Μετά από δύο εβδομάδες...

ΠΡΟΓΡΑΜΜΑ Α20091118
ΜΕΤΑΒΛΗΤΕΣ
__ΑΚΕΡΑΙΕΣ: i, imax, j, jmax, p[10, 10]
__ΠΡΑΓΜΑΤΙΚΕΣ: icenter, jcenter, r, rsin, rcos
ΑΡΧΗ
imax <- 10
jmax <- 10
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ imax
__ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ jmax
____p[i, j] <- 1
__ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΡΑΨΕ "Δώσε ακτίνα "
ΔΙΑΒΑΣΕ r
icenter <- (1 + imax)/2 _________________! 1. Ορίζω γραμμή του κέντρου
jcenter <- (1 + jmax)/2 _________________! 2. Ορίζω στήλη του κέντρου
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ imax ________________! 3. Για κάθε γραμμή...
__rsin <- i - icenter ___________________! ...βρίσκω την τεταγμένη
__ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ jmax ______________! 4. Για κάθε στήλη...
____rcos <- j - jcenter _________________! ...βρίσκω την τετμημένη
____ΑΝ r >= Τ_Ρ(rsin^2 + rcos^2) ΤΟΤΕ ___! 5. Στα σημεία εντός του...
______p[i, j] <- 0 _____________________! ...κύκλου μηδενίζω.
____ΤΕΛΟΣ_ΑΝ
__ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΓΙΑ i ΑΠΟ 1 ΜΕΧΡΙ imax
__ΓΙΑ j ΑΠΟ 1 ΜΕΧΡΙ jmax
____ΓΡΑΨΕ p[i, j], " "
__ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
__ΓΡΑΨΕ
ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

Αποτέλεσμα εκτέλεσης :

Δώσε ακτίνα 4
1 1 1 1 1 1 1 1 1 1
1 1 1 0 0 0 0 1 1 1
1 1 0 0 0 0 0 0 1 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 0 0 0 0 0 0 0 0 1
1 1 0 0 0 0 0 0 1 1
1 1 1 0 0 0 0 1 1 1
1 1 1 1 1 1 1 1 1 1

Δεν υπάρχουν σχόλια: