Vai al contenuto

Sonar: procedure in Visual Basic per il tracciamento e lo studio dei grafici delle funzioni caratterizzanti le operatività delle componenti


C. Del Turco

Messaggi raccomandati

Sono disponibili nel post 6 programmi in Visual Basic per esercitazioni di calcolo e grafica per le componenti sonar; ciascun programma può essere utilizzato mediante copia ed incolla su di un sistema operativo VB.

 

 

 

A -reticolo in coordinate cartesiane in scala  doppio lineare (fig. 1)

 

Rem Listato del programma con esempio per il tracciamento di una parabola:

Rem dimensione  Form al max

 

Rem routine per il tracciamento del reticolo cartesiano

Private Sub Form_Paint()

For x = 0 To 6400 Step 320

For Y = 0 To 6400 Step 40

PSet (x, Y), 7

Next Y

Next x

For Y = 0 To 6400 Step 320

For x = 0 To 6400 Step 42

PSet (x, Y), 7

Next x

Next Y

Line (3200, 0)-(3200, 6400)

Line (0, 3200)-(6400, 3200)

PSet (46000 * t, 4000 - 1200 * Y1 / 2), vbRed

PSet (46000 * t, 4000 - 1200 * 0), vbRed

PSet (46000 * t, 2000 - 1200 * Y2 / 2), vbBlack

PSet (46000 * t, 2000 - 1200 * 0), vbBlack

 

Rem funzione da tracciare   Y = 0.5 X2 + 3 X +  2

 

e = 10

 

Rem anello per computo e grafico della funzione Y=f(x)

For x = -e To e Step 0.001

Y = 0.5 * (x ^ 2) + 3 * x + 2

PSet (3200 + (3200 / e) * x, 3200 - (3200 / e) * Y), vbRed ' funzione grafica

Next x

End Sub

vb1.jpg.e2ba33799d5c6d608312c6e0022184af.jpg

 

 

 

 B -reticolo in coordinate cartesiane in scala logaritmico/lineare a tre decadi (fig.2).

 

Rem Listato del programma con esempio di tracciamento funzione logaritmica

Rem Disporre su di un Label sotto il grafico con i valori di ascissa  1 ; 10 ; 100 ; 1000

Rem dimensione  Form al max

 

Rem COSTRUZIONE RETICOLO LOGARTMICO LINEARE

Private Sub Form_Paint()

For Y = 200 To 6600 Step 40

For a = 0 To 2

For x = 1 To 10 Step 1

s = 3066.7

PSet (a * (s * Log(10) / Log(10)) + 400 + s * Log(x) / Log(10), Y), vbBlack

Next

Next

Next

For Y = 200 To 6600 Step 320

For x = 400 To 9600 Step 60

PSet (x, Y)

Next x

Next Y

Line (400, 6600)-(9600, 6600), vbBlack

Line (400, 200)-(400, 6600), vbBlack

 

Rem funzione da tracciare  Y =  Log  x     (  per logaritmi a base 10 )

 

Rem anello per calcolo e grafica  Y = f(x)

For x = 1 To 1000 Step 0.01

Y = Log(x) / Log(10)  ' per logaritmi a base e

PSet (400 + (3066.7 * Log(x) / Log(10)), 6600 - 2133.33 * Y), vbRed

Next

End Sub

 

vb2.jpg.62836386b12b311af64da1c7b6781995.jpg

 

 

      

C -reticolo in coordinate cartesiane in scala lineare/logaritmica a due decadi. (fig 3)

Rem Listato del programma con esempio di tracciamento di una retta

Rem Disporre su di un Label i valori di ordinata  1 ; 10 ; 100.

Rem form al max

 

Rem tracciamento reticolo

Private Sub Form_Paint()

For x = 500 To 9700 Step 60

For a = 0 To 1

For c = 1 To 10

k = 3200

