12.07.2015 Views

Lektion VBE2 - BestOnline.SE

Lektion VBE2 - BestOnline.SE

Lektion VBE2 - BestOnline.SE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

2008-04-10 NVMDVärmdö gymnasiumlektion 2PROGRAMMERING A VB 2008 expressUTVECKLINGSVERKTYGET VISUAL BASICVi ska nu använda oss av det vi lärt oss i C++, fast i VB, syntaxen blir liteannorlunda.Deklaration av variabler görs högst upp om variablerna ska synas i allahändelser (subprocedurer). Deklareras variablerna inne i en procedur blirvariablerna lokala och syns bara där.Dim tal As IntegerDim dectal As DoubleDim texten As StringEn for loop skrivs t.ex.Dim nr As IntegerFor nr = 1 To 10000Text1.Text = "KOLLE " & nrNextVill du använda whileDim nr As IntegerWhile nr < 10000Text1.Text = "KOLLE " & nrnr = nr + 1End WhileDet finns ett tredje sätt Do …(satser)…….Loop Until (villkor)If satser skrivsIf (villkor) Then…………………………ElseIf (villkor) Then……………………………Else…………………………End IfVBE_lektion2_progA.doc sida 1


2008-04-10 NVMDVärmdö gymnasiumUppgift 1.Du ska nu göra ett program som slumpar en tipsrad.Vi börjar med att få slumptalen att fungera i en textruta som vi döper tilltxtRad1. Lägg ut en knapp på formen, sätt texten tippa. Dubbelklicka påknappen , du kommer då in i kodläget. Rnd() ger ett slumptal mellan 0-1 (ger ej1). Rnd()*3 ger slumptal mellan 0-3. Vill vi nu ha slumptalen jämnt fördelade på3 heltal kan vi användaMath.Floor(Rnd() * 3) (kapar neråt, ger 0/1/2, du kan också användaMath.Ceiling som kapar uppåt ger 1/2/3.Varför är avrundning med Math.round inte bra?Testa ditt program så du får riktiga siffror, använd if sats så att 1X2 visas.Bygg om ditt program till 13 rutor med namn txtRad1- txtRad13.Placera de 13 raderna ovanför varandra ta gärna hjälp av menynformat/align/lefts. Dubbelklicka på tippaknappen du kommer då rakt in i kodenför defaulthändelsen click (hur gör man för att ändra händelse om man skullevilja det ?). Fyll rutorna med en forloop.För att få korrekta index på varje textruta initierar vi en array med dessa namn(inne i proceduren)Dim tipsRad() As Control = { txtRad1, txtRad2…… txtRad13}Du har nu tillgång till egenskapen text i varje rutamed tipsRad(nr).textFör att sudda de tretton rutorna(om något skullevara ifyllt) skriver vi en kod för händelsenform_load, den koden körs alltid vid uppstart avditt program. Dubbelklicka någonstans i formendär det inte finns något annat objekt.Lägg upp en loop från 0 till 12 som suddar i varjetextruta (se kod ovan för loop, suddakod visade vii lektion 1).Provkör programmet och tryck på tippa. Funkardet?Om ni har haft skarpa ögon så ser ni attprogrammet startar med samma värden varje gång.Lägg till randomize i form_load för att få ett äkta slumpal, nåja så äkta en datorkan ge i alla fall.Snygga till layouten lägg in en fotbollsbild (använd med fördel wmfvektorgrafik, små filer och genomskinliga). Visa upp när du är klar.VBE_lektion2_progA.doc sida 2


2008-04-10 NVMDVärmdö gymnasiumUppgift 2.Nu är det så att sannolikheten för hemmavinst(1), oavgjort(X) och bortaseger(2)inte är lika stora, lägg in i koden så att procentchanserna blir1:a 45%X 20%2:a 35%Här finns många olika lösningar vem skapar enklast lösning!Ta hjälp av oss om du behöver ledtråd.Uppgift 3.Lägg till textrutor där användaren själv bestämmer sannolikhet för1:a och 2:a (x räknas ut med hjälp av övriga två). Skriv gärna indefaultvärden t.ex 45/35/20. Förslag på kod.If ActiveControl Is txtHemma And IsNumeric(txtHemma.Text) ThentxtOavgjort.Text = 100 - txtHemma.Text - txtBorta.TextlblStatus.Text = "OK!"lblStatus.ForeColor = Color.GreenElselblStatus.Text = "Felaktiga värden!"lblStatus.ForeColor = Color.RedEnd IftxtOavgjort är här satt enabled = false (blir grå, går ej att skriva i)lblStatus visar om värdena är OK!Vad gör ActiveControl och IsNumeric (se lektion 1)Kan du komplettera koden så att summan av värdena alltid blir 100 ?Uppgift 4.Lägg till tretton rader i en ny textrutearraymall(0)-mall(12) där du sen ska skriva in rätttipsrad(du kan lägga till en knapp som nu när vibygger programmet slumpar dit en rad, så slipperdu fylla i). Vid en knapptryckning ska senprogrammet rätta, markera och räkna ut antaleträtt.Du kan också skriva kod så att rätt rad färgasgrön och felaktig röd.tipsRad(nr).BackColor = Color.GreenVBE_lektion2_progA.doc sida 3


2008-04-10 NVMDVärmdö gymnasiumUppgift 5.Uppgiften bygger på attdu själv letar lösningaraktivt.Pröva att lägga tillkontrollenDataGridView , du skadär slumpa ut femtipsrader bredvidvarandra + rätt rad,räkna antal rätt, färgarutor, ställa insannolikhet.Användbara koderDataGridView1.ColumnCountDataGridView1.RowCountSätter antal kolumneroch raderDataGridView1.Rows(rad).Cells(kol).ValueSätter värdet i varje cell(tips! Om du väljer att lösa den här uppgiften med VB2. När du installerar VB2 skapas en mapp samples/gridoch ett projekt loan. Där kan du se hur man kommer åt de olika rutorna. Maila om du behöver hjälp)Du bör efter det här passet kunna:Spara och öppna VB-projekt.Använda editorn till bl.a. skriva in kod och söka/ersättSkapa kontroller, markera, ändra egenskaper.Infoga bild och ge programmet ett hyfsat utseende.Skriva enkel kod i händelserna klick(click) och ändra(change)Hantera kontrollerna textruta, etikett, kommandoknapp.Räkna med heltal och decimaltal.Deklaration av variablerLoopar for och whileIf elseif endifSkapa en controlarraySlumptalHändelserna klick, change och formloadLäxa till nästa passGå vidare hemma en uppgift, använd gratis installation av visualbasic express2008 eller VB2promoVBE_lektion2_progA.doc sida 4

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!