Δευτέρα 9 Νοεμβρίου 2009

Μέθοδοι Αλφαριθμητικών - Strings

/*
* Ένα πρόγραμμα σε Java που χρησιμοποιεί τις μεθόδους της String
*/
public class String_Methods{
public static void main(String[] args){
String S1 = "I love Java";
System.out.println("Το αλφαριθμητικό είναι : "+S1);
int a = S1.length(); //a=11
System.out.println("Το πληθος χαρακτήρων είναι : "+ a);
char b = S1.charAt(8);
System.out.println("Ο 9ος χαρακτήρας είναι : "+b); //epistrefei -->a
int c = S1.indexOf('a');
System.out.println("Η πρώτη εμφάνιση του χαρακτήρα 'a': "+c); //emfanisi tou 'a'-->8
//emfanisi tou 'a' apo tin 9th-->10
int e = S1.indexOf('a', 9);
System.out.println("Η εμφάνιση του 'a' από την 9 θέση και μετά : "+e);
int f = S1.indexOf("Java");
System.out.println("Η λέξη Java υπάρχει σητν θέση : "+f); //"Java"-->apo thn 7
//"ava" xekinontas apo thn 3 thesi--> 8
int g = S1.indexOf("ava", 3);
System.out.println("Η λέξη 'ava' από την 3η θέση και μετά : "+g);
int h = S1.lastIndexOf('v');
System.out.println("Ο τελευταίος 'v' χαρακτήρας στην θέση : "+h); //teleytaio 'v'-->9
//teleytaio mexri ti thesi 6, 'v'-->4
int i = S1.lastIndexOf('v', 6);
System.out.println("Το τελευταίο 'v' μέχρι την θέση 6: "+i);
int k = S1.lastIndexOf("Java");
System.out.println("Τελευταία εφμάνιση της 'Java' στην θέση : "+k); //"Java"-->apo thn 7
//"ava" mexri ti thesi 5 --> -1 (den yparxei)
i = S1.lastIndexOf("ava", 5);
System.out.println("Εμφάνιση της 'ava' μέχρι την 5η θέση: "+i);
String s2 = S1.substring(5);
System.out.println("To substring apo tin thesi 5: "+ s2); //-->e Java
String s3 = S1.substring(7, 9);
System.out.println("To substring apo ton 7 eos 9: "+s3); //-->Ja
String s4 = S1.replace('o', 'u');
System.out.println("H antikatastasi tou 'o' me to 'u': "+s4); //-->I luve Java
String s5 = (" My trim test ");
String s6 = s5.trim();
System.out.println("To String xoris ta kena: "+s6); //-->My trim test
boolean x = s5.equals(S1);
System.out.println("Einai ta dyo Strings isa? "+x); //h apantisi-->false
int m = s5.compareTo(S1);
System.out.println("H diafora tvn dyo Strings se sygkrisi: "+m);
boolean y = S1.startsWith("I love");
System.out.println("Arxizei to String me tis lexeis 'I love' ? "+y);
boolean z = S1.endsWith("ok");
System.out.println("Teleivnei to String me to 'ok' ? "+z);
}
}

Παρασκευή 30 Οκτωβρίου 2009

Ένα πρόγραμμα που χρησιμοποιεί δομή while ... continue ... break

import java.util.*;
import java.io.*;
public class game1{
public static void main (String args[]) throws IOException{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader line=new BufferedReader(input);
int a,b,c;
int c1;
int sostes=0;
int lathos=0;
String s;
// δημιουργούμε μία επανάληψη και τερματίζεται με χρήση των continue και break;
while(1==1) {
a=(int) Math.round(Math.random()*10);
b=(int) Math.round(Math.random()*10);
System.out.print(a+"+"+b+"=");
s=line.readLine();
c=Integer.parseInt(s);
if(c==a+b) {
System.out.println("Σωστά...."+a+"+"+b+"="+(a+b));
sostes++;}
else {
System.out.println("Λάθος ..... "+a+"+"+b+"="+(a+b));
lathos++;}
System.out.print("Πατήστε 1 για επανάληψη :");
s=line.readLine();
c1=Integer.parseInt(s);
if(c1==1) continue;
break;
}
System.out.println("Σωστές : "+sostes+ " Λάθος :"+lathos);
} //Kleisimo main
}//Kleisimo class

