Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

...ασύγχρονα μαθήματα από τους guru της κοινότητας

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

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό lostinmyworld » 27 Αύγ 2010, 18:11

Με λίγες γνώσεις Java προσπάθησα και έφτιαξα αυτό:
Ένα πρόγραμμα που μετατρέπει από το δεκαδικό προς το δυαδικό σύστημα. Δέχεται ως είσοδο τον δεκαδικό αριθμό (ακόμη και με κλασματικό μέρος αρκεί να οριστεί με τελεία, π.χ. 996.55) και επιστρέφει το δυαδικό αποτέλεσμα.
Προσπάθησα να το φτιάξω όσο πιο κοντά στον τρόπο που υπολογίζουμε και εμείς το αποτέλεσμα..
Κώδικας: Επιλογή όλων
import javax.swing.*;

class toBin {

    int integer;            //το ακέραιο μέρος του αριθμού
    float real;             //το κλασματικό μέρος του αριθμού     
    StringBuffer result=new StringBuffer();

    toBin(float real){      //παίρνει ως είσοδο αριθμό και ξεχωρίζει το ακέραιο
        integer=(int) real;         //από το κλασματικό μέρος
        this.real=real-integer;
    }

    void toBinary(){
       
        for(int i=0;integer>0;i++){
            //εργαζόμαστε όπως θα κάναμε και θεωρητικά
            if(integer%2!=0){
                integer--;
                result.append('1');
                }
            else {
                result.append('0');
                }
            integer=(int)integer/2;
            }

        result.reverse();
//    αν έχει κλασματικό μέρος το θέτουμε επιπλέον στο result(αποτέλεσμα)
        if(real!=0.00){
            result.append('.');
            do{
                real*=2;
                result.append((int)real);
                real-=(int)real;
             }while(real!=0.0000);
        }
    }

   
    void show(){        //εμφανίζει το δυαδικό αποτέλεσμα
        JOptionPane.showMessageDialog(null, "The number in binary is\n"+result
                ,"result",JOptionPane.INFORMATION_MESSAGE);
    }
}

Και η κλάση που φτιάχνει το αντικείμενο (και περιέχει τη main)..
Κώδικας: Επιλογή όλων
import javax.swing.*;

public class decToBin {

    public static void main(String args[]){
        String s=JOptionPane.showInputDialog(null, "Write a number",
                "decimal to binary",JOptionPane.QUESTION_MESSAGE);

        if(s!=null){        //αν δόθηκε κάτι να δημιουργηθεί αντικείμενο
            toBin binary=new toBin(Float.parseFloat(s));
            binary.toBinary();
            binary.show();
        }
    }
}

Spoiler: show
Δεν έχω βάλει όριο στους αριθμούς οπότε πιστεύω αυτό εξαρτάται από την μνήμη του εκάστοτε υπολογιστή, σωστά; Οπότε μην βάλετε και τεράστιους αριθμούς.... :oops:

Off topic:
Λοιπόν, πώς σας φαίνεται;
http://lostinmyworld222.wordpress.com
http://lostinmyworld.e-science.gr/
Spoiler: show
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃C, Java (όσα μπορείς να μάθεις στη σχολή)┃Αγγλικά: Δεν μου χρειάζονται...
Ubuntu 10.04 σε Acer TravelMate 2492WLMi
Προδιαγραφές ⇛ Επεξεργαστής: Intel Celeron M 420 (1.60 GHz, 533 MHz FSB, 1 MB L2 cache) │
Μνήμη: 512 MB DDR2 │ Κάρτα Γραφικών: Intel Graphics Media Accelerator 950 │ Κάρτα Ασύρματη │ Κάρτα Ήχου │ Οθόνη & Ανάλυση: 15.4" WXGA wide TFT LCD
lostinmyworld
babeTUX
babeTUX
 
Δημοσιεύσεις: 107
Εγγραφή: 21 Ιούλ 2008, 14:20
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό kelas » 29 Αύγ 2010, 14:10

παιδιά,θέλω την βοήθειά σας...
Προσπαθώ απο ενα αρχείο MyFile.txt να προσθέσω λέξεις σε έναν πίνακα μιας SQL database κ δεν τα καταφέρνω..

