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

Γενικό Λύκειο => Ανάπτυξη εφαρμογών σε προγραμματιστικό περιβάλλον => Μονοδιάστατοι πίνακες => Μήνυμα ξεκίνησε από: nikolasmer στις 30 Ιαν 2013, 08:54:16 μμ

Τίτλος: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 30 Ιαν 2013, 08:54:16 μμ
Ρώτησα τα παιδιά πως μπορώ να εμφανίζω τα στοιχεία ενός μονοδιάστατου πίνακα με τη σειρά αλλά κάθε φορά και ενα ακόμα.
Δηλαδή έστω πίνακας με 5 στοιχεία τα 2 , -1 , 6 , 4 , 20.
Θέλω να εμφανιστεί
2
2
-1
2
-1
6
2
-1
6
4
2
-1
6
4
20

Απαντήθηκε ως

Για ι από 1 μέχρι 5
    Για κ από 1 μέχρι ι
          Εμφάνισε Π[κ]
    Τέλος_επανάληψης
Τέλος_επανάληψης

Τί το 'θελα.
Ρωτήθηκα πως γίνεται να εμφανιστούν
2
2  -1
2  -1  6
2  -1  6  4
2  -1  6  4  20

Εκτέθηκα και δεν έδωσα απάντηση :-[
Γιατί να υπάρχει μόνο η writeln και όχι η write στη ΓΛΩΣΣΑ;  :(
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: petrosp13 στις 30 Ιαν 2013, 09:53:02 μμ
Υπάρχει η εντολή Γράψε_, αλλά όχι εντός του σχολικού βιβλίου
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 30 Ιαν 2013, 09:54:41 μμ
Στην απορία του μαθητή που παραθέτω υπάρχει διαφορετική απάντηση;
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: noname στις 30 Ιαν 2013, 10:29:43 μμ
Στο χαρτί δεν υπάρχει τέτοια εντολή-δυνατότητα. Στον διερμηνευτή όμως της ΓΛΩΣΣΑΣ μπορείς να το κάνεις.
Για λεπτομέρειες δες το συνημμένο από τη βοήθεια του διερμηνευτή.

Για το δικό σου παράδειγμα θα γράψεις:

Κώδικας: [Επιλογή]
Για ι από 1 μέχρι 5
  Για κ από 1 μέχρι ι - 1
    Εμφάνισε " ", Π[κ], " "
  Τέλος_επανάληψης
  Εμφάνισε " ", Π[κ]
Τέλος_επανάληψης

Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 30 Ιαν 2013, 11:30:02 μμ
Στο χαρτί δεν υπάρχει τέτοια εντολή-δυνατότητα. Στον διερμηνευτή όμως της ΓΛΩΣΣΑΣ μπορείς να το κάνεις.
Για λεπτομέρειες δες το συνημμένο από τη βοήθεια του διερμηνευτή.

Φοβερό.
Σε ευχαριστώ πάρα πολύ noname.
Ούτε καν ήξερα πως γίνεται κατα τον τρόπο αυτό.
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 31 Ιαν 2013, 01:29:39 μμ
Κάτι ακόμα.
Όταν λέει να εκτελέσεις τον αλγόριθμο και να εμφανίσεις το όνομα, τη διεύθυνση και ενα κάρο άλλα πράγματα χωρίς πίνακα τιμών , έχει σημασία πως θα τα γράψεις στο τετράδιο απαντήσεων ή όχι; Ακόμα και αν ο αλγόριθμος έχει τα κενά που προανέφερες noname στην εντολή Εμφάνισε. 
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 02 Φεβ 2013, 02:40:48 μμ
Διαβάζω τα στοιχεία 2 πινάκων

Για ι απο 1 μέχρι Ν
   Διάβασε ΟΝ[ι] , ΕΠ[ι]
Τέλος_επανάληψης.

Στην είσοδο δεδομένων στο Διερμηνευτή του κυρίου Άλκη Γεωργόπουλου πρέπει τα ονόματα με τα επώνυμα όταν εισάγονται να πατάμε Enter ή γίνεται και με κάποιον άλλο τρόπο που δεν τον γνωρίζω διότι το κενό δεν το δέχεται.
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: noname στις 02 Φεβ 2013, 04:14:34 μμ
Είναι λογικό να χρειάζεται Enter έπειτα από εισαγωγή κάθε ονόματος και κάθε επωνύμου αφού αποθηκεύονται σε ξεχωριστές θέσεις μνήμης. Ο διερμηνευτής βέβαια σου παρέχει τη δυνατότητα να περάσεις τιμές εισόδου και μέσω του αρχείου εισόδου. Δες συνημμένη εικόνα.

Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 02 Φεβ 2013, 04:27:11 μμ
Για μια ακόμη φορά σε ευχαριστώ πολυ noname. Μόλις το έκανα. Αλλά αφού δεν έχω εντολή Εμφάνισε πως και μου εμφανίζει τα ονοματεπώνυμα κάτω στην οθόνη εκτέλεσης;
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: noname στις 02 Φεβ 2013, 04:42:55 μμ
Δεν τα εμφανίζει λόγω της εντολής Εμφάνισε. Εμφανίζονται στην οθόνη εκτέλεσης όπως και όταν τα πληκτρολογείς με το χέρι. :-)
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 02 Φεβ 2013, 04:47:48 μμ
 :-[
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 04 Φεβ 2013, 01:05:39 πμ
Τώρα που κατάλαβα και έλυσα αυτό το θέμα με το Εμφάνισε και το Εμφάνισε " ",x," " για να εμφανίζονται τα στοιχεία μου πέρα πέρα, έκανα ενα ψάξιμο στο δίκτυο και έπεσα πάνω στο τρίγωνο του Pascal. Έγραψα τον κώδικα με πίνακα αλλά δεν θα μπορεί να παίξει ως πρόγραμμα καθότι στατικοί πίνακες κτλ κλτ.

Κώδικας: [Επιλογή]
Διάβασε ν
Για ι από 1 μέχρι ν
  Π[ι, 1] ← 1
  Για κ από 2 μέχρι ι - 1
    Π[ι, κ] ← Π[ι - 1, κ - 1] + Π[ι - 1, κ]
  Τέλος_επανάληψης
  Π[ι, ι] ← 1
Τέλος_επανάληψης
Για ι από 1 μέχρι ν
  Για κ από 1 μέχρι ι
    Εμφάνισε " ", Π[ι, κ], " "
  Τέλος_επανάληψης
  Εμφάνισε ""
Τέλος_επανάληψης

Σπάω το κεφάλι μου εδώ και κανένα 5ωρο αλλά δεν μπορώ να σκεφτώ τρόπο χωρίς τη χρήση πινάκων. :-\
Όποιος μπορεί ας προτείνει κάτι και ας μου εξηγήσει και τι ακριβώς δείχνει ο πρώτος τύπος παρακάτω (από Wikipedia) γιατί δεν έχω ιδέα.
Παράθεση
Αυτή η κατασκευή είναι συγγενική με του δυωνυμικούς συντελεστές μέσω του κανόνα του Πασκάλ, σύμφωνα με τον οποίο αν:

    (x+y)^n=\sum_{k=0}^n{n \choose k}x^{n-k}y^{k}

τότε

    {n \choose k} = {n-1 \choose k-1} + {n-1 \choose k}

για οποιοδήποτε μη αρνητικό ακέραιο n και οποιονδήποτε ακέραιο k μεταξύ 0 και n.
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: noname στις 04 Φεβ 2013, 02:40:46 πμ
Οι τύποι που σου δίνει είναι αυτοί:

http://blo.gr/9p5
http://blo.gr/9p6

Οι υπολογισμοί γίνονται με βάση αυτό: (http://mathworld.wolfram.com/images/equations/BinomialCoefficient/NumberedEquation1.gif)

Επομένως το πρόγραμμα θα είναι κάπως έτσι:

Κώδικας: [Επιλογή]
ΠΡΟΓΡΑΜΜΑ pascal
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, π, κ, Ν
ΑΡΧΗ
  ΔΙΑΒΑΣΕ Ν
  π <- 0
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν

    ΓΙΑ κ ΑΠΟ 0 ΜΕΧΡΙ π
      ΓΡΑΨΕ ' ', ΠΑΡ(π)/(ΠΑΡ(π - κ)*ΠΑΡ(κ)), ' '

    ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
    ΓΡΑΨΕ ''
    π <- π + 1
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
ΤΕΛΟΣ_ΠΡΟΓΡΑΜΜΑΤΟΣ

ΣΥΝΑΡΤΗΣΗ ΠΑΡ (Ν): ΑΚΕΡΑΙΑ
ΜΕΤΑΒΛΗΤΕΣ
  ΑΚΕΡΑΙΕΣ: ι, π, Ν
ΑΡΧΗ
  π <- 1
  ΓΙΑ ι ΑΠΟ 1 ΜΕΧΡΙ Ν
    π <- π* ι
  ΤΕΛΟΣ_ΕΠΑΝΑΛΗΨΗΣ
  ΠΑΡ <- π
ΤΕΛΟΣ_ΣΥΝΑΡΤΗΣΗΣ
Τίτλος: Απ: Γιατί οχι Διάβασε σκέτο αλλά Διάβασεln;
Αποστολή από: nikolasmer στις 05 Φεβ 2013, 12:52:13 πμ
 :o
Δεν υπήρχε καμία περίπτωση να το βρώ. Σε ευχαριστώ πάρα πολύ noname. Άψογο.