Παρασκευή 23 Οκτωβρίου 2009

Τελεστές

Οι τελεστές είναι ειδικά σύμβολα που χρησιμοποιούνται για μαθηματικές συναρτήσεις, για κάποιους τύπους προτάσεων εκχώρησης και για λογικές συγκρίσεις.

 
Οι αριθμητικοί τελεστές είναι αυτοί που χρησιμοποιούνται για να κάνουν βασικές αριθμητικές πράξεις και στη java και είναι 5:

  • πρόσθεση: +  
  • αφαίρεση: –
  • πολλαπλασιασμός: *
  • διαίρεση: /
  • υπόλοιπο διαίρεσης: %
 
Η πράξη που χρειάζεται ιδιαίτερη προσοχή είναι η διαίρεση. Αν το αποτέλεσμα της διαίρεσης αποθηκευτεί σε έναν ακέραιο τότε το αποτέλεσμα της πράξης θα είναι η στρογγυλοποίηση του αριθμού στο ακέραιο μέρος.

 
 Οι τελεστές εκχώρησης είναι ο “=” και οι συνδυασμοί τελεστών εκχώρησης και αριθμητικών τελεστών. Για παράδειγμα

 
  • x+=y ισοδυναμεί με x=x+y
  • x-=y ισοδυναμεί με x=x-y
  • x*=y ισοδυναμεί με x=x*y
  • x/=y ισοδυναμεί με x=x/y
  • x%=y ισοδυναμεί με x=x%y
 
Μοναδιαίοι τελεστές είναι οι τελεστές προσαύξησης ή μείωσης που αυξάνουν ή μειώνουν την τιμή μιας μεταβλητής κατά 1.

  
  • x++; (αυξάνει την τιμή του x κατά 1) 
  • x--; (μειώνει την τιμή του x κατά 1)

 
  Οι τελεστές αυτοί είναι τελεστές προθέματος και τελεστές επιθέματος. Για παράδειγμα:

 
  
1.   int x,y,z;

2.   x=12;

3.   y=x++;

4.   z=++x;

 
Στην γραμμή 3 το y γίνεται ίσο με το x δηλαδή παίρνει την τιμή 12 και στη συνέχεια το x αυξάνεται κατά 1 και ισούτε τώρα με 13. Στη συνέχεια στη γραμμή 4 το x αυξάνεται κατά 1 και η τιμή του είναι 14 ενώ το z παίρνει την τιμή του x αφού ολοκληρωθεί η προσαύξηση. Επομένως η τιμή του z είναι 14.

 
Ο τελεστής προθέματος αυξάνει την τιμή της μεταβλητής και στη συνέχεια την χρησιμοποιεί. Αντίθετα ο τελεστής επιθέματος αυξάνει τη μεταβλητή αφού εκείνη έχει προηγουμένως χρησιμοποιηθεί.

 
  
Οι τελεστές σύγκρισης χρησιμοποιούνται για να κάνουμε συγκρίσεις σε μεταβλητές. Οι τελεστές αυτοί χρησιμοποιούνται σε εκφράσεις και επιστρέφουν boolean τιμές.

 

Τελεστές σύγκρισης είναι οι εξής:

 
  • == ισότητας (επιστρέφει true αν οι μεταβλητές είναι ίσες)
  • != ανισότητας (επιστρέφει true αν οι μεταβλητές δεν είναι ίσες)
  •  < μικρότερο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μικρότερη)
  •  >  μεγαλύτερο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μεγαλύτερη)
  •  <= μικρότερο ή ίσο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μικρότερη ή ίση με την μεταβλητή στα δεξιά)
  •  >= μεγαλύτερο ή ίσο (επιστρέφει true αν η μεταβλητή στα αριστερά είναι μεγαλύτερη ή ίση με την μεταβλητή στα δεξιά)

