$-Geo-$
Master of 127.0.0.1
Inregistrat: acum 18 ani
Postari: 133
|
|
Bazele in Visual Basic Continut: Introducere Variabile,constante Tipuri de variabile Tipul array Instructiuni Proceduri Functiile msgbox() si inputbox() Fisiere Meniu Bibliografie
Introducere Visual Basic este un mediu de programare vizuala de inalta productivitate,produs de firma Microsoft,cu care poti crea o multime de aplicatii Windows.Visual Basic este derivat de la limbajul Basic si face parte din pachetul pentru programare vizuala oferit de Microsoft,Visual Studio. Programul Visual Basic este alcatuit din : Bara de meniu—contine meniuri cu care sunteti familiarizati din alte programe(File,Edit,View,Windows,Help)+2 meniuri specifice compilatoarelor (Project,Debug,Run,Add-ins); Bara de instrumente—are cateva scurtaturi pt comenzile cele mai folosite (Save,Open..) Bara de controale(Toolbox)—contine controalele din Visual Basic Fereastra Properties—proprietatile controalelor(am sa va explic cateva pe la sfarsitul tutorialului) Browser-ul pentru proiect—afiseaza formularele si modulele proiectului Fereastra From Deisgn— contine forma fiecarui element Fereastra de cod—nu este vizibila ,dar fiecarei forme sau module ii este asociata Aici se scrie codurile din visual basic(declararea variabilelor, instructini,etc); Comentarile in Visual Basic se fac cu ajutorul ‘ (apostrof).
Variabile,constante 1.Variabile Variabilele sunt numele unei locati de memorie in care se pastreaza o valoare care poate fi modificata in timpul executiei programului. Declararea variabilelor : Dim nume_variabila as tip nume-este numele variabilei declarate(si pe care vei folosio in program); tip-tipul de date care ii este asociat(vom discuta despre acestea mai tarziu); Variablele incep cu o litera sau cu _(underscore) si contine 255 de caracere Mai putem folosi un fel de declarare a variabilelor: -a)Public nume as tip sau -b)Static nume as tip a)daca folosim cuvantul cheie Public inseamna ca am vrut ca variabila sa fie cunoscuta in intreaga aplicatie b)daca am folosit Static atunci inseamna ca am vrut sasi pastreze valoarea chiar si in afara proceduri.
2.Constante Constantele sunt un fel de variabile dar fata de acestea ele nu pot fi modificate in timpul executiei programului. Declararea constantelor : [Private][Public]Const nume as tip = valoare nume & tip-ca la variabile valoare- poate fi un numar,caracter sau sir de caractere care in timpul unui program sa nu se schimbe Private –cuvant cheie care face constata sa fie folosita numai in aplicatia curenta Public - cuvant cheie care face constanta vizibila in tot programu
2 functii incluse in compilator(limbaj) sunt vla() si str(). Val()—transforma un sir de caractere inrun rezultat intreg(Asciinumar) Str() –transforma un intreg intrun sir de caractere(numarAscii)
Tipuri de variabile In Visual Basic tipurile de variabile se impart(zic eu si multi alti de la care am invatzat) in 2 categorii : 1)Numerice : Byte:de la 0 la 255 Integer : numere intregi intre -32,768 si 32,767 Long : intreg lung (ceva numere mai mari) Single:numere reale cu virgula mobila simpla precizie Double:numere reale cu virgula mobila cu dubla precizie Currency:numere foarte mari(folosite pt monede spun unele carti) Decimal:numere foarte foarte mari Cu toate aceste tipuri se pot efectua operatii aritmetice. 2)Nenumerice: String:ca in toate limbajele(pt siruri de caractere); Date:se foloseste pt date din calendar Boolean :retine valori de tip true/flase(adevart/fals) ; Object :pt obiecte O variabila dere care nu sa mai auzit despre ea in alte limbaje este tipul Variant. Variant—contine toate tipurile de date Pt a forta o valoare sa ia un anumit tip de data atunci folositi urmatoarele sufixe : & --------------------------------------Long ! ---------------------------------------Single #---------------------------------------Double @--------------------------------------Currency
Tipul array Tipul array este o lista de variabile ,toate avand acelasi tip de date si acelasi nume. Declararea variabilelor se poate face cu ajutorul cuvintelor cheie Public sau Dim(leam explicat mai sus): Dim nume(numar_de_elemente) as tip_de_date Variabilele sunt numar_de_elemente-1 De exemplu :Dim student(3) as String avem variabilele :student,student(1),student(2) Putem declara tipul array ca: Dim trandafiri(10 to 50) as Integer Am declarat un array care incepe cu trandafiri(10) si se termina cu trandafiri(50)
Exemplu :
Private Sub cmdtest_Click()
Dim prop(4) as string prop(0)= « Programare » prop(1)=”in” prop(2)=”Visual” prop(3)=”Basic”
Msgbox prop(0) & “ “ & prop(1) & “” prop(2) & “ “ & prop(3)
End Sub
Instructiuni In Visual Basic sunt 3 feluri de instructiuni :1)de decizie 2)repetitive 3)de salt 1)Instructiuni de decizie Sunt in numar de 2:a)Instructiunea IF b)Instructiunea Case a)Instructiunea if: Testeaza daca o conditie daca este adevarata. Folosire:are mai multe feluri de folosire If cond then instructiune Daca cond(conditia) este adevarata executa instructiunea. Exemplu: If 9>7 then msgbox “9 e mai mare decat 7”
If cond then instructiune 1 Else instructiune 2 End If Testeaza daca cond(conditia) este adevarat si executa instructiunea 1.Daca cond este falsa atunci executa instructiunea2 si se termina in sf programu cu autorul lui End If. Exemplu: If 7<5 then msgbox « 7 este mai mic decat 5” Else msgbox “7 este mai mare decat 5” End if
If cond then instructiune 1 Else If cond 2then instructiune 2 Else If cond 3 then instructiune 3 : : Else If cond n then instructiune n End if
Testeaza daca cond(conditia) este adevarata si executa instructiunea 1,daca nu testeaza ce este la Else if la conditia 2 si daca este adevarat executa instructiunea 2 daca nu testeaza cond 3 si tot asa.
Exemplu : In sf va dau un exemplu de un program complet.Faceti o forma cu 3 controale text si un label cu numele rezultat.Cele 3 controale text faci :primul la proprietatea Name scri primul,la al 2lea control la Name scri operato iar la al 3lea la Name scri aldoilea.
Private Sub cmdtest_Click() Dim primul as integer Dim operator as string Dim aldoilea as integer
primul = primulnumar.text operator= operator.txt aldoilea=aldoileanumar.txt
If operator=”+” then rezultat.Caption=primul+aldoilea Else if operator=”-“ then rezultat.Caption=primul+aldoilea Else if operator=”*” then rezultat.Caption=primul*aldoilea Else if operator=”/” then rezultat.Caption=primul/aldoilea End If End Sub
Acest program functioneaza ca un calculator simplu.
b)Instructiunea Case Este o instructiune cu decizie multipla.Este echivalenta cu ultimua folosinta de la if adik cum e exemplu de mai sus.
Select Case cond Case 1 :instructiune Case 2 :instructiune 2 : : Case n:instructiune n Case Else:instructiune n+1 End Select Testeaza conditia cond daca se afla intre case 1 si case n daca nu ,se se executa ce se afla la case else. Exemplu : Vom lua exemplu de la if(ultimul,care lam numit eu calculator)
Private Sub cmdtest_Click() Dim primul as Integer Dim operator as String Dim aldoilea as Integer
primul=primulnumar.txt operator=operator.txt aldoilea=aldoileanumar.txt
Select Case (operator.txt) Case +: rezultat.caption=primul+aldoilea Case - : rezultat.Caption=primul-aldoilea Case *: rezultat.caption=primul*aldoilea Case /: rezultat.caption=primul/aldoilea Case Else: rezultat.caption=”Ai tastat ceva gresit” End Select End sub
2)Instructiuni repetitive Sunt tot in numar de 3:-while -do -for a)While Verifica conditia si daca este adevarat o executa pana cand se face falsa.Traducere din engleza in romana while inseamna cat timp.Instructinea while este cu test initial.
While(conditie) Instructiune Wend
Exemplu: Creazati un control text (cu numele textdatdevoi.txt)si un buton(cu numele cmdtest).Acest program cere de la utilizator un numar si acesta daca este mai mare executa pana cand numar (variabile declarata de noi) o ajunge(adik se egalizeaza).
Private Sub cmdtest_Click()
Dim numar as Integer
numar = 1
While(numar<=textdatdevoi.txt) Msgbox numar & “MsgBoxes” numar=numar+1 Wend
End Sub
b)Do Instructiunea do : -Instructiunea cu test initial (e aproape ca while) i) Do While conditie instructiune Loop
ii)Do Until Conditie Instructiune Loop Aceste 2 instructiuni sunt cu test initial si executa instructiune(poate fi un grup de isntructiuni) cat tip conditia este adevarat(i)=pana cand conditia se face falsa(ii).
-Instructiune cu test final: i)Do Instructiune Loop while conditie
ii)Do Instructiune Loop until conditie
Aceste 2 instructiuni sunt cu test final adik prima data executa instructiune si dupaia verifica conditia(diferentza intre test initial si test final este ca la cele cu test final de cel putin o singura data se executa pe cand cea cu test initial sar putea sa nu se execute deloc)
Exemplu(cu test final deoarece alea cu test initial e aproape ca while): Vom lua sursa codului de la while si o vom transpune aici cu do in loc de while.
Private Sub cmdtest_Click()
Dim numar as Integer
numar = 1
Do Msgbox numar & “MsgBoxes” numar=numar+1 Loop While(numar<=textdatdevoi.txt)
End Sub
Daca veti vedea acest cod va intrebati ce este asa diferit.Poi prima diferentza este ca sa folosit in loc de While..Wend Do..Loop While si a doua diferentza e ca daca il veti utiliza pe primu si veti scrie 1 nu se va intampla nimik,dar daca executati a doua sursa daca vei scrie 1 ti se va aparea un MsgBox si va repeta o data (adik o data trebe sa dai ok ).
c)For Sincer sa fiu asta e cea mai usoara(nu stiu care o folosesc alti programatori dar eu asta o folosesc cel mai mult). Poi ce sa zic.For tradus din engleza in romana inseamna pentru.
For numevariabila_de_lacat to numevariabila_pana_la_cat Instructiune Next numevariabila
Poi nu stiu cum sa va explic dar mai bine zic eu sa va dau un exemplus I sa va zic acolo. Exemplu : Vom lua exemplu de la while si do.
Private Sub cmdtest_Click()
Dim numar as Integer
For numar=1 to textdatdevoi.txt Msgbox numar & “MsgBoxes” Next numar
End Sub
Poi cum vedeti for mai scurteaza din cod sursa si este mai usor.In loc sa ii dam valoare lu numar inafara instructiuni for o da inauntru.Acest cod se va executa pana cand numar va fi egal cu textdatdevoi.txt.Si inca o chestie in loc sa incrementam noi variabila(adik numar=numar+1) instructiunea for o face in interiorul ei cu ajutorul lui Next(urmatorul).
O versiune de for mai este: For each v in multime Instructiune Next v Exemplu: Suma mai multor numere(acest exemplu lam luat dintro carte care o voi prezenta la bibliografie) Dim s,i as integer Dim nr Sub Suma(ParamArray()) For Each I in Nr s=s+1 Next i Txt_nr.txt = txt_nr.txt + str(s)+’ ‘ End Sub Private Sub cmd_exit_Click() Suma 1,7,11,14 Suma 2,12 End Sub
Acest exemplu lam dat aici dar ar putea sa fi dat si intrun urmator capitol(proceduri,mai exact la procedura sub)
3)Instructiune de salt:GoTo Unii zic ca este comanda unii zic ca este isntructiune(eu ii dau numele de instructiune). Poi Goto tradus din engleza in romana inseamna mergi la.Cum zice si traducerea si numele de instructiune ,GoTo poate sari peste ceva daca vreti sau poate sari intro parte a unui program(partea aleasa de voi).
Private Sub cmdtest_Click()
MsgBox « Salut ! »
buna : MsgBox « Buna ! »
ce : Msgbox « Ce faci ? »
Goto buna pa : Msgbox « La revedere ! »
End Sub
Acest program daca il veti executati nu se va termina nici o data deoarece goto inainte de asi lua la revedere se executa din nou si tot asa.Dupa ce da un msgbox cu ce faci ? iar va va redirectiona la buna si tot asa.
Proceduri In Visual Basic se poate declara o procedura folosind meniul programului adik Tools si dupaia submeniul Add Procedure.Iti va aparea o fereastra in care la Name scri numele proceduri si la Type vei alege ce fel de procedura vrei sa fie proceura ta(voi explica un pic mai tz despre aceasta) ,iar laScope alege vizibilitatea. Akm va voi arata cum sa declara tu o procedura fara ajutorul meniului(programului). In Visual Basic sunt 2 feluri de proceduri : -pt a nu rezulta nici o valoare se foloseste procedura Sub; -pt a rezulta o valoare se foloseste procedura Function ; Sub Si aceasta la randul ei se imparte in 2 :generale eveniment Procedura Sub generala trebe sa fie declarata explicit de program. Procedura Sub eveniment se refera la o procedura in care este eplata un eveniment.In toate exemplele de mai sus daca va uitati akm va zic ca sunt toate proceduri sub eveniment .O procedura eveniment este de exemplu Private Sub cmdtest_click().Evenimentul din aceasta procedura este click().Numele unei eveniment se combina cu numele controlului cu ajutorul lui « _ »(underscore). Declararea procedurii Sub in general este : [Private/Public][Static]Sub nume[argument] Continutul programului End Sub Private,Public,static este ca la variabile,se refera la vizibilitatea in program.Argument este declararea unei variabile in acel program.De exemplu : Private Sub eu Dim name as inetger putem scrie Private Sub eu(nume as string) La asta se refera argument . Daca vreti sa folositi tipul array trebe sa folositi ParamArray. Apelarea unei proceduri se face cu ajutorul lui Call.Daca ati mai lucrat in alte limbaje de programare (cum ar fi pascal) call este ca clauza with de la tipul record sin pascal.
Function Aceasta procedura returneaza o valoare. Declararea acestei fucntii este aproape ca a celei Sub: [Private/Public][Static]Function nume(argument) as tip de variabila Corpul programului End Function
Ce ziceti?Nui asa ca e exact ca seamana cu Sub,dar diferentza e ca in loc de sub declaram Function si ii acordam un tip de variabila(rezultatul care il va rezulta ii va lua acest tip).
Functiile msgbox() si inputbox() Msgbox() Functia msgbox() afiseaza un mesaj intro fereastra noua.Aceasta functie este foarte mult folosita in Visual Basic. Sinatxa este: MsgBox(mesaj,[tipu;],[titlul]) mesaj :ceea ce vrei tu sa apara in acea fereastra(caractere si numere deobicei) tipul :se refera cum sa afiseze msgboxul.Sub forma de eroare(VbCritical),sub forma de intrebare(VbQuestion),sub forma de avertisment(VbExclamation),sub forma de informare (VbInformation). titlul :se refera la ce nume vrei sa aiba msgboxul. Daca ii atribuim unei variabile un msgbox ca in exemplu : m = msgbox(« Acesta este un test »,VbExclamation, »Test ») Variabila m i se va atribui o valoare intreaga in funtie de ce buton vrei sa apara 1-pt ok 2-pt cancel 3-pt abort 4-pt retry 5-pt ignore 6-pt yes 7-pt no Daca combinam aceste valori cu niste forme de afisare putem crea alte forme ca de exemplu : VbOKOnly :va afisa o informatie in care se foloseste buton ok VbOKCancel : ok si cancel VbAbortRetryIgnore : abort,retry si ignore(butoane) VbYesNoCancel :yes,no si cancel VbYesNo :yes si no VbRetryCancel :retry si cancel Cred ca vati prins de smecherie !!!
Inputbox() Aceasta functie executa 2 aplicati :afiseaza ceva sub forma de intrebare asteapta un raspuns.(in special pt asta este folosita) Sintaxa(e ceva mai complecta decat msgbox())
InputBox(mesaj,[titlu],[default],[xpos],[ypos],[helpfile]) mesaj-ce intrebare vrei sai pui titlu-titlul ferestrei(ca la msgbox()) defaul-sir de caractere ce reprezinta un raspuns prestabilit xpos,ypox-reprezinta coordonate unde vrei s apara caseta text in aceast afereastra ;
Fisiere Poi ce sa zic de fisiere ca aproape toti stiu ce is alea(de aceea nu mai dau si definitia).Fisierele sunt folosite peste tot si in toate limbajele de programare(cunoscute). Poi pt lucrul cu fisiere cateva lucruri elementare va voi explica eu aici. Pt a deschide un fisier(poi ca sa lucrezi cu un fisier obligatoriu trebe sa fie deschis) se foloseste urmatoarea sintaxa : Open calea for [Input(asta se foloseste pt citire din fisiere)][Output(pt scriere in fisiere)][Append(pt a adauga ceva)] As nrfisiere(acest nume este folosit in programul nostru) Pt a scrie valoarea unei variabile intrun program folosim Print #nrfisiere,lista_de_variabile Tot pt scriere este folosit si urmatoarea instructiune dar aceasta scrie si stringuri si mai multe variabile. Write #nrfisier,lista_expresii Pt fisierele binare si aleatorii se foloseste isntructiunea Put #nrfisiere,lista_variabile. Fisierele binare si aleatori se deschid cu Random si Binary . Citirea dintrun fisier se face cu se foloseste : Input #nrfisiere,lista_variabile (pt liste de variabile sau stringuri) Line Input #nrfisiere,variabila (pt citirea unei liniii intregi dintr-un fisier) Get #nrfisiere,lista_variabil (pt fisierele binare si aleatorii) Si inchiderea unui fisier se face cu ajutorul instructiunii : Close #nrfisiere
Daca vreti sa alegi o locatie de unde sa se deschida un fisiere (nu stiu cum sa va explic,mai bine dau un exemplu) faceti aproape ca mine :
Dim locatia as String comdlg32.Show (si aicea poate fi Save pt a salva,Open pt a deschide) locatia=comdlg32.FileName Open locatia for (optiunile de mai sus)[] as #nrfisiere
Exemplu de program care lucreaza cu fisiere : Creati un control text care ii dati numele de txt_scriere si un buton pt a scrie cu numele de cmd_scris.
Private Sub cmd_scris_Click()
Open « c:exemplu.txt » For Output As #1 Print #, txt_scriere.Txt Close #1
End Sub
Meniu Daca ati urmat acest mic tutorial creat de mine poti crea un program cat de cat pt folos.Pt programele mari ,ati vazut ca se foloseste meniuri.De exemplu toate programele am vazut ca au meniul File .Te gandesti cum sa faci si tu asa ceva ,nu?(cred ).Poi foarte usor .Visual basic are inclus in program(in meniul lui) un editor de meniu.Pt al accesa tot ce trebuie sa faci e sa te « duci » in Tools dupaia dai la Meniu Editor.(Ctrl+E) Este foarte usor sa lucrezi in acest « editor »Poi sa va explic : La Caption –contine numele pe care tu il vezi(de exemplu File) La Name pui numele optiuni (de obicei cu prefixu _mnu) La Index pui o valoarea indexului intr-o matrice La Shortcat pui o combinatie de taste ca sa fie mai usor utilizatorului sa ffolosesti programu NegotiatePosition-pozitia fatza de alt meniu(coodonate) Checked-la fel ca o caseta de validare Butoanele : Next-urmatorul meniu Insert-insertarea unui submeniu intrun meniu Delete-stergea unui meniu Daca punem & in fata la o litera de la Caption va realiza(eu dau exemplu dar nui obligatoriu aceasta litera) a de exemplu Animal.
Bibliografie In primul rand :Visual Basic in 30 de lectii de Marina-Cristiana Bold (poi am chiar in tutorialul meu multe propozitii luate de aici deoarece nu am avut cuvinte sa explic) In al doilea rand :siteurile(sincer nu stiu ca am cautat pe google si mia dat rezultate si am tradus de pe acolo) Si in al3lea rand :din prorpiiile mele cunostinele (akm 2 saptamani mam apucat din plictiseala de Visual Basic si am zis pe baza ce invatz sa fac si un fel de test si sa scriu ce am invatzat->rezulta ceea ce e scris aici) Creat de $-Geo-$(vas da si numele dar dupaia………..)
|
|