[ Pobierz całość w formacie PDF ]
.Czytanie takiego programu nie jest Å‚atwe, zwÅ‚aszcza w sześć miesiÄ™cy po je­go napisaniu.Programy te używaÅ‚y tych samych segmentów kodu wielokrotnie, co byÅ‚o marnowa­niem czasu i miejsca.Ilustruje to poniższy przykÅ‚ad napisany w jÄ™zyku BASIC.Dla uÅ‚atwienia dodano numery wierszy.(Zrozumienie znaczenia każdego wiersza kodu nie jest konieczne dla zrozumienia samego zagad­nienia, które on ilustruje).10 'Program odwracajÄ…cy kolejność liter w nazwisku20 'Czytaj wspak imiÄ™30 INPUT "Wpisz imiÄ™: ", nazwisko$40 CzytajWspak$ _ ""50 FOR i = LEN(nazwisko$) TO 1 STEP -160 CzytajWspak$= CzytajWspak$ + MID$(nazwisko$, i, 1)70 NEXT i80 PRINT "ImiÄ™ czytane wspak: " + Czytajwspak$90 'Czytaj wspak drugie imiÄ™100 INPUT "Wpisz drugie imiÄ™: ", nazwisko$110 CzytajWspak$ _ ""120 FOR i = LEN(nazwisko$) TO 1 STEP -1130 Czy tajWspak$= Czytaj Wspak $ + MID$(nazwisko$, i, 1)140 NEXT i150 PRINT "Drugie imiÄ™ czytane wspak: " + CzytajWSpak$160 'Czytaj wspak nazwisko170 INPUT "Wpisz nazwisko: ", nazwisko$180 Czytaj Wspak$ _ ""190 FOR i = LEN(nazwisko$) TD 1 STEP -1200 CzytajWspak$= Czy tajWspak$ + MID$(nazwisko$, i, 1)210 NEXT i220 PRINT "Nazwisko czytane wspak: " + CzytajWspak $Należy zwrócić uwagÄ™, że wiersze 40-70, 110-140 i 180-210 sÄ… identyczne.Jest to marnowanie miejsca.Lepszym rozwiÄ…zaniem byÅ‚oby wpisanie kodu, który odwraca Å‚aÅ„cuch znaków (nazwisko), do oddzielnego moduÅ‚u kodu i wywoÅ‚ywanie tego moduÅ‚u trzy razy, jak pokazuje poniższy przykÅ‚ad:'Program czytajÄ…cy wspak nazwiskoDECLARE FUNCTION CzytajWspak$(nazwisko$)'Czytaj wspak imiÄ™INPUT "Wpisz imiÄ™: ", nazwisko$PRINT "ImiÄ™ czytane wspak: " + CzytajWspak$(nazwisko$)'Czytaj wspak drugie imiÄ™INPUT "Wpisz drugie imiÄ™: ", nazwisko$PRINT "Drugie imiÄ™ czytane wspak: " + CzytajWspak$(nazwisko$)'Czytaj wspak nazwiskoINPUT "Wpisz nazwisko: ", nazwisko$PRINT "Nazwisko czytane wspak: " + CzytajWspak$(nazwisko$)Oto oddzielny moduÅ‚ kodu odwracajÄ…cy Å‚aÅ„cuch znaków:'Kod czytajÄ…cy Å‚aÅ„cuch znaków wspakFUNCTION CzytajWspak$(nazwisko$)LancuchZnakow$= ""FOR i = LEN(nazwisko$) TO 1 STEP -1LancuchZnakow$ = LancuchZnakow$ + MID$(nazwisko$, i, 1)NEXT iCzytajWspak$ = LancuchZnakow$END FUNCTIONOczywiÅ›cie w tym przykÅ‚adzie nie zaoszczÄ™dzono zbyt dużo miejsca, ale można sobie wyobrazić, co siÄ™ stanie, jeżeli zamieni siÄ™ procedurÄ™ odwracajÄ…cÄ… Å‚aÅ„cuch znaków na takÄ…, która zawiera kilkaset wierszy kodu, i wykona siÄ™ jÄ… kilkaset razy w głównym programie.DziÄ™ki modularyzacji można zaoszczÄ™dzić dosÅ‚ownie tysiÄ…ce wierszy kodu.Istnieje inna ważna zaleta programowania moduÅ‚owego.Jeżeli zdecyduje siÄ™ na napisanie in­nego programu wymagajÄ…cego odwracania Å‚aÅ„cuchów znaków, można po prostu dodać moduÅ‚ kodu odwracajÄ…cy Å‚aÅ„cuch znaków do nowego programu, bez koniecznoÅ›ci pisania nowego kodu.Profesjonalni programiÅ›ci czÄ™sto tworzÄ… biblioteki kodu zawierajÄ…ce użyteczne moduÅ‚y kodu, które w razie potrzeby można dodać do nowych aplikacji.Trudno przecenić ważność programowania moduÅ‚owego.Na szczęście VBA uÅ‚atwia tworzenie programów moduÅ‚owych.Ogólnie mówiÄ…c, istniejÄ… dwie grupy modułów kodu: funkcje i procedury typu sub.RóżniÄ… siÄ™ one tym, że funkcja zwraca wartość, a procedura typu sub - nie zwraca (oczywiÅ›cie można nie użyć wartoÅ›ci zwracanej przez funkcjÄ™.) Na przykÅ‚ad, funkcja Czytaj Wspak opisana wyżej zwraca od­wrócony Å‚aÅ„cuch znaków.Natomiast poniższy moduÅ‚ kodu coÅ› robi, ale nie zwraca wartoÅ›ci - po prostu zawiesza dziaÅ‚anie na pewnÄ… liczbÄ™ sekund (podanych w argumencie sekunda):SUB ChwilaPrzerwy(sekunda)`Odczytaj bieżący czasStart = TIMER`Stwórz pÄ™tlÄ™, która nic nie robi`przez liczbÄ™ sekund podanÄ… w argumencie sekundaDOLOOP UNTIL TIMER - Start > sekundaEND SUBFunkcje i procedury typu sub sÄ… niezwykle czÄ™sto używane w nowoczesnym programowaniu.Jedne i drugie sÄ… nazywane procedurami [ Pobierz caÅ‚ość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • fisis2.htw.pl
  • Copyright © 2016 (...) chciaÅ‚bym posiadać wszystkie oczy na ziemi, żeby patrzeć na Ciebie.
    Design: Solitaire