02 Wprowadzenie do Visual Basic cwiczenia przygotowujace


II. Wprowadzenie do języka Visual Basic 2010
Aplikacje utworzone przy okazji poznawania środowiska Visual Studio 2010 nie wykonywały ja-
kichkolwiek działań, na które użytkownik aplikacji musiałby zareagować, albo efekty których mógłby
obejrzeć. Fakt ten nie powinien dziwić, biorąc pod uwagę, że głównym punktem zainteresowania ćwi-
czących było środowisko programistyczne. Drugi rozdział poświęcony jest wprowadzeniu podstawo-
wych elementów składni jednego z języków możliwych do wykorzystania w środowisku  Visual Ba-
sic 2010. Składnia to zbiór zasad, których przestrzeganie pozwala tworzyć poprawne zdania w da-
nym języku (ang. statement  wypowiedz). Kolejne ćwiczenie polega na zapoznaniu się ze zdaniami
umieszczonymi w projekcie aplikacji przez środowisko.
Ćwiczenie 16
Zapoznać się z elementami języka umieszczanymi automatycznie w module aplikacji
opartej na szablonie Console Application.
1. Utwórz Projekt_016 aplikacji konsolowej.
2. Zapoznaj się z treścią kodu zródłowego modułu Module1. Zwróć uwagę na zastosowany
układ tekstu oraz kolory.
Jeżeli ćwiczący nie wprowadził żadnych zmian od momentu utworzenia aplikacji to powinien za-
obserwować następujący widok:
Rysunek 8: Okno edytora kodu zródłowego z modułem Module1.
Plik Module1.vb to pierwsza część projektu aplikacji konsolowej. Tworzona jest automatycznie
w każdym nowym projekcie tego typu. Słowa kluczowe języka Visual Basic 2010 wyróżniane są
przez edytor kolorem niebieskim. W przedstawionym kodzie sÄ… to: Module, End oraz Sub (Sub zosta-
nie objaśnione oddzielnie). Słowa kluczowe mogą zostać użyte tylko w przeznaczonym dla nich kon-
tekście i miejscu.
Słowo Module (Moduł, człon) wskazuje miejsce, w którym rozpoczyna się pewna część projek-
tu. Zakończenie tej części wskazywane jest słowami kluczowymi End Module (Koniec modułu). Mo-
duł zawiera deklaracje elementów języka potrzebnych do działania aplikacji. Aby ułatwić programiście
pracę edytor tekstowy środowiska umieszcza przed słowem Module rozpoczynającym deklarację
modułu graficzny przełącznik pozwalający zwinąć lub rozwinąć treść wnętrza modułu.
II.1. Zestawy (podzespoły)
Aplikacje budowane w Visual Studio 2010 wykorzystują deklaracje  cegiełek przechowywanych
w zestawach (ang. assembly). Utworzony zestaw po ukończonej sukcesem kompilacji przyjmuje po-
stać pliku z kodem wykonywalnym. Istnieją dwa rodzaje takich plików: aplikacje oraz biblioteki dołą-
czane dynamicznie. Nazwy skompilowanych zestawów charakteryzują się rozszerzeniami: .exe
(skrót od angielskiego executable  wykonywalne)  aplikacje oraz .dll (akronim angielskiej nazwy
dynamic-link library)  biblioteki dołączane dynamicznie.
Zestawy są bardzo istotnym elementem programowania. Pozwalają one zgrupować niezbędne
do rozwiązania określonego problemu zasoby, a po kompilacji stają się  poręcznym dodatkiem do in-
nych tworzonych zestawów.
Deklaracje zawarte w zestawie pozwalają programiście pominąć pracę koncepcyjną wykonaną
wcześniej (samodzielnie, lub przez innych programistów). Skraca to czas pracy i pozwala na wielo-
krotne wykorzystanie tego samego kodu.
Każda aplikacja konsolowa tworzona w języku Visual Basic 2010 domyślnie ma dostęp do
dwóch zestawów:
Microsoft.VisualBasic  zestaw ten jest przechowywany w pliku Microsoft.VisualBasic.dll kata-
logu platformy NETFramework,
mscorlib  w pliku mscorlib.dll katalogu platformy NETFramework
Oprócz dwóch wymienionych zestawów, które są dostępne dla aplikacji konsolowej, w chwili
tworzenia aplikacji środowisko Visual Studio 2010 dołącza wybrane inne zestawy. To właśnie te ze-
stawy wyświetlone są w węzle References okna Solution Explorer po wybraniu przycisku paska na-
rzędzi Show All Files.
Węzeł References pozwala dodawać do aplikacji także inne (potrzebne programiście) zestawy.
Jednym z zadań wykonywanych przez zestawy jest dostarczanie deklaracji rozmieszczonych w prze-
strzeniach nazw zestawu.
II.2. Przestrzenie nazw
Wszystkie deklaracje (istniejące, tworzone współcześnie i w przyszłości) umieszczane są
w przestrzeniach nazw (ang. Namespace). Przestrzeń nazw to zbiór, z którego można odczytać zna-
czenie pewnej nazwy zadeklarowanej w tym zbiorze.
Każdy projekt aplikacji konsolowej podczas tworzenia otrzymuje własną przestrzeń nazw. Po-
siada ona nazwę identyczną z nazwą projektu i w przypadku ćwiczenia 16. jest to przestrzeń nazw
Projekt_016.
Oprócz własnej przestrzeni nazw każdy projekt aplikacji konsolowej ma dostęp do przestrzeni
nazw zawartych w zestawach mscorlib i Microsoft.VisualBasic. Dodatkowo, projekt posiada dostęp
do deklaracji umieszczonych w przestrzeniach nazw zestawów wyszczególnionych w węzle Referen-
ces projektu (patrz okno Solution Explorer). W przypadku projektu aplikacji konsolowej sÄ… to zestawy:
System, System.Data, System.Data.DataSetExtensions, System.Deployment, System.XML, Sys-
tem.Xml.Linq. Każdy z tych zestawów zawiera wiele przestrzeni nazw, a te  deklaracje.
Środowisko posiada specjalne okno Object Browser (Przeszukiwarka obiektów) służące
do przeglądu deklaracji zgromadzonych w zestawach. Kolejne ćwiczenie zapoznaje ze strukturą
przestrzeni nazw zestawu Projekt_016.
Ćwiczenie 17
Zapoznać się ze strukturą projektu wykorzystując okno Object Browser.
1. Otwórz okno Object Browser, w tym celu:
ć% rozwiń menu View i zapoznaj się z poleceniem Object Browser; polecenie posiada
ikonę   (odpowiedni przycisk odnajdziesz w pasku narzędzi) oraz skrót klawia-
turowy  F2,
ć% wybierz polecenie Object Browser dowolnym sposobem; zauważ, że otworzyło się
nowe okno o nazwie Object Browser.
2. Zapoznaj siÄ™ z budowÄ… okna Object Browser.
3. Zapoznaj się z listą zawartą w lewej części okna. Lista zawiera przestrzenie nazw do-
stępne w środowisku (zwróć uwagę na charakterystyczne oznaczenie  {}), w tym prze-
strzeń nazw Projekt_016.
4. Rozwiń przestrzeń nazw Projekt_016. Pojawiająca się gałąz reprezentuje moduł Modu-
le1.
5. Zaznacz węzeł przestrzeni nazw Projekt_016 i zapoznaj się z treścią dolnej części okna
 informuje ona, że zaznaczony obiekt to przestrzeń nazw o nazwie Projekt_016, a do-
