Visual Basic cu zero,

Variabile. Opțiunea declarație explicită.

Tot timpul să vorbim despre variabile. Nu te voi supraîncărcați cu informații, dar cel puțin trebuie să știți.

Este foarte de dorit. programul a început cu declarația Explicit opțiunea din secțiunea generală. Această instrucțiune forțează programatorul să declare în mod explicit variabile. În absența sa, fiecare cuvânt, care nu contrazice VB sintaxa, poate fi variabilă.
Ce se întâmplă dacă nu folosim Explicit opțiunea de instrucțiuni? Iar faptul că, în general, nu putem declara variabile. Este minunat! Și aici și acolo! Și de ce nu, este clar din următoarele:

În absența opțiunii Explicit, dacă avem nevoie de o nouă variabilă, noi pur și simplu intră în codul de program, de exemplu,

și ops, Visual Basic este deja de avertizare în avans și variabilă de memorie rezervată, cât și rezervate pentru programul complet - cât mai mult posibil. Faptul este că, dacă nu specificați în mod explicit tipul de peremennnoy, VB consideră că tipul Varianta variabilă, deoarece această variabilă poate conține aproape orice date: întreg și fracționată, și șirul. Dar memoria și variabila folosește o mulțime. Dacă declarăm în mod explicit o variabilă și să definească tipul acesteia în funcție de nevoile noastre, utilizarea rațională a memoriei - pe fata.
Dacă nu sunteți convins acest argument, apoi ne imaginăm o situație în care utilizați o re-variabilă, de exemplu, schimba valoarea. Și, în timp ce faci o greșeală de scriere (erori de tipar și a făcut o mulțime), tu treci litera h:

Pentru Visual Basic în această nicio eroare. El a compila rapid al memoriei alocă pentru un nou NewCislo variabilă, inclusiv tipul său Variant, și este nici o problema. Problemele pe care le aveți. Și critică. În primul rând, aveți variabila NewCislo inutile, cu o valoare de 1, pe care tu nu le cunoști știu. În al doilea rând, dacă vă așteptați că valoarea variabilei dvs. NewChislo inițială a crescut cu 1, și a fost de 8, atunci este în zadar. Dar să se aștepte că rezultatul programului va da rezultate imprevizibile pot fi în condiții de siguranță.

Situația este diferită dacă utilizați o opțiune de declarație Explicit. În acest caz, atunci când executați programul, Visual Basic găsește imediat o nouă variabilă nedeclarată și a opri executarea programului de pe linie cu eroarea.

Orice cuvânt, cu excepția rezervat VB, puteți face numele variabilei. Dar numele trebuie să înceapă cu un caracter alfabetic. De exemplu Peremenaia, IMA1, X, LastNumber, Z001. Nu este necesară utilizarea operatorilor matematici în numele. Și nu poți declara două variabile cu același nume. În principiu, pentru a fi citite de cod și soliditate, există anumite reguli recomandate (ceva de genul) standarde de scris numele variabilelor. Dar, din moment ce utilizarea acestor norme - o chestiune pur personală, nu se lipi. În cazul în care vânătoarea, uita-te pe internet, orice informație despre acordul maghiar, notația maghiară sau Reddick acord.

Deci, cu anunțuri evidentă variabila este foarte de dorit să se precizeze în mod explicit tipul. În cazuri extrem de rare, atunci când tipul de date stocate în variabila nu este cunoscută în avans, este folosit ca un tip Varianta de timp. În Visual Basic, cele mai utilizate frecvent următoarele tipuri de date (și, prin urmare variabilele):

Lung „întreg lung -2147483648-2147483647

întreg Integer“-32,768-32767

șir de caractere String“

Logica booleană“primește două valori sau "True"(Adevărat) sau "false"(fals)

Atâta timp cât avem destul. Daca sunteti interesat, lista tipurilor de date suportate de VB, pot fi vizualizate aici.

MyStream Dim ca șir de
Dim K14 Atâta timp
Flag Dim Ca boolean
Dim Numder Ca Integer

Private Sub Form_Load ()
Dim Flag2 Ca boolean
Dim m99little ca șir
end Sub

Contor de timp. Programul „O oră“.

