Description: Listes, séquences, ensembles
Keywords: tutoriel

Λίστες, ακολουθίες, σύνολα
επόμενο: Χρόνος υπολογισμού, χώρος μνήμης εμφάνιση: Αντικείμενα των αλγεβρικών υπολογισμών προηγούμενο: Συναρτήσεις Πίνακας περιεχομένων Ευρετήριο

##
Λίστες, ακολουθίες, σύνολα

Το `Xcas` αναγνωρίζει διάφορες συλλογές αντικειμένων, τα οποία χωρίζονται μεταξύ τους με κόμμα :

  - τις λίστες (ανάμεσα σε άγκιστρα),
  - τις ακολουθίες (ανάμεσα σε παρενθέσεις),
- τα σύνολα (ανάμεσα σε % και αγκύλες, δηλαδή ανάμεσα σε %{ και %}).

    λίστα:=[1,2,4,2]
    ακολουθία:=(1,2,4,2)
    σύνολο:=%{1,2,4,2%}

Οι λίστες μπορούν να περιέχουν λίστες (είναι η περίπτωση των πινάκων), ενώ οι ακολουθίες είναι επίπεδες (ένα στοιχείο μίας ακολουθίας δεν μπορεί να είναι μία ακολουθία). Σε ένα σύνολο η σειρά δεν έχει σημασία και κάθε αντικείμενο είναι μοναδικό. Υπάρχει και μία άλλη δομή, που ονομάζεται πίνακας, στην οποία θα αναφερθούμε αργότερα.

Αρκεί να βάλουμε μία ακολουθία ανάμεσα σε άγκιστρα για να την κάνουμε λίστα ή ανάμεσα σε `%` και αγκύλες για να την κάνουμε σύνολο. Περνάμε από μία λίστα στήν αντίστοιχη ακολουθία με την συνάρτηση `op`, από μία ακολουθία στην αντίστοιχη λίστα βάζοντας την ανάμεσα σε άγκιστρα (ή με την συνάρτηση `nop`). Το πλήθος των στοιχείων μίας λίστας δίνεται από την συνάρτηση `size` (ή την `nops`).

    se:=(1,2,4,2)
    li:=[se]
    op(li)
    nop(se)
    nops(se)
    %{se%}
    size([se])
    size(%{se%})

Για να κατασκευάσουμε μία λίστα ή μία ακολουθία, χρησιμοποιούμε εντολές επανάληψης όπως `$` ή `seq` (που επαναλαμβάνουν μία έκφραση) ή την `makelist` (που κατασκευάζει μία λίστα με την βοήθεια μίας συνάρτησης). Προσοχή: Η `seq` με δύο ορίσματα επιστρέφει ακολουθία, ενώ με 3 ή 4 ορίσματα επιστρέφει λίστα.

    1$5
    k^2 $ (k=-2..2)
    seq(k^2,k=-2..2)
    [k^2$(k=-2..2)]
    seq(k^2,k=-2,2)
    seq(k^2,k,-2,2,2)
    makelist(x->x^2,-2,2)
    makelist(x->x^2,-2,2,2)

Η κενή ακολουθία σημειώνεται με `NULL`, ενώ η κενή λίστα με `[]`. Για να προσθέσουμε ένα στοιχείο σε μία ακολουθία αρκεί να γράψουμε την ακολουθία και το στοιχείο διαχωρισμένα με ένα κόμμα. Για προσθέσουμε ένα στοιχείο σε μία λίστα χρησιμοποιούμε την συνάρτηση `append`. Πρόσβαση σε ένα στοιχείο μίας λίστας ή μίας ακολουθίας γίνετα με την βοήθεια του δείκτη του στοιχείου τοποθετούμενου ανάμεσα σε άγκιστρα. Προσοχή: Το πρώτο στοιχείο μίας λίστας ή μίας ακολουθίας έχει δείκτη 0.

    se:=NULL; se:=se,k^2$(k=-2..2); se:=se,1
    li:=[1,2]; (li:=append(li,k^2))$(k=-2..2)
    li[0],li[1],li[2]

Τα πολυώνυμα συχνά ορίζονται από μία παράσταση, αλλά μπορούν επίσης να ορισθούν και από την λίστα των συντελεστών τους σε φθίνουσα διάταξη εκθετών. Ορίζονται επίσης πολυώνυμα πολλών μεταβλητών. Η συνάρτηση `symb2poly` μετασχηματίζει μία πολυωνυμική παράσταση σε λίστα συντελεστών, ενώ η συνάρτηση `poly2symb` μετασχηματίζει μία λίστα συντελεστών σε πολυωνυμική παράσταση. Το δεύτερο όρισμα καθορίζει εάν πρόκειται για πολυώνυμο μίας μεταβλητής (βάζουμε το όνομα της μεταβλητής) ή για πολυώνυμο πολλών μεταβλητών (βάζουμε την λίστα των μεταβλητών).

Ακολουθίες και λίστες
`E$(k=n..m)` | δημιουργία μίας ακολουθίας
`seq(E,k=n..m)` | δημιουργία μίας ακολουθίας
`[E$(k=n..m)]` | δημιουργία μίας λίστας
`makelist(f,k,n,m,p)` | δημιουργία μίας λίστας
`op(li)` | μετατροπή λίστας σε ακολουθία
`nop(se)` | μετατροπή ακολουθίας σε λίστα
`nops(li)` | πλήθος στοιχείων ακολουθίας ή λίστας
`size(li)` | πλήθος στοιχείων ακολουθίας ή λίστας
`sum` | άθροισμα των στοιχείων
`product` | γινόμενο των στοιχείων
`cumSum` | συσωρευτικό άθροισμα των στοιχείων
`apply(f,li)` | εφαρμογή μίας συνάρτησης στα στοιχεία μίας λίστας
`apply(f,matrix)` | εφαρμογή μίας συνάρτησης στα στοιχεία ενός πίνακα
`map(li,f)` | εφαρμογή μίας συνάρτησης στα στοιχεία μίας λίστας
`map(matrix,f)` | εφαρμογή μίας συνάρτησης στα στοιχεία ενός πίνακα
`poly2symb` | λίστα συντελεστών -> πολυωνυμική παράσταση
`symb2poly` | πολυωνυμική παράσταση -> λίστα συντελεστών

επόμενο: Χρόνος υπολογισμού, χώρος μνήμης εμφάνιση: Αντικείμενα των αλγεβρικών υπολογισμών προηγούμενο: Συναρτήσεις Πίνακας περιεχομένων Ευρετήριο
Μετάφραση στα Ελληνικά : Γιώργος Νασόπουλος. Διασκευή : Αλκιβιάδης Γ. Ακρίτας