Τα πάντα για την java

...του ubuntu και έργων ΕΛ/ΛΑΚ (Έργα-Οδηγοί-Προτάσεις)

Συντονιστής: konnn

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 09 Ιαν 2012, 14:06

Ευχαριστώ πολυ άπαντες για τον χρόνο και τις επισημάνσεις. ;)

Τελικά έφτιαξα αυτο που ήθελα :

Κώδικας: Επιλογή όλων

import java.util.Scanner;
import java.io.* ;

public class function {

static int dunami(int x)
{
int result=x*x;
return result;
}


public static void main(String args[])
{
int x;
int c;
Scanner input = new Scanner(System.in);

System.out.print ("Give me an int : ") ;
x=input.nextInt();

c=dunami(x);

System.out.printf("The result is : %d " ,c);

}

}


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

Btw μ αρεσε η System.out.printf σαν συνάρτηση στην Java για stdout και αρα θα χρησιμοποιώ αυτη διοτι θυμίζει κατι απο C :D
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό pc_magas » 09 Ιαν 2012, 17:39

Σπίσεις να μην ξεχνάμε και το API της java:
http://docs.oracle.com/javase/6/docs/ap ... mmary.html
My blog|Κυπριακή Κοινότητα Ελευθέρου Λογισμικού Λογισμικού ανοικτού Κώδικα
Γνώσεις Linux:Ποτέ αρκετές|Προγραμματισμός: Php, javascript, nodejs, python, bash |Aγγλικά:Καλά
Οι υπολογιστές μου:
Spoiler: show
Ubuntu 16.04 64 bit σεIntel(R) Pentium(R) CPU G4400 @ 3.30GHz, 16Gib Ram, 500Gib Hard Disk, και κάρτα γραφικών Nvidia Geforce GT610
Lubuntu 14.04 σε Dell Inspiron mini 10(1010) intel Atom Z500 1Gb ram και gma500 (εδώθη σε άλλον)
Kubuntu 16.04 Lenovo G70 Intel i5 Nvidia Grapgics Card, Intel Graphics card (έχει 2) με Nouveau, 16Gb RAM, 126GB SSD Σκληρό Δίσκο
Άβαταρ μέλους
pc_magas
powerTUX
powerTUX
 
Δημοσιεύσεις: 2599
Εγγραφή: 12 Απρ 2009, 18:55
Τοποθεσία: Αχαρναί Αττικής
Launchpad: pc_magas
IRC: pc_magas
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 09 Ιαν 2012, 18:29

Star_Light έγραψε:ΣΤην είσοδο το έχω το προβλημα....

Κώδικας: Επιλογή όλων
import java.io.* ;

public class function {

static int dunami(int x)
{
return x*x;
}

static BufferedReader numberObject =
new BufferedReader (new InputStreamReader(System.in)) ;

public static void main(String args[])
{
int number;

System.out.print ("Give me an int : ") ;
//= Integer.parseInt (numberObject.readLine()) ;

int retValue=dunami(2);


System.out.println(retValue);

}

}


αμα καταργησω την γραμμή που επιχειρεί να δημιουργήσει ενα νεο αντικείμενο εισόδου τοτε δουλεύει μια χαρα το προγραμμα...
αλλα με προκαθορισμένη τιμή (εδω το 2) σαν παράμετρο μεσα στην συνάρτηση και οχι τυχαία εισοδο που δινει ο χρήστης.

Οι δύο παρακάτω ζητάνε αριθμό μέχρι να τους δώσεις ακέραιο.

Κώδικας: Επιλογή όλων
import java.io.*;