Considerăm acum utilizarea noului instrument - temporizator (timer). În partea stângă, în cazul în care componentele formei, ele sunt, de asemenea, elemente de unelte, pictat un ceas cu alarmă. Acest temporizator este. El este întotdeauna invizibil, dar elementul dorit. Toate acestea simultan, puteți utiliza aproximativ 30 de bucăți. Dar avem atât de multe cronometre nu.

Creați un nou exe-proiect și a pus un cronometru pe formular. Pe baza aceasta facem acum puțin de ceas. Proprietățile acestui temporizator este setat pentru următoarele:

Activat - Fals (implicit adevărat) înseamnă că cronometrul este oprit

Interval - 1000 (timpul, în milisecunde, după care expiră timer-ul, cu excepția cazului în desigur incluse). Cronometrul va lucra la fiecare 1000 MSK, și anume în fiecare secundă ca în ore normale.

În plus, avem nevoie de trei etichete: Label1 timp de secunde, timp de minute și Label2 Label3 - poate ghici de ce. Așa e, ore în șir. Toate.

Modificarea proprietăților de etichete, după cum urmează:

Aliniere - 2-Alignment (Aceasta este astfel încât numerele au fost în centrul etichetelor)
BorderStyle - 1-fix (era imposibil să se formeze resize)
Legendă - 00 (în orice caz, și anume valoarea etichetelor este inițial „00“)

Faceți clic pe Font și selectați o dimensiune de font de 14, iar semnul - bold. După aceea, alege eticheta fereastra de marimea potrivita pentru a le figura arata dragut.

Ar trebui să arate ca în figura 8.

Visual Basic cu zero,

Crearea unei proceduri Form_Load.

Private Sub Form1_Load ()

W ATEM în corpul procedurii, ca orice program de decente, schimba forma antet.

Mai mult, pentru a viziona spectacolele noastre, la o dată ora actuală, este necesar să-l scoată din computer. Pentru a obține ora sistemului este o funcție de timp (Label1.Caption = Time). Dar dă un plin timp de o linie (16:23:42). atunci trebuie să aleagă din ea secunde, minute și ore la raspihat pe etichetele lor. Și pentru a nu face acest lucru, putem lua funcția de-a gata, care ne va oferi toate acestea, în parte:

Label1.Caption = a doua (timp) „, prin urmare secunde
Label2.Caption = minut (timp) „Ei bine, minute
Label3.Caption = Ora (Time)“, și ceasul

Acum, când începe că navayal, vom arăta ora curentă. Acest lucru este cu siguranță un progres, dar asta e doar un ceas în valoare de ceva. Se agită monitorul nu este necesară, ei nu merg mai departe, dar începe cronometrul o linie simplă, vom fi capabili să:

Aici este, o algebră booleană (bine, nici măcar algebră, dar e ceva). Aceasta este Timer1.Enabled poate fi activat fie (Adevărat). sau cu handicap (false). Pe aceasta n Same Form1_Load operațiune () este finalizată:

Pentru a obține cel puțin unele beneficiază de un contor de timp de funcționare și de a face ceas noastre pentru a merge, de a crea o procedură care este executată atunci când are loc un eveniment, cronometrul. Acest eveniment este unic în cronometru numit prea .Timer. Aceasta are loc într-un moment când temporizatorul ajunge până la limita stabilită în proprietatea Interval și resetat în mod corespunzător la zero.

SubTimer1_Timer Private ()

a doua noastră ar trebui să fie majorat cu câte una pentru fiecare operațiune cronometru. Prin urmare, scrie contra, ceea ce va crește importanța secunde noastre pe unitate, cu fiecare operațiune de timer-ul:

Label1.Caption = Label1.Caption + 1

Și aici ne apropiem de eliberarea unei declarații condiționată (și instrucțiuni mai bune) În cazul în care. fără de care - oriunde. Esența acestei afirmații este că permite o anumită pentru a crea condițiile pentru a face modificări în timpul programului, în funcție de condițiile.

Etou instrucțiuni pot fi utilizate în formă de bloc: formă complet (desfăcută) și incomplet (fără rânduri ELSEIF), și, de asemenea, într-o singură linie.
În forma sa completă în formă de bloc de sintaxa instrucțiuni este următoarea:

