Visual basic from scratch

Variabile. Opțiune explicită.

Bine, e timpul să vorbim despre variabile. Fără ei nu putem face nimic mai mult. Nu voi fi lung și obositor să vă aduc cu teoria. Dar cel puțin trebuie să știți.







Este foarte de dorit ca programul să înceapă cu o instrucțiune explicită de opțiune. Aceasta va cere explicit declararea variabilelor. Adică, dacă ai scrie numele variabilei cu o eroare, atunci acesta este locul pentru a găsi și poke nasul, pentru că numele variabilei nu este aceeași greșeală cu numele variabilei declarate în VB programul începe. Variabila trebuie declarată explicit folosind instrucțiunea Dim.

Acum voi explica această mizerie de exemplu, altfel nu înțeleg ce am scris.

'Declare variabila MyStroka în mod explicit ca un șir (adică text)

Dim MyStroka ca șir

"Apoi, atribuiți valoarea" variabilă ", dar numele variabilei" este scris cu o eroare

Când rulați programul, VB găsește imediat acest loc ca o eroare și îl evidențiază. Dacă nu avem o declarație explicită de opțiune. atunci variabila noastră eronată va fi definită ca fiind nouă. Dar nu am atribuit valoarea variabilei corecte MyStroka, deoarece l-am atribuit variabilei noi cu o eroare în nume. Apoi, mai târziu, când vrem să obținem valoarea variabilei corecte, nu va fi pur și simplu în ea.

E un lucru ușor de înțeles.

Astfel, orice inscripție, cu excepția cuvintelor VB rezervate, poate fi variabilă. Dar numele trebuie să înceapă cu un caracter alfabetic. De exemplu, Peremenaia, Ima1, X, LastNumber, z001. Nu utilizați operatori matematici în nume. Și nu puteți declara două variabile cu același nume. În principiu, pentru comoditatea citirii codului și a solidității, există anumite reguli pentru scrierea numelor de variabile. Dar nu voi rămâne la ei. Dacă vânezi, căutați pe Internet ceva despre acordul maghiar.

Suntem interesați de variabilele de tipul următor

Long "lung cu un semn de la -2 147 483 648 la 2 147 483 647

Integer "cu un semn de la -32 768 la 32767

String "

Boolean ", are două valori, fie" Adevărat ", fie" Fals "

Până acum, acest lucru este suficient pentru noi. Dacă sunteți interesat, mai multe detalii despre tipurile de date suportate de VB pot fi găsite aici.

Dim MyStream ca șir
Dim K14 Atâta timp
Dim Flag ca boolean
Dim numar ca intreg

Private Sub Form_Load ()
Dim Flag2 Ca boolean
Dimpotrivă, ca șir
End Sub

Cronometrul. Programul "Ore".

Acum, timer. În stânga, unde componentele formularului sunt aceleași elemente-unelte, se desenează un astfel de ceas cu alarmă. Acest cronometru este. Este întotdeauna invizibil, dar elementul potrivit. Un total de aproximativ 30 dintre acestea pot fi utilizate simultan. Dar nu avem nevoie de atâția dintre ei la smochin. Am pus unul pe formular. Pe baza ei vom face acum un ceas mic. În proprietățile acestui cronometru, setați următoarele setări:

Enabled - Fals (implicit la valoarea True) înseamnă că temporizatorul este oprit

Intervalul - 1000 (timpul, în milisecunde, prin care se declanșează cronometrul, dacă este, desigur, activat). Timerul se va declanșa la fiecare 1000 msec, adică în fiecare secundă, ca într-un ceas normal.

În plus, vom avea nevoie de trei etichete: Label1 pentru secunde, Label2 pentru minute și Label3 - ghiciți-vă pentru tine. Corect, pentru a afișa o oră, minute și secunde, respectiv. Asta e tot.

Puneți în proprietățile etichetelor astfel de setări:

Aliniere - 2 centrifugare (Aceasta este astfel încât numerele au fost în centrul etichetelor)
BorderStyle - 1-Fix (aceasta este astfel încât formatul de dimensiune nu poate fi schimbat)
Caption - 00 (doar în caz, adică valoarea etichetelor va fi inițial "00")

Apăsați Font și selectați o dimensiune a fontului de 14, iar conturul este îndreptat. După aceasta, selectați dimensiunea corespunzătoare a ferestrelor etichetelor, astfel încât cifrele din ele să arate mai colorate.

Ar trebui să arate ca Figura 8.

