Professional Documents
Culture Documents
Java Manual 2017GR
Java Manual 2017GR
net/publication/320402954
CITATIONS READS
0 2,519
2 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Alexandros Gazis on 12 February 2020.
Αλέξανδρος Γαζής
πτυχιούχος ΗΜΜΥ ΔΠΘ,
μεταπτυχιακός φοιτητής ΔΠΘ
2
ΠΕΡΙΕΧΟΜΕΝΑ
σελ.
3
Εγγραφή στο μάθημα μέσω της πλατφόρμας του eclass
Για την παρακολούθηση του μαθήματος απαιτείται η εγγραφή σας στο μάθημα, ώστε
να λαμβάνεται ενημερώσεις τόσο για την θεωρία όσο και για το εργαστηριακό μέρος.
Για την εγγραφή, ακολουθείστε τα παρακάτω βήματα:
https://eclass.duth.gr
2. Στο πεδίο «Σύνδεση χρήστη» εισάγετε το όνομα χρήστη καθώς και τον
κωδικό που σας παρέχει η γραμματεία του Δημοκρίτειου Πανεπιστημίου
Θράκης.
4
5. Αναζητούμε στο νέο παράθυρο που προκύπτει το μάθημα στο οποίο
επιθυμούμε να εγγραφούμε, το ανοίγουμε και επιλέγουμε το κουτί στα
αριστερά του τίτλου.
Απαιτείται προσοχή στον εκάστοτε διδάσκοντα και στο ΤΜΑ (κωδικός
εκάστοτε μαθήματος), ώστε η επιλογή σας να συμβαδίζει με τις οδηγίες
που θα σας δοθούν από τον καθηγητή στο εισαγωγικό μάθημα.
5
Εικόνα 3 Βήμα 3: επιλογή αριστερά Μαθήματα
Εικόνα 5 Βήμα 5: πριν και μετά την επιλογή του κουτιού του μαθήματος, στο οποίο επιθυμούμε να
εγγραφούμε
6
Εργαστήριο 1- Παρουσίαση Εργαστηριακών Εργαλείων
Για την ορθή παρακολούθηση και συμμετοχή στο εργαστηριακό μέρος του μαθήματος,
απαιτείται η εξοικείωση του αναγνώστη με τα εξής εργαλεία:
Ram Type 5
Open Office
1. Ram Type 5
Χαρτοφυλάκιο Χρήστη -> Εισαγωγή στην Επιστήμη Η/Υ -> Έγγραφα ->Τυφλό Σύστημα
Πληκτρολόγησης
Εικόνα 6 Για το κατέβασμα του προγράμματος Ram Type 5 μπορείτε είτε να πατήσετε(αριστερό κλικ) είτε
στο όνομα του αρχείου είτε όπως υποδεικνύει το δεξί βέλος.
7
2. Open Office
Εικόνα 7 Για το κατέβασμα του προγράμματος OpenOffice από τους παραπάνω συνδέσμους πατήσετε
(αριστερό κλικ) εκεί που υποδεικνύει το δεξί βέλος, εφόσον έχετε εγκατεστημένο λειτουργικό σύστημα
Windows.
8
Υπενθύμιση (για τους χρήστες Linux): για υπολογιστές με συνολική Ram άνω των 4GB
επιλέξτε την έκδοση των 64bit .
3. Eclipse Kepler
To πρόγραμμα Eclipse αποτελεί ένα από τα γνωστότερα εργαλεία για την ανάπτυξη
λογισμικού σε ηλεκτρονικούς υπολογιστές. Η ανάπτυξη του εργαλείου έγινε στα τέλη
του 1990, από την ΙΒΜ και αποτελεί ένα ολοκληρωμένο περιβάλλον ανάπτυξης (IDE).
Αναλυτικότερα, συνιστά ένα ελεύθερο ολοκληρωμένο περιβάλλον για την ανάπτυξη
λογισμικού -IDE- κυρίως σε γλώσσα προγραμματισμού JAVA (την οποία θα
μελετήσουμε στα πλαίσια του μαθήματος). Αξίζει να αναφερθεί ότι, με τις κατάλληλες
προσθήκες-plugins, το περιβάλλον ανοικτού κώδικα (Open source) δύναται να
υποστηρίξει πληθώρα γλωσσών προγραμματισμού, όπως: C, C + +, Java, PHP,
COBOL, Perl, PHP, Python, Scala κλπ.
Εναλλακτικές προτάσεις είναι το NetBeans της Sun Microsystems και το .NET της
Microsoft. Όλες οι προαναφερθείσες πλατφόρμες συντελούν στην ταχεία
προτυποποίηση, την αλληλεπίδραση και την ανταλλαγή ιδεών, με βάση μια κοινή
αρχιτεκτονική, διευκολύνοντας την ανάπτυξη διαφόρων τύπων εφαρμογών μεγάλης
κλίμακας, για τις μεγάλες ομάδες των προγραμματιστών.
https://www.eclipse.org/downloads/packages/eclipse-ide-java-developers/keplersr2
Εικόνα 8 Για το κατέβασμα του προγράμματος Eclipse από τον παραπάνω σύνδεσμο, επιλέξτε (αριστερό
κλικ) εκεί που υποδεικνύει το κόκκινο πλαίσιο, αναλόγως του λειτουργικού σας συστήματος (Windows,
Macintosh, Linux)
Εικόνα 9 Για υπολογιστές με συνολική Ram ΚΑΤΩ των 4GB, επιλέξτε την έκδοση των 32 bit (πράσινο βέλος
για επαλήθευση ορθής επιλογής), ενώ για συνολική Ram των 4GB ή ΠΑΡΑΠΑΝΩ επιλέξτε την έκδοση των
64 bit (Κόκκινο βέλος για να κατεβάσετε το αρχείο)
9
Εργαστήριο 2- Μεταβλητές, Λογικές Συνθήκες και
Βασικές Εντολές
Εικόνα 10 Διαδικασία υλοποίησης για την εξαγωγή αποτελεσμάτων στην οθόνη του χρήστη (και παράδειγμα
λειτουργίας σε αρχεία Java)
Εικόνα 11 Επιλογή ρύθμισης Project/ Bulid Automatically στην γραμμή επιλογών του Eclipse
10
1. 1ο πρόγραμμα υλοποίησης - «Γεια σου Κόσμε»
System.out.println("Hello World!"):
Τυπώνει το μήνυμα Hello World!
;
Χρησιμοποιείται στο τέλος κάθε εντολής
// Σχόλια:
Χρησιμοποιούνται για να γράφουμε σχόλια στο κώδικα. Δεν εκτελούνται σε
καμία περίπτωση και δεν εμφανίζονται ΠΟΤΕ στην οθόνη=console του Eclipse
1
Σε κάθε πρόγραμμα που θα υλοποιηθεί στα πλαίσια του εργαστηρίου ή γενικότερα στην
προγραμματιστική γλώσσα JAVA, επιβάλλεται η ύπαρξη της εντολής: public static void main(String[]
args)
11
2. Υλοποίηση αποτελέσματος οθόνης στην Γραμμή Εντολών (των
Windows)
Γιατί επιλέγουμε το Eclipse για την ανάπτυξη εφαρμογών και όχι την γραμμή εντολών ;
Ενδεικτικά, αν έχετε ακολουθήσει επακριβώς τα βήματα για την εγκατάσταση καθώς και
υλοποίηση ενός φακέλου για την αποθήκευση των προγραμμάτων σας (workspace),
τότε οι εντολές απαιτούν λίγα δευτερόλεπτα για να τρέξουν(interpret) στην οθόνη του
υπολογιστή σας. Αν έχετε υποπέσει σε σφάλμα, τότε το περιβάλλον του Eclipse θα σας
υποδείξει (μετά το απαραίτητο compile) το σημείο-γραμμή.
Μάλιστα, για να υλοποιηθούν όλα τα παραπάνω, απαιτούν την εγκατάσταση του JDK:
http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html
2
dir: directory, παραθέτει αναλυτικά όλα τα αρχεία και υποφακέλους εντός του φακέλου που είμαστε
3
cd: change directory, άλλαξε το φάκελο. Όπως κάνετε ΔΙΠΛΟ ΚΛΙΚ
12
και της αναλυτικής δήλωσης, στην γραμμή εντολών του φακέλου της java, σύμφωνα με
τις οδηγίες που παρέχονται από το επίσημο ιστότοπο της προγραμματιστικής γλώσσας:
https://www.java.com/en/download/help/path.xml
Από όλα τα παραπάνω γίνεται σαφές ότι ο συγκεκριμένος τρόπος, αν και λειτουργικός,
δεν είναι ιδιαίτερα εύχρηστος για τον προγραμματισμό.
3. Μεταβλητές/Τύποι Δεδομένων
13
4. Μετατροπές σε Μεταβλητές/Τύπους Δεδομένων
Στην JAVA έχουμε την δυνατότητα να μετατρέψουμε μια μεταβλητή σε μεταβλητή άλλου
τύπου, με τη τεχνική του casting . Η σύνταξη της εντολής έχει την εξής μορφή:
Παράδειγμα 1
public static void main(String[] args) {
double x= 12.324;
int y= (int) x;
System.out.println("PROSOXI stis metatropes dedomenwn!"
+ " Alli timi exei to x:"+x+" prin tin metatropi kai alli meta opou
y:"+y);}}
Παράδειγμα 2
public static void main(String[ ] args) {
int x= 21;
double y = (double) x; // i mporume na grapsume pio analitika
// double y;
// y = (double) x;
System.out.println("PROSOXI stis metatropes dedomenwn!"
+ " Alli timi exei to x:"+x
+" prin tin metatropi kai alli meta opou y:"+y); }}
όπου παράγεται το εξής μήνυμα στην οθόνη του χρήστη:
14
5. Java: Case sensitive
Στη συνέχεια, αντιγράψετε το παραπάνω κώδικα και μεταβάλλετε κάποια από τις
παραπάνω εντολές όπως:
int Α=12; ως Int ή iNt ή inT
Παρατηρούμε ότι, εφόσον συντελέσουμε αυτή τη μεταβολή ή γενικότερα
ανασυντάξουμε το κείμενο, μετατρέποντας ένα γράμμα από κεφαλαίο σε μικρό, το
πρόγραμμα δεν έχει την επιθυμητή λειτουργία.
Έχοντας πλέον κατανοήσει την έννοια τους τύπους δεδομένων μιας μεταβλητής καθώς
και τη χρησιμότητά τους, σε αυτή την ενότητα παρουσιάζονται οι απαραίτητοι τελεστές
για την πραγματοποίηση αριθμητικών και λογικών πράξεων.
Αριθμητικοί τελεστές
+ πρόσθεση
++ πρόσθεση κατά 1
- αφαίρεση
-- αφαίρεση κατά 1
* πολλαπλασιασμός
/ διαίρεση
% υπόλοιπο διαίρεσης
15
Λογικοί τελεστές
> μεγαλύτερο
>= μεγαλύτερο ή ίσο
< μικρότερο
<= μικρότερο ή ίσο
== ίσο
!= διάφορο
! αντίθετο (NOT)
& λογικό AND
| λογικό OR
Με εφαλτήριο την εντολή για την εξαγωγή μηνυμάτων στην οθόνη του χρήστη
System.out.println("…"); , σε αυτήν την ενότητα παρουσιάζεται ο τρόπος με τον οποίο
εισάγονται δεδομένα από τον χρήστη, για την επίτευξη σχέσης αλληλεπίδρασης
χειριστή-κονσόλας.
Η χρήση της παραπάνω εντολής απαιτεί την ύπαρξη της βιβλιοθήκης java.util.Scanner,
επομένως πρέπει να εισαχθεί η έκφραση import java.util.Scanner; πριν τη δήλωση της
κλάσης (public class ΟΝΟΜΑ). Στα πλαίσια του εργαστηρίου καθώς και μελλοντικά, στα
προγράμματα που θα υλοποιήσετε, προτείνεται να υλοποιείται αυτόματα την
διαδικασία, μέσω του περιβάλλοντος του Eclipse, ώστε να μην δημιουργείται δυσχέρεια
κατά την εύρεση και εισαγωγή της ορθής βιβλιοθήκης.
Ειδικότερα, αφού πληκτρολογήσετε την εντολή για την χρήση του Scanner, πατήστε
ταυτόχρονα Cntrl+Shift+O για την αυτόματη δήλωση-συμπλήρωση βιβλιοθήκης. Σε
ότι αφορά την χρήση της εντολής, ακολουθούν μερικά παραδείγματα:
Scanner sc = new
Scanner(System.in);
16
int x = sc.nextInt();
double z = sc.nextDouble();
Σημειώνεται ότι δηλώνουμε το Scanner μια φορά και μετέπειτα, αναλόγως του τύπου
μεταβλητής που επιθυμούμε να εισάγει ο εκάστοτε χρήστης, κάνουμε αναφορά σε αυτό,
μέσω της sc.next…
nextInt() Ιnteger
nextFloat() Float
nextLong() Long
nextShort() Short
nextBoolean() Boolean
Τέλος, παρότι δόθηκε έμφαση για την εντολή του Scanner, επισημαίνουμε ότι, εφόσον
επιθυμείτε να εισάγετε άλλα εργαλεία (utilities), ακολουθείτε τον ίδιο τρόπο
συμπλήρωσης και σε αυτή την περίπτωση. Ακολουθούν παραδείγματα μαθηματικών
υπολογισμών.
double z = Math.sqrt(x);
Υπολογίζει τη τετραγωνική ρίζα του x, όπου x είναι double
μεταβλητή
double z = Math.pow(a,b);
Υπολογίζει τη δύναμη του a εις την b, όπου a,b είναι double
μεταβλητές
double z = Math.random();
Επιστρέφει μια τυχαία τιμή στο διάστημα [0.0, 1.0)
17
8. Εντολές Λογικού Ελέγχου (ΑΝ)
Στις προηγούμενες ενότητες αναλύθηκαν κύριες έννοιες για την εισαγωγή και εξαγωγή
δεδομένων, τη δήλωση και την χρησιμοποίηση μεταβλητών. Σε αυτό το κεφάλαιο, θα
επεκταθούμε σε μια ιδιαίτερα σημαντική έννοια του προγραμματισμού, την εντολή
ελέγχου ΑΝ (if).
if(λογική συνθήκη) {
//Εάν είναι αληθής η συνθήκη, πχ. x > 5
…
}else{
//Εάν είναι ψευδής η συνθήκη
…
Αντίστοιχα, η παραλλαγή για πολλές υλοποιήσεις αναλόγως συνθηκών είναι:
if(λογική συνθήκη) {
//Εάν είναι αληθής η συνθήκη, πχ. x > 5
…
}else if(λογική συνθήκη){
//Εάν είναι αληθής η συνθήκη. πχ. x == 0
…
}else{
//Εάν δεν ισχύει κανένα από τα προηγούμενα
…
Αν η ακριβής σύνταξη της εντολής παρουσιάζει δυσχέρειες, πατήστε If στον editor και
μετά Cntrl+Spacebar, ώστε το Eclipse να παρέχει βοήθεια κατά την συμπλήρωση.
Ειδικότερα, παρουσιάζεται το ακόλουθο παράθυρο, όπου αριστερά εμφανίζεται η
εντολή και δεξιά η γενική σύνταξή της:
18
9. Συνδυαστικά Παραδείγματα
Παράδειγμα 1
Να κατασκευάσετε πρόγραμμα, το οποίο θα δέχεται 2 μη μηδενικούς αριθμούς από το
πληκτρολόγιο του χρήστη, έναν integer (ακέραιο) και έναν double (κινητής
υποδιαστολής) και θα υπολογίζει το μέσο όρο τους.
Όταν ο μέσος όρος των αριθμών είναι:
αρνητικός, τότε το πρόγραμμα θα εξάγει το τελικό αποτέλεσμα σε ακέραιο
θετικός, τότε το πρόγραμμα θα εξάγει το τελικό αποτέλεσμα σε πραγματικό
αριθμό (double).
Το αποτέλεσμα στο Eclipse, για την εισαγωγή αρνητικού αλλά και θετικού ΜΟ, θα είναι
ως εξής:
19
Παράδειγμα 2
Να κατασκευάσετε πρόγραμμα, το οποίο επιτελεί τις βασικές λειτουργίες μιας
αριθμομηχανής. Ειδικότερα το πρόγραμμα πρέπει να:
1. δέχεται από τον χρήστη 3 ΑΚΕΡΑΙΕΣ τιμές, με βάση τα 3 τελευταία ψηφία του
ΑΕΜ σας
2. ρωτάει τον χρήστη ποια πράξη να επιτελέσει, μέσω της εισαγωγής ενός
ακεραίου από το 1 έως το 4 και
3. επιτελεί:
a. πρόσθεση και εμφανίζει το αποτέλεσμα, αν επιλεγεί το 1
b. αφαίρεση και εμφανίζει το αποτέλεσμα, αν επιλεγεί το 2
c. πολ/σμό και εμφανίζει το αποτέλεσμα, αν επιλεγεί το 3
d. διαίρεση και εμφανίζει το αποτέλεσμα, αν επιλεγεί το 4
Ενδεικτικά: έστω φοιτητής με ΑΕΜ: 56127. Αυτός εισάγει τους αριθμούς 1,2,7 και τα
αποτελέσματα στην κονσόλα του Eclipse. Αν επιλέξει τη πράξη του πολλαπλασιασμού,
θα πρέπει να είναι ως εξής:
import java.util.Scanner;
public class ONOMAARXEIO_.JAVA {
public static void main(String[ ] args) {
int arithmos1,arithmos2,arithmos3,inputXristi,praxi;
System.out.println("Eisigage to 2o arithmo:");
arithmos2= x.nextInt();
System.out.println("Eisigage to 3o arithmo:");
arithmos3= x.nextInt();
System.out.println("Epelexe ti praxi thes na ginei:"
20
+ " 1:gia prosthesi"
+ " 2:gia afairesi"
+ " 3:gia pollaplasiasmo"
+ " 4:gia diairesi");
inputXristi= x.nextInt();
if (inputXristi==1){
praxi=arithmos1+arithmos2+arithmos3;
System.out.println("Epelexes prosthesi kai to apotelesma einai
"+praxi);
}
if (inputXristi==2) {
praxi=arithmos1-arithmos2-arithmos3;
System.out.println("Epelexes afairesi kai to apotelesma einai
"+praxi);
}
if (inputXristi==3) {
praxi=arithmos1*arithmos2*arithmos3;
System.out.println("Epelexes pollaplasiasmo kai to apotelesma
einai "+praxi);
}
if (inputXristi==4) {
praxi=arithmos1/arithmos2/arithmos3;
System.out.println("Epelexes diairesi kai to apotelesma einai
"+praxi);
}
//x.close(); //για να εξαφανιστεί το warning σχετικά με το
Scanner}}
21
22
Εργαστήριο 3- Πίνακες Δεδομένων και Δομές
Επανάληψης
Στόχος του 3ου εργαστήριου είναι η περεταίρω εξοικείωση με βασικές έννοιες του
προγραμματισμού και ειδικότερα των πινάκων δεδομένων καθώς και των
επαναλήψεων. Αρχικά, παρουσιάζονται εκτενώς οι έννοιες των πινάκων, όπως αυτές
γίνονται κατανοητές, μέσω της επιστήμης της Γραμμικής Άλγεβρας και μετέπειτα
αναλύονται υπό το πρίσμα της γλώσσας προγραμματισμού Java.
1. Πίνακας-Βασικές ιδιότητες
Για κάθε πίνακα πάντα ορίζεται το πλήθος των γραμμών και στηλών (δηλαδή οι
διαστάσεις του). Στην συνέχεια ακολουθούν 2 παραδείγματα πινάκων.
Παρατηρούμε ότι, για τον ορθό ορισμό των διαστάσεων ενός πίνακα, χρησιμοποιείται η
εξής κωδικοποίηση: n x m, όπου n: γραμμές και m: στήλες.
Αντίστοιχα, αν επιθυμούμε την υπόδειξη συγκεκριμένου στοιχείου του εκάστοτε πίνακα,
τότε αναφερόμαστε σε αυτό ως: (Γραμμή, Στήλη), λ.χ. αν θέλουμε να υλοποιήσουμε μια
διαδικασία στο στοιχείο της 1ης στήλης και 3ης γραμμής ενός μονοδιάστατου πίνακα
τότε: (3,1).
23
Ακολουθεί σχηματική απεικόνιση των θέσεων των προγενέστερων πινάκων:
1,1
1,2
1,3
Στην προγραμματιστική γλώσσα του εργαστηρίου (Java) αλλά και κατ’ επέκταση στα
περισσότερα υπολογιστικά συστήματα, η αρίθμηση των πινάκων ξεκινάει, αντί για το 1
από το 0, τόσο στην αναφορά σε γραμμές όσο και στήλες. Ειδικότερα, στα
προηγούμενα παραδείγματα πινάκων, αν θέλαμε να τα δηλώσουμε με βάση την
αναφορά που θα γινόταν στην Java, τότε:
24
0,0
1,0
2,0
Τύπος_Μεταβλητων_Πίνακα[ ] Ονομα_Πινακα ;
char[ ] pinakasKeimenu;
int[ ] pinakasAkeraiwn;
double[ ][ ] pinakasPragmatikwn2D; //2D-array
pinakasKeimenu=new char[ ];
25
double[ ][ ] arrayOfDoubles2D = {{4.2, 3.2}, {2.1, 2.9}};
ή
double[ ][ ] arrayOfDoubles2D = new double[ ][ ]{{4.2, 3.2}, {2.1, 2.9}};
Παράδειγμα 1. Δημιουργήστε ένα πίνακα μιας στήλης και 4ων γραμμών και
τοποθετήστε τυχαία ακέραιους αριθμούς, σε όλες τις διαθέσιμες θέσεις
26
Παράδειγμα 3. Δημιουργήστε ένα πίνακα μιας στήλης και 4ων γραμμών και
τοποθετήστε τυχαία πραγματικούς(double) αριθμούς, σε όλες τις διαθέσιμες θέσεις.
0 1
-1 -2
4 5
Με βάση την προηγούμενη ανάλυση, ισχύει ότι:
ΣΤΟΙΧΕΙΑ ΠΙΝΑΚΑ
0,0 0,1
1,0 1,1
2,0 2,1
Αντίστοιχα, παρατηρούμε ότι όλα τα δεδομένα εντός του πίνακα είναι ακέραιοι αριθμοί,
συνεπώς έχω έναν πίνακα 3 x 2 διαστάσεων ακεραίου(int:integer) τύπου.
public static void main(String[ ]
args) {
int[ ][ ] A;
A = new int[3][2];
A[0][0]=0;
A[1][0]=-1;
A[2][0]=4;
A[0][1]=1;
A[1][1]=-2;
A[2][1]=5;
System.out.println(A[1][0]);
}}
27
2. Δομές Επαναλήψεων
Τι συμβαίνει όταν επιθυμώ να διατρέξω έναν πίνακα, για να βρω κάποιο συγκεκριμένο
στοιχείο ή όταν επιθυμώ να επιτελεστεί μια επαναληπτική διαδικασία; Για την επίλυση
αυτού του ζητήματος υφίστανται οι δομές επαναλήψεων.
int i;
for (i=0; i<=5; i++) {
//εκτέλεσε των κώδικα 6 φορές (από 0-5)
}
28
1. Έχει μια αρχική τιμή (αρχικοποίηση) για την μεταβλητή i, καθώς και ότι ΠΑΝΤΑ
είναι ακέραιου τύπου.
2. Κάθε δομή επανάληψης απαιτεί ένα βήμα αύξησης (i=i+1), αλλιώς στο πίνακα
δεν θα μπορούσε να προχωρήσει η επαναληπτική διαδικασία περαιτέρω της 1ης
επανάληψης (θα ίσχυε πάντα ( 0 ≤ 5).
3. Έχει μια λογική συνθήκη που ελέγχει και καθορίζει το πλήθος των
επαναλήψεων, συνεπώς και την συνθήκη τερματισμού της επαναληπτικής
διαδικασίας.
Σε αυτό το σημείο, αξίζει να τονιστεί ότι τόσο στην for, όσο και στην while, η λογική
συνθήκη ελέγχεται στην αρχή της υλοποίησης, συνεπώς δεν είναι απαραίτητο να
επιτελεστεί έστω και μια επανάληψη. Αυτό δεν ισχύει για την εντολή DoWhile επειδή,
αφού η λογική συνθήκη ελέγχεται στο τέλος της υλοποίησης, ακόμα και αν δεν ισχύει η
συνθήκη, ΠΑΝΤΑ ΘΑ ΕΚΤΕΛΕΙΤΑΙ ΤΟΥΛΑΧΙΣΤΟΝ 1 ΦΟΡΑ.
Τέλος, σε περίπτωση που κατά το εργαστήριο δεν ορίσαμε ορθώς το βήμα αύξησης ή
γενικότερα αντιμετωπίσαμε κάποια δυσχέρεια που οδηγεί στην μη παύση της
επαναληπτικής διαδικασίας, το φαινόμενο ονομάζεται «ατέρμων βρόγχος». Το
πρόγραμμά θα τρέχει διαρκώς ‘’κολλημένο’’ σε μια επανάληψη, μέχρις ότου να γεμίσει
η μνήμη του υπολογιστή μας, όπου ακολουθεί αυτόματη επανεκκίνησή του. Στο
εργαλείο Eclipse επιβάλλεται να πατηθεί το κουμπί Terminate, όπως παρουσιάζεται
στην ακόλουθη εικόνα:
Στα πλαίσια του εργαστηρίου, για την αυτόματη συμπλήρωση των στοιχείων των
πινάκων, χρησιμοποιείται εντολή ανάθεσης τυχαίων τιμών. Πιο αναλυτικά, στην
γλώσσα Java ονομάζεται Math.random() και έχει την δυνατότητα να παράγει τυχαίες
ΠΡΑΓΜΑΤΙΚΕΣ -και ΠΑΝΤΑ ΘΕΤΙΚΕΣ- τιμές, από το 0 έως το 1. Όταν δηλώνουμε μια
μεταβλητή ή στοιχείο πίνακα να αρχικοποιήσει με τυχαίες τιμές, αυτή η μεταβλητή
επιβάλλεται να είναι τύπου double (πραγματικές τιμές).
29
3. Παραδείγματα Δομών Επανάληψης
30
//εκτυπώνω τα στοιχεία της κάθε γραμμής-σειράς
for (i=0; i<pinakas_Akeraiwn.length; i++) {
System.out.println("Grammi Akeraiou Pinaka: "+i+" :");
for (j=0; j<pinakas_Akeraiwn[i].length; j++) {
System.out.println(pinakas_Akeraiwn[i][j]);
}
System.out.println("");
}}}
31
public class ONOMAARXEIO_.JAVA {
public static void main(String[ ] args) {
int i=0, j=0, k=0 ;
double sum=0,min;
double[] pinakas = new double[4]; //στοιχεια: 0,1,2,3
// (A)αρχικοποίηση πινακα
do {
pinakas[0]= Math.random()*100;//τυχαία τιμή
pinakas[1]= Math.random()*100;//τυχαία τιμή
pinakas[2]= Math.random()*100;//τυχαία τιμή
pinakas[3]= Math.random()*100;//τυχαία τιμή
i=i+1;
} while (i<pinakas.length);
//(B)εκτύπωση στοιχείων πίνακα
System.out.println("Τα στοιχεία του πίνακα είναι τα εξής: ");
for (int l = 0; l < pinakas.length; l++) { //δηλώνω μέσα στην
εντολή το τύπο της μεταβλητής l
System.out.println(pinakas[l]);
}
//(C)υπολογισμός αθροίσματος
while (j<pinakas.length) {
sum = sum +pinakas[j];
j=j+1;
}
System.out.println("To αθροισμα των στοιχείων του πίνακα είναι
το εξής: "+ sum);
//(D)υπολογισμός ελάχιστου στοιχείου στον πίνακα
min=pinakas[0]; //δηλώνω τυχαία ότι το 1ο στοιχείο του πίνακα
είναι ο μικρότερος αριθμός και τον συγκρίνω με τους υπολοίπους
for (k=0;k<pinakas.length;k++)
{
if(pinakas[k]<min){
min=pinakas[k];
}
}
System.out.println("O ελάχιστος αριθμός στην "+(k+1)
+"η επαναληψη, δηλαδή ο Min = " + min);}}}}
32
33