Chris10 Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 Όποιος γνωρίζει Java ας με βοηθήσει. Πρέπει να δημιουργήσω ένα πρόγραμμα που να μετατρέπει τους βαθμούς Fahrenheit σε Celcious.Από 0 έως 50 βαθμούς Fahrenheit να βγάζει τον αντίστοιχο βαθμό Celcious.Γράφω τον παρακάτω κώδικα: public static void main(String[] args) { float f, c; for (float f >= 0; f <= 50; f++) { System.out.print ("Enter temperature degree in f"); System.out.println (""); c = 5/9*(f-32); return c; } } και μου βγάζει μήνυμα ότι η σειρά που ξεκινά με την εντολή for είναι "illegal start of expression".Μήπως ξέρει κανείς τι κάνω λάθος;Ευχαριστώ εκ των προτέρων.
Chris10 Δημοσ. 2 Ιουνίου 2007 Μέλος Δημοσ. 2 Ιουνίου 2007 Δοκίμασε αυτό: for (f >= 0; f <= 50; f++) { Το δοκίμασα και μου βγάζει αυτή τη φορά μήνυμα "not a statement"
Keydo Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 Το δοκίμασα και μου βγάζει αυτή τη φορά μήνυμα "not a statement" Δοκίμασε for (f = 0; f <= 50; f++) { τότε, λογικά τώρα πρέπει να δουλέψει.
Chris10 Δημοσ. 2 Ιουνίου 2007 Μέλος Δημοσ. 2 Ιουνίου 2007 Δοκίμασε for (f = 0; f <= 50; f++) { τότε, λογικά τώρα πρέπει να δουλέψει. Τώρα πράγματι λύθηκε.Απλά επειδή πρέπει να τους βάλω σαν πίνακα αντιστοιχίας,κάποιο λάθος έχω κάνει στα system.out.print και δεν μου βγάζει τον αντίστοιχο βαθμό Celcious.Κάτι έχω παραλείψει ή κάτι δεν έχω κάνει σωστά.
Keydo Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 Τώρα πράγματι λύθηκε.Απλά επειδή πρέπει να τους βάλω σαν πίνακα αντιστοιχίας,κάποιο λάθος έχω κάνει στα system.out.print και δεν μου βγάζει τον αντίστοιχο βαθμό Celcious.Κάτι έχω παραλείψει ή κάτι δεν έχω κάνει σωστά. Γι αυτό το πρόβλημα σου δεν μπορώ να απαντήσω μιας και δεν ξέρω Java. Την απορία σου την έλυσα περισσότερο λόγω τύχης & επειδή γνωρίζω ότι στην C/C++ το παραπάνω θα χτύπαγε εξαιτίας του ότι δήλωνες δύο φορές την μεταβλητή f & λόγω του ότι δεν είχες δηλώσει σωστό "starting point" για το f μέσα στο for loop.
charllestone Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 μα στην for δεν έχεις λόγο να αρχίζεις με f>=0. Η αρχική συνθήκη πρέπει να είναι = με κάτι(εδώ το 0). και νομίζω οτι στη c πρέπει να βάλεις 9/5 και όχι 5/9 δες το λίγο σου κάνει? import java.io.*; class testa { public static void main(String[] args) { // double c=0; convert(); } static void convert() { double c=0; for (double f=0; f<=50;f++) { System.out.println (""); System.out.print ("Enter temperature degree in f"); System.out.println (""); String line; InputStreamReader input=new InputStreamReader(System.in); BufferedReader in=new BufferedReader(input); try{ line=in.readLine(); f=Double.parseDouble(line); }catch(Exception e){} c = (9/5)*(f-32); System.out.println ("you typed "+f); System.out.println ("The temperature degree in C is: "+c); } } }
vagpap Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 Απλά επειδή πρέπει να τους βάλω σαν πίνακα αντιστοιχίας,κάποιο λάθος έχω κάνει στα system.out.print και δεν μου βγάζει τον αντίστοιχο βαθμό Celcious.Κάτι έχω παραλείψει ή κάτι δεν έχω κάνει σωστά. Για αρχή, έχεις δηλώσει τη μέθοδό σου σαν void, δηλαδή ότι δεν έχει κάτι προς επιστροφή, αλλά μέσα στη ρουτίνα κάνεις return. Αυτό κανονικά χτυπάει error κατά το compile. Μέσα στο for-loop μην κάνεις >return c; αλλά >System.out.print(c); Έτσι θα σου γράψει στην κονσόλα την τιμή που θες. Επίσης, όταν κάνεις πράξεις με float τα νούμερα που χρησιμοποιείς πρέπει να φροντίσεις να είναι και αυτά float. Πιο συγκεκριμένα αντικατέστησε την εντολή: > c = (9/5)*(f-32); με > c = (9f/5f)*(f-32f); Έτσι θα δηλώσεις ότι το 9,5,32 είναι float και όχι int.
mariosCS Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 Όποιος γνωρίζει Java ας με βοηθήσει. Πρέπει να δημιουργήσω ένα πρόγραμμα που να μετατρέπει τους βαθμούς Fahrenheit σε Celcious.Από 0 έως 50 βαθμούς Fahrenheit να βγάζει τον αντίστοιχο βαθμό Celcious.Γράφω τον παρακάτω κώδικα: public static void main(String[] args) { float f, c; for (float f >= 0; f <= 50; f++) { System.out.print ("Enter temperature degree in f"); System.out.println (""); c = 5/9*(f-32); return c; } } και μου βγάζει μήνυμα ότι η σειρά που ξεκινά με την εντολή for είναι "illegal start of expression".Μήπως ξέρει κανείς τι κάνω λάθος;Ευχαριστώ εκ των προτέρων. τελικά δεν κατάλαβα... θέλεις απλά να εμφανίζει τις θερμοκρασίες από 0-50 Φαρ. σε Κελσίου? ή θέλεις ο χρήστης να δίνει μία τιμή από 0-50 σε βαθμούς φάρ. και να τους κάνει το πρόγραμμα κελσίου ?
mariosCS Δημοσ. 2 Ιουνίου 2007 Δημοσ. 2 Ιουνίου 2007 λοιπόν, επειδή ίσως μπερδεύτηκες από τις πολλές διορθώσεις :-P σου έκανα και τα δύο... αν θέλεις να εμφανίζει από βαθμούς 0-50 φάρεναϊτ σε κελσίου, απλά, χωρίς να ρωτάει κάτι το χρήστη, ο κώδικας είναι αυτός: -------------------------------------------------------------------------- public class FtoC { public static void main(String args[]) { double c; for (int f=0;f<=50;f++) { c=9; c=5/c; c=c*(f-32); System.out.println ("Farenait "+f+" = "+c+" Celcioum"); }//for }//main }//FtoC -------------------------------------------------------------------------- Εάν θέλεις να ρωτάει το χρήστη και ανάλογα με το τι θερμοκρασία Φάρεναϊτ βάζει, να βγάζει την αντίστοιχη κελσίου, ο κώδικας είναι αυτός: ------------------------------------------------------------------------- import java.util.Scanner; public class FtoC_user { public static void main(String args[]) { boolean calcMore=true; int f,more; Scanner s = new Scanner(System.in); while (calcMore){ System.out.println("Give degrees in Farenait"); f=s.nextInt(); System.out.println ("Farenait "+f+" = "+Calc(f)+" Celcioum"); System.out.println ("\nDo you want to calculate another? (1=yes 2=no)"); more = s.nextInt(); if (more!=1) calcMore=false; }//while calcMore System.out.println ("\n ---GoodBye---"); }//main public static double Calc(int f) { double kel; kel=9; kel=5/kel; kel=kel*(f-32); return kel; }//Calc }//FtoC_user -------------------------------------------------------------------------- Εννοείτε ότι θα πρέπει να τα βάλεις σε αρχεία .java με ονομασία FtoC.java και FtoC_user.java αντίστοιχα ... Μπορείς να δεις ότι οι τιμές που βγάζει είναι σωστές, πηγαίνοντας εδώ: http://users.ioa.sch.gr/ilamprou/Unit.htm στο τέλος της σελίδας. Αν έχεις κάποια απορία στο κώδικα, στείλε pm ή εδώ... cheers
Chris10 Δημοσ. 2 Ιουνίου 2007 Μέλος Δημοσ. 2 Ιουνίου 2007 λοιπόν, επειδή ίσως μπερδεύτηκες από τις πολλές διορθώσεις :-P σου έκανα και τα δύο... αν θέλεις να εμφανίζει από βαθμούς 0-50 φάρεναϊτ σε κελσίου, απλά, χωρίς να ρωτάει κάτι το χρήστη, ο κώδικας είναι αυτός: -------------------------------------------------------------------------- public class FtoC { public static void main(String args[]) { double c; for (int f=0;f<=50;f++) { c=9; c=5/c; c=c*(f-32); System.out.println ("Farenait "+f+" = "+c+" Celcioum"); }//for }//main }//FtoC -------------------------------------------------------------------------- Εάν θέλεις να ρωτάει το χρήστη και ανάλογα με το τι θερμοκρασία Φάρεναϊτ βάζει, να βγάζει την αντίστοιχη κελσίου, ο κώδικας είναι αυτός: ------------------------------------------------------------------------- import java.util.Scanner; public class FtoC_user { public static void main(String args[]) { boolean calcMore=true; int f,more; Scanner s = new Scanner(System.in); while (calcMore){ System.out.println("Give degrees in Farenait"); f=s.nextInt(); System.out.println ("Farenait "+f+" = "+Calc(f)+" Celcioum"); System.out.println ("\nDo you want to calculate another? (1=yes 2=no)"); more = s.nextInt(); if (more!=1) calcMore=false; }//while calcMore System.out.println ("\n ---GoodBye---"); }//main public static double Calc(int f) { double kel; kel=9; kel=5/kel; kel=kel*(f-32); return kel; }//Calc }//FtoC_user -------------------------------------------------------------------------- Εννοείτε ότι θα πρέπει να τα βάλεις σε αρχεία .java με ονομασία FtoC.java και FtoC_user.java αντίστοιχα ... Μπορείς να δεις ότι οι τιμές που βγάζει είναι σωστές, πηγαίνοντας εδώ: http://users.ioa.sch.gr/ilamprou/Unit.htm στο τέλος της σελίδας. Αν έχεις κάποια απορία στο κώδικα, στείλε pm ή εδώ... cheers Σε ευχαριστώ φίλε mariosCS.Η λύση που ζήταγα είναι η δεύτερη.Το έβαλα στον compiler και μου δούλεψε.Να'σαι καλά
mariosCS Δημοσ. 3 Ιουνίου 2007 Δημοσ. 3 Ιουνίου 2007 να' σαι καλά! γενικά για java, μεγάλο βοήθημα είναι το http://java.sun.com/j2se/1.5.0/docs/api/ έχει όλες τις μεθόδους και παραδείγματα πως χρησιμοποιούνται cheers 8)
Heironious Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 Επίσης, όταν κάνεις πράξεις με float τα νούμερα που χρησιμοποιείς πρέπει να φροντίσεις να είναι και αυτά float. Πιο συγκεκριμένα αντικατέστησε την εντολή: > c = (9/5)*(f-32); με > c = (9f/5f)*(f-32f); Έτσι θα δηλώσεις ότι το 9,5,32 είναι float και όχι int. Εψαχνα τη λυση του συγκεκριμενου προβληματος απο το google και βρηκα αυτο το θεμα. Ευχαριστω για το παραπανω. Το προβλημα μου ηταν το οτι δεν ειχα βαλει τα f (για float, d για double) στην παρασταση.
Heironious Δημοσ. 27 Ιανουαρίου 2009 Δημοσ. 27 Ιανουαρίου 2009 Επίσης, όταν κάνεις πράξεις με float τα νούμερα που χρησιμοποιείς πρέπει να φροντίσεις να είναι και αυτά float. Πιο συγκεκριμένα αντικατέστησε την εντολή: > c = (9/5)*(f-32); με > c = (9f/5f)*(f-32f); Έτσι θα δηλώσεις ότι το 9,5,32 είναι float και όχι int. Εψαχνα τη λυση του συγκεκριμενου προβληματος απο το google και βρηκα αυτο το θεμα. Ευχαριστω για το παραπανω. Το προβλημα μου ηταν το οτι δεν ειχα βαλει τα f (για float, d για double) στην παρασταση.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.