Faceți rutina Form_Load.

Private Sub Form1_Load ()

Apoi, în corpul procedurii, ca în orice program decent, schimbați antetul formularului.

Mai mult, pentru ca ceasurile noastre să arate imediat ora curentă, trebuie să le luăm de pe computer. Pentru a obține timpul sistemului, există funcția de timp (Label1.Caption = Time). Dar ea dă un timp complet într-o singură linie (16:23:42). Trebuie să alegem din ea secunde, minute și ore pentru a împinge etichetele. Pentru a face acest lucru, să luăm funcțiile deja pregătite, care ne vor oferi toate acestea în părți:

Label1.Caption = Al doilea (Time) "este al doilea
Label2.Caption = Minute (Time) 'Ei bine, minute
Label3.Caption = Ora (Ora) 'și ore

Acum, dacă vom rula programul, vom avea ora curentă, dar doar ceasul merită.

Aici este algebra booleană. Adică Timer1.Enabled poate fi activat (True) sau dezactivat (False).

Pentru a obține cel puțin câteva beneficii de la cronometrul de funcționare, vom crea o procedură care va fi executată la apariția evenimentului cronometru

Private SubTimer1_Timer ()

Secvențele noastre ar trebui să crească cu câte unul pentru fiecare operație de cronometrare. Prin urmare, scriem un contor







Label1.Caption = Label1.Caption + 1

Și așa am ajuns aproape de problema operatorului condiționat Dacă. sau în cazul declarațiilor. Esența acestei instrucțiuni este că permite, cu o anumită condiție creată, să facă schimbări în timpul programului.

În rusă declarația If va arăta astfel:

Dacă Vasya îl iubește pe Masha Tgda
Masha e rece

Altfel, dacă Vasya îi iubește pe Petya, atunci dacă condiția superioară nu este îndeplinită
Vasya capra

În caz contrar, dacă nu sunt îndeplinite condițiile
Vasya nebunul
Sfârșit Dacă

Piesele de operator Dacă sunt evidențiate în albastru. Dacă îl scrieți programabil, atunci

Dacă Vasia + Masha = "Dragoste" Apoi
Masha = "Bun"

ElseIf Vasia + Petia = "Dragostea" Apoi
Vasia = "Kozel"

Instrucțiunea If verifică prima condiție este Adevărat expresia Vasia + Masha = "Dragoste". Dacă este adevărat, operatorii din spatele ei sunt executați, dar înainte de filiala ElseIf. În cazul în care expresia nu este adevărat (fals), urmând apoi primii operatori de linie nu sunt îndeplinite, și VB merge la următoarea parte a operatorului ELSEIF și așa mai departe, până când toate condițiile de verificare. Dacă nu se face nimic, operatorii din spatele ramurii Else sunt procesați.

Este foarte simplu. Acesta este, în general, operatorul meu preferat. Fără ea, nicăieri.

Dacă nu este nevoie să verificăm condițiile suplimentare și să spunem, dacă este necesar, atunci faceți ceva și, dacă nu, apoi altul, operatorul arată astfel:

Dacă Vasia + Masha = "Dragoste" Apoi
Masha = "Bun"
altfel
Vasia = "Durak"
Sfârșit Dacă

Aceasta, așa-numitele forme bloc ale instrucțiunii If, sunt cele mai lungi. Puteți să o utilizați într-o singură linie, adică dacă condiția este îndeplinită, atunci:
Dacă Vasia + Masha = "Dragostea" Atunci Masha = "Bună" Else Vasia = "Durak"
sau
Dacă Vasia + Masha = "Dragoste" Atunci Masha = "Bună"

Acum, să aplicăm cunoștințele acestui operator pentru a practica. 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ă numărul este mai mică decât lungimea înregistrată în două etichetă. Dacă da, atunci adăugați înainte de zero. Pentru a face acest lucru, folosim funcția Len ("șir"). care determină numărul de caractere dintr-un șir. Dacă într-un șir, de exemplu, 5 caractere, Len va da un număr de 5. Vom primi:

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

Dar, la urma urmei, și atunci când încărcăm timpul de sistem în rutina Form1_Load, avem de asemenea nevoie de o astfel de verificare. Nu rescriem același lucru în două proceduri diferite. Vom face propria noastră procedură și ne vom referi la ea după cum este necesar. Să o numim, de exemplu, Zero. La sfârșitul programului nostru, tastăm tastatura de pe tastatură:

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

