Page 1 of 2
προγραμματιστικη απορια
Posted: Wed Jan 31, 2007 3:45 pm
by criwart
γεια
για λυστε μου το κολλημα εαν θελετε
πως μπορω να δω παραπανω ψηφια εφ'οσον με περιοριζει το οριο που εχουν οι
ματαβλητες και ο τυπος τους
π.χ single 7 ψηφια double 15 ψηφια decimal 28 ψηφια
εγω θελω να υπολογισω 1000 1000000 κοκ ψηφια για τον αριθμο π (3,14)
περιοριζομαι ομως διοτι βγαζει 3,141525355356348 και σταματα
πως το πετυχαινουμε αυτο
Posted: Wed Jan 31, 2007 3:48 pm
by P3
Σε ποια γλώσσα αναφέρεσαι?
Posted: Wed Jan 31, 2007 7:15 pm
by criwart
σε visual basic
Posted: Wed Jan 31, 2007 9:23 pm
by mikem4600
Χρησιμοποιείς τη
μέθοδο format της τάξης string για να ορίσεις πόσα δεκαδικά θα εμφανίζονται.
Posted: Wed Jan 31, 2007 10:01 pm
by criwart
με αυτον τον τροπο τα δεκαδικα ψηφια ειναι απεριοριστα ? οσο αντεχει η μνημη μου ?
δηλαδη οταν θα τρεξω το προγραμμα με τον μαθηματικο τυπο με τις απειροσειρες ο οποιος υπολογιζει 1-2 η και δεκα εκατ ψηφια για τον pi θα μπορεσω να τα δω?
Posted: Wed Jan 31, 2007 10:27 pm
by mikem4600
Κατ' αρχάς, τα δεκαδικά ψηφία ποτέ δεν είναι απεριόριστα. Ένας 64-bit αριθμός (δηλ. double, που είναι και ο πιο μεγάλος που υποστηρίζουν τα περισσότερα frameworks) έχει χοντρικά 20 δεκαδικά ψηφία, άρα μην περιμένεις εκατομμύρια ψηφία. Αν πράγματι θες τόσα ψηφία, πρέπει να χρησιμοποιήσεις κάποια ειδική υλοποίηση για πραγματικούς αριθμούς για αυτή τη δουλειά, η οποία θα έχει και δικές της μεθόδους για εμφάνιση στην οθόνη ή εγγραφή σε αρχείο κτλ. Π.χ. στην Java υπάρχει η
BigDecimal, την οποία θεωρητικά μπορείς να χρησιμοποιήσεις και μέσω J#, ενώ για .NET (δηλ. Visual Basic) είδα ότι υπάρχει η
BigInteger. Ψάχνοντας μπορεί να βρεις κι άλλες.
Edit: Παρεπιπτόντως, το πρόγραμμά σου ίσως να έχει κάποιο bug, γιατί λες ότι αρχικά βγάζει 3,141525355356348 ενώ απ' όσο ξέρω τα πρώτα 5 δεκαδικά του π είναι 3,14159.
Posted: Wed Jan 31, 2007 10:36 pm
by criwart
mikem4600 wrote:Κατ' αρχάς, τα δεκαδικά ψηφία ποτέ δεν είναι απεριόριστα. Ένας 64-bit αριθμός (δηλ. double, που είναι και ο πιο μεγάλος που υποστηρίζουν τα περισσότερα frameworks) έχει χοντρικά 20 δεκαδικά ψηφία, άρα μην περιμένεις εκατομμύρια ψηφία. Αν πράγματι θες τόσα ψηφία, πρέπει να χρησιμοποιήσεις κάποια ειδική υλοποίηση για πραγματικούς αριθμούς για αυτή τη δουλειά, η οποία θα έχει και δικές της μεθόδους για εμφάνιση στην οθόνη ή εγγραφή σε αρχείο κτλ. Π.χ. στην Java υπάρχει η
BigDecimal, την οποία θεωρητικά μπορείς να χρησιμοποιήσεις και μέσω J#, ενώ για .NET (δηλ. Visual Basic) είδα ότι υπάρχει η
BigInteger. Ψάχνοντας μπορεί να βρεις κι άλλες.
δηλαδη με την μεθοδο format της ταξης string ποσα ψηφια θα παρεις ?
Posted: Wed Jan 31, 2007 10:38 pm
by mikem4600
criwart wrote:δηλαδη με την μεθοδο format της ταξης string ποσα ψηφια θα παρεις ?
Το πολύ όσα υποστηρίζονται από τον τύπο του αριθμού που χρησιμοποιείς.
Posted: Wed Jan 31, 2007 10:52 pm
by criwart
mikem4600 wrote:criwart wrote:δηλαδη με την μεθοδο format της ταξης string ποσα ψηφια θα παρεις ?
Το πολύ όσα υποστηρίζονται από τον τύπο του αριθμού που χρησιμοποιείς.
αρα για πιο λογο το παραθεσες εκεινο αφου δεν μπορει να μου δωσει πολλα ψηφια ? το αλλο ενταξει αξιζει τον κοπο
Posted: Wed Jan 31, 2007 11:14 pm
by mikem4600
criwart wrote:αρα για πιο λογο το παραθεσες εκεινο αφου δεν μπορει να μου δωσει πολλα ψηφια ?
Γιατί μέχρι τότε υπέθετα ότι σου έκαναν οι built-in τύποι που ανέφερες, οπότε αρκούσε να χρησιμοποιήσεις την format. Μετά έγραψες κάτι για απειροσειρές και υπέθεσα ότι δεν σου φτάνουν.
Posted: Wed Jan 31, 2007 11:25 pm
by criwart
mikem4600 wrote:criwart wrote:αρα για πιο λογο το παραθεσες εκεινο αφου δεν μπορει να μου δωσει πολλα ψηφια ?
Γιατί μέχρι τότε υπέθετα ότι σου έκαναν οι built-in τύποι που ανέφερες, οπότε αρκούσε να χρησιμοποιήσεις την format. Μετά έγραψες κάτι για απειροσειρές και υπέθεσα ότι δεν σου φτάνουν.
νομιζω οτι υπαρχουν site που δινουν κωδικα για διαφορες εφαρμογες
εχεις μηπως υπ'οψιν σου που θα μπορουσα να βρω τον κωδικα σε vbasic
τωρα εαν ειναι και σε pascal η c δεν πειραζει αν και βασικα σε vbasic θα ηθελα
μιλαμε για τον κωδικα περιεχει τα παντα και τον μαθηματικο τυπο με απειροσειρες και τα σχετικα για να βγαζει ατελειωτα δεκαδικα ψηφια
ολο τον κωδικα του προγραμματος σε vbasic
υ.γ μονο καμια γκομενα δεν ζηταω αλλα ενταξει δεν πειραζει..χα χα
υ.γ2 εαν μπορεις να κανεις κατι για αυτο που ζητω αναμενω..οποτε μπορεις
θελω να μελετησω τον κωδικα