PSet (x, (6600 - (a * (k * Log(10) / Log(10)) + k * Log(c) / Log(10)))), 7

Next

Next

Next

For x = 500 To 9700 Step 460

For y = 200 To 6600 Step 40

PSet (x, y), 7

Next y

Next x

Line (500, 6600)-(9700, 6600)

Line (500, 200)-(500, 6600)

For x = 0 To 20 Step 0.001

 

Rem  funzione da tracciare Y = 5 X + 1

 

y = (5 * x + 1)

 

Rem Calcolo e grafica  funzione da tracciare

PSet (500 + (9200 * x / 20), 6600 - 3200 * (Log(y) / Log(10))), 7

Next

End Sub

 

vb3.jpg.68a13976bf5d9b290a8d97ea5a936f77.jpg

 

 

      

D -reticolo in coordinate cartesiane in scala lineare  logaritmica a tre decadi. (fig 4)

 

Rem Listato del programma con esempio di tracciamento di una funzione esponenziale

 

Rem Disporre su di un Label i valori di ordinata  1 ; 10 ; 100 ; 1000

Rem form al max

 

Rem Tracciamento reticolo

Private Sub Form_Paint()

For x = 500 To 9700 Step 60

For a = 0 To 2

For c = 1 To 10

k = 2130

PSet (x, (6600 - (a * k + k * Log(c) / Log(10)))), 7

Next

Next

Next

For x = 500 To 9700 Step 460

For y = 200 To 6600 Step 40

PSet (x, y), 7

Next y

Next x

Line (500, 6600)-(9700, 6600)

Line (500, 200)-(500, 6600)

 

Rem anello calcolo  e grafica

for x = 1 To 100 Step 0.01

Rem funzione da tracciare Y = X 1 . 5

Y = x^1.5

Rem funzione grafica

PSet (500 + 92 * x, 6600 - 2130 * (Log( Y )) / Log(10)), vbBlue 

Next

End Sub

 

vb4.jpg.31409990bcbf6c459cc4ebf9b1473f5a.jpg

 

     

E -reticolo in coordinate cartesiane in scala doppio logaritmica a due decadi. (fig. 5)

Rem Listato del programma con esempio di tracciamento di una funzione iperbolica

Rem Disporre su due Label, in ascisse e ordinate,  di valori   1 ; 10 ; 100 .

Rem Form al max

 

Rem tracciamento reticolo

Private Sub Form_Paint()

For Y = 200 To 6600 Step 40

For a = 0 To 1

For x = 1 To 10

s = 4600

PSet (a * s + 500 + s * Log(x) / Log(10), Y), vbBlack

Next x

Next a

Next Y

For x = 500 To 9700 Step 60

For a = 0 To 1

For c = 1 To 10

k = 3200

PSet (x, (6600 - (a * (k * Log(10) / Log(10)) + k * Log(c) / Log(10)))), vnblack

Next c

Next a

Next x

Line (500, 6600)-(9700, 6600), vbBlack

Line (500, 200)-(500, 6600), vbBlack

 