datkowo zawiera komunikat, że przestrzeń nazw jest członkiem (ang. member) nadrzęd-
nej nad przestrzeniÄ… nazw struktury o nazwie Projekt_016. Nazwa tej struktury jest hiper-
łączem pozwalającym wyświetlić nadrzędny element.
6. Zaznacz gałąz modułu Module1 i zapoznaj się z treścią dolnej części okna  informuje
ona, że zaznaczony obiekt to moduł o nazwie Module1 (znaczenie modyfikatora Friend
zostanie objaśnione przy okazji innych ćwiczeń), a dodatkowo zawiera komunikat, że
moduł jest członkiem (składnikiem, składową) przestrzeni nazw Projekt_016. Nazwa
przestrzeni nazw jest hiperłączem pozwalającym wyświetlić nadrzędny element.
7. Zapoznaj się z zawartością prawej (górnej) części okna Object Browser. Okno wyszcze-
gólnia deklaracje dostępne w module Module1. Zwróć uwagę na deklarację metody (po-
staraj się zapamiętać tą nazwę oraz charakterystyczną dla tego elementu ikonę  )
Main.
Uwaga. Nazwy metod będą wyróżnione w tekście przez pogrubioną czcionkę o stałej szeroko-
ści.
8. Zaznacz metodę Main i zapoznaj się z treścią dolnej części okna  informuje ona, że za-
znaczony obiekt to metoda typu Sub o nazwie Main (znaczenie modyfikatora Public zo-
stanie objaśnione przy okazji innych ćwiczeń), a dodatkowo zawiera komunikat, że meto-
da jest składową modułu Module1, będącego składową przestrzeni nazw Projekt_016.
Nazwa modułu, a także nazwa przestrzeni nazw są hiperłączami pozwalającymi wyświe-
tlić dany element nadrzędny.
Podsumowując, projekt posiada przestrzeń nazw, która zawiera deklaracje danego projektu.
Projekt posiada także dostęp do deklaracji zawartych w innych przestrzeniach nazw, jeśli tylko zesta-
wy zawierające te przestrzenie dołączone są do projektu.
II.3. Moduły
Moduł jest najmniejszą jednostką organizacyjną zestawu. Ograniczany jest przez słowa kluczo-
we Module & End Module. Deklaracja modułu występuje w przestrzeni nazw. W oknie Object
Browser moduły oznaczane są ikoną  .
Każdy moduł występuje tylko w jednym pliku projektu. Jest to cecha, która znacząco odróżnia
moduł od przestrzeni nazw, która może obejmować deklaracje zawarte w wielu plikach.
W jednym pliku mogą występować deklaracje wielu modułów, jednak praktyka uczy, że łatwiej
zarządzać modułami zadeklarowanymi w oddzielnych plikach. Do projektu można dodać dowolną
liczbę modułów. Warto przy tym nadawać plikom nazwy określające znaczenie zestawu deklaracji za-
wartych w pliku. Kolejne ćwiczenie pokazuje sposób dodawania do projektu kolejnego modułu.
Ćwiczenie 18
Dodać do Projekt_016 kolejny moduł. Zapoznać się z różnicami pomiędzy zawartością
pliku Module1.vb oraz dodanego pliku.
1. Rozwiń menu Project.
2. Zapoznaj się z poleceniami rozpoczynającymi się od słowa Add (Dodaj); szczególną
uwagę zwróć na polecenie Add Module (Dodaj moduł) - . Nie wybierając polecenia po-
rzuć menu Project.
Uwaga. Wprawdzie  złoty rozbłysk w lewym, górnym narożniku ikony jest słabo widoczny, ale
warto zapamiętać, że występuje w ikonach poleceń tworzących nowe elementy.
3. Przejdz do okna Solution Explorer i zaznacz węzeł Projekt_016.
4. Rozwiń menu kontekstowe węzła Projekt_016 (oprócz prawego klawisza myszy można
także użyć przycisku
klawiatury, gdy zaznaczony jest obiekt, dla którego ma zo-
stać wyświetlone menu kontekstowe).
5. Wybierz grupę poleceń Add i zauważ, że również tutaj znajduje się (oprócz innych) pole-
cenie Module.
6. Dodaj do Projekt_016 nowy moduł o nazwie Dodatkowy, w tym celu:
ć% uruchom jedno z poleceń tworzących nowy moduł poznanych w punktach 2. i 5.
ćwiczenia; pojawia się okno Add New Item (Dodaj nowy element), w pasku tytuło-
wym okna znajduje się również nazwa projektu, do którego dodawany jest nowy
element,
ć% zapoznaj się z budową okna; zauważ, że jest ono niemal identyczne z oknem
New Project poznanym we wcześniejszych ćwiczeniach,
ć% zauważ, że środowisko  wybrało odpowiedni do wybranego polecenia szablon
(Module),
ć% zmień nazwę dodawanego modułu (pole tekstowe Name) na Dodatkowy,
ć% zatwierdz zmiany przyciskiem Add.
7. Zauważ, że w oknie Solution Explorer pojawił się nowy plik  Dodatkowy.vb (rozszerze-
nie .vb zostało dodane automatycznie), a w oknie edytora otwarty jest kod zródłowy mo-
dułu Dodatkowy.
8. Postaraj się, przełączając wyświetlanie między zakładkami Module1.vb i Dodatkowy.vb,
zauważyć różnice między dwoma modułami projektu Projekt_016.
Uwaga. Jeśli okno edytora posiada więcej niż jedną zakładkę, to menu kontekstowe każdej
z nich zawiera polecenia: New Horizontal Tab Group (Nowa grupa zakładek  podział poziomy) oraz
New Vertical Tab Group (Nowa grupa zakładek  podział pionowy). Po wybraniu jednego z tych pole-
ceń okno edytora zostaje podzielone na części. W jednej z nich wyświetlona jest wskazana zakładka,
a w drugiej pozostałe zakładki. Mechanizm ten ułatwia porównywanie kodu zródłowego zawartego
w dwóch plikach. Zakładki można rozdzielać do chwili, gdy w danej części okna pozostanie tylko jed-
na zakładka. Każdą zakładkę można przenieść do innej grupy (po podziale pojawia się w menu kon-
tekstowym zakładki polecenie Move To Next Tab Group [Przenieś do następnej grupy zakładek]).
Okno edytora można dzielić tylko w jednym kierunku  jeśli pierwszy podział przeprowadzono w pio-
nie, to wszystkie następne możliwe są jedynie w pionie (podobnie w poziomie).
Co do zasadniczej budowy, moduły są identyczne. Wyróżnia je nazwa (Module1 i Dodatkowy).
Aatwo jednak zauważyć, że Module1 zawiera automatycznie dodaną przez środowisko treść  Sub
Main & End Sub. Main (główny), to metoda, od której rozpoczyna się wykonywanie aplikacji konso-
lowej. Tym samym Module1 stanowi moduł startowy aplikacji, co byłoby warte odzwierciedlenia w na-
zwie tego modułu.
Do zmiany nazwy modułu można wykorzystać okno Solution Explorer w identyczny sposób, jak
to się robi w Exploratorze Windows (polecenie Rename [Zmień nazwę] z menu kontekstowego).
Zmianę nazwy modułu Module1 na Startowy pozostawia się ćwiczącym do samodzielnego wykona-
nia. Tym razem należy pamiętać o dodaniu rozszerzenia .vb, które środowisko automatycznie opuści
tworząc nazwę modułu.
II.4. Konsola
Moduł Startowy (przed zmianą nazwy  Module1) zawiera metodę typu Sub o następującej
składni (przypomnijmy, że składnia to zbiór zasad pozwalających tworzyć poprawne zdania w danym
języku):
Sub Main()
End Sub
Uprzedzając treści następnych rozdziałów należy w tym miejscu powiedzieć, że występują dwa
rodzaje metod: Sub oraz Function.
Słowo kluczowe Sub (skrót angielskiego Subroutine  podprogram) oznacza początek procedu-
ry. Koniec procedury oznaczony jest słowami kluczowymiEnd Sub. Metody służą do grupowania
zdań języka. Metoda-procedura Main posiada szczególne znaczenie. Aplikacja, po uruchomieniu
przez użytkownika, rozpoczyna pracę od wykonywania rozkazów (instrukcji) zawartych w tej właśnie
procedurze. W kolejnym ćwiczeniu do procedury Main zostanie dodana instrukcja powodująca wypi-
sanie tekstu w oknie konsoli.
Ćwiczenie 19
Zaprogramować wyświetlenie w oknie konsoli tekstu  Witaj .
1. Wybierz zakładkę Startowy.vb powodując wyświetlenie okna edytora kodu zródłowego
modułu Startowy.
2. Ustaw kursor tekstowy w pustym wierszu pomiędzy początkiem a końcem procedury
Main (jeśli kod zródłowy nie był edytowany, to wiersz posiada numer 4).
3. Wpisz następujący tekst:
System.Console.Write("Witaj")
4. Przesuń kursor do innego wiersza kodu zródłowego i zauważ, że edytor dokonał odpo-
wiednich zmian w układzie tekstu:
Module Module1
Sub Main()
System.Console.Write("Witaj")
End Sub
End Module
5. Skompiluj projekt (Build\Build Projekt_016, lub przycisk dodanego paska narzędzi
Build).
6. Uruchom aplikacjÄ™ bez debugowania (Ctrl+F5, lub przycisk dodany do paska narzÄ™-
dzi Standard). Zauważ, że pojawiło się okno konsoli:
7. Zakończ działanie aplikacji naciskając dowolny klawisz.
Zdanie  System.Console.Write("Witaj")  to instrukcja języka Visual Basic 2010. Kompilator po-
trafi przetworzyć taką instrukcję na kod wykonywalny. Skąd Projekt_016  zna użytą w ćwiczeniu in-
strukcję? Kolejne ćwiczenie pokazuje w jaki sposób odnalezć zródło informacji.
Ćwiczenie 20
Odnalezć położenie deklaracji metody Write przy użyciu okna Object Browser.
1. Rozwiń menu kontekstowe, gdy kursor myszy znajduje się wewnątrz słowa Write.
2. Zapoznaj siÄ™ z poleceniami menu kontekstowego. Wybierz polecenie Go To Definition
(Przejdz do deklaracji). Edytor wyświetla okno Object Browser. Zaznaczony obiekt to po-
szukiwana metoda Write.
3. Zapoznaj siÄ™ z oknem informacji o zaznaczonym obiekcie. Jest to metoda-procedura
o nazwie Write (znaczenie słowa kluczowego Shared zostanie objaśnione przy okazji
innych ćwiczeń). Jest ona składnikiem elementu Console, który jest składową przestrzeni
nazw System. Zgodnie ze skróconym opisem (ang. Summary) metoda wypisuje łańcuch
tekstowy do standardowego strumienia wyjściowego, czyli monitora konsoli.
W tym miejscu konieczne jest określenie czym jest konsola. Otóż jest to urządzenie wejścia/wyj-
ścia (wprowadzania danych/wyprowadzania wyników) składające się współcześnie z klawiatury i mo-
nitora. Zatem klawiatura i monitor danego zestawu komputerowego stanowiÄ… Å‚Ä…cznie jego konsolÄ™.
Konsola pracuje w trybie tekstowym, to znaczy dane wprowadzane sÄ… w postaci tekstu i wyniki
wyprowadzane są również w postaci tekstu. Konsola o nazwie Console zadeklarowana jest w prze-
strzeni nazw System zestawu mscorlib. Posiada ona (zawiera) metody pozwalające wyprowadzać
tekst do konsoli (czyli na ekran monitora) oraz wprowadzać tekst z konsoli (czyli z klawiatury).
Tekst System.Console.Write("Witaj") nazywa się wywołaniem (ang. call) metody. Wywołanie
procedury jest najprostszym zdaniem (instrukcją) języka Visual Basic 2010. Wydaje się, że wprowa-
dzanie tak długich zdań jest dosyć czasochłonne. Pomocna jest w tym przypadku znajomość prze-
strzeni nazw. Otóż okazuje się, że deklaracja elementu Console występuje wyłącznie w przestrzeni
nazw System, a ta jest  znana każdemu projektowi. Jeśli pominięcie nazwy przestrzeni (a nawet jej
składowych) nie prowadzi do niejednoznaczności to można ją pominąć wraz z kropką. Pokaże to ko-
lejne ćwiczenie.
Ćwiczenie 21
Wykorzystać znajomość przestrzeni nazw System przez Projekt_016 do skrócenia
wywołania metody Write.
1. Usuń z instrukcji System.Console.Write("Witaj") nazwę przestrzeni System wraz z krop-
kÄ….
2. Skompiluj projekt i uruchom aplikacjÄ™.
3. Zakończ działanie aplikacji.
Aplikacja działa poprawnie. Ćwiczący powinien samodzielnie sprawdzić, czy deklaracja metody
Console.Write jest tą samą, którą Object Browser pokazywał wcześniej, wykonując ponownie ćwicze-
nie 20.
Deklaracja metody o nazwieWrite występuje w więcej niż jednej przestrzeni nazw. Dlatego,
aby kompilator mógł jednoznacznie określić, o którą z nich chodzi konieczne jest użycie, przed na-
zwÄ… metody, nazwy elementu zawierajÄ…cego jego deklaracjÄ™, w tym przypadku Console.
W wywołaniu metody Write konsoli tekst, który miał zostać wyprowadzony na ekran został za-
pisany wewnątrz nawiasów okrągłych. Nawiasy umieszczane po nazwie metody wskazują listę argu-
mentów metody. Argumenty to wartości wpływające na działanie metody. Argument o wartości "Witaj"
to tekst. Język Visual Basic 2010 używa określenia łańcuch tekstowy (ang. string). Dowolny łańcuch
tekstowy wyróżnia się poprzez objęcie go cudzysłowem.
Przykłady łańcuchów tekstowych.
"Witaj"
"Siedem razy dziewięć to sześćdziesiąt trzy"
Klawiatura i monitor powiÄ…zane w konsolÄ™ posiadajÄ… charakterystyczny element zwany kurso-
rem tekstowym  miejsce wyprowadzenia kolejnego znaku.
Rysunek 9: Pozioma kreska na końcu wiersza, to kursor tekstowy.
Ponadto znaki w konsoli pogrupowane są w wiersze. Przejście do następnego wiersza realizuje
się naciskając klawisz Enter. Powoduje to utworzenie nowego wiersza (ang. Line Feed  dosłownie
zjedz linię) i powrót kursora do początku linii (Carriage Return  dosłownie powrót karetki). Metoda
Write nie realizuje tych dwóch etapów, dlatego tekst wyprowadzany do konsoli przez środowisko Vi-
sual Studio 2010  Aby kontynuować, naciśnij dowolny klawisz  pojawia się tuż po słowie Witaj.
W kolejnym ćwiczeniu użyta zostanie metoda realizująca również tworzenie nowego wiersza.
Ćwiczenie 22
Zapoznać się z użyciem metody WriteLine konsoli.
1. Dodaj, przed wywołaniem Console.Write("Witaj"), pusty wiersz i umieść w nim kursor tek-
stowy.
2. Wpisz następujący tekst:
Console.WriteLine("Tekst Witaj pojawi się w następnym wierszu konsoli")
3. Skompiluj projekt i uruchom aplikacjÄ™.
4. Zapoznaj się z zawartością konsoli i zakończ działanie aplikacji.
Tym razem konsola wyglądała następująco:
Widać, że metoda WriteLine konsoli, po wypisaniu tekstu będącego jej argumentem, tworzy
nowy wiersz. Obie metody wykorzystywane sÄ… w aplikacjach konsolowych. PosiadajÄ… one wiele wer-
sji służących do wyprowadzania w postaci tekstu różnych wartości: liczb, znaków, wartości logicz-
nych.
Warto w tym miejscu wspomnieć, że konsola Console posiada również inne metody, np.:
Beep  powoduje odtworzenie dzwięku przez głośnik zestawu komputerowego,
Clear  powoduje wyczyszczenie okna konsoli  usuwa teksty wyprowadzone wcześniej przez
metody Write i WriteLine oraz te wprowadzone przez użytkownika.
Metody konsoli będą wprowadzane w miarę potrzeb kolejnych ćwiczeń
II.5. Reprezentacja danych, stałe i zmienne
Reprezentacja danych w pamięci operacyjnej
NajmniejszÄ… porcjÄ… informacji jest jeden bit. Informacje przechowywane w bitach nazywa siÄ™ bi-
narnymi, gdyż bit może przechowywać (i prezentować) jeden z dwóch (bi-) stanów. Mówi się, że bit
jest ustawiony (włączony), gdy przechowuje wartość 1 (jeden), a wyłączony, gdy przechowuje war-
tość 0 (zero).
Pamięć operacyjna podzielona jest na większe porcje składające się z ośmiu bitów. Taka porcja,
to bajt (ang. byte). Każdy bit bajta może być w jednym z dwóch, opisanych wcześniej, stanów 0/1.
Patrząc na zestaw bitów w bajcie:
00000000 = 0 (B  binarnie, D  dziesiętnie)
B D
pierwszy od prawej nazywa się najmłodszym, a pierwszy od lewej najstarszym, bitem.
Jeśli ustawimy najmłodszy bit bajta:
00000001 = 1
B D
to liczba binarna ma wartość 1. Jeśli zamiast najmłodszego ustawimy kolejny starszy bit:
00000010 = 2
B D
to liczba binarna ma wartość 2. Jeśli ustawimy dwa najmłodsze bity:
00000011 = 3
B D
to liczba binarna ma wartość 3. Jeśli ustawimy wszystkie bity:
11111111 = 255
B D
to liczba binarna ma wartość 255.
Aatwo stąd wywnioskować, że jeśli do przechowywania wartości liczbowej zarezerwuje się
w pamięci operacyjnej jeden bajt, to można w tym bajcie przechowywać wartości od 0 do 255.
Rezerwacji dokonuje siÄ™ poprzez deklaracjÄ™:
Dim bytMałaLiczbaNieujemna As Byte
Bajt pamięci operacyjnej o nazwie bytMałaLiczbaNieujemna może przechowywać wartości od 0
do 255. Taki nazwany obszar pamięci operacyjnej, w którym można przechowywać jakąś wartość na-
zywa się zmienną. Powyższa deklaracja oznacza zatem utworzenie zmiennej bytMałaLiczbaNieujem-
na.
Zmienna bytMałaLiczbaNieujemna nie może przechowywać np. liczby -12. Aby rozwiązać ten
problem można inaczej interpretować bity bajta. Umowa określająca interpretację bitów w bajcie jest
następująca: najstarszy bit jest bitem znaku. Jeśli jest wyłączony, to oznacza, że liczba jest dodatnia,
a jeśli włączony  ujemna.
Przykładowo.
00000001 = 1 (podobnie jak przy poprzedniej interpretacji)
B D
10000001 =-1 (bo najstarszy bit wskazuje, że liczba jest ujemna)
B D
W związku z powyższym największą liczbą dodatnią, którą można przechowywać, przy takim
sposobie interpretacji jest:
01111111 = 127
B D
a najmniejszÄ…:
10000000 = -128 (najstarszy bit występuje w podwójnej roli  jest bitem znaku, ale także re-
B D
prezentuje liczbÄ™ 128).
Sposoby interpretacji bitów w pamięci operacyjnej określają typ zmiennej. Przykładowo, pierw-
szy sposób interpretacji bitów bajta definiuje typ Byte, drugi  SByte. (Nazwy typów wyróżnione będą
czcionką pochyłą)
Widać wyraznie, że nie wszystkie wartości typu Byte mogą być przechowywane w zmiennych
typu SByte (liczby większe niż 127), oraz, że nie wszystkie wartości typu SByte mogą być przechowy-
wane w zmiennych typu Byte (liczby mniejsze niż 0).
Należy podkreślić fakt, że bajt zarezerwowany na zmienną typu Byte, fizycznie nie różni się ni-
czym od bajta zarezerwowanego na zmienną typu SByte. Program  musi jednak pamiętać , że
zmienne są różnych typów i dlatego interpretacja wartości każdorazowo musi być inna.
Podobnie jest z tekstami przechowywanymi w pamięci operacyjnej. Załóżmy, dla uproszczenia,
że każda litera może być przechowywana w jednym bajcie pamięci operacyjnej. Ale pamiętamy, że
bajt nie przechowuje znaków, tylko wartości ośmiu bitów  czyli liczbę. Skoro tak, to każdemu znako-
wi należy przyporządkować liczbę np.:
Znak ! " # $ % & ' ( ) * + , - . / 0 1 2
Liczba 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
Jeśli dla zmiennej przechowującej znaki zarezerwujemy trzy bajty i będą one przechowywać
wartości:
Binarnie 00110001 00110000 00100100
Dziesiętnie 49 48 36
to ten łańcuch znaków będziemy interpretować jako 10$.
Aby początkujący programista nie zapominał o fakcie istnienia różnych typów danych postuluje
się wyłączenie mechanizmu automatycznej konwersji danych z jednych typów na inne. Aby wyłączyć
ten mechanizm należy posłużyć się opcją Strict. Jeśli opcja Strict jest włączona, to konieczne jest
użycie jednej z funkcji konwersji. Jeśli opcja jest wyłączona (Off), to kompilator automatycznie doda
do kodu wykonywalnego instrukcje konwertujące wartość jednego typu na inny. W nielicznych przy-
padkach może to prowadzić do błędów w działaniu aplikacji.
Drugim zaleceniem dotyczącym typów jest wymuszenie na ćwiczących jawnego deklarowania
zmiennych wraz z typami. Do uzyskania takiego efektu służy opcja Explicit. Jeśli jest wyłączona (Off),
to programista nie musi jawnie deklarować zmiennej. Włączenie opcji Strict oraz Explicit będzie za-
daniem kolejnego ćwiczenia.
Ćwiczenie 23
Włączyć opcję Strict oraz Explicit dla kodu pisanego w języku Visual Basic 2010.
1. Uruchom okno dialogowe Options (Tools\Options).
2. Rozwiń węzeł Projects and Solutions, a następnie wybierz podwęzeł VB Defaults
(domyślne dla Visual Basic).
3. Ustal wartość Strict oraz Explicit na On.
4. Zamknij okno dialogowe Options.
Stałe
Stała to miejsce w pamięci operacyjnej komputera, które przechowuje niezmienną wartość.
Wartość nie zmienia się od momentu utworzenia stałej, aż do momentu jej zniszczenia. Deklaracja
stałej składa się ze słowa kluczowego Const, nazwy stałej, określenia jej typu oraz przypisania war-
tości:
Const NazwaStałej As NazwaTypuStałej = WartośćStałej
Przypomnijmy, że pamięć operacyjna składa się z bajtów. Każdy bajt ma osiem pozycji binar-
nych  bitów. Może zatem reprezentować jedną z wartości przedziału <00000000 , 11111111 > (B po-
B B
nownie oznacza, że liczby podane są w systemie dwójkowym  binarnym), w zapisie dziesiętnym
przedział ten przyjmie postać <0, 255>. Wartości spełniające warunek przynależności do takiego
przedziału, to wartości typu Byte. Nazwa Byte określa, że wszystkie stałe i zmienne tworzone w
oparciu o ten typ mogą przechowywać tylko wartości całkowite, nieujemne i mniejsze niż 256. Kolej-
ne ćwiczenie pokaże sposób definiowania stałej typu Byte.
Ćwiczenie 24
Zdefiniować w procedurze Main stałą o nazwie bytLiczbaSenatorów typu Byte o wartości
100.
1. Dodaj, przed wywołaniem Console.WriteLine, pusty wiersz i umieść w nim kursor teksto-
wy.
2. Wpisz tekst:
Const bytLiczbaSenatorów As Byte = 100
3. Skompiluj projekt.
Słowo kluczowe Const (skrót od angielskiego constant  stały) rozpoczyna deklarację stałej.
Nazwa stałej powinna odzwierciedlać jej typ oraz zastosowanie. Przyjęło się, że przedrostek wskazu-
je typ stałej (zmiennej) i składa się z małych liter, a reszta nazwy wskazuje zastosowanie stałej
(zmiennej) i składa się ze słów rozpoczynających się wielką literą. Jest to tzw. camelStyle. Nazwa
musi zaczynać się od litery i może zawierać cyfry oraz znak podkreślenia.
Przykłady poprawnych nazw.
bytAlaMaKota
bytKota_9
Po nazwie występuje określenie typu stałej (zmiennej) składające się ze słowa kluczowego As
(Jako) i nazwy typu (np. Byte). Dalszy ciąg deklaracji to instrukcja przypisania składająca się z opera-
tora przypisania (znak równości) oraz wartości przypisywanej stałej.
Od momentu wykonania przez aplikację deklaracji stałej, aż do likwidacji stałej będzie ona po-
siadała przypisaną jej wartość. Oznacza to, że do  śmierci stała bytLiczbaSenatorów posiadać bę-
dzie wartość 100. Wartość taką można wykorzystać w działaniach aplikacji. Kolejne ćwiczenie poka-
że użycie wartości stałej jako argumentu metody WriteLine konsoli.
Ćwiczenie 25
Użyć wartości stałej jako argumentu metody WriteLine.
1. Dodaj po deklaracji stałej bytLiczbaSenatorów pusty wiersz.
2. Wywołaj w nim metodę Write konsoli podając jako argument łańcuch tekstowy:
"Liczba senatorów w Senacie RP wynosi: "
3. Dodaj następny pusty wiersz i wywołaj w nim metodę WriteLine konsoli podając jako ar-
gument stałą bytLiczbaSenatorów.
Przykład.
Console.WriteLine(bytLiczbaSenatorów)
4. Skompiluj projekt i uruchom aplikacjÄ™.
5. Zapoznaj się z zawartością konsoli i zakończ działanie aplikacji.
Rysunek 10: Nazwa stałej, zastąpiona została jej wartością.
Widać, że stała bytLiczbaSenatorów przechowuje wartość 100. Programista nie musi pamiętać,
że Senat RP liczy stu członków, wystarczy, że dowie się ilu ich jest i utworzy stałą o odpowiedniej
wartości. Każdorazowo gdy napisze w kodzie zródłowym nazwę bytLiczbaSenatorów aplikacja pobie-
rze z pamięci operacyjnej wartość tej stałej i użyje konkretnej wartości.
Zmienne
Zmienne tworzone są podobnie jak stałe, ale ich wartość może być zmieniana w trakcie wyko-
nywania aplikacji. deklarację zmiennej wskazuje słowo kluczowe Dim (skrót od angielskiego dimen-
sion  wymiar, rozmiar). Kolejne ćwiczenie obrazuje deklarowanie zmiennej.
Ćwiczenie 26
Zdefiniować w procedurze Main zmienną bytKadencjaSenatora typu Byte.
1. Dodaj na początku procedury Main pusty wiersz i umieść w nim kursor tekstowy.
2. Wpisz tekst:
Dim bytKadencjaSenatora As Byte
3. Skompiluj projekt.
Deklaracja zmiennej może również zawierać instrukcję przypisania:
Dim bytKadencjaSenatora As Byte = 2
W takim przypadku liczba 2 jest wartością początkową zmiennej bytKadencjaSenatora. Jeśli in-
strukcja przypisania nie występuje, to dla zmiennych typu Byte domyślną wartością początkową
jest 0. Wartość zmiennej może być użyta w programie tak, jak wartość stałej, a dodatkowo może być
zmieniana przy użyciu instrukcji przypisania.
II.6. Instrukcja przypisania
Instrukcja przypisania (ang. assignment) jest najczęściej, obok instrukcji wywołania (call), stoso-
waną instrukcją. Jej składnia jest następująca:
Zmienna = Wyrażenie
Wykonanie instrukcji przypisania polega na obliczeniu wartości wyrażenia (może to być np. do-
dawanie) po prawej stronie znaku równości, a następnie umieszczenie obliczonej wartości w pamięci
operacyjnej przydzielonej zmiennej, której nazwa występuje po lewej stronie znaku równości
(np. Zmienna).
Przykład.
bytKadencjaSenatora = 1 + 1
Powyższa instrukcja przypisania zadziała w następujący sposób. Najpierw zostanie obliczona
wartość wyrażenia 1+1. Wynik wyrażenia, czyli 2, zostanie przypisany zmiennej bytKadencjaSenato-
ra. Niezależnie od tego jaka była poprzednia wartość zmiennej, po wykonaniu instrukcji przypisania
zmienna ma wartość 2. Kolejne ćwiczenie pokazuje wykorzystanie instrukcji przypisania do zmiany
wartości zmiennej.
Ćwiczenie 27
Użyć instrukcji przypisania do zmiany wartości zmiennej. Efekty zmian wyświetlić w
konsoli.
1. Dodaj po deklaracji zmiennej bytKadencjaSenatora pusty wiersz i umieść w nim kursor
tekstowy.
2. Wywołaj w dodanym wierszu metodę Write konsoli podając jako argument łańcuch tek-
stowy:
"Pan X nie był jeszcze senatorem. Liczba jego kadencji w Senacie to: "
3. Dodaj następny pusty wiersz i wywołaj w nim metodę WriteLine konsoli podając jako ar-
gument zmiennÄ… bytKadencjaSenatora.
Przykład.
Console.WriteLine(bytKadencjaSenatora)
4. Dodaj następny pusty wiersz i przypisz w nim zmiennej bytKadencjaSenatora wartość 1.
Przykład.
bytKadencjaSenatora = 1
5. Dodaj następny pusty wiersz i wywołaj w nim metodę Write konsoli podając jako argu-
ment łańcuch tekstowy:
"Pan Y był już senatorem. Liczba jego kadencji w Senacie to: "
6. Dodaj następny pusty wiersz i wywołaj w nim metodę WriteLine konsoli podając jako ar-
gument zmiennÄ… bytKadencjaSenatora.
7. Skompiluj projekt i uruchom aplikacjÄ™.
8. Zapoznaj się z zawartością konsoli i zakończ działanie aplikacji.
II.7. Typy danych
Stałe i zmienne mogą przechowywać wartości spotykane w rzeczywistych zadaniach. Typ Byte
pozwala wprawdzie przechować liczbę senatorów, ale liczba posłów Sejmu RP wynosi 460, a to jest
liczba większa niż 255. Typ Byte nie nadaje się zatem do tworzenia zmiennych, które mają przecho-
wywać większe liczby całkowite. Długości skoków Adama Małysza nie przekroczyły 255 metrów, ale
wyznaczane są z dokładnością do 0,5 metra. Typ Byte pozwala przechowywać tylko liczby całkowite,
nie nadaje się zatem do przechowywania wyników skoków narciarskich.
Nie wyczerpując zagadnienia można napisać, że ogólnie typy dzielą się na liczbowe i tekstowe.
Dodatkowo występują typy do przechowywania wartości logicznych oraz dat. Wszystkie wymienione
typy zdefiniowane są w przestrzeni nazw System i są zawsze dostępne dla projektów.
Typy liczbowe
Do przechowywania liczb zdefiniowano typy całkowite i rzeczywiste.
Całkowite to:
Byte
Int16
Int32
Int64
Typy rzeczywiste dzielą się na zmiennoprzecinkowe i stałoprzecinkowe.
Zmiennoprzecinkowe to:
Single
Double
Stałoprzecinkowy  Decimal.
Każdy z wymienionych typów pozwala tworzyć stałe oraz zmienne przydatne do odmiennych
zastosowań i wymaganej dokładności obliczeń.
Typy tekstowe
Zdefiniowano dwa typy tekstowe:
Char  do przechowywania pojedynczego znaku
String  do przechowywania łańcucha znaków
Pozostałe typy
Zdefiniowano również typ Boolean służący do przechowywania wartości dwustanowych takich
jak Prawda/Fałsz, Włączone/Wyłączone, Tak/Nie itp.
Do przechowywania dat (chwil) z dokładnością do jednej milisekundy zdefiniowano typ DateTi-
me.
II.8. Pobieranie danych od użytkownika
Aplikacja Projekt_016 nie pobiera danych z zewnÄ…trz, wszystko czego potrzebuje do pracy za-
wiera w kodzie zródłowym. Użytkownik takiej aplikacji nie ma wpływu na działanie aplikacji i otrzymu-
je zawsze taki sam efekt.
Konsola zawiera metody-funkcje (ang. function) Read i ReadLine, które pozwalają na pobiera-
nie danych od użytkownika. Funkcje te odczytują znaki wprowadzone do monitora konsoli przy uży-
ciu klawiatury. Metody typu Function różnią się od metod typu Sub tym, że zwracają wynik, można
je zatem traktować jak wyrażenie i umieszczać po prawej stronie operatora przypisania. Kolejne ćwi-
czenie pokaże schemat postępowania przy pobieraniu danych.
Ćwiczenie 28
Utworzyć nowy projekt aplikacji konsolowej, której działanie polega na pobraniu
od użytkownika jego imienia i wyświetleniu go w konsoli.
1. Utwórz nowy Projekt_028 aplikacji konsolowej.
2. Użyj metody WriteLine konsoli, aby zachęcić użytkownika aplikacji do wpisania w konsoli
swojego imienia i zatwierdzenia go klawiszem Enter.
Przykładowy tekst zachęty.
"Wpisz swoje imię i naciśnij Enter."
3. Zadeklaruj zmiennÄ… strImiÄ™ typu String.
Przykład.
Dim strImiÄ™ As String
4. Wykorzystaj metodÄ™ ReadLine konsoli do pobrania tekstu wprowadzonego do konsoli
przez użytkownika. Wynik metody-funkcji ReadLine przypisz zmiennej strImię
Przykład.
strImiÄ™ = Console.ReadLine()
5. Wykorzystaj metody Write i WriteLine konsoli tak, aby w konsoli pojawił się tekst:
Twoje imię to: ImięUżytkownika
Uwaga. Imię użytkownika symbolizuje zawartość zmiennej strImię.
6. Skompiluj projekt i uruchom aplikację. Po pojawieniu się zachęty wpisz swoje imię i naci-
śnij Enter.
7. Zapoznaj się z zawartością konsoli i zakończ działanie aplikacji.
Rysunek 11: Wprowadzanie danych przez użytkownika aplikacji.
Sekwencja instrukcji wykorzystanych w ćwiczeniu może być podobna do poniższej:
Console.WriteLine("Wpisz swoje imię i naciśnij Enter.")
Dim strImiÄ™ As String
strImiÄ™ = Console.ReadLine
Console.Write("Twoje imiÄ™ to: ")
Console.WriteLine(strImiÄ™)
Działanie aplikacji stosunkowo łatwo prześledzić. Po pierwsze aplikacja wypisuje tekst zachęty.
Następnie tworzy zmienną, która zostanie użyta do przechowywania łańcucha tekstowego (imię jest
łańcuchem znaków). Instrukcja przypisania użyta w trzecim wierszu działa tak, jak to wcześniej opi-
sano. Najpierw wykonane jest obliczenie wartości wyrażenia po prawej stronie znaku przypisania 
w tym przypadku jest to funkcja ReadLine, która odczytuje z konsoli znaki, aż do końca bieżącego
wiersza, czyli imię użytkownika  następnie odczytany łańcuch tekstowy przypisywany jest zmiennej
strImię. Dalszy ciąg nie wnosi nic nowego. Aplikacja wypisuje w konsoli tekst, a następnie zawartość
zmiennej strImiÄ™.
Dwa ostatnie wiersze można zastąpić jednym o postaci:
Console.WriteLine("Twoje imiÄ™ to: {0}", strImiÄ™)
W tym przypadku łańcuch tekstowy  pierwszy argument metody WriteLine  to tzw. format.
W formacie występują objęte nawiasami klamrowymi liczby. W chwili wykonywania metody nawias
wraz z liczbą zastępowany jest wartością następnego (lub następnych) argumentu (argumentów) me-
tody. Kolejne argumenty oddziela siÄ™ przecinkami.
Przykład.
Console.WriteLine("Miejscowość {0} liczy {1} mieszkańców", strMiejscowość, intLudzi)
W przykładzie, znaki {0} zostaną zastąpione wartością zmiennej strMiejscowość, a znaki {1}
wartością zmiennej intLudzi.
II.9. Operatory, funkcje konwersji oraz funkcje działające na łańcuchach znaków
Operatory
Po prawej stronie instrukcji przypisania występują wyrażenia służące do obliczenia wartości wy-
niku. Wyrażenia budowane są ze stałych, zmiennych i operatorów. W odniesieniu do liczb najczęściej
używane operatory to (strzałka wskazuje wynik operacji):
+ (plus) operator dodawania, 2 + 3 Ä…ð 5
 (minus) operator odejmowania, 5  3 Ä…ð 2
* (gwiazdka) operator mnożenia, 3 * 4 Ä…ð 12
/ (slash) operator dzielenia rzeczywistego, 3 / 4 Ä…ð 0,75
\ (backslash) operator dzielenia caÅ‚kowitego, 18 \ 7 Ä…ð 2 (wynik jest liczbÄ… caÅ‚kowitÄ…)
^ (carret) operator potÄ™gowania, 3 ^ 4 Ä…ð 81
Mod (modulo) operator reszty z dzielenia, 22 Mod 7 Ä…ð 1
Do łączenia tekstów stosuje się operator konkatenacji &.
Przykład. Zakłada się, że zmienna strNazwisko przechowuje tekst "Kowalski".
"Pan " & strNazwisko Ä…ð "Pan Kowalski"
Funkcje konwersji
W trakcie wykonywania ćwiczenia 23. dla opcji Explicit oraz Strict została ustalona wartość On.
Włączenie tych opcji zostało podyktowane względami dydaktycznymi i pozwala zwrócić uwagę ćwi-
czących na istotne zagadnienia programowania. Opcja Explicit w stanie On powoduje, że każda
zmienna, przed pierwszym użyciem musi być jawnie zadeklarowana, to znaczy musi zostać określo-
ny jej typ.
Przykład.
Dim ZmiennaTypuByte As Byte
W ten sposób programista jawnie ogranicza zakres przechowywanych przez zmienną wartości
do liczb z przedziału <0, 255>. Dopiero po takiej deklaracji może nastąpić użycie zadeklarowanej
zmiennej.
Gdyby opcja Explicit została wyłączona (Off), to możliwe byłoby użycie zmiennej bez jej jawne-
go deklarowania. Wyłączenie opcji może spowodować powstanie w programie trudnych do wykrycia
błędów.
Opcja Strict w stanie On powoduje, że przypisanie zmiennej wartości wyrażenia, którego wynik
jest innego typu niż typ zmiennej może nastąpić jedynie w wyniku jawnej konwersji tego wyniku na
tym zmiennej. Jeśli konwersja jest niemożliwa wystąpi błąd.
Chcąc obliczyć średnią liczbę studentów w grupie na podstawie liczebności trzech grup dzieli
się sumaryczną liczbę studentów przez liczbę trzy. Jednak dzielenie może dać jako wynik liczbę rze-
czywistą, a oczekujemy, że średnia będzie liczbą całkowitą.
Przykład.
Dim ŚredniaLiczbaStudentówWGrupie As Integer
Dim SumarycznaLiczbaStudentów As Integer = 49
ŚredniaLiczbaStudentówWGrupie = SumarycznaLiczbaStudentów / 3
Wartość wyrażenia po prawej stronie operatora przypisania jest (w ogólności) liczbą rzeczywi-
stą. Zmienna, której wynik jest przypisywany, posiada typ całkowity. Podkreślone na czerwono przypi-
sanie zostanie uznane przez kompilator Visual Studio za błąd (przy włączonej opcji Strict). W takim
przypadku konieczne jest jawne użycie jednej z wielu funkcji konwersji:
CBool(wyrażenie)  konwertuje wartość wyrażenia do typu Boolean (logicznego),
CByte(wyrażenie)  do typu Byte,
CChar(wyrażenie)  do typu znakowego,
CDate(wyrażenie)  do daty,
CDbl(wyrażenie)  Double,
CDec(wyrażenie)  Decimal,
CInt(wyrażenie)  Integer,
CLng(wyrażenie)  Long,
CObj(wyrażenie)  Object,
CSByte(wyrażenie)  SByte,
CShort(wyrażenie)  Short,
CSng(wyrażenie)  Single,
CStr(wyrażenie)  String,
CUInt(wyrażenie)  UInteger (czterobajtowa całkowita bez znaku - <0, 4294967295>),
CULng(wyrażenie)  Ulong
(szesnastobajtowa całkowita bez znaku  <0, 18446744073709551615>),
CUShort(wyrażenie)  UShort (dwubajtowa całkowita bez znaku  <0, 65535>).
Przy włączonej opcji Strict należy jawnie użyć jednej z wymienionych funkcji. Błędne przypisa-
nie z powyższego przykładu należy zastąpić następującym:
ŚredniaLiczbaStudentówWGrupie = CInt(SumarycznaLiczbaStudentów / 3)
Przy wyłączonej opcji Strict (Off) konwersja nastąpi niejawnie i może powodować trudne do wy-
chwycenia błędy.
Funkcje działające na łańcuchach znaków
Wiele zadań polega na przetwarzaniu ciągów znaków  tekstów. Przykładowo, może być ko-
nieczne połączenie jednego łańcucha znaków z innym. Do tego celu stosuje się operator konkatena-
cji (łączenia łańcuchów)   & . Jeśli jednak potrzebny jest tylko fragment łańcucha tekstowego, nale-
ży zastosować jedną z funkcji łańcuchowych. Poniżej wymienione zostaną te z nich, które są najczę-
ściej wykorzystywane na etapie zapoznawania się z językiem programowania.
Funkcje, o których mowa zadeklarowane są w module Strings przestrzeni nazw VisualBasic
przechowywanej w zestawie Microsoft (biblioteka Microsoft.VisualBasic.dll).
W przykładach zakłada się, że zadeklarowano zmienne:
Dim strWynik as String
Dim intWynik as Integer
LCase
Funkcja zamienia wszystkie znaki łańcucha tekstowego na małe litery. Przykładowo, wywołanie:
strWynik = LCase("John Travolta")
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  john travolta .
Left
Funkcja zwraca określoną liczbę znaków z lewej strony łańcucha tekstowego. Przykładowo, wy-
wołanie:
strWynik = Left("John Travolta", 6)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John T .
Len
Funkcja zwraca długość łańcucha tekstowego (liczbę znaków  liczone są również spacje,
z których się składa). Przykładowo, wywołanie:
intWynik = Len("John Travolta")
spowoduje, że zmienna intWynik przechowywać będzie liczbę 13.
LSet
Funkcja zwraca łańcuch tekstowy o określonej długości rozpoczynający się od znaków łańcu-
cha podanego jako parametr. Jeśli w argumencie jest za mało znaków, to wynik uzupełniany jest po
prawej stronie spacjami, a jeżeli argument jest zbyt długi, to następuje obcięcie. Przykładowo, wywo-
Å‚anie:
strWynik = LSet("John Travolta", 15)
spowoduje, że zmienna strWynik przechowywać bÄ™dzie Å‚aÅ„cuch  John Travolta·· (kropki ozna-
czają spacje dodane, aby łańcuch miał 15 znaków). Natomiast, wywołanie:
strWynik = LSet("John Travolta", 6)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John T .
LTrim
Funkcja zwraca łańcuch tekstowy podany jako argument po usunięciu z niego spacji występują-
cych po lewej stronie. Przykładowo, wywołanie:
strWynik = LTrim(" John Travolta") 'Przed literą J występują dwie spacje
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John Travolta (bez dwóch spacji
przed literÄ… J).
Mid
Funkcja zwraca łańcuch tekstowy. Składa się on ze znaków łańcucha podanego jako argument.
Znaki pobierane są z argumentu od miejsca o określonym numerze. Przykładowo, wywołanie:
strWynik = Mid("John Travolta", 7)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch tekstowy  ravolta . Można również
określić ile znaków powinien zawierać wynik. Przykładowo, wywołanie:
strWynik = Mid("John Travolta", 7, 3)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch tekstowy  rav .
Replace
Funkcja zwraca łańcuch tekstowy powstający z argumentu przez zastąpienie określonych frag-
mentów tekstu innym ciągiem znaków. Przykładowo, wywołanie:
strWynik = Replace("John Travolta", "a", "es")
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John Tresvoltes (litera  a została
zastÄ…piona przez litery  es ).
Right
Funkcja zwraca określoną liczbę znaków z prawej strony łańcucha tekstowego. Przykładowo,
wywołanie:
strWynik = Right("John Travolta", 6)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  avolta .
Rset
Funkcja zwraca łańcuch tekstowy o określonej długości kończący się ostatnimi znakami łańcu-
cha podanego jako parametr. Jeśli w argumencie jest za mało znaków, to wynik uzupełniany jest po
lewej stronie spacjami, a jeżeli argument jest zbyt długi, to następuje obcięcie. Przykładowo, wywoła-
nie:
strWynik = RSet("John Travolta", 15)
spowoduje, że zmienna strWynik przechowywać bÄ™dzie Å‚aÅ„cuch  ··John Travolta (kropki oznaczajÄ…
spacje dodane, aby łańcuch miał 15 znaków). Natomiast, wywołanie:
strWynik = RSet("John Travolta", 6)
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  avolta .
Rtrim
Funkcja zwraca łańcuch tekstowy podany jako argument po usunięciu z niego spacji występują-
cych po prawej stronie. Przykładowo, wywołanie:
strWynik = RTrim("John Travolta ") 'Po słowie Travolta występują dwie spacje
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John Travolta (bez dwóch spacji
kończących argument funkcji).
Space
Funkcja zwraca łańcuch tekstowy złożony ze spacji. Jest ich tyle, ile wynosi argument funkcji.
StrReverse
Funkcja zwraca łańcuch tekstowy złożony ze znaków łańcucha podanego jako argument funk-
cji, ale w odwrotnej kolejności. Przykładowo, wywołanie:
strWynik = StrReverse("John Travolta")
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  atlovarT nhoJ .
Trim
Funkcja zwraca łańcuch tekstowy podany jako argument po usunięciu z niego spacji występują-
cych tak po lewej, jak i po prawej stronie. Przykładowo, wywołanie:
strWynik = Trim(" John Travolta ")
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  John Travolta .
UCase
Funkcja zamienia wszystkie znaki łańcucha tekstowego na wielkie litery. Przykładowo, wywoła-
nie:
strWynik = UCase("John Travolta")
spowoduje, że zmienna strWynik przechowywać będzie łańcuch  JOHN TRAVOLTA .
Wywołania funkcji można zagnieżdżać, aby uzyskać określony sposób przetwarzania łańcucha
tekstowego.
II.10. Komentarze
Dobrym zwyczajem programisty jest opisywanie tworzonego kodu zródłowego. W tym celu w
treści umieszcza się komentarze. Komentarz rozpoczyna się od znaku  ' (apostrof) i ciągnie się do
końca wiersza.
Przykład.
 To jest komentarz, jest on ignorowany przez kompilator


Wyszukiwarka

Podobne podstrony:
01 Wprowadzenie do Visual Studio cwiczenia przygotowujace
02 wprowadzenie do PM
Visual Basic ćwiczenia
kod do visual basic genrowanie cd key
Cwiczenie nr 03 Wprowadzenie do chemii analitycznej
Ćwiczenie 2 2 Wprowadzenie do systemu Windows 2000;XP;2003
cwiczenia przygotowujace do egzaminu gimnazjalnego czesc 1
Wprowadzenie do GIS wykład 26 02 2013
ćwiczenie1 wprowadzenie do chemii lekow

więcej podobnych podstron