www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Procedure in funkcije v MicroBasucu!

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
dgregor
Član
Član



Pridružen-a: Čet 06 Jan 2005 13:55
Prispevkov: 32
Aktiv.: 0.14
Kraj: Celje

PrispevekObjavljeno: Čet Maj 18, 2006 9:13 am    Naslov sporočila:  Procedure in funkcije v MicroBasucu! Odgovori s citatom

Ugotovil sem, da sem še vedno začetnik v MicroBasicu, čeprav se mi je zdelo da že nekaj znam Smile !
Muči me organizacija programa in procedure in funkcije:
Razumem, da funkcija vrne rezultat, procedura pa ne. Zanima me kdaj je potrebno definirati spremenljivko znotraj procedure in kdaj jo definirati na začetku glavnega programa?
Kakšna je razlika pri delovanju procedure, če se spremenljivka definira na začetku glavnega programa ali v sami proceduri?

LP, in naprej hvala za informacije!

Gregor
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Slemi
Član
Član



Pridružen-a: Pet 29 Okt 2004 13:29
Prispevkov: 386
Aktiv.: 1.63
Kraj: Hrastnik

PrispevekObjavljeno: Čet Maj 18, 2006 9:19 am    Naslov sporočila:   Odgovori s citatom

Če definiraš spremenljivko v začetku programa postane globalna spremenljivka, to pomeni da je aktivna v celotnem programu, če pa jo definiraš v proceduri pa postane lokalna, kar pomeni da ob izhodu iz procedure te spremenljivke ni več.

Lp

_________________
slemi.info - en
slemi.si - slo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo AIM - AOL Instant - naslov MSN Messenger - naslov
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Čet Maj 18, 2006 9:24 am    Naslov sporočila:   Odgovori s citatom

Prakticno v vseh programskih jezikih (aktualnih za mikrokontrolerje) je enako:

Ce spremenljivko definiras "na zacetku programa" (izven procedure/funkcije), potem bo spremenljivka globalna. To pomeni, da bodo do nje lahko dostopale tako posamezne procedure/funkcije (in bodo vse spreminjale isto vrednost), kot tudi glavni program. Ce jo deklariras samo v proceduri/funkciji, jo bo "videla" samo ta procedura/funkcija, glavni program in druge procedure/funkcije pa ne. Ena prakticna posledica tega je, da so lahko lokalne spremenljivke poimenovane enako (npr. "temp" za zacasno spremenljivko), pa kljub temu vsaka procedura/funkcija sari po "svoji" spremenljivki in ne po globalni, kar bi lahko zmedlo kaksen drug del programa. Uporabis globalno ali lokalno odvisno od potreb.

Razlika v delovanju je v tem, da bo pri globalni spremenljivki procedura ne more zanesljivo vedeti kdo (in ce sploh) je vrednost spremenil. V dolocenih primerih je to zelo zazeljeno, ker rabis asinhrono (od toka programa) spremenjeno vrednost -npr. globalni stevci. Ce bi rad, da lahko samo dolocen del programa spremeni vrednost, na podlagi katere potem procedura nekaj naredi, potem jo podas kot parameter tej proceduri in bos tocno vedel, kdaj se je spremenila (sinhrono s programskim tokom). Ce samo potrebujes zacasno spremenljivko za cas, ko se procedura izvaja (in je po koncu izvajanja procedure ne rabis vec), potem jo definiras lokalno.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
jur
Član
Član



Pridružen-a: Pet 02 Dec 2005 14:45
Prispevkov: 5142
Aktiv.: 21.71
Kraj: [color=zelena]Ljubljana[/color]

PrispevekObjavljeno: Čet Maj 18, 2006 12:33 pm    Naslov sporočila:   Odgovori s citatom

Med globalno in in lokalno spremenljivko je ponekod (na primer delphi) razlika v inicializaciji. Globalne spremenljivke dobijo ob zagonu programa vrednost nič (0), če jim posebej ne določimo vrednosti. Lokalna spremenljivka pa ima lahko kakršnokoli vrednost (na primer 19037, ali 29001). Vrednost je to, kar je slučajno od prej ostalo v pomnilniku.

Jur
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group