Posted: Thu Feb 01, 2007 9:43 am
by Erevodifwntas
Καλημέρα και καλώς μας ήρθες στο forum. μάλλον εγώ θα γίνω ο κακός της υπόθεσης...
criwart wrote:mikem4600 wrote:criwart wrote:αρα για πιο λογο το παραθεσες εκεινο αφου δεν μπορει να μου δωσει πολλα ψηφια ?
Γιατί μέχρι τότε υπέθετα ότι σου έκαναν οι built-in τύποι που ανέφερες, οπότε αρκούσε να χρησιμοποιήσεις την format. Μετά έγραψες κάτι για απειροσειρές και υπέθεσα ότι δεν σου φτάνουν.
ένας λόγος θα ήταν γιατί θα μπορούσε να σε βοηθήσει γενικά μια τέτοια συνάρτηση (ας πουμε αν το πάρεις σοβαρά το πράγμα και αποφασίσεις να φτιάξεις μόνος σου την αντίστοιχη κλάση που θες και να χρησιμοποιείς αυτή τη συνάρτηση για να εκτύπώνεις τους δικούς σου BigIntegers ή Bigdouble)
criwart wrote:
νομιζω οτι υπαρχουν site που δινουν κωδικα για διαφορες εφαρμογες
εχεις μηπως υπ'οψιν σου που θα μπορουσα να βρω τον κωδικα σε vbasic
τωρα εαν ειναι και σε pascal η c δεν πειραζει αν και βασικα σε vbasic θα ηθελα
Σωστά υπάρχουν πολλά τέτοια sites... Google is your friend...
criwart wrote:
μιλαμε για τον κωδικα περιεχει τα παντα και τον μαθηματικο τυπο με απειροσειρες και τα σχετικα για να βγαζει ατελειωτα δεκαδικα ψηφια
ολο τον κωδικα του προγραμματος σε vbasic
υ.γ μονο καμια γκομενα δεν ζηταω αλλα ενταξει δεν πειραζει..χα χα
...
criwart wrote:
υ.γ2 εαν μπορεις να κανεις κατι για αυτο που ζητω αναμενω..οποτε μπορεις
θελω να μελετησω τον κωδικα
(Ξέρω ότι σε αυτό θα έπρεπε να απαντήσει ο MikeM, αλλά....) μάλλον θα αναμένεις για πολύ καιρό... γενικά το forum δεν είναι για να λύνει εργασίες, αλλά για να βοηθά κάποιον να καταλάβει κάποια πράγματα. αν έχεις κάποια απορία, κάποια δυσκολία τότε θα χαρούμε όλοι να βοηθήσουμε. αλλά το να λύσουμε ολόκληρη εργασία είναι κάπως too much (ειδικά όταν είναι και τα πρώτα σου post σε ολόκληρο το forum).
Posted: Thu Feb 01, 2007 11:50 am
by vangos
Στη Visual Basic δεν μπορώ να σε βοηθήσω γιατί δεν αξιώθηκα ποτέ μου να μάθω. Στη Java πάντως αν θες να κάνεις κάτι αντίστοιχο μπορείς να χρησιμοποιήσεις την κλάση BigDecimal του πακέτου java.math.
Αυτή σου επιτρέπει να χειρίζεσαι και να κάνεις πράξεις με πάρα πολλά δεκαδικά ψηφία (δεν ξέρω πόσα ακριβώς). Φυσικά οι πράξεις θα είναι πιο αργές σε σχέση με τους αντίστοιχους πρωταρχικούς τύπους (βλ. double).
Για περισσότερα
εδώ.
Posted: Thu Feb 01, 2007 2:16 pm
by criwart
Erevodifwntas wrote:Καλημέρα και καλώς μας ήρθες στο forum. μάλλον εγώ θα γίνω ο κακός της υπόθεσης...
criwart wrote:mikem4600 wrote:
Γιατί μέχρι τότε υπέθετα ότι σου έκαναν οι built-in τύποι που ανέφερες, οπότε αρκούσε να χρησιμοποιήσεις την format. Μετά έγραψες κάτι για απειροσειρές και υπέθεσα ότι δεν σου φτάνουν.
ένας λόγος θα ήταν γιατί θα μπορούσε να σε βοηθήσει γενικά μια τέτοια συνάρτηση (ας πουμε αν το πάρεις σοβαρά το πράγμα και αποφασίσεις να φτιάξεις μόνος σου την αντίστοιχη κλάση που θες και να χρησιμοποιείς αυτή τη συνάρτηση για να εκτύπώνεις τους δικούς σου BigIntegers ή Bigdouble)
criwart wrote:
νομιζω οτι υπαρχουν site που δινουν κωδικα για διαφορες εφαρμογες
εχεις μηπως υπ'οψιν σου που θα μπορουσα να βρω τον κωδικα σε vbasic
τωρα εαν ειναι και σε pascal η c δεν πειραζει αν και βασικα σε vbasic θα ηθελα
Σωστά υπάρχουν πολλά τέτοια sites... Google is your friend...
criwart wrote:
μιλαμε για τον κωδικα περιεχει τα παντα και τον μαθηματικο τυπο με απειροσειρες και τα σχετικα για να βγαζει ατελειωτα δεκαδικα ψηφια
ολο τον κωδικα του προγραμματος σε vbasic
υ.γ μονο καμια γκομενα δεν ζηταω αλλα ενταξει δεν πειραζει..χα χα
...
criwart wrote:
υ.γ2 εαν μπορεις να κανεις κατι για αυτο που ζητω αναμενω..οποτε μπορεις
θελω να μελετησω τον κωδικα
(Ξέρω ότι σε αυτό θα έπρεπε να απαντήσει ο MikeM, αλλά....) μάλλον θα αναμένεις για πολύ καιρό... γενικά το forum δεν είναι για να λύνει εργασίες, αλλά για να βοηθά κάποιον να καταλάβει κάποια πράγματα. αν έχεις κάποια απορία, κάποια δυσκολία τότε θα χαρούμε όλοι να βοηθήσουμε. αλλά το να λύσουμε ολόκληρη εργασία είναι κάπως too much (ειδικά όταν είναι και τα πρώτα σου post σε ολόκληρο το forum).
φιλε γεια σου
κατ'αρχην καθε ανθρωπος ειναι ελευθερος να πρατει οπως θελει....ετσι και εσυ...δεν θα σε κατακρινω..αυτο ειναι δικαιωμα σου
τωρα για να ξεκαθαρισω τη θεση μου
δεν ειμαι ουτε φοιτητης αλλα ουτε και σε καποια ιδιωτικη σχολη στην οποια μου εβαλαν μια εργασια και ψαχνω πως θα την λυσω (αν και ετσι να ηταν δεν βλεπω τιποτα κακο)
απλα ετσι μου την εδωσε με το συγκεκριμενο προβλημα και αρχισα να το ψαχνω..βρικα και την σελιδα σας και μιας και την ειδα ενδιαφερουσα γραφτηκα και postαρισα
βασικα θα ηθελα να δω τον κωδικα και να τον μελετησω για να βγαλω καποια ακρη
τωρα εαν καποιος ακομη και εσυ μπορει να τον βρει και να μου πει μιας και λογω που ασχολειστε ξερετε πως θα τον βρειτε πιο ευκολα και γρηγορα απο εμενα
οπως και να εχει παντως δεν τρεχει τιποτα...το πολυ πολυ να ξεσκιστω να ψαχνω μεσω του google