public class Input {
private BufferedReader buffer;
private int number;

public Input() {
try {
buffer = new BufferedReader(new InputStreamReader(System.in));
readNumber();
buffer.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private void readNumber() throws IOException {
try {
System.out.print("Enter the number: ");
number = Integer.parseInt(buffer.readLine());
System.out.println("The result is :" + ( number*number ));
} catch (NumberFormatException ne) {
System.out.println("You must enter integer number.");
readNumber();
}
}
public static void main(String args[]) {
new Input();
}
}

(ή έτσι είναι το ίδιο)

Κώδικας: Επιλογή όλων
import java.io.*;

public class InputObject {
private BufferedReader buffer;
private int number;

public InputObject() {
buffer = new BufferedReader(new InputStreamReader(System.in));
}
private void readNumber() {
try {
System.out.print("Enter the number: ");
number = Integer.parseInt(buffer.readLine());
System.out.println("The result is :" + ( number*number ));
} catch (NumberFormatException ne) {
System.out.println("You must enter integer number.");
readNumber();
} catch (IOException ie) {
ie.printStackTrace();
}
}
public static void main(String args[]) {
new InputObject().readNumber();
}
}

Οι παρακάτω δύο αν δε πάρουν ακέραιο τερματίζουν.Είναι πιο απλές.

Κώδικας: Επιλογή όλων
import java.io.*;

public class InputThis {
private BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
private int number;

public void readNumber() {
try {
System.out.print("Enter the number: ");
number = Integer.parseInt(buffer.readLine());
System.out.println("The result is :" + ( number*number ));
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
public static void main(String args[]) {
new InputThis().readNumber();
}
}

Αν θες να την static να τη χρησιμοποιείς χωρίς να φτιάξεις αντικείμενο.

Κώδικας: Επιλογή όλων
import java.io.*;

public class InputStatic {

public static void readNumber() {
BufferedReader buffer = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.print("Enter the number: ");
int number = Integer.parseInt(buffer.readLine());
System.out.println("The result is :" + ( number*number ));
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
public static void main(String args[]) {
InputStatic.readNumber();
}
}
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 09 Ιαν 2012, 20:54

Aκομη δεν εχω παει στο κεφάλαιο με το exception handling :P
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 09 Ιαν 2012, 21:10

Star_Light έγραψε:Aκομη δεν εχω παει στο κεφάλαιο με το exception handling :P

Τότε χρησιμοποίησε το σαν τυφλοσούρτι.
Λογικά γι'αυτό δε σου έπαιζε.
Όταν δε σου παίζει κάτι καλό είναι να παραθέτεις και το stack trace ώστε να βλέπουμε τι συμβαίνει.

Eπειδή μπορεί να συμβούν διάφορα όπως να μη δώσεις int ή να μην υπάρχει κάτι να διαβάσεις
πρέπει να περιέχεις τον κώδικα σε ένα try catch block,ώστε όταν συμβεί κάτι τέτοιο να
μην κρασάρει το πρόγραμμα άλλα να ελενξει την κατάσταση.

Βάζε το κώδικα μέσα σε μία try και στο catch βάζε Exception e,που περιέχει όλα τα είδη exception.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 09 Ιαν 2012, 22:26

Οχι μωρε ντάξ , θα κάτσω τωρα να δω τα exceptions και να παρω μια ιδεα -.-
και θα ερθω να κανουμε συζητηση.

EDIT: Καλή πηγή στα ελληνικά για τα exceptions -> http://www.scribd.com/doc/58439271/8/Exceptions

EDIT2 : Εντάξει τα είδα τα Exceptions . Χρησιμοποιείς και το NumberFormatException πιο πανω αν δεν μπορεσει
να γινει η μετατροπη αντικειμενου απο String σε αριθμο .
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 09 Ιαν 2012, 23:23

Η συνέχεια και του δικού μου κώδικα προηγουμένως βάζοντας μέσα το exception

Κώδικας: Επιλογή όλων


import java.util.Scanner;
import java.io.* ;

public class function {

static int dunami(int x)
{
int result=x*x;
return result;
}


public static void main(String args[])
{
int x;
int c;
Scanner input = new Scanner(System.in);

try{
System.out.print ("Give me an int : ") ;
x=input.nextInt();

c=dunami(x);

System.out.printf("The result is : %d " ,c);
} catch (Exception e)
{
System.out.println(" Κάτι δεν πάει καλα με αυτον τον κώδικα ");
}

}

}


EDIT: Για να καταλάβει κάποιος Πότε δεν πάει καλα κατι με το πρόγραμμα.... μπορεί να δώσει σαν είσοδο ένα string οταν του ζητηθεί ενας ακέραιος.

ΠΧ =>


Give me an int : ΗΕΛΛΟ
Κάτι δεν πάει καλα με αυτον τον κώδικα
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 10 Ιαν 2012, 00:55

Προσθέτω και μια for στο παραπάνω δημιουργώντας ενα νεο αντικείμενο εισόδου input2

αλλα μου χτυπαει στο for

Κώδικας: Επιλογή όλων


import java.util.Scanner;
import java.io.* ;

public class function {

static int dunami(int x)
{
int result=x*x;
return result;
}


public static void main(String args[])
{
int x,y;
int c;

Scanner input1 = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);

System.out.println("Poses fores thes na ektelestei to programma?");
y=input2.nextInt();


for(int i=0; i<input2; i++)
{
try{
System.out.print ("Give me an int : ") ;
x=input1.nextInt();

c=dunami(x);

System.out.printf("The result is : %d " ,c);
} catch (Exception e)
{
System.out.println(" Κάτι δεν πάει καλα με αυτον τον κώδικα ");
}

}

}
}


Κώδικας: Επιλογή όλων
for(int i=0; i<input2; i++)


στο i<input2 λεει -> The operator < is undefined for the argument type(s) int, Scanner

EDIT: LOL. Τι στόκμαν !

Κώδικας: Επιλογή όλων
for( int i=0; i<y; i++)


δουλευει ο κωδικας... εφοσον αναθέτω την τιμή στην μεταβλητή y.
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό giannosfor » 10 Ιαν 2012, 01:27

Star_Light έγραψε: Για να καταλάβει κάποιος Πότε

Μ'αρέσεις γιατί στό ένα post ρωτάς και στο άλλο διδάσκεις :lol:

Star_Light έγραψε: Scanner input1 = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);


Αυτό δε χρειάζεται.
Χρησιμοποίησε ένα αντικείμενο Scanner.
Δες το παράδειγμα μου http://forum.ubuntu-gr.org/viewtopic.php?f=6&t=20974&start=30

Κώδικας: Επιλογή όλων
import java.io.* ;
Ίσως να μη χρειάζεται.
1 Γνώσεις Linux: Καθόλου ┃ Προγραμματισμού: Ικανοποιητικό ┃ Αγγλικών: Ικανοποιητικό
2 Ubuntu 12.04 precise 3.2.0-58-generic 32bit (en_US.UTF-8, Unity ubuntu), Ubuntu 3.2.0-57-generic, Microsoft Windows XP Professional
3 Intel Core2 Duo CPU E4600 2.40GHz ‖ RAM 2012 MiB ‖ ASUS INC. P5Q - � P5Q
4 nVidia G94 [GeForce 9600 GT] [10de:0622] {nvidia}
5 eth0: Qualcomm Atheros AR8121/AR8113/AR8114 Gigabit or Fast Ethernet [1969:1026] (rev b0) ⋮ wlan0: 148f:3070 Ralink Technology, Corp. RT2870/RT3070 Wireless Adapter
Άβαταρ μέλους
giannosfor
punkTUX
punkTUX
 
Δημοσιεύσεις: 297
Εγγραφή: 24 Απρ 2011, 20:24
Τοποθεσία: Ηράκλειο
Εκτύπωση

Re: Απορίες σε java

Δημοσίευσηαπό Star_Light » 10 Ιαν 2012, 01:39

giannosfor έγραψε:
Μ'αρέσεις γιατί στό ένα post ρωτάς και στο άλλο διδάσκεις :lol:

:lol: :lol: :lol: αφου ειμαι γεννημένος προγραμματιστής :D

Star_Light έγραψε: Scanner input1 = new Scanner(System.in);
Scanner input2 = new Scanner(System.in);


O giannosfor έγραψε:Αυτό δε χρειάζεται.
Χρησιμοποίησε ένα αντικείμενο Scanner.

Κώδικας: Επιλογή όλων
import java.io.* ;
Ίσως να μη χρειάζεται.


Σύμφωνοι!!!

Eπισης οι μεταβλητές που δηλώνω μπορούν να περιοριστούν και σε μια γραμμή

Κώδικας: Επιλογή όλων
int x,y,c;
Γνώσεις ⇛ Linux: Βασικές ┃ Προγραμματισμός: Δέν θέλω μεροκάματο , θέλω C και κακο θάνατο! ┃ Αγγλικά: Lower
Λειτουργικό ⇛ Ubuntu 10.10 σε Dual Boot με Windows 7
Προδιαγραφές ⇛ Επεξεργαστής : Intel(R) Core(TM) i3 CPU 540 @3.07Ghz (64bit)
RAM : Kingston 2GB
HDD : Coreshare 500GB
Κάρτα Γραφικών : Intel Corporation Core Processor Integrated Graphics Controller(rev 18) (prog-if 00 [VGA controller]) [8086:0042]
Star_Light
superbTUX
superbTUX
 
Δημοσιεύσεις: 2787
Εγγραφή: 01 Μάιος 2010, 21:07
Τοποθεσία: Αθήνα
IRC: Star_Light
Εκτύπωση

ΠροηγούμενηΕπόμενο

Επιστροφή στο Ανάπτυξη Λογισμικού / Αλγόριθμοι