I denna laboration ska du göra en enkel applikation som beräknar
sidorna i en rätvinklig triangel. Efter laborationen ska du kunna:
- deklarera variabler
- skriva kod i händelseprocedurer
- använda några inbyggda funktioner
- skriva egna funktioner
- rita på formuläret Utförande
Program
- Skapa ett nytt projekt i en ny mapp (välj lämpliga namn)
Det är oftast bra att tvingas deklarera sina variabler, bland annat
så hittar du många småfel snabbare. Du kan göra
det genom att skriva Option Explicit i General declarations-delen
i kodfönstret för formuläret. Du kan också klicka
för Require Variable Declaration som du hittar
via Tools | Options under fliken
Editor. Då gäller det för alla formulär
som du skapar.
- Skapa ett formulär som innehåller en rätvinklig triangel
(rita med tre linjer), tre textrutor (en för varje sida i triangeln)
och tre knappar
- Knapparna ska ha texten Beräkna A, Beräkna B
och Beräkna C
- Sidorna i triangeln ska ha benämningen A, B
och C
- Namnge textrutorna TextA, TextB och så vidare
- Namge knapparna CommandCalcA och så vidare
- Skriv kod för knappen Beräkna A så att
sidan A beräknas med hjälp av värdena som är
inmatade för sidorna B och C
Tips: Använd Phytagoras sats för att beräkna
den okända sidan. För att beräkna roten ur ett tal bör
du använda Sqr(…). Titta även på hur de inbyggda
funktionerna Val(…) och Str$(…) kan användas.
- Gör motsvarande för knappen Beräkna B
- Gör motsvarande för knappen Beräkna C

Funktion 1 – Beräkna arean
- Skapa en ny textruta där arean ska presenteras
- Lägg till en etikett som talar om vad som visas i rutan
- Gör så att det inte går att skriva i rutan
- Skriv in följande funktion i kodfönstret
Private Function
TriangelArea(basen As Single, höjden As Single) As Single
TriangelArea = basen * höjden
/ 2
End Function
- Lägg den sist
Funktionen beräknar och returnerar arean för en triangel när
basen och höjden är given. Alla variabler och även returvärdet
är deklarerade som Single för att kunna hantera flyttal.
- Skriv in följande i slutet av den händelseprocedur som hanterar
en av knapparna
motstående
v=arctan ____________
närliggande
Koden förutsätter att du har gett textrutan som
ska visa arean namnet TextArea
och att kateternas värden är inlästa i variablerna a och
b.
- Beräkna och presentera arean
Dim area
As Single
area = TriangelArea(a, b)
TextArea.Text = Str(area)
- Kör igång och klicka på knappen
- Kontrollera att det fungerar
När det är klart ska det naturligtvis fungera för
alla knapparna.
Funktion 2 – Kvadrat
- Skriv en egen funktion som du kallar kvadrat
- Ersätt dina kvadreringar i knapparnas kod med ett anrop till
din nya funktion
- Kontrollera att det fungerar
Funktion 3 – Beräkna omkretsen
- Skapa en funktion som beräknar omkretsen
- Gör så att den behöver tre parametrar (de olika sidorna)
och returnerar omkretsen (summan av de tre parametrarna)
Funktion 4 – beräkna vinkeln
- Formeln för vinkeln när du vet kateterna är
motstående
v= arctan ____________
närliggande
- Deklarera PI som en konstant i general declarations-delen
(värdet bör vara ungefär 3.14)
- Skapa ytterligare en ny textruta
Den ska visa värdet på en av vinklarna och beräknas när
någon av knapparna Beräkna trycks ned.
- Skapa en funktion som beräknar vinkeln om man vet kateterna
- Se till så att funktionen anropas och resultat visas i textrutan
när knapparna Beräkna trycks ned
Rita
- Rita om triangeln när någon av knapparna Beräkna
trycks ned
Triangeln ska ritas skalenligt, det vill säga om du ändrar
på en sida och trycker på en knapp så ska triangelns
form ändras.
- Använd en generell procedur som du anropar från varje knapps
händelseprocedur
Här krävs det lite geometri och du bör titta på
hur en linje beskrivs med sina egenskaper. Speciellt intressanta är
koordinaterna X1, Y1, X2 och
Y2. Ett tips är att låta
en punkt i triangeln alltid vara densamma.
Provkör
- Starta programmet och fyll i värden i två av rutorna
- Klicka på knappen bredvid den ruta som inte har något
värde och se vad som händer
- Prova att ändra på Skala och se hur triangeln
ritas om i olika storlekar men i samma form.
Värdena för skalan fyller du i under Lista
i egenskaper för Listboxen.
Fundera på:
- Varför använde du funktioner för att beräkna vinkeln,
arean och omkretsen?
- PI är deklarerad som konstant. Varför?
- Varför är det bäst att deklarera PI
i General Declarations-delen?
- Nämn tre minst tre skäl för att använda funktioner
och generella procedurer.
Extra uppgifter:
Mata in 0 (noll) i kateternas rutor och klicka på Beräkna C.
Vad händer och varför. Fixa!
Gör ett "inloggnings"-formulär, det vill säga
när programmet startas ska användaren tvingas att mata in ett
lösenord för att komma vidare i programmet.
|