MySQL Table Syntax
Κώδικας: Επιλογή όλων
CREATE TABLE `DbJava` (
  `name` text NOT NULL,
  `surname` text NOT NULL,
  `telefon` text NOT NULL,
  `country` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1


java code:
Spoiler: show
Κώδικας: Επιλογή όλων
import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;

public class InsertTextFileToMySQL {

  public static Connection getConnection() throws Exception {

    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/DbJava","root","182100");
    return conn;
  }

  @SuppressWarnings("null")
public static void main(String[] args)throws Exception {
    String name = "name" ;
    String firstname = "firstname";
    String telefon = "telefon" ;
    String country = "country";
   
    DataInputStream dis = null;
    FileInputStream fis = null;
    PreparedStatement pstmt = null;
    Connection conn = null;
    try {
      conn = getConnection();
      conn.setAutoCommit(false);
      File file = new File("/home/kelas/Desktop/MyFile.txt");
      fis = new FileInputStream(file);
      while (dis.available() != 0) {
         pstmt = conn.prepareStatement("insert into Kelas(name, firstname, telefon,country) values (?, ?, ?, ?)");
         pstmt.setString(1, name);
         pstmt.setString(2, firstname);
         pstmt.setString(3, telefon);
         pstmt.setString(4, country);
         pstmt.setAsciiStream(4, fis, (int) file.length());
         pstmt.executeUpdate();
         conn.commit();
      }
    } catch (Exception e) {
      System.err.println("Error: " + e.getMessage());
      e.printStackTrace();
    } finally {
      pstmt.close();
      fis.close();
      conn.close();
    }
  }
}

και το error:
Spoiler: show
Κώδικας: Επιλογή όλων
Error: com.mysql.jdbc.Driver
java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
   at java.lang.Class.forName0(Native Method)
   at java.lang.Class.forName(Class.java:169)
   at InsertTextFileToMySQL.getConnection(InsertTextFileToMySQL.java:12)
   at InsertTextFileToMySQL.main(InsertTextFileToMySQL.java:29)
Exception in thread "main" java.lang.NullPointerException
   at InsertTextFileToMySQL.main(InsertTextFileToMySQL.java:47)

Επειδή την πέμπτη δίνω δικτυακό προγραμματισμό αν κάποιος δεν βαριέται please να με βοηθήσει...
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃ Αγγλικά:Μέτρια
kelas
babeTUX
babeTUX
 
Δημοσιεύσεις: 4
Εγγραφή: 30 Δεκ 2008, 00:10
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό alkismavridis » 16 Σεπ 2010, 17:37

Παιδιά είμαι αρχάριος στην java, και προσπαθώ να μάθω μόνος μου! Οπότε συγγνώμη αν οι απορίες μου είναι παιδαριώδεις!
Απλά θέλω να ρωτήσω ποιός είναι ο απλούστερος τρόπος να διαβάσει το πρόγραμμα ένα αριθμό ή ένα String από το χρήστη (το αντίστοιχο cin στη c++ ή το READ*, στη fortran). Επίσης πως θα τυπώνω πολλά στοιχεία σε ένα Sytem.out;; Έχω βρει σαν λύση το printf αλλά μου φαίνεται λίγο περίπλοκο...
πχ για να τυπώσω σε μία σειρά το i και το i^2 τι γράφω;
Γνώσεις ⇛ Linux: Μέτριο┃ Προγραμματισμός: Java, Assembly, Fortran, μαθαίνω C/X11┃ Αγγλικά: Μέτρια
Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 14.04 64-bit ┃ Τρόπος εγκατάστασης: Live USB
Προδιαγραφές ⇛ Desktop: Intel i5 2320 3.00GHz.┃ MotherBoard: Asus p8h61 -m pro
Προδιαγραφές ⇛ RAM: 4GB ┃ Τροφοδοτικό Corsair CX430

GPU: Intel 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] {i915}
5 eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06) ⋮ wlan0: 0b05:1723 ASUS WL-167G v2 802.11g Adapter [Ralink RT2571W]
Οθόνη Schaub Lorenz (Tv)
alkismavridis
punkTUX
punkTUX
 