Deci, acum avem propria noastră subrutină, numită Zero. Nu există evenimente pentru executarea sa nu este, și că ea lucra la locul potrivit, trebuie doar să scrie numele ei Zero. Și avem nevoie de aceste locuri în ultimul rând în portsedurah Form1_Load () și Timer1_Timer () din dreapta (înainte de sfârșitul Sub).

Ei bine, cu zerouri în regulă, dar ceasul nu funcționează. În subrutina Timer1_Timer (), avem doar o singură instrucțiune. 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 instrucțiunii If este o problemă trivială:

Dacă Label1.Caption> 59 Apoi
Label1.Caption = "0"
Label2.Caption = Label2.Caption + 1
Sfârșit Dacă
"Același lucru pentru Label2:
Dacă Label2.Caption> 59 Apoi
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
Sfârșit Dacă

Ei bine, pentru Label3 în general gunoi. Este necesar ca, dacă mai mult de 23 de ore, nu au arătat 24, dar 00:

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

Acum am pus o referință la programul nostru zero de verificare Zero:

Voi, scuzați-mă, programul este de numai 27 de linii. M-am mestecat cât de bine am putut. Codul este scris mai jos și de la. Cine dorește, poate descărca sursa programului în partea de sus a paginii.

Private Sub Form_Load ()
Form1.Caption = "Ceas"
Label1.Caption = Al doilea (Timp)
Label2.Caption = Minute (Time)
Label3.Caption = Ora (Ora)
Timer1.Enabled = Adevărat
zero
End Sub

Private Sub Timer1_Timer ()
Label1.Caption = Label1.Caption + 1
Dacă Label1.Caption> 59 Apoi
Label1.Caption = "0"
Label2.Caption = Label2.Caption + 1
Sfârșit Dacă
Dacă Label2.Caption> 59 Apoi
Label2.Caption = "0"
Label3.Caption = Label3.Caption + 1
Sfârșit Dacă
Dacă Label3.Caption> 23 Atunci 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

"Bandit cu o singură armată" - o imitație a unui bine cunoscut dispozitiv de jocuri de noroc. Înțelesul programului este după cum urmează. Trei etichete afișează numerele de schimbare de la 1 la 7. Trei variabile de număr sunt utilizate pentru a lucra cu ele. Schimbarea lor este controlată de trei timpi. Inițial, intervalele pentru timere sunt aceleași - 10 MSK. În trei variabile Zamedlenie, se generează numere aleatorii.

Zamedlenie1 = Int (Rnd * 20) + 10

Funcționează astfel. 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 elimină partea fracționată. Adăugați la sfârșitul secțiunii 10 pentru a exclude valoarea 0, altfel cronometrul nu se va opri. Ie Dacă Rnd generează, de exemplu, un număr de 0,156, atunci

Zamedlenie1 = Runda (0.156 * 20) + 10 = 3 + 10 = 13. Foarte simplu.

Cu fiecare operație a temporizatorului, intervalul său crește cu valoarea decelerării, până când intervalul devine mai mare de 300 (este programat: Timer1.Interval> 300

După aceea, cronometrul se oprește. Pentru a afla dacă toate temporizatoarele au fost dezactivate, folosesc variabila Flag, care acumulează numărul de cronometre care au fost dezactivate. Atunci când Flag = 3, presupunem că toate cele trei timere au terminat (și așa este) și începe procesarea rezultatelor (subrutina Raschet ()). Capitalul inițial al jucătorului este stocat în variabila Summa, iar pentru câștiguri diferite este schimbat la suma a trei variabile Bonus și dacă este pierdut la variabila BonusMinus. De ce este valoarea sa negativă? Am vrut doar atât de mult, deși acest lucru, desigur, este o perversiune. În etichetele 4 și 5 se imprimă tot felul de inscripții răcoroase, în funcție de rezultatul jocului. Și în plus, că în timpul funcționării timerelor butonul nu a fost apăsat, în condiția variabilei FlagClick fie permite pornirea temporizatorilor, fie schimbarea inscripției.

După ce capitolul jucătorului este epuizat, mergem la subrutina EndOfGame (). când butonul este blocat. Jocul ulterior este imposibil.

În acest program, mai întâi declarăm variabilele. Nu este nimic complicat în acest sens. Principalul lucru este că tipul de variabil corespunde aproximativ nevoilor noastre. Vezi doar cum se divide.

Ei bine, aproape totul. Restul trebuie să te gândești la tine. Mult noroc.







Articole similare

Trimiteți-le prietenilor: