Professional Documents
Culture Documents
NET Seminar 6
Tablouri - continuare
Determinarea elementului minim/maxim dintr-un vector
Exemplul 1: S se realizeze un formular care s permit introducerea de la tastatur (cu
InputBox) a datelor referitoare la angajaii unei companii i afieaz n 2 casete de text
angajatul cel mai tnr i cel mai vrstnic.
Proprietate
Text
Text
Name
ReadOnly
Text
Name
Text
Name
Name
Text
Name
Text
Name
Text
Valoare
Minim/maxim vector
Angajati
rtxtAngajati
True
Varsta minima
txtVarstaMin
Varsta maxima
txtVarstaMax
btnCiteste
Citeste Angajati
btnVarstaMin
Varsta minima
btnVarstaMax
Varsta maxima
Eveniment
VB.NET Seminar 6
Public Class Form1
Dim Angajati(5) As String
Dim Varsta(5) As Integer
Dim i As Integer
Private Sub btnCiteste_Click(sender As Object, e As EventArgs) Handles btnCiteste.Click
For i = 0 To 5
Angajati(i) = InputBox("Introduceti numele angajatului: " + Str(i))
Varsta(i) = InputBox("Introduceti varsta angajatului: " + Str(i))
rtxtAngajati.AppendText("Angajatul " + Angajati(i) + " are varsta " + Str(Varsta(i)) + "
ani")
rtxtAngajati.AppendText(Environment.NewLine)
Next
End Sub
Private Sub btnVarstaMin_Click(sender As Object, e As EventArgs) Handles btnVarstaMin.Click
Dim poz_min As Integer
Dim min As Integer
min = Varsta(0)
poz_min = 0
For i = 1 To 5
If Varsta(i) < min Then
min = Varsta(i)
poz_min = i
End If
Next
txtVarstaMin.Text = "Angajatul " + Angajati(poz_min) + " este cel mai tanar"
End Sub
Private Sub btnVarstaMax_Click(sender As Object, e As EventArgs) Handles btnVarstaMax.Click
Dim poz_max As Integer
Dim max As Integer
max = Varsta(0)
poz_max = 0
For i = 1 To 5
If Varsta(i) > max Then
max = Varsta(i)
poz_max = i
End If
Next
txtVarstaMax.Text = "Angajatul " + Angajati(poz_max) + " este cel mai varstnic"
End Sub
End Class
VB.NET Seminar 6
Matrice
O matrice este un tablou bidimensional cu i linii (rnduri) si j coloane, unde i=1,n i j=1,m.
Parcurgerea tablourilor cu dou sau mai multe dimensiuni se face cu ajutorul a dou sau mai
multe structurii repetitive: For Next imbricate.
A(1,1)
A(2,1)
.
A(i,1)
A(n,1)
A(1,2)
A(1,j)
A(1,m)
A(i,j)
A(n,m)
Proprietate
Text
Text
Name
Text
Name
Text
Name
ReadOnly
Name
Text
Valoare
Matrice
Nr. de randuri
txtNrR
Nr. de coloane
txtNrC
A
rtxtA
True
btnCitesteA
Citeste A
Eveniment
VB.NET Seminar 6
Button
Name
Text
btnAfiseazaA
Afisare A
Exemplul 3: Modificai aplicaia de mai sus astfel nct n ultima linie/coloan din caseta de tip
RichTextBox s se afieze sumele pe linii si coloane.
Rezolvare: Modificm doar procedura coespunztoare butonului de afiare:
Private Sub btnAfiseazaA_Click(sender As Object, e As EventArgs) Handles btnAfiseazaA.Click
Dim suma_r As Double
Dim suma_c As Double
'afisam matricea si calculam suma pe linii
For i = 0 To n
suma_r = 0 'calculam suma
For j = 0 To m
rtxtA.AppendText(Str(A(i, j)) + " ")
suma_r = suma_r + A(i, j)
Next
rtxtA.AppendText(suma_r)
rtxtA.AppendText(Environment.NewLine) 'la terminarea liniei curente trecem pe linia
urmatoare
Next
'calculam suma pe coloane
VB.NET Seminar 6
For j = 0 To m
suma_c = 0
For i = 0 To n
suma_c = suma_c + A(i, j)
Next
rtxtA.AppendText(Str(suma_c) + " ")
Next
End Sub
Exemplul 4: Modificai aplicaia de mai sus astfel nct n dou casete de tip text s afiai valorile
minime de pe linii/coloane.
Proprietate
Name
Multiline
Name
Name
Text
Name
Text
Valoare
txtMinR
True
txtMinC
btnMinC
Min Coloane
btnMinR
Min Linii
Eveniment
VB.NET Seminar 6
min_c(j) = A(i, j)
End If
Next
txtMinC.AppendText(Str(min_c(j)) + " ")
Next
End Sub
Private Sub btnMinR_Click(sender As Object, e As EventArgs) Handles btnMinR.Click
Dim min_r(n) As Double 'vectorul valorior minime pe linii
For i = 0 To n
min_r(i) = A(i, 0) 'consideram min = primul element de pe linie
For j = 1 To m
If A(i, j) < min_r(i) Then 'daca elementul curent < min atunci min se modifica
min_r(i) = A(i, j)
End If
Next
txtMinR.AppendText(Str(min_r(i)) + Environment.NewLine)
Next
End Sub
Tema 2: Realizai un formular care s permit efectuarea produsului a dou matrice preluate de la
tastatur.