Rem anello calcolo e grafica funzione Y(f(x)

For x = 1 To 100 Step 0.01

Y = 100 / x ' funzione da tracciare

Rem funzione grafica

PSet (500 +(4600*Log(x)/Log(10)), 6600 - 3200 * (Log(Y) / Log(10))), vbRed                                                                                

Next

End Sub

 

vb5.jpg.d672f066538da0b533ac462a39fe1264.jpg

 

 

     

 

 F -reticolo in coordinate polari in scala doppio lineare, prsentazione di tabella (fig. 6)

Rem Listato del programma con esempio di tracciamento  relativo ad una serie di 36 dati,

Rem uno ogni 10°,  inseriti nella matrice md(dato)

 

Rem Disporre di  Label  negli  assi ortogonali di valori  0° ; 90° ; 180° ; 270°.

 

Rem dichiarazioni matrici

Private md(300) As Integer 'matrice dati da presentare

Private arg(300) 'matrice angoli del tracciato

 

Rem tracciato polare

Private Sub Form_Paint()

a = 0

r = 0

For a = 1 To 10

 

r = 300 + r

 

For X = -r To r

Y = Sqr(Abs(r ^ 2 - X ^ 2))

PSet (6000 + X, 4000 + Y), vbRed

Y = Sqr(Abs(X ^ 2))

Next X

 

For X = -r To r

Y = -Sqr(Abs(r ^ 2 - X ^ 2))

PSet (6000 + X, 4000 + Y), vbRed

Y = -Sqr(Abs(X ^ 2))

Next

Next a

 

For alfa = 0.0001 To 360 Step 10

For X = -3000 To 3000

Y1 = (Tan(alfa * 0.017453293) * X)

If Y1 > r * Sin(alfa * 0.017453293) Then Y1 = 0

If Y1 < -r * Sin(alfa * 0.017453293) Then Y1 = 0

 

PSet (6000 + X, 4000 + Y1), vbRed

PSet (6000 + X, 4000), vbRed

Next X

Line (6000, 1000)-(6000, 7000)

Next alfa

 

'MATRICE md(dato) CONTENENTE  I  DATI  DA PRESENTARE

md(0) = 100

md(1) = 150

md(2) = 200

md(3) = 230

md(4) = 300

md(5) = 280

md(6) = 350

md(7) = 400

md(8) = 450

md(9) = 420

md(10) = 450

md(11) = 400

md(12) = 300

md(13) = 250

md(14) = 200

md(15) = 180

md(16) = 190

md(17) = 170

md(18) = 160

md(19) = 180

md(20) = 160

md(21) = 150

md(22) = 250

md(23) = 300

md(24) = 400

md(25) = 480

md(26) = 500

md(27) = 500

md(28) = 480

md(29) = 400

md(30) = 300

md(31) = 350

md(32) = 280

md(33) = 290

md(34) = 170

md(35) = 150

 

 

For c = 0 To 36

arg(c) = 90 - (10 * c)

Next c

 

 

For xx = 0 To 36

'CALCOLO PER IL POSIZIONAMENTO DEI PUNTI

X = 5 * md(xx) * Cos(arg(xx) * 0.017453293)

Y = (Tan(arg(xx) * 0.017453293) * X)

Circle (6000 + X, 4000 - Y), 40

 

'CALCOLO PER IL TRACCIAMENTO DEI SEGMENTI D'UNIONE TRA I PUNTI

'(il calcolo si avvale anche delle variabili X ed Y

'calcolate nelle istruzioni superiori)

X1 = 5 * md(xx + 1) * Cos(arg(xx + 1) * 0.017453293)

Y1 = (Tan(arg(xx + 1) * 0.017453293) * X1)

Line (6000 + X, 4000 - Y)-(6000 + X1, 4000 - Y1)

Next xx

End Sub

 

vb6.jpg.7149217fa1f928507f196a4a4cfca7d5.jpg

 

 

Modificato da C. Del Turco
Link al commento
Condividi su altri siti

  • C. Del Turco changed the title to Sonar: procedure in Visual Basic per il tracciamento e lo studio dei grafici delle funzioni caratterizzanti le operatività delle componenti

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Visitatore
Rispondi a questa discussione...

×   Hai incollato il contenuto con la formattazione.   Rimuovi formattazione

  Sono ammessi al massimo solo 75 emoticon.

×   Il tuo link è stato automaticamente aggiunto.   Mostrare solo il link di collegamento?

×   Il tuo precedente contenuto è stato ripristinato.   Pulisci l'editor

×   Non è possibile incollare direttamente le immagini. Caricare o inserire immagini da URL.

Caricamento...
  • Statistiche forum

    • Discussioni Totali
      45k
    • Messaggi Totali
      521,8k
×
×
  • Crea Nuovo...