sonyxp Δημοσ. 18 Ιουνίου 2014 Δημοσ. 18 Ιουνίου 2014 Έχω πρόβλημα με πίνακα σε C#, δεν αλλάζουν οι τιμές στο Double Array! class Simplex { // Input Data public double[,] A; public double[] b; public double[] c; public Simplex(int rows, int cols) { A = new double[rows, cols]; b = new double[rows]; c = new double[cols]; Solve(); } public void Solve(int rows, int cols) { //...... double[,] Matrix = new double[rows + 1, cols + 1]; // Merge A, b and c Matrix = MergeMatrix(); // We will work with Merged Matrix now... //...... // Divide (Pivot Row) with (Pivot Element) for(int i=0; i < len; i++) { // Matrix[pr, i] DONT CHANGE ALL VALUES!!! // This work only for few columns of row and after stop changing values :/ why? Matrix[pr, i] = Matrix[pr, i] / Matrix[pr, pc]; // This work just fine for all row (all columns of row) MessageBox.Show( (Matrix[pr, i] / Matrix[pr, pc]).ToString("0.00") ); } } }
ParhsG Δημοσ. 18 Ιουνίου 2014 Δημοσ. 18 Ιουνίου 2014 Πως ξέρεις πως δεν αλλάζουν; Δοκιμασες να κανεις step by step debugging?
sonyxp Δημοσ. 18 Ιουνίου 2014 Μέλος Δημοσ. 18 Ιουνίου 2014 Πως ξέρεις πως δεν αλλάζουν; Δοκιμασες να κανεις step by step debugging? Έκανα Debugging μέσω μηνυμάτων, δηλαδή μετά την αλλαγή της τιμής (Matrix[pc, i] = some value) έκανα MessageBox.Show(Matrix[pc, i]).... Δεν μπορώ να καταλάβω γιατί δουλεύει με μερικές στήλες μόνο... έβαλα να πιάνει και διαίρεση με το 0 (if x > 0) αλλά θα το δοκιμάσω με try-catch.... Μήπως έχει να κάνει που είναι double[,] και δεν είναι double[][] ?
albNik Δημοσ. 18 Ιουνίου 2014 Δημοσ. 18 Ιουνίου 2014 Δεν γινεται αυτο που λες. Το Matrix[pr, pc] που διαιρεις δεν ειναι σταθερο, γινεται 1 οταν i=pc,( και μετα διαιρεις με 1!!) 1
sonyxp Δημοσ. 18 Ιουνίου 2014 Μέλος Δημοσ. 18 Ιουνίου 2014 Δεν γινεται αυτο που λες. Το Matrix[pr, pc] που διαιρεις δεν ειναι σταθερο, γινεται 1 οταν i=pc,( και μετα διαιρεις με 1!!) Σωστός!!! Έλεος! όταν φτάσει Pivot Column αλλάζει το Pivot Element.... Waw! χριστέ μου! τέτοια "ευκολάκια" σε παιδεύουν καμιά φορά...
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα