Αποστολέας Θέμα: Απορια με Visual Basic 6.0  (Αναγνώστηκε 3212 φορές)

0 μέλη και 1 επισκέπτης διαβάζουν αυτό το θέμα.

Αποσυνδεδεμένος draned

  • Θαμώνας
  • ***
  • Μηνύματα: 222
  • Φύλο: Άντρας
    • Προφίλ
Απορια με Visual Basic 6.0
« στις: 18/09/10, 21:02 »
Καθησα και συγκεντρωσα καποιους κωδικες για τους δισδιαστατους πινακες στην Visual Basic 6.0.
Θα το εκτιμουσα πολυ αν καποιος μπορουσε να μου πει αν ειναι σωστοι αλλα κυριως να μου εξηγησει τα σημεια με κοκκινο.

Ορισμος Πινακα
(General)
Option base 1
Dim A(3,3) As Integer


Καθε μια απο τις παρακατω ρυθμισεις βρισκεται σε διαφορετικο Command Button
Εισαγωγη Στοιχειων
Dim i As  Integer, j As Integer
For i=1 To 3
For j=1 To 3
A(i,j)=InputBox(“γραμμη” & i & “στηλη” & j)
Next j
Next i


Εμφανιση στοιχειων πινακα
Dim i As  Integer, j As Integer
For i=1 To 3
For j=1 To 3
Print A(i,j) & “   “;       το ερωτηματικο ";" δεν ειναι αντιστοιχο με το "&"; Ποια η χρησιμοτητα του στο συγκεκριμενο παραδειγμα;    
Next j
Print                             Γιατι μπαινει εδω ενα Print σκετο;
Next i


Αθροισμα στοιχειων
Dim i As  Integer, j As Integer, sum As Integer
sum=o
For i=1 To 3
For j=1 To 3
sum=sum+A(i,j)
Next j
Next I
Print “Αθροισμα στοιχειων:” & sum


Μεγιστο στοιχειο πινακα
Dim i As  Integer, j As Integer, max As Integer
max=1
For i=1 To 3
For j=1 To 3
If A(i,j)>max Then
max=A(i,j)
End If
Next j
Next i
Print “Μεγιστο στοιχειο:” &  max

Μεγιστο στοιχειο ανα γραμμη
Dim i As  Integer, j As Integer, max As Integer
For i=1 To 3
max=A(i,1)                                 Γιατι δεν λεμε Α(1,1);
For j=1 To 3
If A(i,j)>max Then
max=A(i,j)
End If
Next j
Print “Μεγιστο στοιχειο γραμμης:” & i & “=” &  max
Next i


Αθροισμα στοιχειων ανα γραμμη
Dim i As  Integer, j As Integer, sum As Integer
For i=1 To 3
sum=0
For j=1 To 3
sum=sum+A(i,j)
Next j
Print “Αθροισμα στοιχειων γραμμης:” & i & “=” &  sum
Next i


Γινομενο στοιχειων ανα στηλη
Dim i As  Integer, j As Integer, gin As Integer
For j=1 To 3
gin=1
For i=1 To 3
gin=gin*A(i,j)
Next i
Print “Γινομενο στοιχειων στηλης:” & j & “=” & gin
Next j

Πληθος στοιχειων μεγαλυτερο απο 5
Dim i As  Integer, j As Integer, counter As Integer
counter=0
For i=1 To 3
For j=1 To 3
If A(i,j)>5 Then
counter=counter+1
End If
Next j
Next I
Print “Πληθος στοιχειων >5:” & counter
« Τελευταία τροποποίηση: 19/09/10, 15:06 από draned »
Κλειστον λογω κρισης.

Αποσυνδεδεμένος Fourier

  • Εδώ είναι το σπίτι μου
  • *****
  • Μηνύματα: 617
  • Φύλο: Άντρας
  • Free Amp Sims FTW!
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #1 στις: 18/09/10, 21:25 »
Δεν ξέρω Visual Basic (την σύνταξή της εννοώ) αλλά μπορώ να φανταστώ τι παίζει στην εμφάνιση στοιχείων. Το " " μπαίνει για να εμφανίζονται τα στοιχεία της γραμμής με ένα κενό μεταξύ τους, το σκέτο print μάλλον έχει το ρόλο του enter (ώστε κάθε γραμμή να εμφανίζεται κάτω από την άλλη)

Στο μέγιστο σημείο ανά γραμμή σωστά είναι A(i,1). Ο αλγόριθμος είναι ως εξής:
Για κάθε γραμμή i θέσε το πρώτο της στοιχείο (δηλαδή το A(i,1)) προσωρινά ως μέγιστο. Στην συνέχεια σύγκρινε με τα υπόλοιπα στοιχεία της γραμμής (δηλαδή τα A(i,j), j>=2) και αν βρίσκεις μεγαλύτερο θέτε αυτό ως το μέγιστο.
Σκέψου το λιγάκι και θα καταλάβεις ότι αν βάλεις A(1,1) είναι λάθος (βασικά είναι σωστό μόνο για την πρώτη γραμμή, αλλά όχι για τις υπόλοιπες, π.χ., την δεύτερη, όπου θα πρέπει το πρώτο max να τεθεί το Α(2,1))

Ηope that helps! :)


Αποσυνδεδεμένος draned

  • Θαμώνας
  • ***
  • Μηνύματα: 222
  • Φύλο: Άντρας
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #2 στις: 18/09/10, 21:38 »
Ευχαριστω Fourier για την τοσο γρηγορη απαντηση.

Δεν ξέρω Visual Basic (την σύνταξή της εννοώ) αλλά μπορώ να φανταστώ τι παίζει στην εμφάνιση στοιχείων. Το " " μπαίνει για να εμφανίζονται τα στοιχεία της γραμμής με ένα κενό μεταξύ τους, το σκέτο print μάλλον έχει το ρόλο του enter (ώστε κάθε γραμμή να εμφανίζεται κάτω από την άλλη)
Σε σχεση με αυτο κατι τετοιο ειχα καταλαβει και εγω αλλα δεν ημουν σιγουρος.

Σκέψου το λιγάκι και θα καταλάβεις ότι αν βάλεις A(1,1) είναι λάθος (βασικά είναι σωστό μόνο για την πρώτη γραμμή, αλλά όχι για τις υπόλοιπες, π.χ., την δεύτερη, όπου θα πρέπει το πρώτο max να τεθεί το Α(2,1))
Αν δεν το εξηγουσες ετσι δεν θα το καταλαβαινα (μαλλον) ποτε. Ειχε κολλησει το μυαλο μου εντελως.
Κλειστον λογω κρισης.

Αποσυνδεδεμένος Gant

  • Θαμώνας
  • ***
  • Μηνύματα: 137
  • Φύλο: Άντρας
  • Η καλύτερη εμπειρία είναι τα live !
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #3 στις: 18/09/10, 22:49 »
Όταν η εντολή print τελειώνει με ένα ερωτιματικό ';' σημαίνει ότι παραμένουμε στην ίδια γραμμή.
Όταν δεν έχουμε ';' τότε η επόμενη print θα γράψει σε νέα σειρά.
Φρόντισε αυτά που θα κάνεις σήμερα να αξίζουν τη μία μέρα από τη ζωή σου που θα τους αφιερώσεις

Αποσυνδεδεμένος draned

  • Θαμώνας
  • ***
  • Μηνύματα: 222
  • Φύλο: Άντρας
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #4 στις: 18/09/10, 23:00 »
Ευχαριστω για την εξηγηση Gant. Δεν μπορουσα καθολου να βρω τι κανει το ";".
Κλειστον λογω κρισης.

Αποσυνδεδεμένος yiannakis

  • Θαμώνας
  • ***
  • Μηνύματα: 106
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #5 στις: 18/09/10, 23:41 »
Όταν η εντολή print τελειώνει με ένα ερωτιματικό ';' σημαίνει ότι παραμένουμε στην ίδια γραμμή.
Όταν δεν έχουμε ';' τότε η επόμενη print θα γράψει σε νέα σειρά.

Βασικά το οτι παραμένεις στην ίδια σειρά, θα το έκανε ούτως ή άλλως εαν του έλεγες τι τα εμφανίσει... π.χ. Print A(1,1).
Α το έχεις σκέτο θα πάει απλά παρακάτω, στην προκειμένη περίπτωση για να σου εμφανίσει τον πίνακα με τη μορφή... πίνακα, και όχι απλά να σου αραδιάσει το περιεχόμενό του!
 

Αποσυνδεδεμένος draned

  • Θαμώνας
  • ***
  • Μηνύματα: 222
  • Φύλο: Άντρας
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #6 στις: 19/09/10, 03:30 »
Ευχαριστω yiannakis.

Επισης να ρωτησω, αν θελω να αποθηκευσω τα στοιχεια του πινακα (οπως να 'ναι) σε ενα αρχειο κειμενου ειναι σωστοι οι παρακατω κωδικες;
  • Dim i as Integer, j As Integer
    Open "c:/text.txt" For Output As #1
    For i=1 To 3
    For j=1 To 3
    Print #1, A(i,j)
    εδω μπορω να βαλω % "  ";
    Next j
    Next i
          Αναμεσα σ΄αυτα τα Next  μπαινει Print;   
    Close #1
  • Open "c:/text.txt" For Output As #1
    Print #1, A(1,1), A(1,2), A(1,3), A(2,1), κ.ο.κ.
    Close #1
Καλυτερος μου φαινεται ο δευτερος τροπος. ::)

