+ All Categories
Home > Documents > visual basic cig

visual basic cig

Date post: 30-Oct-2014
Category:
Upload: andreea-ionela
View: 31 times
Download: 0 times
Share this document with a friend
Description:
subiecte examen Nachila
11
UPG Ploiești – CIG – Programarea Calculatoarelor Năchilă Cătălin – Visual Basic 1 Proiectul 2.8. se aducă pe formă următoarele controale: un control Label 2 controale Button un control TextBox un control ListBox La apăsarea butonului Calculați se vor efectua operațiile: să va prelua numărul din TextBox1 în variabila n în ListBox1 se vor afișa toate numerele pare cuprinse între 1 și n apoi să se afișeze suma acestora Codul este: ' Butonul Calculati Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 For i = 2 To n Step 2 ListBox1.Items.Add(i.ToString()) s = s + i Next ListBox1.Items.Add("---------------------------") ListBox1.Items.Add("Suma este: " + s.ToString()) End Sub Să se modifice programul astfel încât, să se afișeze numerele în ordine descrescătoare (For i = n To 2 Step -2). Proiectul 2.9. se modifice proiectul 2.8 astfel încât structura repetitivă să fie cu număr necunoscut de pași (în primul caz cu test inițial apoi cu test final). Rezolvare: Cu test inițial (condiţionată anterior) Cu test final (condiţionată posterior) Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 i = 2 Do ListBox1.Items.Add(i.ToString()) s = s + i i = i + 2 Loop While i <= n ListBox1.Items.Add("------------------------") ListBox1.Items.Add("Suma este:"+s.ToString()) Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 i = 2 Do While i <= n ListBox1.Items.Add(i.ToString()) s = s + i i = i + 2 Loop ListBox1.Items.Add("------------------------") ListBox1.Items.Add("Suma este:"+s.ToString())
Transcript
Page 1: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 1

Proiectul 2.8. Să se aducă pe formă următoarele controale:

● un control Label

● 2 controale Button

● un control TextBox

● un control ListBox

La apăsarea butonului Calculați se vor efectua operațiile:

– să va prelua numărul din TextBox1 în variabila n

– în ListBox1 se vor afișa toate numerele pare cuprinse între 1 și n apoi să se afișeze suma acestora

Codul este: ' Butonul Calculati Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 For i = 2 To n Step 2 ListBox1.Items.Add(i.ToString()) s = s + i Next ListBox1.Items.Add("---------------------------") ListBox1.Items.Add("Suma este: " + s.ToString()) End Sub Să se modifice programul astfel încât, să se afișeze numerele în ordine descrescătoare (For i = n To 2 Step -2).

Proiectul 2.9. Să se modifice proiectul 2.8 astfel încât structura repetitivă să fie cu număr necunoscut de pași (în primul caz cu test inițial apoi cu test final).

Rezolvare:

Cu test inițial (condiţionată anterior) Cu test final (condiţionată posterior) Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 i = 2 Do ListBox1.Items.Add(i.ToString()) s = s + i i = i + 2 Loop While i <= n ListBox1.Items.Add("------------------------") ListBox1.Items.Add("Suma este:"+s.ToString())

Dim n, i, s As Integer n = Val(TextBox1.Text) s = 0 i = 2 Do While i <= n ListBox1.Items.Add(i.ToString()) s = s + i i = i + 2 Loop ListBox1.Items.Add("------------------------") ListBox1.Items.Add("Suma este:"+s.ToString())

Page 2: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 2

Proiectul 3.6. Operații asupra unui șir de numere. Se aduc pe formă controale care se aranjează astfel:

Codul aplicației este: Public Class Form1 ' Declararea variabilelor globale Dim nr_item, sir(100), suma, minim, maxim As Integer Dim media As Decimal –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru adaugarea numerelor in Listbox Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ListBox1.Items.Add(TextBox1.Text) TextBox1.Text = "" End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru crearea sirului Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 'declararea variabilelor nr_item = ListBox1.Items.Count 'preluarea valorilor din ListBox in sir For i = 0 To nr_item - 1

Page 3: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 3

