Πρώτη σειρά ασκήσεων

Πρώτη σvειρά ασvκήσvεων
Ιωάννης Γ. Τσvούλος
Οκτώβριος
2011
1 Το πρόγραμμα bluej
1. Ανοίγουμε την εφαρμογή βλυεθ.
2. Επιλέγουμε Projet -> New Projet.
3. Δίνουμε ένα όνομα της επιλογής μας, πχ projet1
4. Δίνουμε Edit->New Class
5. Επιλέγουμε σvαν όνομα κατηγορίας κάτι σvαν και το HelloWorld
6. Θα εμφανισvτεί ένα σvκιασvμένο πλαίσvιο με το όνομα της κατηγορίας
7. Διπλοπατάμε πάνω σvτο όνομα της κατηγορίας και εμφανίζεται ένας κειμενογράφος
8. Σβήνουμε ότι υπάρχει μέσvα σvτο publi lass HelloWorld και προσvθέτουμε
το κείμενο του μαθήματος
9. Δίνουμε Class->Save
10. Δεξί κλικ σvτην κατηγορία και επιλογή Compile
11. Δεξί κλικ σvτην κατηγορία και επιλογή της σvυνάρτησvης main()
12. Το πρόγραμμα εκτελείται
2
Ασvκήσvεις σvε σvυναρτήσvεις
2.1
Μενού εκτέλεσvης πράξεων
Σκοπός της εργασvίας αυτής είναι να φτιάξουμε ένα πρόγραμμα για την εκτέλεσvη
πράξεων ανάμεσvα σvε δύο αριθμούς με την χρήσvη ενός μενού. Το μενού αυτό θα
πρέπει να δίνει σvτον χρήσvτη τις ακόλουθες επιλογές
1. (1- ΠΡΟΣΘΕΣΗ)
1
2. (2- ΑΦΑΙΡΕΣΗ)
3. (3- ΠΟΛΛΑΠΛΑΣΙΑΣΜΟΣ)
4. (4- ΔΙΑΙΡΕΣΗ)
5. (5- ΕΜΦΑΝΙΣΗ ΤΟΥ ΠΡΟΗΓΟΥΜΕΝΟΥ ΑΠΟΤΕΛΕΣΜΑΤΟΣ)
6. (6- ΤΕΡΜΑΤΙΣΜΟΣ)
Ο χρήσvτης θα εισvάγει σvε μια επανάληψη δύο δεκαδικούς αριθμούς (oat) και
το πρόγραμμα θα εμφανίζει σvτον χρήσvτη το παραπάνω μενού. Ο χρήσvτης θα αντιδρά σvτο μενού δίνοντας έναν ακέραιο αριθμό. Ανάλογα με την επιλογή του
χρήσvτη θα εκτελείται και μια σvυνάρτησvη η οποία θα λαμβάνει σvαν ορίσvματα τους
δύο ακεραίους αριθμούς που διαβάσvαμε και θα εκτελεί την αντίσvτοιχη αριθμητική
πράξη. Αν ο χρήσvτης επιλέξει το 5 θα εμφανισvτεί σvτην οθόνη το αποτέλεσvμα της
προηγούμενης πράξης. Για την είσvοδο αριθμών θα χρησvιμοποιήσvουμε το JOptionPane.showInputDialog(). Για την εμφάνισvη των μηνυμάτων την σvυνάρτησvη
System.out.println(). Σε περίπτωσvη που δοθεί λάθος επιλογή το μενού θα εμφανισvτεί και πάλι μέχρι ο χρήσvτης να δώσvει επιλογή σvτο διάσvτημα [1-6℄.
2.2
Υπολογισvμός του π
Το επόμενο πρόγραμμα παράγει και τυπώνει 1000 τυχαίους αριθμούς σvτο διάσvτημα
[0,1℄.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import j a v a . u t i l . ∗ ;
publi lass RandomNumbers
{
publi stati void
{
}
}
main ( S t r i n g arg [ ℄ )
Random gen=new Random ( ) ;
double x ;
int i ;
for ( i =1; i <=1000; i ++)
{
x=gen . nextDouble ( ) ;
System . out . p r i n t l n ( "new random = "+x ) ;
}
Πληκτρολογήσvτε και εκτελέσvτε το παραπάνω πρόγραμμα. Θα διαπισvτώσvετε πως σvε
κάθε εκτέλεσvη παράγει και διαφορετική σvειρά από τυχαίους αριθμούς. Αν θέλουμε
να παράγει σvε κάθε εκτέλεσvη τους ίδιους αριθμούς θα πρέπει να αλλάξουμε την
αρχικοποίησvη της γεννήτριας σvε Random gen=new Random(100); όπου 100 ο
σvπόρος για την γεννήτρια των τυχαίων αριθμών. Σκοπός αυτής της εργασvίας είναι
να εκτιμήσvουμε την τιμή του π με την χρήσvη τυχαίων αριθμών. Για να το κάνουμε
αυτό σvκεφτείτε το εξής: έσvτω ένα τετράγωνο με πλευρά α. Ο εγεγραμμένος
2
κύκλος σvτο τετράγωνο θα έχει το ίδιο κέντρο με το τετράγωνο και ακτίνα α/2.
Επομένως ο λόγος των δύο εμβαδών θα είναι
E(T )
4a2
4
a2
=
= a2 =
E(K)
πa2
π
π4
Αρα το π δινεται απο την εξισvωσvη π = 4E(K)
E(T ) Για να μπορεσvουμε να εκτιμησvουμε
με τυχαιους αριθμους το π απλα θα παρουμε πολλα τυχαια σvημεια που να ειναι εντος
4N 1
των οριων του τετραγωνου και αντι για τον λογο 4E(K)
E(T ) θα παρουμε τον λογο N 2
οπου Ν1 τα σvημεία εντός του κύκλου και Ν2 τα σvυνολικά σvημεία. Χρησvιμοποιήσvτε
όσvο το δυνατόν περισvσvότερες σvυναρτήσvεις για να υλοποιήσvετε αυτήν την εργασvία.
2.3
΄Ενας αριθμός ολογράφως
Το επόμενο πρόγραμμα βρίσvκει τα ψηφία ενός αριθμού αλλά ανάποδα:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import j a v a x . swing . ∗ ;
publi lass D i g i t s
{
publi stati void
{
int
);
main ( S t r i n g arg [ ℄ )
x=I n t e g e r . p a r s e I n t (
JOptionPane . showInputDialog ( " e n t e r x : " )
int d ;
while ( x !=0)
{
}
}
}
d=x%10;
System . out . p r i n t l n ( " D i g i t = "+d ) ;
x=x / 1 0 ;
Να γραφεί πρόγραμμα με την χρήσvη σvυναρτήσvεων που να εμφανίζει τα ψηφία ενός
αριθμού αντίσvτροφα αλλά ολογράφως. Δηλαδή αν δώσvουμε πχ τον αριθμό 129 θα
γράψει
DIGIT=nine
DIGIT=two
DIGIT=one
3