Ο τροπος ειναι αλλος.Θελεις "πατεντα"
Posted: Wed Aug 01, 2007 12:29 am
by Base the Bass
Αδερφε,προγραμματιζω 13 χρονια σε VB.Κι εγω κανω τετοια πειραματα οπως εσυ.Να θυμασαι οτι ανεξαρτητως απο τους περιορισμους της καθε γλωσσας,ανεξαρτητως απο οτιδηποτε διαβασεις για τον "επισημο" τροπο να κανεις κατι,ολα γινονται.Με δικια σου πατεντα.
Το προβλημα σου λυνεται ως εξης:οπως σωστα ειπαν τα παιδια δεν μπορεις να παρακαμψεις ευκολα το προβλημα με τις υπαρχουσες μεταβλητες της VB.Γ@@@ε τες λοιπον και φτιαξε τον δικο σου τυπο μεταβλητης με τα απειρα ψηφια,οχι οσα μπορει να αντεξει η μνημη του υπολογιστη,αλλα πραγματικα απειρα.
πως γινεται αυτο:
χρειαζεται να μετατρεψεις τον αλγοριθμο που υπολογιζει το π,σε αλγοριθμο που υπολογιζει το εξης:
Αν σου δωσω τα Ν ψηφια του π,μπορεις να μου πεις ποιο θα ειναι το ν+1?
αν βρεις αυτο τον αλγοριθμο το προβλημα σου λυθηκε
παρε το επομενο ψηφιο κ τυπωσε το στην οθονη.Ξεχνα τους τυπους μεταβλητων με 64 bytes κ λοιπες αηδιες.Αυτα ειναι για τους κοινους θνητους που κανουν υπολογισμους για να φτιαξουν παιχνιδια,δεν ειναι για τους θεωρητικους μαθηματικους σαν και σενα!
Και να θυμασαι οτι ο υπολογιστης δεν υπολογιζει σωστα τους δεκαδικους!μπορει πχ ο υπολογιστης να επιμενει οτι 7+3=9.99999999999(οι αριθμοι ειναι παραδειγμα,αλλα το εχω παθει με καποιο αλλο ζευγος αριθμων!).Αυτο οφειλεται στο οτι ο υπολογιστης για οικονομια μνημης και εισ βαρος της ακριβειας,θυμαται τους αριθμους ως δυναμη καποιου αλλου αριθμου,και "χανει" καποια δεκαδικα ψηφια βλεπε IEEE floating point notation
Posted: Sat Sep 01, 2007 12:56 am
by Serendipity
η ερωτηση μου αφορα javascript.προσπαθω να εμφανισω στην ιστοσελιδα μου ιπταμενα φυλλανα πεφτουν αλλα ο κωδικας που βρηκα δν μου λειτουργει καμια προταση?
Code: Select all
<!-- this script got from www.javascriptfreecode.com-Coded by: Krishna Eydatoula -->
<script language="JavaScript1.2">
//Pre-load your image below!
grphcs=new Array(6)
Image0=new Image();
Image0.src=grphcs[0]="http://javascriptfreecode.com/images/barg.gif";
Image1=new Image();
Image1.src=grphcs[1]="http://javascriptfreecode.com/images/barg.gif"
Image2=new Image();
Image2.src=grphcs[2]="http://javascriptfreecode.com/images/barg.gif"
Image3=new Image();
Image3.src=grphcs[3]="http://javascriptfreecode.com/images/barg.gif"
Image4=new Image();
Image4.src=grphcs[4]="http://javascriptfreecode.com/images/barg.gif"
Image5=new Image();
Image5.src=grphcs[5]="http://javascriptfreecode.com/images/barg.gif"
Amount=8; //Smoothness depends on image file size, the smaller the size the more you can use!
Ypos=new Array();
Xpos=new Array();
Speed=new Array();
Step=new Array();
Cstep=new Array();
ns=(document.layers)?1:0;
ns6=(document.getElementById&&!document.all)?1:0;
if (ns){
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write("<LAYER NAME='sn"+i+"' LEFT=0 TOP=0><img src="+rndPic+"></LAYER>");
}
}
else{
document.write('<div style="position:absolute;top:0px;left:0px"><div style="position:relative">');
for (i = 0; i < Amount; i++){
var P=Math.floor(Math.random()*grphcs.length);
rndPic=grphcs[P];
document.write('<img id="si'+i+'" src="'+rndPic+'" style="position:absolute;top:0px;left:0px">');
}
document.write('</div></div>');
}
WinHeight=(ns||ns6)?window.innerHeight:window.document.body.clientHeight;
WinWidth=(ns||ns6)?window.innerWidth-70:window.document.body.clientWidth;
for (i=0; i < Amount; i++){
Ypos[i] = Math.round(Math.random()*WinHeight);
Xpos[i] = Math.round(Math.random()*WinWidth);
Speed[i]= Math.random()*5+3;
Cstep[i]=0;
Step[i]=Math.random()*0.1+0.05;
}
function fall(){
var WinHeight=(ns||ns6)?window.innerHeight:window.document.body.clientHeight;
var WinWidth=(ns||ns6)?window.innerWidth-70:window.document.body.clientWidth;
var hscrll=(ns||ns6)?window.pageYOffset:document.body.scrollTop;
var wscrll=(ns||ns6)?window.pageXOffset:document.body.scrollLeft;
for (i=0; i < Amount; i++){
sy = Speed[i]*Math.sin(90*Math.PI/180);
sx = Speed[i]*Math.cos(Cstep[i]);
Ypos[i]+=sy;
Xpos[i]+=sx;
if (Ypos[i] > WinHeight){
Ypos[i]=-60;
Xpos[i]=Math.round(Math.random()*WinWidth);
Speed[i]=Math.random()*5+3;
}
if (ns){
document.layers['sn'+i].left=Xpos[i];
document.layers['sn'+i].top=Ypos[i]+hscrll;
}
else if (ns6){
document.getElementById("si"+i).style.left=Math.min(WinWidth,Xpos[i]);
document.getElementById("si"+i).style.top=Ypos[i]+hscrll;
}
else{
eval("document.all.si"+i).style.left=Xpos[i];
eval("document.all.si"+i).style.top=Ypos[i]+hscrll;
}
Cstep[i]+=Step[i];
}
setTimeout('fall()',20);
}
window.onload=fall
//-->
</script>
<font face="Tahoma"><a target="_blank" href="http://www.javascriptfreecode.com/"><span style="font-size: 8pt; text-decoration: none">JavaScript Free Code</span></a></font>
Posted: Sat Sep 01, 2007 2:21 am
by AnINffected
Εγώ πάντως το δοκίμασα στον υπολογιστή και δουλεύει μιά χαρά.
Τί σου εμφανίζει;
Posted: Sat Sep 01, 2007 10:31 am
by Luke
Και σε εμένα δουλεύει. Αν χρησιμοποιείς FF μήπως έχεις απενεργοποιήσει την Javascript;
Tools/Options/Content και σιγουρέψου ότι είναι τικαρισμένο το Enable JavaScript.
Posted: Sat Sep 01, 2007 11:39 am
by lumenintervalum
εαν προσπαθείς να το εμφανίσεις στο blog σου, ψάξε να δεις μήπως δεν μπορείς να το κάνεις..γενικά έχω την αίσθηση ότι στα Blogs μπορείς να τροποποιήσεις μόνο τα stylesheets και το πώς θα εμφανίζεται η σελίδα, αλλά δεν ξέρω αν μπορείς να βάλεις javascript μέσα
Posted: Sat Sep 01, 2007 12:09 pm
by Serendipity
στο blog μου θελω να το εμφανισω και μπορω να χρησιμοποιησω javascript αλλα μαλλον αλλαγες στο background δεν τις δεχεται για αυτο και δν τα εμφανιζει

Posted: Sat Sep 01, 2007 12:20 pm
by lumenintervalum
στο template του blog σου βάλε τον κώδικα μέσα στο head. Στο δικό μου έπαιξε..
Posted: Sat Sep 01, 2007 12:25 pm
by AnINffected
Όντως, μπορεί να φταίει αυτό, Serendipity.