sir(i) = Val(ListBox1.Items.Item(i)) Next End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru stergerea numerelor din Listbox Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click ListBox1.Items.Clear() End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru suma elementelor Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click suma = 0 For i = 0 To nr_item - 1 suma = suma + sir(i) Next Label2.Text = suma.ToString() End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru media elementelor Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim suma As Integer Dim media As Decimal suma = 0 For i = 0 To nr_item - 1 suma = suma + sir(i) Next media = suma / nr_item Label3.Text = media.ToString() End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru aflarea minimului din sir Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click minim = sir(0) For i = 1 To nr_item - 1 If minim > sir(i) Then minim = sir(i) End If Next Label4.Text = minim.ToString() End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru aflarea maximului din sir Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click maxim = sir(0) For i = 1 To nr_item - 1 If maxim < sir(i) Then maxim = sir(i) End If Next Label5.Text = maxim.ToString() End Sub –––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––– ' Butonul pentru sortarea sirului Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click ListBox2.Items.Clear() Dim sir_pt_sortare(nr_item - 1) As Integer 'preluarea valorilor din ListBox in sir For i = 0 To nr_item - 1

Page 4: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 4

sir_pt_sortare(i) = Val(ListBox1.Items.Item(i)) Next ' Sortarea sirului Array.Sort(sir_pt_sortare) 'Afisarea sirului sortat ListBox2.Items.Add("Numarul de numere: " + nr_item.ToString()) ListBox2.Items.Add("--------------------") ListBox2.Items.Add("Sirul sortat este: ") For i = 0 To nr_item - 1 ListBox2.Items.Add(sir_pt_sortare(i).ToString()) Next End Sub End Class

Se mai aduce pe formă un buton pe care se trece textul Sortare Bubble. Codul butonului este: Dim temp, test As Integer nr_item = ListBox1.Items.Count ' Sortare Do test = 0 For i = 0 To nr_item - 2 If sir(i) > sir(i + 1) Then temp = sir(i) sir(i) = sir(i + 1) sir(i + 1) = temp test = 1 End If Next Loop While test <> 0 ' Afisare For i = 0 To nr_item - 1 ListBox2.Items.Add(sir(i).ToString()) Next

Page 5: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 5

Proiectul 3.7. Operații asupra unei matrice. Se aduc pe formă controale care se aranjează astfel:

Codul aplicației este: Public Class Form1 Dim a(10, 10), b(10, 10) As Integer ' ========== Setari ale Grid-urilor========== Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.AllowUserToAddRows = False DataGridView2.AllowUserToAddRows = False End Sub ' ========== Crearea Grid-ului pentru matricea A ========== Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click Dim nr_linii, nr_coloane As Integer nr_linii = Val(TextBox1.Text) nr_coloane = Val(TextBox2.Text) ' Adaugarea coloanelor For i = 1 To nr_coloane Dim coloana_i As New DataGridViewTextBoxColumn With coloana_i .HeaderText = "" + i.ToString() .Name = "Column" + i.ToString() End With DataGridView2.Columns.Insert(i - 1, coloana_i) Next

Page 6: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 6

' Adaugarea randurilor / liniilor For i = 1 To nr_linii DataGridView2.Rows.Insert(i - 1) Next End Sub '========== Crearea Grid-ului pentru matricea B ========== Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim nr_linii, nr_coloane As Integer nr_linii = Val(TextBox3.Text) nr_coloane = Val(TextBox4.Text) ' Adaugarea coloanelor For i = 1 To nr_coloane Dim coloana_i As New DataGridViewTextBoxColumn With coloana_i .HeaderText = "" + i.ToString() .Name = "Column" + i.ToString() End With DataGridView1.Columns.Insert(i - 1, coloana_i) Next ' Adaugarea randurilor / liniilor For i = 1 To nr_linii DataGridView1.Rows.Insert(i - 1) Next End Sub ' ========== Crearea matricei A prin preluarea datelor din Grid ========== Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click Dim nr_linii, nr_coloane As Integer nr_linii = Val(TextBox1.Text) nr_coloane = Val(TextBox2.Text) ' preluarea elementelor introduse in Grid in matricea A For i = 1 To nr_linii For j = 1 To nr_coloane a(i, j) = DataGridView2.Item(j - 1, i - 1).Value Next Next End Sub ' ========== Crearea matricei B prin preluarea datelor din Grid ========== Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Click Dim nr_linii, nr_coloane As Integer nr_linii = Val(TextBox3.Text) nr_coloane = Val(TextBox4.Text) ' preluarea elementelor introduse in Grid in matricea A For i = 1 To nr_linii For j = 1 To nr_coloane b(i, j) = DataGridView1.Item(j - 1, i - 1).Value Next Next End Sub ' ========== Suma elementelor ========== Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim nr_linii, nr_coloane As Integer