Οι λογικοί τελεστές χρησιμοποιούνται για να συνδυαστούν εκφράσεις που παράγουν λογικές τιμές. Χρησιμοποιούνται για τους λογικούς συνδυασμούς and, or, xor, και το λογικό not και είναι οι παρακάτω:

 

&, &&  χρησιμοποιούνται για να εκφράσουν το λογικό and και επιστρέφουν true αν και οι δύο λογικές εκφράσεις είναι true.

 

| , || χρησιμοποιούνται για να εκφράσουν το λογικό or και επιστρέφουν true αν τουλάχιστον μία από τις δύο λογικές εκφράσεις είναι true.

  
^ : χρησιμοποιείται για να εκφράσει το λογικό xor και επιστρέφει true μόνο αν οι δύο λογικές εκφράσεις είναι η μία true και η άλλη false.

  
! : χρησιμοποιείται για να εκφράσει το λογικό not και επιστρέφει true μόνο αν η λογική έκφραση είναι false.

 
 
Παρατήρηση: Για το λογικό and και το λογικό or χρησιμοποιούνται 2 τελεστές (&, && για το and και  || για το or). Η διαφορά τους έγγειται στην εργασία που κάνει η Java για να αποτιμήσει την έκφραση. Έτσι αν χρησιμοποιήσουμε τον τελεστή && αποτιμάται αρχικά η αριστερή πλευρά και αν είναι false δεν χρειάζεται να αποτιμηθεί η δεύτερη. Ομοίως αν η έκφραση στα αριστερά του || αποτιμηθεί σε true δεν υπάρχει λόγος να αποτιμηθεί η δεξιά πλευρά.

 
  
Ο τελεστής + όταν χρησιμοποιείται σε συμβολοσειρές ενώνει τις 2 συμβολοσειρές σε μία πρόταση. Για παράδειγμα:

 

String name = “IEK”;

 

