Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

deklariranje variable u vb

[es] :: Visual Basic 6 :: deklariranje variable u vb

[ Pregleda: 2512 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

markozelenovic
Kratovo

Član broj: 152567
Poruke: 231



Profil

icon deklariranje variable u vb23.09.2007. u 18:55 - pre 201 meseci
zasto sluzi deklaracija variable u vb-u , i meni se cini da je to bespotrebno jer npr:

declare broj as integer
print broj

a moze samo
print broj

zasta sluzi <<declare broj as integer>>
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: deklariranje variable u vb23.09.2007. u 19:26 - pre 201 meseci
Ima vise razloga. Neke cu verovatno zaboraviti da pomenem :)
Pre svega ne deklarise se sa declare (bar ne promenljiva).

1. Kada imas Dim Nesto As Integer ti tada programu kazes kojeg je tipa promenljiva. On je tada cuva u memoriji na nacin koji je odredjen za taj tip (koristi u ovom slucaju 2 bajta (ako se dobro secam Integer je u 6-ici 2B)).
Ako ne deklarises promenljivu, VB je automatski deklarise pre prve upotrebe kao Varijant. Varijant je velicine 16 Bajta.
Znaci, deklaracija stedi memoriju. (U slucaju stringova je ovo malo komplikovanije)

2. Kada je tip promenljive poznat, nacin na koji program interno radi sa njim je poznat i direktan. Integer se na primer direktno cita kao broj sa memorijske lokacije. OK, ne sasvim direktno jer se cira 4 bajta pa se uzimaju dva jer cpu tako dobija vrednost sa mem. lokacije. U slucaju tipa Varijant, vrednost se ne cuva direktno vec se cuvaju binarna vrednost i opis promenljive a prilikom svakog upisa/citanja vrsi se provera i zapis tipa promenljive.
Dakle, deklarisanje stedi i CPU vreme, tj. ne-deklarisanje usporava program.

3. Kada imas na pocetku deklarisane promenljive, sa tipom i jos komentarom, imas mnogo bolji pregled koja promenljiva cemu sluzi.

4. Kada je poznat tip promenljive, u slucaju objekata mozes koristiti intelli sense.

5. Hm, ovo nisam vise siguran koliko radi u 6-ici, ali mislim da bar donekle brine o tome. U pitanju je dodeljivanje vrednosti jednog tipa promenljivoj drugog. Ako si deklarisao, IDE ne bi trebao da ti dozvoli bar neke od ovih dodela ako nisu kompatibilne jos u vreme komajliranja (tj. da te upozori cim predjes u nov red). VB6 je slab sa ovim, ali je generalno i to razlog za deklaraciju i kada ona nije obavezna.
 
Odgovor na temu

markozelenovic
Kratovo

Član broj: 152567
Poruke: 231



Profil

icon Re: deklariranje variable u vb24.09.2007. u 05:08 - pre 201 meseci
hvala
 
Odgovor na temu

BinLaden
Ni na nebu ni na zemlji

Član broj: 147476
Poruke: 102
*.teol.net.

Sajt: www.sove-soft.rs.ba


Profil

icon Re: deklariranje variable u vb25.09.2007. u 02:40 - pre 201 meseci
@Shadowed Covjek koji ima 3 posta, napise pitanje i ti mu das odgovor za koji
se i ja mucim da skontam sta si htjeo da kazes.

Evo u cemu je razlika:
VB je (ja mislim) jedini "pametan" program u kome ne moras da deklarises promjenjive
Ali to je losa praksa iz niza razloga, a neke od njih je @Shadowed spomenuo, a
ja cu ti objasniti na razumljiv nacin.

1. Mada tebi, a i svima nama koji smo na ovom forumu nece biti bitno, ako
ne deklarises promjenjivu uzaludno trosis procesorsko vrijeme i RAM memoriju.

2.Ako se radi o nekim matematickim operacijama mozes dobiti netacno rjesenje.

Uporedi sledeca 3 coda i dobit ces razlicita rjesenja u 2 od 3 slucaja, a da
ti objasnjavam sustinu.....

Code:

a = 123
b = 456
c = a + b
Print c


Code:

Dim a As Sting
Dim b As Sting
Dim c As Sting

a = 123
b = 456
c = a + b
Print c


Code:

Dim a As Integer
Dim b As Integer
Dim c As Integer