Page 7: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 7

nr_linii = Val(TextBox1.Text) nr_coloane = Val(TextBox2.Text) Dim suma As Integer suma = 0 For i = 1 To nr_linii For j = 1 To nr_coloane suma = suma + a(j, i) Next Next Label3.Text = suma.ToString() Label3.Visible = True End Sub ' ========== Minim si maxim ========== Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim nr_linii, nr_coloane As Integer nr_linii = Val(TextBox1.Text) nr_coloane = Val(TextBox2.Text) Dim min, max As Integer min = a(1, 1) max = a(1, 1) For i = 1 To nr_linii For j = 1 To nr_coloane If a(i, j) > max Then max = a(i, j) End If If a(i, j) < min Then min = a(i, j) End If Next Next Label6.Text = min.ToString() Label7.Text = max.ToString() End Sub ' ========== Suma A + B ========== Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button7.Click Dim nr_linii, nr_coloane, c(100, 100) As Integer nr_linii = Val(TextBox1.Text) nr_coloane = Val(TextBox2.Text) ' Adaugarea coloanelor For i = 1 To nr_coloane Dim coloana_i As New DataGridViewTextBoxColumn With coloana_i .HeaderText = "" + i.ToString() .Name = "Column" + i.ToString() End With DataGridView3.Columns.Insert(i - 1, coloana_i) Next ' Adaugarea randurilor / liniilor For i = 1 To nr_linii DataGridView3.Rows.Insert(i - 1) Next ' Suma For i = 1 To nr_linii For j = 1 To nr_coloane c(i, j) = a(i, j) + b(i, j)

Page 8: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 8

Next Next ' Afisarea sumei For i = 1 To nr_linii For j = 1 To nr_coloane DataGridView3.Item(j - 1, i - 1).Value = c(i, j) Next Next End Sub ' ========== Produsul A * B ========== Private Sub Button8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button8.Click Dim nr_linii_A, nr_coloane_A, nr_linii_B, nr_coloane_B, c(100, 100), Suma As Integer nr_linii_A = Val(TextBox1.Text) nr_coloane_A = Val(TextBox2.Text) nr_linii_B = Val(TextBox3.Text) nr_coloane_B = Val(TextBox4.Text) 'nr_coloane_A = nr_linii_B ' Adaugarea coloanelor For i = 1 To nr_coloane_B Dim coloana_i As New DataGridViewTextBoxColumn With coloana_i .HeaderText = "" + i.ToString() .Name = "Column" + i.ToString() End With DataGridView3.Columns.Insert(i - 1, coloana_i) Next ' Adaugarea randurilor / liniilor For i = 1 To nr_linii_A DataGridView3.Rows.Insert(i - 1) Next ' Produsul Suma = 0 For i = 1 To nr_linii_A For k = 1 To nr_coloane_B For j = 1 To nr_coloane_A Suma = Suma + a(i, j) * b(j, k) Next c(i, k) = Suma Suma = 0 Next Next ' Afisarea produsului For i = 1 To nr_linii_A For k = 1 To nr_coloane_B DataGridView3.Item(k - 1, i - 1).Value = c(i, k) Next Next End Sub End Class

Dacă matricea A are m linii și n coloane, matricea B are obligatoriu n linii și p coloane.

Produsul celor două va fi o matrice C cu m linii și p coloane.

Page 9: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 9