Dacă CONDITION1 Atunci
operatorov1 grup
Apoi elseif CONDITION2
operatorov2 grup
.
Apoi elseif UslovieN
grup operatorovN
altfel
Acest din urmă grup de operatori
End If

Condițiile reprezintă operatorul a cărui valoare poate lua adevărat (true) sau fals (false). De exemplu, dacă CONDITION1 reprezintă expresia X> 1. este adevărat în cazul în care X este 2, este fals la valoarea X egală cu 1. Dacă CONDITION1 adevărat, atunci gruparea operatorov1. celălalt grup de operatori care nu sunt îndeplinite, chiar dacă într-un fel de ramuri ulterioare UslovieN adevărate. Dacă CONDITION1 fals, grupul nu operatorov1 efectuat, și a produs CONDITION2 verifica următoarea ramură ELSEIF. Și din nou, dacă CONDITION2 adevărat, atunci gruparea operatorov2. următorul grup de operatori care nu sunt îndeplinite, iar condițiile lor nu sunt verificate. În caz contrar, treceți la următoarea ramură ELSEIF. În cazul în care nici o ramură nu este adevărat operatorilor care rulează cel mai recent grup de operatori, indiferent de orice condiții. Dacă circuitul logic de instrucțiuni este reprezentată în tabel:

Dacă CONDITION1 Atunci

Apoi elseif CONDITION2

În cazul în care instrucțiunile cel mai frecvent utilizate în formă de bloc în formă incompletă (trunchiat). În acest caz, nu există nici o linie ELSEIF:

Dacă Stare Apoi
operatorov1 grup
altfel
operatorov2 grup
End If

În acest caz, în cazul în care condiția este - adevărat, atunci gruparea operatorov1. și, dacă nu, atunci gruparea operatorov2.

De asemenea, destul de multe ori există o necesitate, în funcție de condițiile pentru a efectua un singur operator. În cazul în care, atunci declarație poate fi utilizată o singură linie, fără End Dacă linia.

Dacă Stare ThenOperator1Else statement2

Dacă starea ThenOperator1

Este foarte simplu. Acesta este, în general, operatorul meu preferat (mult mai convenabil și versatil decât Select. Case).

Acum aplica cunoștințele operatorului în practică. Pentru moment nu avem dovezi în programul nostru, „o oră“ la zeci la deget de la picior 01, 02, 03, în loc de 1, 2, 3, vom verifica starea dacă două numere de lungime mai mică înregistrată pe etichetă. Dacă este așa, se adaugă deget de la picior din față. Pentru a face acest lucru, vom folosi funcția Len ( „string“). care va determina numărul de caractere pe linie. În cazul în care o linie, de exemplu, 2 caractere, atunci Len dă numărul 2. Obținem:

Dacă Len (Label1.Caption) <2 Then Label1.Caption = "0" & Label1.Caption‘для первого лейбла

Dar apoi, atunci când timpul de încărcare a sistemului în procedura de Form1_Load, avem nevoie, de asemenea, o revizuire. noi nu vom rescrie același lucru în două proceduri diferite. Vom face procesul de ansamblu și se va referi la el după cum este necesar. Noi o numim, de exemplu, zero. La sfârșitul programului nostru pe un spațiu gol pentru a introduce o nouă procedură:

Private Sub Zero ()
Dacă Len (Label1.Caption) <2 Then Label1.Caption = "0" & Label1.Caption
Dacă Len (Label2.Caption) <2 Then Label2.Caption = "0" & Label2.Caption
Dacă Len (Label3.Caption)<2 Then Label3.Caption = "0" & Label3.Caption
end Sub

Astfel, acum avem propria noastră procedură, care se numește zero. Nu există evenimente pentru punerea sa în aplicare acolo și a face să funcționeze, este necesar să se trezească dintr-un loc dorit al programului, care tocmai a scrie numele ei Zero. Și avem nevoie de aceste locuri sunt situate în ultimul rând în Form1_Load proceduri () și Timer1_Timer (). dreapta (înainte de sfârșitul Sub).