Συγγνωμη που ρωταω απλα πραγματα, αλλα δεν λειτουργει το Visual Studio που ειχαν δωσει απο την πανεπιστημιο και δεν μπορω να τα δοκιμασω.
Κλειστον λογω κρισης.

Αποσυνδεδεμένος Gant

  • Θαμώνας
  • ***
  • Μηνύματα: 137
  • Φύλο: Άντρας
  • Η καλύτερη εμπειρία είναι τα live !
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #7 στις: 19/09/10, 08:34 »
1.
Print #1, A(i,j) & "  ";
θα γράψει το A(i,j) και ένα κενό " " και θα παραμείνει στην ίδια γραμμή ';'
Το κόμμα μετά από ένα print αφήνει μερικά κενά ώστε να φαίνονται τα στοιχεία συστοιχισμένα. Μπορείς να γράψεις δλδ.
Print #1, A(i,j) & "  ",
2.
Αναμεσα σ΄αυτα τα Next  μπαινει Print;
Καλύτερα ναι, για να αλλάζεις γραμμή και να φαίνονται τα στοιχεία σε μορφή πίνακα (στήλες και γραμμές)
 
3.
Print #1, A(1,1), A(1,2), A(1,3), A(2,1), κ.ο.κ.
Βέβαια μπορείς να το γράψεις και έτσι, αλλά είναι πιο χρονοβόρο και δύσκολο στην μετατροπή αν πχ. αλλάξει το μέγεθος του μητρώου και αντί για 3χ3 έχεις πχ. 5χ5, 10χ10 κτλ.

 
4.
αλλα δεν λειτουργει το Visual Studio που ειχαν δωσει απο την πανεπιστημιο και δεν μπορω να τα δοκιμασω.
Η μικροσοφτ δίνει το visual studio express δωρεάν.
 
Φρόντισε αυτά που θα κάνεις σήμερα να αξίζουν τη μία μέρα από τη ζωή σου που θα τους αφιερώσεις

Αποσυνδεδεμένος draned

  • Θαμώνας
  • ***
  • Μηνύματα: 222
  • Φύλο: Άντρας
    • Προφίλ
Απ: Απορια με Visual Basic 6.0
« Απάντηση #8 στις: 19/09/10, 15:25 »
Ευχαριστω αλλη μια φορα για τις πληροφοριες Gant.

Το βρηκα αυτο που λες για το visual studio express, θα το κοιταξω αν και νομιζω οτι εχω και καπου αλλου αποθηκευμενο ενα αρχειο με το Visual studio 6.0. Βασικα μεσω του Πανεπιστημιου μπορω να κατεβασω δωρεαν την τελευταια (η τουλαχιστον μια πιο προσφατη) εκδοση του Visual Studio αλλα υποστηριζει μονο την Visual Basic .NET.
Κλειστον λογω κρισης.

 

Σχετικά θέματα

  Τίτλος / Ξεκίνησε από Απαντήσεις Τελευταίο μήνυμα
10 Απαντήσεις
4571 Εμφανίσεις
Τελευταίο μήνυμα 14/10/05, 20:54
από louloudenia
13 Απαντήσεις
6999 Εμφανίσεις
Τελευταίο μήνυμα 29/08/08, 01:28
από Jezus
Απορια

Ξεκίνησε από Timis Εφέ

4 Απαντήσεις
3223 Εμφανίσεις
Τελευταίο μήνυμα 21/03/08, 10:00
από thanal9999
4 Απαντήσεις
2544 Εμφανίσεις
Τελευταίο μήνυμα 08/11/09, 11:41
από parantox
4 Απαντήσεις
2461 Εμφανίσεις
Τελευταίο μήνυμα 03/01/10, 19:55
από GEO_ZZZZ
2 Απαντήσεις
2323 Εμφανίσεις
Τελευταίο μήνυμα 29/04/10, 17:55
από Valantis
απορια

Ξεκίνησε από Iraklis Gk Εφέ

1 Απαντήσεις
2140 Εμφανίσεις
Τελευταίο μήνυμα 03/06/10, 17:13
από adr1anos
6 Απαντήσεις
3154 Εμφανίσεις
Τελευταίο μήνυμα 01/08/10, 19:11
από Frozen Wizard
Visual Sound 1 Spot

Ξεκίνησε από B.C. Rich Εφέ

7 Απαντήσεις
3219 Εμφανίσεις
Τελευταίο μήνυμα 11/04/11, 23:14
από zeoy
3 Απαντήσεις
9226 Εμφανίσεις
Τελευταίο μήνυμα 06/12/13, 14:11
από Απόλλων