a = 123
b = 456
c = a + b
Print c


Uglavnom samo radi sebe, a druge tehnicke razloge sad necemo uzeti u obzir, ali
UVIJEK DEKLARISI PROMJENJIVE!

Za tebe a i sve ostale koji pocinju da programiraju jedan savjet:
Prije pocetka pisanja koda, odnosno na vrhu editora za CODE VB-a(ZAGLAVLJE), prvo upisi
Option Explicit

To je komanda ili ne znam kako da je nazovem koja ne dozvoljava da koristis promjenjivu
koja nije deklarisana, a kad su je ljudi iz Microsoft-a tu ubacili, onda znaj
da ona treba tu da stoji, ali naravno da ne moras je koristiti isto kao sto mnogo drugih
stvari koje VB dozvoljava ne moras da koristis, ali ti se to nakon duzeg rada
obije od glavu.......
Ero S Onoga Sveta
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12848



+4784 Profil

icon Re: deklariranje variable u vb25.09.2007. u 10:06 - pre 201 meseci
Na kraju prve i druge stavke ima po jednu recenicu koja jednostavno kaze sta je razlog i koja je jasna cak i ako objasnjenje pre toga nisu jasni. Treca i cetvrta su prilicno jasne rekao bih, jedino je peta stavka mozda ispala zakomplikovana.

Citat:
BinLaden:
1. Mada tebi, a i svima nama koji smo na ovom forumu nece biti bitno, ako
ne deklarises promjenjivu uzaludno trosis procesorsko vrijeme i RAM memoriju.

Ne bas svima :)
 
Odgovor na temu

Eurora3D Team
Nebojsa - Programer & Vodja tima
Beograd

Član broj: 120376
Poruke: 900
195.252.105.*



+7 Profil

icon Re: deklariranje variable u vb25.09.2007. u 12:35 - pre 201 meseci
Zaboravljeno je da se pomene jos jedna svrha deklarisanja promenljivih , kada se koriste Win API funkcije.
Koriscenje funkcija Windows OS - a u VB6 je jedan ( za neke slucajeve i jedini) nacin da se prosiri njegova osnovna funkcionalnost u nekom konkretnom slucaju.
Ispod je jednostavan primer koda.
Funkcija GetCursorPos() nebi mogla da se koristi bez deklarisanja promenljive tipa POINTAPI.
Napravi Standard Exe u VB IDE i rasiri Formu da bi mogla da stane malo veca linija naslova.
U kod sekciju prekopiraj ovaj kod i pokreni app. Kad predjes kursorom preko nje videces koordinate u liniji naslova.
Usput, u c/c++ ovo pitanje bi bilo smesno , tako da je dobra navika da se uvek deklarisu promenljive (mozda nekad predjes i na neki jezik gde je to obavezno).
Isto i ovo sto su dugi napisali stoji.
Pozdrav

Code:

Option Explicit
'Deklaracije API Funkcije i Tipa promenjljive za nju (inace POINT a ovde se zove POINTAPI)
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Type POINTAPI
        X As Long
        Y As Long
End Type

Private Sub Form_Load()
Me.ScaleMode = 3 ' piksel
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'PRELAZENJEM MISA PREKO FORME DOBIJAMO LOKALNE KORDINATE I KORDINATE EKRANA KURSORA (STRELICE)
'Lokalne kordinate kursora smo dobili kao ulazne parametre ove subrutine Single X i Single Y
Dim strCap As String 'String promenljiva za Caption Forme
Dim Pt  As POINTAPI ' ovoj je tip promenljive Point
GetCursorPos Pt 'ovo je API funkcija kojom dobijamo poziciju kursora u koordinatama ekrana
strCap = "Kordinate prozora: X=" & CStr(X) & " Y=" & CStr(Y) & "  Kordinate ekrana: X=" & CStr(Pt.X) & " Y=" & CStr(Pt.Y)
Me.Caption = strCap ' Stavljamo podatke u Caption forme (kao String) ' gornji CStr() pretvaraju broj u String
End Sub

 
Odgovor na temu

markozelenovic
Kratovo

Član broj: 152567
Poruke: 231



Profil

icon Re: deklariranje variable u vb27.09.2007. u 14:51 - pre 201 meseci
ekstra sad znam hvala
 
Odgovor na temu

[es] :: Visual Basic 6 :: deklariranje variable u vb

[ Pregleda: 2512 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.