lab01 2011


[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 1/8
teoria
.Net Framework to fundament do budowy i uruchamiania aplikacji. Jego dwa główne komponenty:
" wspólne środowisko uruchomienia
" biblioteka klas.
Pozwalają one na uruchamianie aplikacji tworzonych w dowolnym języku zgodnym ze specyfikacją Common
Language Specification (CLS). Oznacza to, że aplikacje .NET można tworzyć w każdym z języków:
" Visual Basic,
" Visual C++,
" Visual C#,
" Jscript.
Biblioteka klas zawiera szereg szablonów obiektów, z których budowane są i z których korzystają aplikacje Windows,
Web i Web Service.
.NET Framework wspiera trzy typy interfejsów użytkownika:
" Web Forms, oparte o interfejs przeglądarki internetowej i ASP.NET,
" Windows Form, oparte o klasyczne formularze systemu Windows,
" aplikacje dla konsoli.
Najczęściej używane biblioteki klas .NET
Microsoft.Win32 Zawiera dwa rodzaje klas: obsługujące zdarzenia generowane przez system i
obsługujące rejestr systemowy
System Zawiera bazowe klasy definiujące typy danych, zdarzenia i uchwyty zdarzeń,
interfejsy, atrybuty oraz obsługę wyjątków
System.Collections Zawiera interfejsy i klasy definiujące kolekcje obiektów takich jak: listy, kolejki,
tablice bitowe, słowniki itp.
System.ComponentModel Zawiera klasy do manipulacji zachowaniem komponentów i kontrolek
System.Configuration Zawiera klasy oraz interfejsy pozwalające na programowalny dostęp do ustawień
konfiguracyjnych .NET Framework oraz przechwytywania błędów związanych z
obsługą plików konfiguracyjnych (plików z rozszerzeniem .config)
System.Data Zawiera klasy wspierające architekturę ADO.NET, która pozwala na łatwą
manipulację danymi oraz zródłami danych z baz danych
System.Data.SqlTypes Zawiera klasy i struktury typów danych bazy
System.Globalization Zawiera klasy definiujące informacje specyficzne dla danego kraju (język, strefa
czasowa, format wyświetlania daty, pieniędzy, liczb itp. Klasy są wykorzystywane
do tworzenia aplikacji wielojęzycznych
System.IO Zawiera klasy pozwalające na manipulację plikami i strumieniami oraz zarządzanie
plikami i folderami
System.Net Zapewnia prosty interfejs dla wielu protokołów sieciowych
System.Text Zawiera klasy reprezentujące standardy kodowania znaków np. ASCII, UTF-8 itp.
System.Web Zawiera klasy i interfejsy zapewniające komunikację z serwerem Webowym.
System.Windows.Form Zawiera klasy i interfejsy do tworzenia aplikacji okienkowych. Zbiór zawiera pełną
gamę komponentów niezbędnych do tworzenia interfejsu użytkownika.
System.Drawing Zapewnia dostęp do podstawowej funkcjonalności obsługi grafiki
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 2/8
Projekt aplikacji
Każdy projekt zapisywany jest na dysku w postaci plików zawierających definicje formularzy oraz kod aplikacji.
Można tworzyć rozwiązania złożone z większej liczby projektów niż jeden. Plik opisujący takie rozwiązanie nazywa się
Solution.
Solucja (ang. solution) jest to kontener dla elementów solucji i projektu, z którego może być zbudowana aplikacja.
Solucja zawiera zwykle jeden lub więcej powiązanych projektów.
Projekt (ang. project) jest kontenerem w ramach solucji, który może być użyty do logicznego zarządzania, budowania i
wykrywania błędów elementów projektu, które tworzą aplikację.
.sln - rozszerzenie solucji, dostarcza informacji o lokalizacji plików solucji na dysku,
.suo - przechowuje wszystkie ustawienia użytkownika skojarzone z konkretną solucją,
.csproj - przechowuje informacje o projekcie,
.cs - opisuje klasy, właściwości i metody,
Designer.cs - opisuje właściwości formularza.
.resx - opisuje zasoby (resource), plik w formacje XML.
Pisanie aplikacji
Wyrażenie using pozwala skorzystać z kodu zawartego z bibliotece klas .NET. Najczęściej wyrażenie to jest
umieszczane na początku kodu programu, aby poinformować kompilator z jakich zasobów biblioteki klas korzysta
program.
Metoda Main
Kod static void Main informuje kompilator, o lokalizacji miejsca, od którego należy rozpocząć wykonywanie aplikacji.
Każda aplikacja C# musi zawierać metodę Main w jednej ze swoich klas.
Komentarze
// - jedna linia
/* */ - kilka linii
Komentarze XML
///
///Opis metody
///

/// numer czegoś tam
/// ulica
Przestrzeń nazw to system wykorzystywany do grupowania związanych ze sobą klas. Korzystając z nich możesz
uporządkować klasy w logicznie powiązaną hierarchię. Przestrzenie funkcjonują zarówno jako system porządkujący
strukturę aplikacji jak i zabezpieczenie przed kolizjami nazw między kodem Twojej aplikacji i zewnętrznych aplikacji.
Namespace Company.Sales {
public class Customer {}
}
Company.Sales.Customer cust = new Company.Sales.Customer();
Typy danych
" byte  liczba całkowita od 0 do 255 (1 bajt)
" short  liczba całkowita od -32768 do 32767 (2 bajty)
" int  liczba całkowita od -2147483648 do 2147483647 (4 bajty)
" uint  liczba całkowita od 0 do 4294967295 (4 bajty)
" bool  wartość Boolean  prawda lub fałsz (1 bajt)
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 3/8
" float  liczba zmiennoprzecinkowa pojedynczej przecyzji (4 bajty)
" double  liczba zmiennoprzecinkowa podwójnej przecyzji (8 bajtów)
" decimal  precyzyjna liczba ułamkowa do 28 znaczących cyfr (12 bajtów)
" object  typ bazowy dla pozostałych typów
" char  pojedynczy znak Unicode od 0 do 65535 (2 bajty)
" string  nieograniczony ciąg znaków Unicode (wielkość nieoznaczona)
int mojaZmienna = 1;
string mojTekst =  mój tekst ;
double mojeWydatki = 45.56;
Klasy - jest takim samym typem danych, jak liczby całkowite czy łańcuchy znaków. Jest tylko trochę bardziej
skomplikowana. Aby utworzyć egzemplarz (zwany też instancją) naszej klasy, piszemy zwykłą konstrukcję deklaracji
zmiennej, w której jako typ danych podajemy nazwę naszej klasy. Każdy egzemplarz klasy należy zainicjować,
używając słowa kluczowego new.
Zmienne i funkcje składowe klasy - składnikami mogą być dane różnych typów  int, double, string i tak dalej. Dane
te nazywamy danymi składowymi lub zmiennymi składowymi klasy.
Składnikami klasy mogą być też funkcje. Funkcje takie nazywane są funkcjami składowymi lub metodami.
Wszystkie zmienne i funkcje składowe klasy można oznaczyć dodatkowymi atrybutami (na
przykład private lub public), określającymi ograniczenia dostępu lub zachowanie danej funkcji w
klasach dziedziczących po tej klasie.
class ModelSamochodu
{
// zmienne składowe
private double Predkosc;
private double PrzejechanaDroga;
private double SkrecenieKol;
public string Nazwa;
public string Kolor;
// konstruktor klasy
public ModelSamochodu(string KolorFabryczny)
{
Kolor = KolorFabryczny;
}
// funkcje składowe
public void Jazda(double Droga)
{
}
public void Skrec(double IleStopni)
{
}
}
ModelSamochodu mojSamochod = new ModelSamochodu("czerowny");
ModelSamochodu sasiadaSamochod = new ModelSamochodu("czarny");
Do określania typu dostępu służą słowa kluczowe, zwane modyfikatorami dostępu:
" public - składowe zadeklarowane przy użyciu tego modyfikatora posiadają dostęp publiczny. Dane składowe
można zmienić, a metody wywołać z dowolnego miejsca w kodzie programu. Jeśli pisane oprogramowanie
jest biblioteką, to metody można także wywoływać z całego kodu wykorzystującego tę bibliotekę,
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 4/8
" private - składowe zadeklarowane przy użyciu słowa kluczowego private mają dostęp prywatny. Są one
dostępne wyłącznie z klasy, w której znajduje się ich deklaracja;
Klasy mają domyślnie zasięg publiczny. Składowe klas mają domyślnie zasięg private. Zasięg składowej nigdy nie jest
większy niż zasięg klasy czy przestrzeni nazw, w której się znajduje.
Typy statyczne - static
Statyczną składową klasy może być własność, metoda lub zmienna. Powiązane są z klasą, nie z określoną instancją
obiektu.
Typ wyliczeniowy  nie można tworzyć w metodzie, można w klasie lub przestrzeni nazw.
enum Dzien {Poniedzialek, Wtorek};
enum Dzien:uint {Poniedzialek = 1, Wtorek = 2}; - dozwolony dowolny typ
całkowity oprócz char
Dzien Dzisiaj = Dzien.Wtorek;
Stałe  nie można w dalszej części kodu programu zmienić zainicjowanej wartości
const int liczba = 200;
Kilka zasad:
" Kompilator C# rozróżniania wielkości liter w kodzie
" Nie używamy polskich liter w kodzie
" Nazwy metod, własności, zmiennych nie mogą zawierać spacji w nazwie
" Liczby zmiennoprzecinkowe piszemy z kropką jako separator miejsc dziesiętnych
" Staramy się maksymalnie opisywać kod stosując komentarze
" Każda metoda musi zwracać wartość, możemy jednak zwracać typ pusty void
private void mojaFunkcjaNicNieZwroci()
{
//jakies polecenia
return;
}
" Każdą zadeklarowaną zmienną powinno się inicjować wartością początkową.
Visual Studio
Tworzenie projektu
Zadania programistyczne w pakiecie Visual Studio organizowane są w rozwiązania (solution), w których umieszczane
są projekty. Każde rozwiązanie musi zawierać przynajmniej jeden projekt.
1. Aby utworzyć nowy projekt, w programie Visual Studio należy z menu File wybrać pozycję New Project.
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 5/8
2. Wybieramy konkretny szablon  jeśli chcemy utworzyć aplikację konsolową, powinniśmy wybrać ikonę
opisaną Console Application, a jeśli chcemy utworzyć aplikację okienkową - ikonę Windows Application.
3. W polu Name wpisujemy nazwę projektu. Następnie klikamy przycisk OK, aby utworzyć projekt.
Edytowanie kodu zródłowego
Plik, który chcemy edytować, można otworzyć, klikając dwukrotnie jego nazwę (np. class1.cs) w eksploratorze
rozwiązania (okno Solution Explorer). Jeśli eksplorator nie jest widoczny, w menu View należy zaznaczyć opcję
Solution Explorer.
Visual Studio na kilka różnych sposobów pomaga programiście w pisaniu kodu. Przede wszystkim funkcja uzupełniania
wyrażeń podpowiada nazwy klas, funkcji i zmiennych. Załóżmy, że nasza aplikacja ma wypisać jakiś tekst w oknie
konsoli. Powinniśmy użyć funkcji Console.WriteLine. W funkcji main wpisujemy nazwę klasy Console i stawiamy
kropkę. W tym momencie powinno zostać wyświetlone pole zawierające nazwy elementów i metod składowych klasy
Console (widoczne na ilustracji poniżej).
Wszystkie niepoprawne wyrażenia w kodzie są podkreślane falistą linią. Po wskazaniu podkreślonego wyrażenia
myszą, wyświetlona zostanie podpowiedz sugerująca, jaki błąd mogliśmy popełnić. Umożliwia to wyśledzenie błędów
w czasie pisania kodu, jeszcze przed kompilacją.
Jeśli chcemy dowiedzieć się więcej na temat używanych w programie funkcji bibliotecznych, wystarczy zaznaczyć ich
nazwę w kodzie i nacisnąć klawisz F1. W zależności od tego, czy dokumentacja została zainstalowana, wyświetlone
zostaną informacje z dysku lub zostaniemy skierowani do dokumentacji dostępnej w Internecie.
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 6/8
Kompilacja i uruchamianie
Kod zródłowy programu jest dla komputera tekstem niezrozumiałym, dlatego przed uruchomieniem programu trzeba go
skompilować. W tym celu z menu Build należy wybrać pozycję Build.
Błędy i komunikaty kompilatora C# zostaną wyświetlone w oknie Output. Jeśli kompilator nie wykrył żadnych
błędów, można uruchomić aplikację, wybierając z menu Debug polecenie Start without Debugging.
Usuwanie błędów
Jeśli nasz program skompilował się bezbłędnie, ale w czasie jego wykonania występują błędy, których nie potrafimy
znalezć lub nie rozumiemy ich, najlepiej jest skorzystać z programu debugującego, który umożliwi szczegółowe
prześledzenie działania aplikacji.
Gdy program uruchamiany jest w debugerze, możliwe jest definiowanie punktów wstrzymania, powodujących
przerwanie wykonywania programu w danym miejscu i przekazanie programiście kontroli nad debugerem. Aby
wstawić punkt wstrzymania, prawym przyciskiem myszy należy kliknąć wiersz kodu, przed wykonaniem którego
program ma się zatrzymać, i z kontekstowego menu należy wybrać pozycję Insert Breakpoint. Punkt wstrzymania
można usunąć, klikając prawym przyciskiem myszy na wierszu kodu, w którym ten punkt się znajduje i wybierając z
kontekstowego menu pozycję Remove Breakpoint.
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 7/8
Po ustawieniu punktu wstrzymania, uruchamiamy program w debugerze. Z menu Debug tym razem należy wybrać
polecenie Start (lub nacisnąć klawisz F5). Gdy wykonywanie programu dojdzie do punktu wstrzymania, kontrola nad
debugerem zostanie przekazana programiście. Wykonywaną aktualnie linię w programie będzie wskazywała strzałka
widoczna na marginesie.
Aby wykonać jedną linię kodu (tak zwane wykonywanie krokowe), z menu Debug należy wybrać Step Over (lub
nacisnąć klawisz F10)  kursor przesunie się do następnej linii. Polecenie Debug > Step Into (klawisz F11)
umożliwia przejście do wnętrza funkcji wywoływanej w danej linii. Gdy chcemy wznowić wykonywanie programu do
napotkania kolejnego punktu wstrzymania lub zakończenia działania programu, z menu Debug wybieramy polecenie
Continue (klawisz F5).
[języki i paradygmaty programowania - Visual C#]  laboratorium 1
Rafał Foltyn ___________________________________________________________________________________________________str. 8/8
przykłady
zadanie 1 Napisz program wyświetlający dowolny napis na ekranie. Wytłumacz jaki fragment kodu odpowiada
za wyświetlenie informacji na ekranie i jaki będzie skutek nie użycia danego fragmentu kodu w
programie. Czy program wtedy się wykona?
zadanie 2 Zadeklaruj dziesięć zmiennych całkowitych, następnie przypisz im dowolne wartości. Wyniki
wyświetl na ekranie.
zadanie 3 Napisz program, który będzie pobierał informacje od użytkownika w celu wypełnienia dowodu
rejestracyjnego pojazdu (wykorzystać wszystkie rubryki w dowodzie rejestracyjnym). Następnie
wyświetli je na ekranie.
zadanie 4 Zadeklaruj kilka zmiennych typu całkowitego. Wykonaj na nich kilka operacji arytmetycznych.
Wyniki wyświetl na ekranie.
Następnie napisz programy, wykonujące poniższe polecenia (każdy z programów powinien się uruchamiać oddzielnie):
5. Wypisuje na ekran: "Cześć, jestem Informatykiem!".
6. Pobiera dane i używa je w wypisanym tekście (np. wpiszesz w wierszu poleceń: nazwaprogramu.exe
Twoje imię; Program wypisze: Cześć Twoje imię. Jak się masz?).
7. Wykonuje wszystkie możliwe operacje arytmetyczne na dwóch wpisanych statycznie w kodzie programu do
zmiennych liczbach. Wyniki wyświetl oczywiście na ekranie.
8. Wykonuje operacje arytmetyczne na trzech liczbach wpisanych przez użytkownika po tym, jak zostanie
poproszony o ich podanie. Wyniki wyświetl na ekranie.
9. Program, który liczy następujące równanie: x+3y-x2*44=z. Obliczamy 'z'. 'x' i 'y' program pobiera od
użytkownika.
10. Przechowuje w tablicy nazwiska kolegów z grupy i wypisuje je na ekran.
11. Oblicza pierwiastki równania kwadratowego z podanych współczynników. W tym programie użyj instrukcji
sterujących (if). Współczynniki podajemy w czasie wykonania programu.
Console.ReadLine(); , czyli np. : - uruchamiam program wpisując: delta
- program przedstawia się:
Obliczam pierwiastki równania kwadratowego.
-----------
podaj A: 2
------------
podaj B: 3
------------
podaj C: 2
------------
delta = 8
-------------
x1 = 2
x2 = 2
Do widzenia.
12. Napisz dowolne dwa programy o średnio zaawansowanej konstrukcji.


Wyszukiwarka

Podobne podstrony:
11 (311)
ZADANIE (11)
Psychologia 27 11 2012
359 11 (2)
11
PJU zagadnienia III WLS 10 11
Wybrane przepisy IAAF 10 11
06 11 09 (28)
info Gios PDF Splitter And Merger 1 11

więcej podobnych podstron