Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Σχετικά έγγραφα
ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 18/3/2008

Mεταβλητές (variables) και Σταθερές (constants)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 17/1/08

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 8/4/2008. Πίνακες (Arrays)

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 25/10/07

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

Οντοκεντρικός Προγραμματισμός

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 7: Πίνακες (Arrays)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Μνήμης Αντικείμενα ως ορίσματα

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Αντικειμενοστρεφής Προγραμματισμός

Οντοκεντρικός Προγραμματισμός

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Μαθήματα από τα εργαστήρια

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΠΛΗΡΟΦΟΡΙΚΗ ΙI Ενότητα 6: Pass-by-value και φαινομενικό pass-by-reference

Διαδικασιακός Προγραμματισμός

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 6 : ΠΙΝΑΚΕΣ

ΑΤΕΙ ΘΕΣΣΑΛΟΝΙΚΗΣ. Αλγοριθμική και Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #2 ο : Ανατομία προγραμμάτων εφαρμογών, η

Κατανεμημένα Συστήματα

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Εργασία για το Facility Game Μάθημα: Δομές Δεδομένων Σωτήρης Γυφτόπουλος

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Υπάρχουσες κλάσεις και αντικείμενα στην Java Strings Wrapper Classes Δομές

Αντικειμενοστραφής Προγραμματισμός I(5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

Υπολογισμός - Συλλογή Δεδομένων - Πίνακες

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα ως ορίσματα Εισαγωγή στις αναφορές

4 ο Εργαστήριο Τυχαίοι Αριθμοί, Μεταβλητές Συστήματος

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Διαδικασιακός Προγραμματισμός

Τύποι Δεδομένων και Απλές Δομές Δεδομένων. Παύλος Εφραιμίδης V1.0 ( )

Ask1, Ask2, Ask3. private void jbutton1actionperformed(java.awt.event.actionevent evt) { jlabel1.settext( "You pressed the 1st button" ); }

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Αντικείμενα ως ορίσματα

Αντικειμενοστραφής Προγραμματισμός I (5 ο εξ) Εργαστήριο #4 ο : Αποσφαλμάτωση (debugging), μετατροπές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός Αναφορές-Παράμετροι

Τύποι δεδομένων, τελεστές, μεταβλητές

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργία Κλάσεων και Αντικειμένων

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 26/2/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Αντικείµενα. ηµιουργία και χρησιµοποίηση αντικειµένων. ηµιουργία αντικειµένων

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Στοιχεία εξεταζόµενου Αριθµός Απάντησης Βαθµολογία. Σύνολο (Θέµα 4 ο )

Εισαγωγή στη JAVA. Εισαγωγή στη Java. Η Java είναι δημιούργημα της SUN MICROSYSTEMS.

Εισαγωγή στον Προγραμματισμό

I (JAVA) Ονοματεπώνυμο: Α. Μ.: Δώστε τις απαντήσεις σας ΕΔΩ: Απαντήσεις στις σελίδες των ερωτήσεων ΔΕΝ θα ληφθούν υπ όψην.

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

ΦΥΛΛΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ 1

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 3, 7, 8 & 9 6/12/07

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ. Πρώτη Σειρά ασκήσεων Ημερομηνία Παράδοσης: 24 Απριλίου 2018, 12 μ.μ.

Αναφορές, είκτες και Αλφαριθμητικά

Το πρόγραμμα HelloWorld.java. HelloWorld. Κλάσεις και Αντικείμενα (2) Ορισμός μιας Κλάσης (1) Παύλος Εφραιμίδης pefraimi <at> ee.duth.

2 ΓΡΑΜΜΙΚΕΣ ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

ΕΠΛ131 Αρχές Προγραμματισμού

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

Δηµοσθένης Σταµάτης Τµήµα Πληροφορικής T.E.I. ΘΕΣΣΑΛΟΝΙΚΗΣ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Εργαστήριο Επεξεργασίας Πληροφορίας και Υπολογισμών Τομέας Ηλεκτρονικής και Υπολογιστών. ΤΗΜΜΥ Α.Π.Θ Δευτέρα 22 / 11 / 2017 ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ

Εισαγωγή στη γλώσσα προγραμματισμού JAVA. Δομές Δεδομένων Διδάσκων: Π.Α. Μήτκας Τομέας Ηλεκτρονικής και Υπολογιστών

Ανάπτυξη και Σχεδίαση Λογισμικού

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

«ΕΙΔΙΚΑ ΘΕΜΑΣΑ ΣΟΝ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΤΠΟΛΟΓΙΣΩΝ» Κεφάλαιο 4: Αντικειμενοςτρεφήσ Προγραμματιςμόσ

Υπολογιστικά Συστήματα

Δομημένος Προγραμματισμός (ΤΛ1006)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Δημιουργώντας δικές μας Κλάσεις και Αντικείμενα

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

ΠΛΗΡΟΦΟΡΙΚΗ ΙΙ (JAVA) 4/3/2008

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Εισαγωγή στη Java III

Διδάσκων: Παναγιώτης Ανδρέου

Εργαστήριο Δομημένος Προγραμματισμός (C#) Τμήμα Μηχανολογίας Νικόλαος Ζ. Ζάχαρης Καθηγητής Εφαρμογών

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Κεφάλαιο 8.7. Πολυδιάστατοι Πίνακες (Διάλεξη 19)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

Εισαγωγή στον Προγραµµατισµό - Εβδοµάδα 7

Α' Εξάμηνο ΕΙΣΑΓΩΓΗ ΣΤΟ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

3 Αλληλεπίδραση Αντικειμένων

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Δημιουργία μιας εφαρμογής Java με το NetBeans

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αναφορές Στοίβα και Σωρός μνήμης Αντικείμενα παράμετροι String Interning

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

Εισαγωγή στον Προγραμματισμό

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

9:00-10:00 π.μ. (60 λεπτά) Παρασκευή, 14 Οκτωβρίου, 2016

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

// MATHIMA 2, // s.boot; s.makewindow.boot; // boot server!

Transcript:

Προγραμματισμός 2 Σημειώσεις εργαστηρίου 02-Java, Τύποι Δεδομένων ως Αντικείμενα Νεβράντζας Βάιος-Γερμανός Λάρισα, Μάρτιος 2013

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 1 Περίληψη Στο 3ο εργαστηριακό μάθημα θα γνωρίσουμε τα σύνθετα δεδομένα της Java και θα κάνουμε ασκήσεις με πίνακες και αλφαριθμητικά. Επιγραμματικά: 1. Γενικά 2. Πίνακες a. δήλωση μονοδιάστατου πίνακα b. δήλωση πίνακα 2 διαστάσεων c. η ιδιότητα length 3. Αλφαριθμητικά (Strings) a. δήλωση αλφαριθμητικού b. μέθοδοι της τάξης String c. η τάξη StringBuffer d. ο πίνακας παραμέτρων της main() Παραδείγματα Ασκήση

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 2 Notes 1 Γενικά Στο προηγούμενο εργαστηριακό μάθημα γνωρίσαμε πως να δηλώνουμε μία μεταβλητή ως θέση μνήμης απλού τύπου, για παράδειγμα int, float κ.α. Εκτός από τους απλούς τύπους δεδομένων, η Java υποστηρίζει και τύπους δεδομένων που θεωρούνται αντικείμενα. Σε αυτό το μάθημα θα γνωρίσουμε τα αλφαριθμητικά (που είναι αντικείμενα της κλάσης String) και τους πίνακες που -επίσης- θεωρούνται αντικείμενα και δηλώνονται με τη βοήθεια της λέξης new, η οποία στην ουσία δεσμεύει τον απαραίτητο χώρο μνήμης για τον πίνακα ή το αλφαριθμητικό. 2 Πίνακες Οι πίνακες είναι μία δομή δεδομένων που περιέχει στοιχεία ίδιου τύπου και μας διευκολύνουν όταν θέλουμε να διαχειριστούμε αυτά τα στοιχεία κάτω από την ίδια ονομασία. Στη Java, οι πίνακες είναι αντικείμενα και έχουν ιδιότητες που εφαρμόζονται σε αντικείμενα τέτοιου τύπου. δήλωση μονοδιάστατου πίνακα Η δήλωση ενός πίνακα περιλαμβάνει 2 βήματα: α. τη δήλωση του τύπου των στοιχείων του και του ονόματός του: τύποςστοιχείων [ ] όνομαπίνακα; β. τη δέσμευση χώρου μνήμης που απαιτείται για τον πίνακα: όνομαπίνακα = new τύποςστοιχείων [μέγεθοςπίνακα] ; Προσοχή: εάν δηλώσουμε το όνομα του πίνακα αλλά δεν δεσμεύσουμε τον απαραίτητο χώρο μνήμης δεν μπορούμε να τον χρησιμοποιήσουμε!

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 3 Αν επιθυμούσα να δηλώσω έναν πίνακα που θα μπορεί να κρατήσει 10 ακεραίους, τότε θα έπρεπε να γράψω και από εκείνο το σημείο θα μπορούσα να έχω πρόσβαση σε κάθε στοιχείο του πίνακα με το δείκτη του (το πρώτο στοιχείο του πίνακα θα ήταν το pinakas[0], το δεύτερο το pinakas[1] κτλ). Παράδειγμα Γεμίζουμε και εμφανίζουμε τα στοιχεία ενός πίνακα ακεραίων. δήλωση πίνακα 2 διαστάσεων Η δήλωση ενός δισδιάστατου πίνακα γίνεται με παρόμοιο τρόπο: α. τη δήλωση του τύπου των στοιχείων του και του ονόματός του: τύποςστοιχείων [ ] [ ] όνομαπίνακα;

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 4 β. τη δέσμευση χώρου μνήμης που απαιτείται για τον πίνακα: όνομαπίνακα = new τύποςστοιχείων [πλήθοςγραμμών] [πλήθοςστηλών] ; Παράδειγμα Γεμίζουμε και εμφανίζουμε τα στοιχεία ενός πίνακα ακεραίων 2 διαστάσεων. η ιδιότητα length Όταν χρησιμοποιούμε έναν πίνακα μπορούμε να καλέσουμε την ιδιότητα length γράφοντας: όνομαπίνακα. length για να πάρουμε το πλήθος των θέσεων του πίνακα.

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 5 Αν εφαρμοστεί σε μονοδιάστατο πίνακα, πχ int[] x=new int[10]; int megethos=x.length //megethos=10 μας δίνει το πλήθος των στοιχείων του πίνακα, ενώ αν ο πίνακας είναι 2 διαστάσεων, πχ int[][] x=new int[10][3]; int megethos=x.length //megethos=10 θα μας δώσει το πλήθος των στοιχείων της 1ης διάστασης. Αν θέλουμε το πλήθος των στοιχείων της δεύτερης διάστασης θα πρέπει να γράψουμε int megethos1=x[0].length //megethos1=3

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 6 3 Αλφαριθμητικά (Strings) Στη Java, όταν θέλουμε να αποθηκεύσουμε μία σειρά από χαρακτήρες χρησιμοποιούμε τον τύπο String o οποίος είναι η κλάση (τάξη) String του πακέτου java.lang. Έτσι, ένα αλφαιρθμητικό είναι στην ουσία ένα αντικείμενο και θα πρέπει να δηλωθεί με τη βοήθεια της λέξης new. δήλωση αλφαριθμητικού Η δήλωση πρέπει να γίνει: α. με τη λέξη new για τη δέσμευση του απαραίτητου χώρου μνήμης β. καλώντας μια ειδική μέθοδο που ονομάζεται κατασκευαστής και έχει το ίδιο όνομα με το όνομα της κλάσης String, πχ: String s=new String(); Εναλλακτικά, μπορούμε να αποφύγουμε τη χρήση της λέξης new και του κατασκευαστή εάν αποδώσουμε απευθείας τιμή στο αλφαριθμητικό (μία τιμή μέσα σε ), πχ: String s= TEI Larissas ; μέθοδοι της κλάσης (τάξης) String Υπάρχουν διάφορες έτοιμες μέθοδοι της τάξης String που μπορούμε να εφαρμόσουμε σε αλφαριθμητικά. Εδώ παρουσιάζουμε τις σημαντικότερες. Όνομα Λειτουργία int length() επιστρέφει το μήκος του String char charat(int index) επιστρέφει τον χαρακτήρα του String στη θέση index (o index στο διάστημα [0, length()-1] int indexof(int ch) επιστρέφει τη θέση της πρώτης εμφάνισης του ch στο String. Αν δεν τον βρει επιστρέφει -1

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 7 int lastindexof(int ch) int compareto(string s) boolean equals(object a) επιστρέφει τη θέση της τελευταίας εμφάνισης του ch στο String. Αν δεν τον βρει επιστρέφει -1 συγκρίνει 2 αλφαριθμητικά και επιστρέφει 0 αν είναι ίδια (αλλιώς <>0) επιστρέφει true αν το α είναι ένα String με τιμή και η τιμή του είναι ίδια με του String που συγκρίνεται. η τάξη StringBuffer Μέχδι τώρα μάθαμε ότι όταν θέλω να αποθηκεύσω μία σειρά χαρακτήρων τότε δημιουργώ ένα αντικείμενο της τάξης String. Υπάρχει, όμως, το εξής πρόβλημα με τα αντικείμενα της συγκεκριμένης τάξης: δεν αλλάζουν! Πρακτικά, αυτό σημαίνει ότι αν δώσουμε μία νέα τιμή σε ένα αντικείμενο της τάξης String τότε στην ουσία δημιουργούμε ένα εντελώς νέο αντικείμενο (δεσμεύουμε άλλο κομμάτι μνήμης) ενώ το παλιό συλλέγεται από τον συλλέκτη σκουπιδιών. Άρα, θα πρέπει να χρησιμοποιούμε τη τάξη String μόνο όταν η μεταβλητή μας θα πάρει μία τιμή (ή σχεδόν μία). Αν, όμως, θέλουμε μία μεταβλητή αλαφαριθμητικού να μπορεί να αλλάζει τιμές χωρίς εκ νέου δέσμευση μνήμης, τότε χρησιμοποιούμε τη τάξη StringBuffer. Ακολουθούν οι έτοιμες μέθοδοι που θα χρησιμοποιούμε στο εργαστήριο: Όνομα Λειτουργία Κατασκευαστές StringBuffer() StringBuffer(String str) public int length() public String tostring() public StringBuffer append(char c) public StringBuffer insert(int offset, char c) κατασκευάζει ένα κενό(άδειο) αντικείμενο κατασκευάζει ένα αντικείμενο με περιεχόμενο το str επιστρέφει το μήκος του StringBuffer μετατρέπει ένα αντικείμενο StringBuffer σε αντικείμενο της τάξης String προσθέτει τον χαρακτήρα c στο τέλος του StringBuffer εισάγει τον χαρακτήρα c στη θέση offset public void setcharat(int index, char c) αλλαγή χαρακτήρα στη θέση index, στη θέση του το c

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 8 public StringBuffer reverse() αντιστρέφει το StringBuffer public char charat(int index) επιστρέφει τον χαρακτήρα στη θέση index ο πίνακας παραμέτρων της main (args) Πολλές φορές επιθυμούμε να περάσουμε κάποια ορίσματα (δεδομένα στο πρόγραμμά μας) με τον λεγόμενο εξωτερικό τρόπο, δηλαδή όχι κατά τη διάρκεια εκτέλεσης του προγράμματος αλλά ακριβώς πριν την εκτέλεσή του. Για να το πετύχουμε αυτό θα πρέπει να δώσουμε τα δεδομένα μας αυτά ως είσοδο στη main() μέσω του πίνακα παραμέτρων της με το όνομα args. O πίνακας αυτός δηλώνεται ως: String[] args; μπορεί να κρατήσει δηλαδή όσα αλφαριθμητικά εμείς του δώσουμε (άρα δεσμεύεται χώρος για όσα String του περάσουμε απ έξω!). Για να το κάνουμε αυτό μέσα στο Netbeans πηγαίνουμε στο παράθυρο του Project Browser, κάνουμε δεξί κλικ πάνω στο όνομα του project μας και επιλέγουμε Properties->Run: και στο πεδίο Arguments εισάγουμε τα όποια ορίσματα που θέλουμε να αποθηκεύσουμε μέσα στον πίνακα args. Θυμηθείτε ότι το 1ο όρισμα θα βρίσκεται στο args[0], το 2ο στο args[1] κτλ., για παράδειγμα εάν θέλουμε να εκτυπώσουμε κάτι που περνάμε ως argument θα γράφαμε:

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 9

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 10 Παραδείγματα 1 Εργαστηρίου Να γίνει πρόγραμμα διαχείρισης ενός φοιτητή, το οποίο: α. ο χρήστης θα εισάγει τον ΑΜ ενός φοιτητή με εξωτερικό τρόπο β. το πρόγραμμα θα ζητάει το ονοματεπώνυμο του φοιτητή γ. στη συνέχεια θα ζητάει τους βαθμούς του φοιτητή (το πλήθος το καθορίζει ο χρήστης) δ. θα γίνεται έλεγχος για το αν ο φοιτητής είναι παλιός ή νέος (ένας φοιτητής είναι παλιός όταν ο ΑΜ του αρχίζει με Τ0...) ε. θα εκτυπώνει τη συνολική εικόνα του φοιτητή. Ενδεικτική λύση

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 11

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 12 Άσκηση 1 Να γίνει πρόγραμα το οποίο θα εξετάζει και θα εκτυπώνει αν ένα αλφαριθμητικό είναι παλινδρομικό, πχ η λέξη racecar είναι παλινδρομική ενώ η λέξη sportscar δεν είναι. Βοήθεια Να χρησιμοποιηθούν 2 αλγόριθμοι: α. αντιστρέφουμε το αλφαριθμητικό και το συγκρίνουμε με το αρχικό: αν είναι το ίδιο τότε το αρχικό είναι παλινδρομική λέξη. β. παίρνουμε ένα ένα τα γράμματα της λέξης και τα συγκρίνουμε: συγκρίνουμε το 1ο με το τελευταίο, το δεύτερο με το προτελευταίο κτλ μέχρι το μέσο της λέξης (υπάρχουν 2 περιπτώσεις). Αν φτάσουμε στο κέντρο βρίσκοντας ίδια αντίστοιχα γράμματα τότε η αρχική λέξη είναι παλινδρομική.

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 13 1η λύση (αλγόριθμος α )

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 14 2η λύση (αλγόριθμος α )

02-iProgramminginJava, Τυ ποι δεδομε νων ως Αντικει μενα, σελίδα 15 3η λύση (αλγόριθμος β )