Προς το περιεχόμενο

Πρόβλημα με κώδικα σε Qbasic.(out of memory+μεγάλοι πίνακες)


kfran

Προτεινόμενες αναρτήσεις

Δημοσ.

Φτιάχνουμε με ένα φιλο μου ένα προγραμματακι αλλα έχουμε κολλήσει στο εξής: Το προγραμμα χρησιμοποιει τεραστιους πίνακες και η QB βγάζει out of memory. Τι μπορει να φταιει?

 

 

REM MCOC-1.BAS

REM

REM MONTE CARLO ANALYSIS

REM REM

'$DYNAMIC

 

DIM Tf(50), CompSurv(7300, 50)

DIM Lamda(50), p(20), Days(50), R(50), d(50)

CLS

 

Βγάζει out of memory στο DIM Tf(50), CompSurv(7300, 50).

Δημοσ.

Το μέγιστο πίνακα που μπορεί να αποθηκεύση η Qbasic είναι

 

Dim PINAKAS(161, 100)

και το αντίστροφο

Dim PINAKAS(100, 161)

 

τώρα εάν δηλώσεις

PINAKAS(100,161) as long ή PINAKAS(100,161) as Double

ή ότι άλλο , δέν έχει καμία σχέση με το μέγεθος του πίνακα , παρα μόνο

με τα δεδομένα που θα αποθηκευτούνε σε αυτόν.

 

στην περίπτωσή σου τον έχεις δηλώσει Variable

δηλαδή κάτι σαν string οπότε μπορείς να βάλει μέσα ότι θέλεις!

Δημοσ.

Δηλαδή εγώ που χρειάζομαι πίνακα 7300χ50 δεν μπορώ να κάνω τπτ?

Σε άλλες γλώσσες υπάρχει αυτό το πρόβλημα?

Δημοσ.

οχι...σε πιο εξελιγμενες γλωσσες δεν υπαρχουν τοσο μικρα ορια!

μια λυση στο προβλημα σου υποθετω να ηταν να βαλεισ..πινακες μεσα σε πινακες...ετσι ωστε να φτασεις το επιθυμητο μεγεθως!

 

Αντι στην θεση 0 να υπαρχει στοιχεια θα υπαρχει μεσα εναν αλλος πινακας! αυτο βεβαια θα θελει λιγο δουλεια απο σενα οσο αναφορα το να τον διαβαζεις και να τον γραφεις σωστα..αλλα ισως ειναι μια λυση...

 

καλη συνεχεια!

Δημοσ.
Δηλαδή εγώ που χρειάζομαι πίνακα 7300χ50 δεν μπορώ να κάνω τπτ?

 

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

 

ίσως ο ποιό γρήγορος αλλά και σωστός τρόπος!

 

τις 7300*50 = 365.000 θέσεις μνήμης τι να τις κάνεις;;;;;

 

φαντάζομαι δεν τις χρειάζεσαι συνέχεια στο project σου , οπότε γιατί να πετάς άσκοπα μνήμη!!!

 

Σωστός ;;

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...