Ei bine, cu piciorul este bine, dar ceasul nu funcționează. În Timer1_Timer () subrutina avem doar un singur operator. Pentru a viziona lucrat ca reale, avem nevoie, atunci când mai mult de 59 de secunde a devenit, au adus la zero, minutele vor fi mărite cu unul. Utilizarea unui Dacă este foarte ușor de făcut:

Dacă Label1.Caption> Apoi 59
Label1.Caption = "0"
Label2.Caption = Label2.Caption + 1
End If
„Același lucru este valabil și pentru Leybla2:
Dacă Label2.Caption> Apoi 59
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
End If

În mod similar pentru Label3. Avem, deci, la o valoare mai mare de 23 de ore de ore, Label3 24 nu este arătat, un zero:

Dacă Label3.Caption> 23 Apoi Label3.Caption = "0"

Acum am pus referința la zero noastre zerouri procedura de verificare.

Aici este o listă completă a ceea ce sa întâmplat. Cine vrea să se poate descărca exemplu de cod sursă în partea de sus a paginii.

Private Sub Form_Load ()
Form1.Caption = „o oră“
Label1.Caption = a doua (Time)
Label2.Caption = minut (Timpul)
Label3.Caption = Hour (Ora)
Timer1.Enabled = Adevărat
zero
end Sub

Private Sub Timer1_Timer ()
Label1.Caption = Label1.Caption + 1
Dacă Label1.Caption> Apoi 59
Label1.Caption = "0"
Label2.Caption = Label2.Caption + 1
End If
Dacă Label2.Caption> Apoi 59
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
End If
Dacă Label3.Caption> 23 Apoi Label3.Caption = "0"
zero
end Sub

Private Sub Zero ()
Dacă Len (Label1.Caption) <2 Then Label1.Caption = "0" & Label1.Caption
Dacă Len (Label2.Caption) <2 Then Label2.Caption = "0" & Label2.Caption
Dacă Len (Label3.Caption) <2 Then Label3.Caption = "0" & Label3.Caption
end Sub

Zamedlenie1 = Int (Rnd * 20) + 10

Acesta funcționează așa. RND generează un număr aleatoriu între 0 și 1. La douăzeci și multiplica pentru a obține partea întreagă (poate fi multiplicată cu nimic, dar nu mai puțin de 10, dar care nu se dovedesc întreaga parte). Funcția Int aruncate înapoi partea fracționară. Adăugat la sfârșitul 10, pentru a exclude valoarea 0, iar opririle timer. Ie dacă Rnd generează, de exemplu, numărul de 0156, atunci

Rotunjirea Zamedlenie1 = (0,156 * 20) + 10 = 3 + 10 = 13. Foarte simplu.

De fiecare dată intervalul pentru valoarea sa de decelerare taymerauvelichivaetsya, până când intervalul devine mai mare de 300 (acest software specificat: Timer1.Interval> 300

După aceea, cronometrul este oprit. Pentru a afla dacă toate cronometre sunt oprite, folosesc o variabilă Acest pavilion, care se acumulează un număr de timer-putere în jos. Când Flag = 3, noi credem că toate cele trei cronometre au terminat (și este) și va începe procesarea rezultatelor (Raschet de rutină ()). Jucătorul de capital inițial este stocată într-o Summa variabilă, care variază pentru diferite premii pe o sumă de trei variabile Bonus, dar la o pierdere în BonusMinus variabile. De ce este negativ? M-am simtit ca ea, deși este, desigur, nu este necesar. Etichete 4 și 5 apar etichete rece, în funcție de rezultatul jocului. Ei bine, în plus față de timpul butonul Cronometrul nu este apăsat, este, ca FlagClick variabilă, sau vă permite să porniți cronometrul, sau își schimbă semnul său.

Odată capitala unui jucător este epuizată, am ajuns la procedura de abandon EndOfGame (). și în ea butonul este dezactivat. juca în continuare, în același timp, este imposibil.

În acest program, declarăm mai întâi variabile. Nimic din acest complicat. Principalul lucru este tipul de variabilă aproximativ în conformitate cu nevoile noastre. Doar vezi cum Delian.

Ei bine, aproape toate. Restul trebuie să se gândească în sine. Mult noroc.

articole similare