PROGRAMACIÓ D'APLICACIONS EDUCATIVES AMB VISUAL BASICMÒDUL 6ENRERA
PRÀCTICA 1 2 (pràctica optativa) 3 (pràctica optativa) 4 5 6 7 8
 
Executar el programa m6p8.exe per conèixer el seu comportament.

Veure el llistat del codi del programa, m6p8.

Executar Visual Basic per editar el projecte (acabat): m6p8.vbp.


Complement de l'anterior

El següent exercici, complement de l'anterior, correspon a un gràfic de barres de les notes de 179 alumnes de matemàtiques.


Fase de disseny de la interfície d’usuari

Dissenyeu un formulari semblant a l'anterior, i amb les mateixes propietats, que desareu amb el nom m6p8 i al directori C:\VBCurs\VBActivi\m6\p8




Fase de programació de respostes a events

Mètodes associats a l'event Click:

Per a l'opció de menú mnuPantalla:

Recordeu que no cal que escriviu aquest codi. El podeu copiar a la carpeta i enganxar-lo en la finestra d'edició de Visual Basic.

    Sub mnuPantalla_Click ()
      Static FrecuenciaAbsoluta(1 To 10)
      Dim LlargPaper As Single, AltPaper
      Dim MidaDibuixX As Integer
      Dim MidaDibuixY As Integer
      Dim x1 As Integer, y1 As Integer
      Dim x2 As Integer, y2 As Integer
      Dim i As Integer
      Dim TotalAmpleBarra As Integer
        
      'Mida del paper Din A4
      LlargPaper = 210
      AltPaper = 297
    
      'Freqüències absolutes de les notes d'un nivell
    
      FrecuenciaAbsoluta(1) = 2
      FrecuenciaAbsoluta(2) = 5
      FrecuenciaAbsoluta(3) = 10
      FrecuenciaAbsoluta(4) = 15
      FrecuenciaAbsoluta(5) = 45
      FrecuenciaAbsoluta(6) = 48
      FrecuenciaAbsoluta(7) = 23
      FrecuenciaAbsoluta(8) = 15
      FrecuenciaAbsoluta(9) = 12
      FrecuenciaAbsoluta(10) = 4
    
      'Mides del dibuix que voleu fer
      MidaDibuixX = 150
      MidaDibuixY = 90
    
      'Posar el sistema de coordenades adient
      ScaleMode = 6
      x1 = -(LlargPaper / 2) + (MidaDibuixX / 2)
      y1 = (AltPaper / 2) + (MidaDibuixY / 2)
      x2 = (LlargPaper / 2) + (MidaDibuixX / 2)
      y2 = -(AltPaper / 2) + (MidaDibuixY / 2)
      Scale (x1, y1)-(x2, y2)
      'Quadre exterior
      FillStyle = 1
      Line (0, 0)-(MidaDibuixX, MidaDibuixY), , B
      'Dibuixar les barres i els números de l'eix x.
      TotalAmpleBarra = MidaDibuixX / 10
      FillStyle = 7
      For i = 1 To 10
        x1 = 2 + (i - 1) * TotalAmpleBarra
        y1 = 0
        x2 = 12 + (i - 1) * TotalAmpleBarra
        y2 = FrecuenciaAbsoluta(i) * MidaDibuixY / 50
        Line (x1, y1)-(x2, y2), , B
        CurrentX = 2 + (i - 1) * 15
        CurrentY = -5
        Print i
      Next i
    
      'Dibuixar les línies de separació de l'eix y
      For y1 = 10 To 40 Step 10
        Line (-2, y1 * MidaDibuixY / 50)-(2, y1 * MidaDibuixY / 50)
        CurrentX = -20
        CurrentY = y1 * MidaDibuixY / 50
        Print y1
      Next y1
    End Sub

Per a l'opció de menú Per impressora:

Per tal de fer l'opció d'imprimir, copieu el contingut del procediment anterior a dins del procediment mnuImprimir_Click i poseu la paraula Printer davant de totes les instruccions del programa que s'escaiguin, o sigui totes les intruccions de dibuix. Per exemple:
    Printer.ScaleMode = 6
    Printer.Scale (x1, y1)-(x2, y2)
    Printer.FillStyle = 1
    Printer.Line (0, 0)-(MidaDibuixX, MidaDibuixY), , B
    	Etc...

Al final de les instruccions de dibuix heu de posar la instrucció:
    Printer.EndDoc

Notes: Hi ha dos fets que cal tenir presents per tal de no induir-nos a errades:

    1. El valor que assigneu a la propietat FontSize és una mida absoluta, tant per pantalla com per impressora. La mida de les lletres no queda afectada per l'escala de l'objecte en el qual esteu dibuixant.

    2. El mètode circle si que queda afectat per l'escala del dibuix que feu. L'aspecte del cercle sempre es rodó en pantalla, però la seva mida depèn solament del radi respecte a les unitats de l'eix horitzontal.


Exercicis

Per enviar al professor tutor. (Directori C:\VBCurs\VBExerci\m6\p8 )

E1. Feu dibuixos semblants als de l'activitat 1 però de forma que els pugueu imprimir.

El dibuix de la finestra principal ha de ser semblant a:




Cal enviar els següents fitxers:
    Fitxer projecte m6p8e1.vbp
    Fitxer formulari m6p8e1.frm
    Fitxer executable m6p8e1.exe