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

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

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

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

Δημοσίευσηαπό M.Jackson » 31 Μάιος 2010, 12:51

Εδώ θα γράφουμε το πρόβλημα και θα τα λύνουμε σε Java θα είναι καλό μέρος για νέους αρχάριους της Java για να διαβάζουν κώδικα και να μαθαίνουν!

Για όσους είναι νέοι στον χώρο της java εδώ οδηγός πως τρέχουμε προγράμματα java σε ubuntu από το terminal έτσι με συνδυασμό της άσκησης πιο κάτω θα μάθετε κάτι λίγο την ωραία και δυνατή αυτή γλώσσα. => εδώ: viewtopic.php?f=53&t=12804
Τελευταία επεξεργασία από M.Jackson και 21 Ιουν 2010, 22:52, έχει επεξεργασθεί 5 φορά/ες συνολικά
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

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

Δημοσίευσηαπό Dimitris » 31 Μάιος 2010, 21:45

σε python κάνει; 8-)

Spoiler: show
a = int(raw_input())
b = int(raw_input())
print a, b
b = a+b
a = b-a
b = b-a
print a, b
Τελευταία επεξεργασία από Dimitris και 31 Μάιος 2010, 21:57, έχει επεξεργασθεί 1 φορά/ες συνολικά
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό M.Jackson » 31 Μάιος 2010, 21:54

ναι! :)
Τελευταία επεξεργασία από M.Jackson και 07 Ιουν 2010, 21:10, έχει επεξεργασθεί 3 φορά/ες συνολικά
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

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

Δημοσίευσηαπό Dimitris » 31 Μάιος 2010, 22:05

Γράψε εσύ τώρα σε java ένα πρόγραμμα που να υπολογιζει το 2800 παραγοντικό (όχι προσεγγιστικά) σε 1-2 δευτερόλεπτα.
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό M.Jackson » 31 Μάιος 2010, 22:12

Κώδικας: Επιλογή όλων
public class program1{
public static void main (String args []){
int i;
long gin=1;
for (i=1; i<=2800; i++)
{gin=gin*i;}
System.out.println(gin);
}
}
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

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

Δημοσίευσηαπό Dimitris » 31 Μάιος 2010, 22:47

0 βγάζει αυτό που ανέβασες :P
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό idomeneas » 31 Μάιος 2010, 22:58

Dimitri Μη μου πεις :P Βάλε double και ίσως υπολογίσεις μέχρι 170!
Λειτουργικό ⇛ 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 [ΛΥΣΤΕ ΤΟ ΠΡΟΒΛΗΜΆ]

Δημοσίευσηαπό Dimitris » 31 Μάιος 2010, 23:06

Χα, σε έπιασα απρόσεκτο Ιδομενέα. Η λέξη κλειδί είναι metaprogramming και decorators (σε python ξέρω πώς γίνεται αλλά γίνεται και σε άλλες γλώσσες) Δες αυτό:


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

sys.setrecursionlimit(10000000)

class Memo(object):
__cache={}
def __init__(self, func):
self.__func = func
def __call__(self,*args):
try:
return self.__cache[args]
except KeyError:
value = self.__func(*args)
Memo.__cache[args] = value
return value

@Memo
def fibonacci(n):
if n in (0,1): return n
return fibonacci(n-1) + fibonacci(n-2)

print fibonacci(2800)
Άβαταρ μέλους
Dimitris
saintTUX
saintTUX
 
Δημοσιεύσεις: 1357
Εγγραφή: 13 Μάιος 2008, 13:57
Τοποθεσία: Θεσσαλονίκη
Εκτύπωση

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

Δημοσίευσηαπό M.Jackson » 31 Μάιος 2010, 23:06

βασικά στην πράξη είναι σωστό απλά φαντάσου όταν φτάσει στο 2719 * 2720 = 7395680 έβαλα και long αλλά πάλι δεν το χωράει
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

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

Δημοσίευσηαπό M.Jackson » 07 Ιουν 2010, 21:07

Να γραφεί πρόγραμμα στην java που θα δέχεται έναν άγνωστο αριθμό βαθμών μαθημάτων και να εμφανίζει το μέσο όρο και τον αριθμό των μαθημάτων που δόθηκαν με την έξης μορφή "Ο Μ.Ο των 10 μαθημάτων είναι 18,1". Το τέλος της εισόδου των μαθημάτων θα γίνεται όταν δοθεί για βαθμός το -1. Αν δοθεί μόνο το -1 να εμφανίζεται το μήνυμα "ΔΕΝ ΕΔΩΣΕΣ ΚΑΝΕΝΑ ΜΑΘΗΜΑ".
Κώδικας: Επιλογή όλων

import java.io.BufferedReader;
import java.io.InputStreamReader;
public class pro1{
public static void main (String args []) throws Exception{
int counter=0;
int sum=0;
BufferedReader ubuntu = new BufferedReader (new InputStreamReader(System.in));
System.out.print("Δώσε αριθμό: ");
String in;
in=ubuntu.readLine();
int x=Integer.parseInt(in);
if (x==-1){
System.out.println("ΔΕΝ ΕΔΩΣΕΣ ΚΑΝΕΝΑ ΜΑΘΗΜΑ!");}
else{
while(x!=-1){
sum=sum+x;
counter++;
System.out.print("Δώσε αριθμό: ");
String in;
in=ubuntu.readLine();
int x=Integer.parseInt(in);}}

if (counter!=0)
{double mo=sum/counter;
System.out.println("Ο Μ.Ο των " + counter + " μαθημάτων είναι " + mo);}
}
}
Άβαταρ μέλους
M.Jackson
daemonTUX
daemonTUX
 
Δημοσιεύσεις: 1053
Εγγραφή: 28 Μάιος 2010, 19:06
Εκτύπωση

Επόμενο

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