Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

31
Ναι, με ανοιχτές σημειώσεις είναι (τουλάχιστον τις επίσημες, δεν θυμάμαι καθόλου για προσωπικές).
Δεν ζητείται κάτι εξωτικό από εντολές, περισσότερο ο τρόπος σκέψης και η υλοποίηση θα έλεγα ότι μετράνε στην εξέταση.
Πάντως στο site υπάρχει ό,τι ακριβώς έγινε στα μαθήματα. Δεν χρειάζεται κάτι περισσότερο λοιπόν. :)

(υπ' όψιν ότι ο χρόνος δεν επιτρέπει ιδιαίτερα ψάξιμο στα τυφλά σε σημειώσεις κτλ)

Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

33
Δεν ξέρω αν επιτρέπεται που γράφω εδώ...θέλω μια βοήθεια1
Δεν έχω καταλάβει πότε και γιατί χρησιμοποιούμε την εντολή allocate.Ξέρω ότι χρησιμοποιείται για πίνακες αλλά δεν το έχω καταλάβει πολύ καλά. Συγκεκριμένα, δεν μπορώ να διαχωρίσω πότε χρησιμοποιούμαι την εντολή allocate αντί για parameter και dimension;
Αν μπορεί κάποιος να βοηθήσει...ευχαριστώ!

Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

34
λοιπόν, όταν ξέρουμε εξαρχής τις διαστάσεις του προγράμματος χρησιμοποιούμε την εντολή dimension, ας πούμε ξέρουμε ότι έχουμε έναν πίνακα 3x3 που παίρνει πραγματικούς αριθμούς, τότε χρησιμοποιούμε την εντολή dimension ως εξής : real, dimension(3,3) :: A, αν δεν γνωρίζεις τις διαστάσεις του πίνακα εξαρχής, αλλά είναι πληροφορία που τη δίνει ο χρηστης τότε χρησιμοποιειται η allocate, πχ αν θες να βάλεις κάποιους αριθμούς σε ένα πίνακα αλλά δεν ξέρεις πόσοι είναι αυτοί τότε χρησιμοποιείς τη allocate ως εξής: real, allocatable, dimension(:) :: A και κάπου μες στο πρόγραμμα αφού διαβάσεις τον αριθμό Ν χρησιμοποιείς την allocate(A(N)). Τέλος την parameter την χρησιμοποιείς για να βάλεις ενα αριθμό ως σταθερά.
People who wish to analyze nature without using mathematics must settle for a reduced understanding

Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

35
Γενικώς η μέθοδος με parameter και dimension είναι αρχαιότερη και πολύ χειρότερη. Αν μάθεις τη μέθοδο με τις allocatable arrays μπορείς να τη χρησιμοποιείς παντού.

Να συμπληρώσω ότι αν φτιάξεις πίνακα με dimension, αυτός δημιουργείται κατά το compilation (και άρα θα διαρκέσει περισσότερη ώρα και θα βγει ένα μεγαλύτερο αρχείο) και γενικώς είναι πολύ κακή περίπτωση στην διαχείριση της μνήμης. Οι πίνακες που δημιουργείς με allocate δημιουργούνται κατά την εκτέλλεση του προγράμματος, μπορούν να δημιουργηθούν-καταστραφούν σε οποιαδήποτε στιγμή, ενώ επίσης μπορούν να χρησιμοποιήσουν πολύ μεγαλύτερο μέρος της μνήμης.

(γιατί να μην "επιτρέπεται" να γράψεις εδώ βρε;;; :? )

ΥΓ: Ένα "τρικ" που χρησιμοποιούνταν πριν την allocate (μετά την οποία δεν έχει λόγο ύπαρξης) για την περίπτωση που δεν ξέρεις τη διάσταση του πίνακα ήταν να φτιάχνεις ένα πολύ μεγάλο πίνακα (με τη dimension) και να χρησιμοποιείς μόνο ένα κομμάτι του. Τα υπόλοιπα στοιχεία όμως υπάρχουν και τρώνε μνήμη. Το θεωρώ πολύ πολύ χάλια μέθοδο (αν μπορείς να βάλεις allocate), αλλά μπορεί να το συναντήσεις σε κανένα παλιό πρόγραμμα πχ.

Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

37
To deallocate αποδεσμεύει τον χώρο που καταλαμβάνει ο πίνακας (πρακτικά μπορείς να σκέφτεσαι ότι τον καταστρέφει).
Έχει νόημα μόνο όταν χρειάζεσαι μεγάλους πίνακες μόνο για λίγο χρόνο. Δηλαδή αν ένας πίνακας σου είναι άχρηστος μετά από κάποιες πράξεις και χρειάζεσαι τον χώρο για άλλους πίνακες (η μνήμη στον υπολογιστή δεν είναι πάντα σε αυφθονία) τον πετάς.

Κατά τα άλλα ο χώρος αποδεσμεύεται όταν τερματιστεί το πρόγραμμα, οπότε δεν χρειάζεται. Στις εξετάσεις αν θες γράψτο απλώς για να δείξεις ότι το ξέρεις, δεν κρίνεται κάτι εκεί (εκτός αν στο ζητάει ρητώς βέβαια). :)

edit: ως εκ τούτου, δεν το βάζεις απαραίτητα μετά ή πριν από κάποια εντολή. Απλώς μετά από εκεί που χρειάζεσαι τον πίνακα και προφανώς μετά το allocate.

Re: Προγραμματισμός & Χρήση Η/Υ (2011-12)

38
Ανακοίνωση από την ιστοσελίδα του μαθήματος:
Ανακοίνωση για τα τμήματα της εξέτασης του μαθήματος στις 6/9/12 έγραψε:Τα τμήματα και οι αντίστοιχες ώρες για την εξέταση του μαθήματος στο PCLAB είναι ως εξής:

Τμήμα 1: A – Λ Ώρα: 15:00 – 16:00
Τμήμα 2: Μ – Ω Ώρα: 16:15 – 17:15

Υπενθυμίζεται ότι για τους φοιτητές που έχουν πρωτο-εγγραφεί στο μάθημα από το ακαδημαϊκό έτος 2010-11 και μετά, η τελική εξέταση γίνεται ΜΟΝΟ ηλεκτρονικά στο PCLAB.

Φοιτητές παλαιοτέρων ετών μπορούν να επιλέξουν μεταξύ του νέου (ηλεκτρονικά) και του παραδοσιακού (γραπτά) τρόπου εξέτασης. Σε περίπτωση που προτιμούν ηλεκτρονική εξέταση, να το δηλώσουν με email (aspyr παπάκι chemeng τελεία ntua.gr).

Η γραπτή εξέταταση θα γίνει στις 15:00 στην αίθουσα 31.
cron