System.out.println( name + " Katerinis);

 

Οι δύο παραπάνω γραμμές κώδικα δίνουν σαν αποτέλεσμα

 
 IEK Katerinis

 
 
 Η προτεραιότητα των τελεστών που έχουμε μάθει έως τώρα με φθίνουσα σειρά έχει ως εξής:

 

•Μοναδιαίοι τελεστές

 

•Αριθμητικοί τελεστές

 

•Τελεστές σύγκρισης

 

•Λογικοί τελεστές

 

•Τελεστές εκχώρησης

 
 Σε τελεστές με την ίδια προτεραιότητα ισχύει η προτεραιότητα της πράξης στα αριστερά. Οι τελεστές της ίδιας ομάδας δεν έχουν την ίδια προτεραιότητα. Για παράδειγμα η πρόσθεση έχει μικρότερη προτεραιότητα από τον πολλαπλασιασμό. Χρησιμοποιούμε παρενθέσεις αν δεν είμαστε βέβαιοι για την προτεραιότητα.

 

Μαθηματικές συναρτήσεις της Java

Όλες χρησιμοποιούνται με το πρόθεμα "Math."
Παράδειγμα:   double x = Math.cos(Math.PI / 5.);

Field Summary


static double E

The double value that is closer than any other to e, the base of the natural logarithms.

static double PI

The double value that is closer than any other to pi, the ratio of the circumference of a circle to its diameter.



Method Summary

static double abs(double a)

Returns the absolute value of a double value.

static float abs(float a)

Returns the absolute value of a float value.

static int abs(int a)

Returns the absolute value of an int value.

static long abs(long a)

Returns the absolute value of a long value.

static double acos(double a)

Returns the arc cosine of an angle, in the range of 0.0 through pi.

static double asin(double a)

Returns the arc sine of an angle, in the range of -pi/2 through pi/2.

static double atan(double a)

Returns the arc tangent of an angle, in the range of -pi/2 through pi/2.

static double atan2(double a, double b)

Converts rectangular coordinates (b, a) to polar (r, theta).

static double ceil(double a)

Returns the smallest (closest to negative infinity) double value that is not less than the argument and is equal to a mathematical integer.

static double cos(double a)

Returns the trigonometric cosine of an angle.

static double exp(double a)

Returns the exponential number e (i.e., 2.718...) raised to the power of a double value.

static double floor(double a)

Returns the largest (closest to positive infinity) double value that is not greater than the argument and is equal to a mathematical integer.

static double IEEEremainder(double f1, double f2)

Computes the remainder operation on two arguments as prescribed by the IEEE 754 standard.

static double log(double a)

Returns the natural logarithm (base e) of a double value.

static double max(double a, double b)

Returns the greater of two double values.

static float max(float a, float b)

Returns the greater of two float values.

static int max(int a, int b)

Returns the greater of two int values.

static long max(long a, long b)

Returns the greater of two long values.

static double min(double a, double b)

Returns the smaller of two double values.

static float min(float a, float b)

Returns the smaller of two float values.

static int min(int a, int b)

Returns the smaller of two int values.

static long min(long a, long b)

Returns the smaller of two long values.

static double pow(double a, double b)

Returns of value of the first argument raised to the power of the second argument.

static double random()

Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0.

static double rint(double a)

Returns the double value that is closest in value to a and is equal to a mathematical integer.

static long round(double a)

Returns the closest long to the argument.

static int round(float a)

Returns the closest int to the argument.

static double sin(double a)

Returns the trigonometric sine of an angle.

static double sqrt(double a)

Returns the correctly rounded positive square root of a double value.

static double tan(double a)

Returns the trigonometric tangent of an angle.

static double toDegrees(double angrad)

Converts an angle measured in radians to the equivalent angle measured in degrees.

static double toRadians(double angdeg)

Converts an angle measured in degrees to the equivalent angle measured in radians.

Τετάρτη 21 Οκτωβρίου 2009

Ένα πρόγραμμα που χρησιμοποιεί την if για να κάνουμε πολλαπλούς ελέγχους

import java.util.*;


import java.io.*;

public class xarakt_foit{



public static void main(String args[ ])throws IOException{

InputStreamReader input=new InputStreamReader(System.in);

BufferedReader line=new BufferedReader(input);

String s;

double bathmos;

System.out.print("Δώσε Βαθμό : ");

s=line.readLine();

bathmos=Double.parseDouble(s);

if(bathmos>=18.5)

System.out.println("Άριστα...");

else if(bathmos>=16)

System.out.println("Πολύ καλά ...");

else if(bathmos>=13.5)

System.out.println("Καλά...");

else if(bathmos>=9.5)

System.out.println("Σχεδόν Καλά");

else

System.out.println("Απορρίπτεται...");

}

}

Δευτέρα 19 Οκτωβρίου 2009

Ένα πρόγραμμα που διαβάζει από το πληκτρολόγιο 2 αριθμούς και εμφανίζει τις πράξεις μεταξύ των δύο αριθμών

import java.util.*;
import java.io.*;
public class ask5{
public static void main(String args[ ])throws IOException{
InputStreamReader input=new InputStreamReader(System.in);
BufferedReader line=new BufferedReader(input);
String s;
double d1,d2;
System.out.print("a=");
s=line.readLine();
d1=Double.parseDouble(s);
System.out.print("b=");
s=line.readLine();
d2=Double.parseDouble(s);
System.out.println(d1+"+"+d2+"="+(d1+d2));
System.out.println(d1+"-"+d2+"="+(d1-d2));
System.out.println(d1+"*"+d2+"="+(d1*d2));
System.out.println(d1+"/"+d2+"="+(d1/d2));
}
}