02 Wprowadzenie do Visual Basic cwiczenia przygotowujace

background image

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 – wypowiedź). 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 źró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:

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.

Rysunek 8: Okno edytora kodu źródłowego z modułem Module1.

background image

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ęźle 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

background image

do deklaracji umieszczonych w przestrzeniach nazw zestawów wyszczególnionych w węźle 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łąź 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łąź 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-

background image

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. Przejdź do okna Solution Explorer i zaznacz węzeł Projekt_016.

background image

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,

zatwierdź 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 źró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 źró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).

background image

Co do zasadniczej budowy, moduły są identyczne. Wyróżnia je nazwa (Module1 i Dodatkowy).

Łatwo 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 kluczowymi

End 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 źródłowego

modułu Startowy.

2. Ustaw kursor tekstowy w pustym wierszu pomiędzy początkiem a końcem procedury

Main (jeśli kod źró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 źródłowego i zauważ, że edytor dokonał odpo-

wiednich zmian w układzie tekstu:

background image

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 odnaleźć źródło informacji.

Ćwiczenie 20
Odnaleźć 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

(Przejdź 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ę.

background image

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 nazwie Write 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.

background image

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 dźwięku przez głośnik zestawu komputerowego,

Rysunek 9: Pozioma kreska na końcu wiersza, to kursor tekstowy.

background image

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

B

= 0

D

(B – binarnie, D – dziesiętnie)

pierwszy od prawej nazywa się najmłodszym, a pierwszy od lewej najstarszym, bitem.

Jeśli ustawimy najmłodszy bit bajta:

00000001

B

= 1

D

to liczba binarna ma wartość 1. Jeśli zamiast najmłodszego ustawimy kolejny starszy bit:

00000010

B

= 2

D

to liczba binarna ma wartość 2. Jeśli ustawimy dwa najmłodsze bity:

00000011

B

= 3

D

to liczba binarna ma wartość 3. Jeśli ustawimy wszystkie bity:

11111111

B

= 255

D

to liczba binarna ma wartość 255.

Łatwo 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.

background image

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

B

= 1

D

(podobnie jak przy poprzedniej interpretacji)

10000001

B

=-1

D

(bo najstarszy bit wskazuje, że liczba jest ujemna)

W związku z powyższym największą liczbą dodatnią, którą można przechowywać, przy takim

sposobie interpretacji jest:

01111111

B

= 127

D

a najmniejszą:

10000000

B

= -128

D

(najstarszy bit występuje w podwójnej roli – jest bitem znaku, ale także re-

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ć wyraźnie, ż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$.

background image

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

B

, 11111111

B

> (B po-

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.

background image

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.

background image

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 źró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

Rysunek 10: Nazwa stałej, zastąpiona została jej wartością.

background image

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.

background image

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.

background image

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 źró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.

background image

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.

Rysunek 11: Wprowadzanie danych przez użytkownika aplikacji.

background image

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.

background image

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)

background image

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)

background image

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)

background image

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 źró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.

background image

Przykład.

‘To jest komentarz, jest on ignorowany przez kompilator


Document Outline


Wyszukiwarka

Podobne podstrony:
01 Wprowadzenie do Visual Studio cwiczenia przygotowujace
Katarzyna Ciereszko Sprawozdanie 4, WAT, SEMESTR VII, wprowadzenie do ekonometrii i prognozowania, Ć
Sprawozdanie 4 (WEiP-2011)A lach, WAT, SEMESTR VII, wprowadzenie do ekonometrii i prognozowania, Ćwi
Maciej Iwancz Sprawozdanie 4 (WEiP-2011), WAT, SEMESTR VII, wprowadzenie do ekonometrii i prognozowa
Wprowadzenie do KWP tekst ćwiczeniowy (2)
02 wprowadzenie do PM
Wprowadzenie do Programowania, listy, ĆWICZENIE 1
bd2 02 wprowadzenie do PLSQLx
02 Wprowadzenie do C id 3452 ppt
2014 02 wprowadzenie final, Różne, Przygotowanie do ŚDM w Krakowie 2016 rok, Grudzień 2013 rok, Styc
Visual Basic 2005 Wprowadzenie do programowania w NET vb25pn

więcej podobnych podstron