( ) ( ) ( ), , ,,ij m n jk n p ik m pA a M B b M A B c M= ∈ = ∈ ⇒ ⋅ = ∈

Formula de calcul este:

1 1 2 21

... , 1, , 1, .n

ik i k i k in nk ij jkj

c a b a b a b a b i m k p=

= ⋅ + ⋅ + + ⋅ = ⋅ = =∑

Exemple:

1 3 2 41) 2, ,

2 1 3 0

(1,1) (1,1) (1, 2) (2,1) (1,1) (1, 2) (1, 2) (2, 2)(2,1) (1,1) (2, 2) (2,1) (2,1) (1, 2) (2, 2) (2, 2)

1 2 3 3 1 4 3 0 11 42 2 1 3 2 4 1 0 7 8

n m p A B C A B

A B A B A B A BA B A B A B A B

= = = = = ⇒ = ⋅ =

⋅ + ⋅ ⋅ + ⋅

= = ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅

= = ⋅ + ⋅ ⋅ + ⋅ .

1 20 1 1

2) 2, 3, 3, 4 5 ,1 2 2

2 3

(1,1) (1,1) (1, 2) (2,1) (1,1) (1, 2) (1, 2) (2, 2) (1,1) (1, 3) (1, 2) (2, 3)(2,1) (1,1) (2, 2) (2,1) (2,1) (1, 2) (2, 2) (2, 2) (2,1) (1

n m p A B C A B

A B A B A B A B A B A BA B A B A B A B A B

= = = = = ⇒ = ⋅ =

⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅

= ⋅ + ⋅ ⋅ + ⋅ ⋅ , 3) (2, 2) (2, 3)(3,1) (1,1) (3, 2) (2,1) (3,1) (1, 2) (3, 2) (2, 2) (3,1) (1, 3) (3, 2) (2, 3)

1 0 2 1 1 1 2 2 1 1 2 2 2 5 54 0 5 1 4 1 5 2 4 1 5 2 5 14 142 0 3 1 2 1 3 2 2 1 3 2 3 8 8

A BA B A B A B A B A B A B

+ ⋅ = ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅

= ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅ = ⋅ + ⋅ ⋅ + ⋅ ⋅ + ⋅

( ) ( )

.

3 1 2 2 93) 3, 3, 1, 0 2 0 , 3 6 .

0 0 1 0 0

2 14) 3, 1, 2, 4 2 3 , 0 1 20 11 .

4 3

n m p A B C A B

n m p A B C A B

= = = = = ⇒ = ⋅ =

= = = = = − ⇒ = ⋅ =

Page 10: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 10

Alte tipuri de subiecte:

1) Generale • Verificarea dacă un număr este par sau impar

• Convertor valutar (din laborator)

• Selectare de produse (din laborator)

• Aplicații contabile (din laborator)

2) Șiruri • indexului unei valori dintr-un șir

3) Matrice • Diagonala principală, secundară, elemente de deasupra și de sub diagonale

4) Sume & produse (n se citește dintr-un TextBox sau InputBox iar rezultatul se poate

afișa într-un Label sau MessageBox)

n!= 1 * 2 * 3 * … * n

Dim n As Integer Dim A As Decimal A = 1 For i = 1 To n A = A * i

Next

1 1 1...1*2 2*3 *( 1)

An n

= + + ++

Pentru n = 5 rezultatul este 0,83333 Dim n As Integer Dim A As Decimal A = 0 For i = 1 To n A = A + 1 / (i * (i + 1))

Next

A = 1 + 3 + 5 + … + (2*n–1) Dim n As Integer Dim A As Decimal A = 0 For i = 1 To 2*n-1 Step 2 A = A + i

Next

A = 1 + 1*2 + 1*2*3 + 1*2*3*4 + … + 1*2*3*…*n

Pentru n = 4 rezultatul este 33

Implementați o funcție pentru calculul factorialului unui număr. Sume și produse făcute în laborator

Sume asemănătoare cu cele de mai sus.

Page 11: visual basic cig

UPG Ploiești – CIG – Programarea Calculatoarelor

Năchilă Cătălin – Visual Basic 11


Recommended