Το Στέκι των Πληροφορικών

Γενικό Λύκειο => Γ΄ Λυκείου => Μονοδιάστατοι πίνακες => Μήνυμα ξεκίνησε από: Νίκος Αδαμόπουλος στις 07 Μαρ 2011, 10:39:49 ΜΜ

Τίτλος: Δημιουργία σειρών από αριθμούς
Αποστολή από: Νίκος Αδαμόπουλος στις 07 Μαρ 2011, 10:39:49 ΜΜ
Να γράψετε τμήμα αλγορίθμου ο οποίος να τοποθετεί σε έναν μονοδιάστατο πίνακα 100 θέσεων τους αριθμούς:

α) 1, 2, 3, 4,...
β) 2, 4, 6, 8,...
γ) 1, 3, 5, 7,...
δ) 3, 5, 7, 9,...
ε) 3, 4, 5, 6,...
στ) 5, 10, 15, 20,...
ζ) 100, 99, 98, 97,...
η) 100, 95, 90, 85,...
θ) 1, 6, 11, 16,...

1) Με μια μεταβλητή και απλούς υπολογισμούς:

Στη γενική περίπτωση:

Για ι από 1 μέχρι 100
   Α[ι] <- α*ι+β
Τέλος_επανάληψης

όπου α σταθερός (θετικός ή αρνητικός) αριθμός που δείχνει το βήμα μεταβολής (προς τα πάνω ή τα κάτω) κάθε φορά, και β (θετικός ή αρνητικός) αριθμός που κάνει 'διόρθωση-μετατόπιση' των αριθμών (προς τα πάνω ή τα κάτω) που παράγονται από το α*ι.

Μπορούμε να το συνδυάσουμε με "υπενθύμιση" της γραφικής παράστασης της f(χ) = αx+β, όπου τα α δείχνει την "κλίση-γωνία" της ευθείας, κλπ, κλπ

Έτσι:

α) Α[ι] <- ι
β) Α[ι] <- 2*ι
γ) Α[ι] <- 2*ι-1
δ) Α[ι] <- 2*ι+1
...
ζ) Α[ι] <- 101-ι   (πολύ σημαντικό θεωρώ να καταλάβουν το:   Ν+1-i )
...

2) Με ξεχωριστές μεταβλητές:

κ <- [ο πρώτος αριθμός]
Για ι από 1 μέχρι 100
   Α[ι] <- κ
   κ <- κ+[μεταβολή]
Τέλος_επανάληψης
Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Sergio στις 07 Μαρ 2011, 11:00:29 ΜΜ
Όπως και:

1) Με μια μεταβλητή και απλούς υπολογισμούς:

Για ι από β μέχρι β+99*α με_βήμα α
   Α[(ι-β) div a + 1] <- ι
Τέλος_επανάληψης

(με την ίδια σημασία στα α και β)

2) Με ξεχωριστές μεταβλητές:

κ <- 1
Για ι από β μέχρι β+99*α με_βήμα α
   Α[κ] <- ι
   κ <- κ+1
Τέλος_επανάληψης




..αν και οι δικές σου προτάσεις πιστεύω ότι διδακτικά είναι πιό χρήσιμες..
Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Νίκος Αδαμόπουλος στις 07 Μαρ 2011, 11:26:55 ΜΜ
Όμως για το 1) με την προϋπόθεση ότι τα α, β και i είναι ακέραιοι!
Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Sergio στις 08 Μαρ 2011, 01:16:45 ΠΜ
Παράθεση από: Νίκος Αδαμόπουλος στις 07 Μαρ 2011, 11:26:55 ΜΜ
Όμως για το 1) με την προϋπόθεση ότι τα α, β και i είναι ακέραιοι!

Σωστά.. ούτε που το πρόσεξα :-[

Αν δεν είναι ακέραιοι, θα πρέπει να πάμε σε έκφραση της μορφής:   
    Α[Α_Μ((ι-β) / a) + 1] <- ι
που δεν ξέρω αν αξίζει τον κόπο ..


Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Πανάγος94 στις 09 Δεκ 2011, 07:36:36 ΠΜ
αν όλα τα κάνεις με το βήμα είναι λάθος?? δηλαδη:

α)
κ <-- 1
Για ι απο 1 μεχρι 100
α[ι] <- ι
κ <-- κ + 1
τελος_επαναληψης

β) κ <-- 1
για ι απο 2 μεχρι 100 με_βημα 2
α[ι] <-- 1
κ <- κ + 1
τελος_επαναληψης

η) κ <-- 1
για ι απο 100 μεχρι 1 με_βημα -5
α[ι] <-- 1
κ <-- κ + 1
τελος_επαναληψης
Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Νίκος Αδαμόπουλος στις 09 Δεκ 2011, 10:18:39 ΠΜ
Παράθεση από: Πανάγος94 στις 09 Δεκ 2011, 07:36:36 ΠΜ

α)
κ <-- 1
Για ι απο 1 μεχρι 100
α[κ] <- ι
κ <-- κ + 1
τελος_επαναληψης

β) κ <-- 1
για ι απο 2 μεχρι 100 με_βημα 2
α[κ] <-- ι
κ <- κ + 1
τελος_επαναληψης

η) κ <-- 1
για ι απο 100 μεχρι 1 με_βημα -5
α[κ] <-- ι
κ <-- κ + 1
τελος_επαναληψης
Τίτλος: Απ: Δημιουργία σειρών από αριθμούς
Αποστολή από: Πανάγος94 στις 15 Δεκ 2011, 03:11:22 ΜΜ
ααα ναι σωστά....ευχαριστώ που με διόρθωσες!! :)