Δημοσιεύσεις: 273
Εγγραφή: 18 Μαρ 2009, 18:46
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό lostinmyworld » 16 Σεπ 2010, 21:30

Η εκτύπωση που λες (στην κονσόλα) είναι κάπως έτσι
Κώδικας: Επιλογή όλων
System.out.println("Το i είναι ίσο με "+i+" ενώ το i^2 είναι ίσο με "+i*i)

Υπάρχει και System.out.print() αλλά το παραπάνω βάζει αυτόματα μία γραμμή πριν γράψει το εσωτερικό των παρενθέσεων (println=print line και μετά εκτύπωση ότι υπάρχει στις παρενθέσεις..
Ένας καλός :thumbup: :thumbup: compiler είναι ο Netbeans (υπάρχει και στο Κέντρο Λογισμικού)..
Τώρα για είσοδο κοίτα και αυτά, δεν είναι άσχημα αν και αρκετά καλό είναι και το swing
http://download.oracle.com/javase/tutorial/essential/io/
Off topic:
Ελπίζω να βοήθησα...
http://lostinmyworld222.wordpress.com
http://lostinmyworld.e-science.gr/
Spoiler: show
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃C, Java (όσα μπορείς να μάθεις στη σχολή)┃Αγγλικά: Δεν μου χρειάζονται...
Ubuntu 10.04 σε Acer TravelMate 2492WLMi
Προδιαγραφές ⇛ Επεξεργαστής: Intel Celeron M 420 (1.60 GHz, 533 MHz FSB, 1 MB L2 cache) │
Μνήμη: 512 MB DDR2 │ Κάρτα Γραφικών: Intel Graphics Media Accelerator 950 │ Κάρτα Ασύρματη │ Κάρτα Ήχου │ Οθόνη & Ανάλυση: 15.4" WXGA wide TFT LCD
lostinmyworld
babeTUX
babeTUX
 
Δημοσιεύσεις: 107
Εγγραφή: 21 Ιούλ 2008, 14:20
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό idomeneas » 16 Σεπ 2010, 21:41

lostinmyworld έγραψε:Ένας καλός :thumbup: :thumbup: compiler είναι ο Netbeans (υπάρχει και στο Κέντρο Λογισμικού)..
O NetBeans είναι IDE και όχι compiler. Χρησιμοποιεί compilers...
Λειτουργικό ⇛ Ubuntu 10.04 64 bit σε HP Pavilion dv7-3110ev
Προδιαγραφές φορητού ⇛ Core i3 2.13 GHz │ 3 GB │ nVidia G105M │ Broadcom 4357 │ Bluetooth ? │ Realtek HD Audio │ 17.3"
Λειτουργικό ⇛ Ubuntu 10.04 32 bit/Win XP σε desktop
Προδιαγραφές desktop ⇛ Pentium 4 3 GHz │ 2 GB DDR │ Sapphire ATi Radeon HD3450 512MB AGP │ Μητρική: Asus P5V800-MX
idomeneas
seniorTUX
seniorTUX
 
Δημοσιεύσεις: 738
Εγγραφή: 09 Απρ 2010, 15:47
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό lostinmyworld » 16 Σεπ 2010, 21:43

idomeneas έγραψε:
lostinmyworld έγραψε:Ένας καλός :thumbup: :thumbup: compiler είναι ο Netbeans (υπάρχει και στο Κέντρο Λογισμικού)..
O NetBeans είναι IDE και όχι compiler. Χρησιμοποιεί compilers...

Ναι ναι :thumbup: sorry, γλώσσεψα την μπέρδα μου... :problem: :problem: :problem:
http://lostinmyworld222.wordpress.com
http://lostinmyworld.e-science.gr/
Spoiler: show
Γνώσεις ⇛ Linux: Χαμηλό ┃ Προγραμματισμός: Ναι ┃C, Java (όσα μπορείς να μάθεις στη σχολή)┃Αγγλικά: Δεν μου χρειάζονται...
Ubuntu 10.04 σε Acer TravelMate 2492WLMi
Προδιαγραφές ⇛ Επεξεργαστής: Intel Celeron M 420 (1.60 GHz, 533 MHz FSB, 1 MB L2 cache) │
Μνήμη: 512 MB DDR2 │ Κάρτα Γραφικών: Intel Graphics Media Accelerator 950 │ Κάρτα Ασύρματη │ Κάρτα Ήχου │ Οθόνη & Ανάλυση: 15.4" WXGA wide TFT LCD
lostinmyworld
babeTUX
babeTUX
 
Δημοσιεύσεις: 107
Εγγραφή: 21 Ιούλ 2008, 14:20
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό M.Jackson » 16 Σεπ 2010, 22:04

για να διαβασεις ενα string ή οτι αλλο κανεις το εξεις..

import java.io.*;
public class program{
public static void main (String args []) throws Exception{

BufferedReader input = new BufferedReader (new InputStreamReader(System.in)) // dimiourgoume tin entoli gia na diavasoume

String x = input.readLine() // afti akrivos i grami diavazi to x san String kai mono to input ine to antikimeno pio panoo kai to readLine ine i entoli

// gia na diavasis Integer i double ktl prepi na ton diavasis os String arxika kai meta na ton metatrepsis se integer sou dixno ton tropo pio kato an thelis omos string den kanis tin pio kato entoli

int y = Integer.parseInt(x); // afto ekane to x se integer!

System.out.println("test: " + y);
}
}
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό alkismavridis » 16 Σεπ 2010, 22:56

ΟΚ!!
από ότι είδα σε ένα site μπορείς επίσης να διαβάσεις από το πληκτρολόγιο με το import java.util.*; και μετά να δημιουργήσεις ένα Scanner που να έχει όρισμα το System.in, δηλαδή
Scanner pc = new Scanner(System.in);
1) Υπάρχει κάποια διαφορά στις δύο μεθόδους; αν ναι ποιά είναι καλύτερη;;
2) Πως μπορώ με μία εντολή να διαβάσω 2 τιμές, όπως στην Fortran πατούσα απλώς READ*, X, Y και έτσι του έδινα με τη μία και το X και το Y. γίνεται κάτι τέτοιο;
3)Πως μπορώ να τυπώσω στην οθόνη δύο αριθμούς (έστω X και Y) χωρίς να παρεμβάλεται κείμενο; Αν βάλω τον τελεστή + όπως θα έκανα αν υπήρχε κείμενο, τότε το πιάνει σαν πρόσθεση!! Έχω βρει την printf αλλά σκεφτόμουν μήπως γινόταν και με την print ή την println..Γίνεται;
Ευχαριστώ!
Γνώσεις ⇛ Linux: Μέτριο┃ Προγραμματισμός: Java, Assembly, Fortran, μαθαίνω C/X11┃ Αγγλικά: Μέτρια
Λειτουργικό σε Η/Υ ϰ μοντέλο: Ubuntu 14.04 64-bit ┃ Τρόπος εγκατάστασης: Live USB
Προδιαγραφές ⇛ Desktop: Intel i5 2320 3.00GHz.┃ MotherBoard: Asus p8h61 -m pro
Προδιαγραφές ⇛ RAM: 4GB ┃ Τροφοδοτικό Corsair CX430

GPU: Intel 2nd Generation Core Processor Family Integrated Graphics Controller [8086:0102] {i915}
5 eth0: Realtek RTL8111/8168B PCI Express Gigabit Ethernet controller [10ec:8168] (rev 06) ⋮ wlan0: 0b05:1723 ASUS WL-167G v2 802.11g Adapter [Ralink RT2571W]
Οθόνη Schaub Lorenz (Tv)
alkismavridis
punkTUX
punkTUX
 
Δημοσιεύσεις: 273
Εγγραφή: 18 Μαρ 2009, 18:46
Εκτύπωση

Re: Java Programming [ΛΥΝΟΥΜΕ ΠΡΟΒΛΗΜΑΤΑ]

Δημοσίευσηαπό M.Jackson » 03 Νοέμ 2010, 22:34

1) όπια σε βολεύει περισσότερο προσωπικά την BufferedReafer.
3) System.out.println(x + " " + y); γιατί αν είναι integer και γράψεις x+y θα κάνει πρόσθεση!
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Προηγούμενη

Επιστροφή στο Το Σχολείο του Φόρουμ - Ασύγχρονα Μαθήματα