Archiwa tagu: c#

C++ kurs programowania obiektowego (#2) pierwszy program „Hello World!”

Tworzymy nasz pierwszy projekt „Hello World!”.

Przyszedł czas na stworzenie Twojego pierwszego projektu i tutaj chyba nie będzie niespodzianki, będzie to projekt wyświetlający napis „Hello World!” w konsoli. To klasyka gatunku. Chyba każdy programista zaczynał od takiego projektu i ja nie zamierzam zmieniać tej tradycji. No to zaczynamy!

Uruchamiamy naszego Code::Blocks’a i klikamy na ikonę Create a new project. Ten sam efekt uzyskamy klikając w menu File -> New -> Project… ale sposób z ikonką jest po prostu szybszy.

cpp c++ course kurs create new project

Rysunek 4. Ikona „Create a new project”.

W kolejnym oknie o nazwie New from template mamy możliwość wybrać szablon projektu. Na początku będziesz pracował w konsoli, dlatego wybierz opcję Console application, czyli będziemy tworzyć aplikację konsolową. Zaznacz więc tą opcję i potwierdź swój wybór przyciskiem Go.

cpp c++ course kurs create new project

Rysunek 5. Wybór szablonu projektu.

Kolejne okno to wybór języka w którym chcesz pisać kod. Ty będziesz programował w C++ więc wybierasz tą opcję z dostępnych języków programowania i przechodzisz dalej klikając w przycisk Next.

cpp c++ course kurs create new project

Rysunek 6. Wybór języka programowania.

Teraz przyszedł czas żebyś nazwał swój projekt i określił gdzie będziesz przechowywał pliki swojego projektu. Zacznijmy od pola Folder to create project in gdzie wpisujemy ścieżkę dostępu do katalogu w którym chcemy przechowywać pliki naszego projektu. Klikając w przycisk […] otworzysz okno dialogowe gdzie na drzewie katalogów możesz wskazać interesujący Cię katalog. Po wskazaniu i potwierdzeniu Twojego wyboru przyciskiem OK wrócisz do poprzedniego okna z wpisaną automatycznie ścieżką dostępu w polu Folder to create project in. Pamiętaj, że finalnie w katalogu który wskazałeś powstanie jeszcze dodatkowy katalog o nazwie takiej samej jaką wpiszesz w polu Project title i tam dopiero znajdą się pliki Twojego projektu. Jak przed chwilą napisałem nazwę Twojego projektu wprowadzasz w pole Project title. Zwróć uwagę, że nazwa ta pojawi się automatycznie w polu Project filename z rozszerzeniem .cbp (o plikach składowych projektu za chwilę).

cpp c++ course kurs create new project

Rysunek 7. Wybór nazwy projektu i jego lokalizacji.

I ostatnie okno gdzie możesz wybrać kompilator dla twojego projektu. W tym oknie wszystko zostaje tak jak na poniższym rysunku. Potwierdzasz tylko Twój wybór przyciskiem Finish.

cpp c++ course kurs create new project

Rysunek 8. Wybór kompilatora.

Jeszcze tylko słówko wyjaśnienia co to jest ten kompilator. Otóż jest to program służący do przetłumaczenia tego do napisałeś, w naszym przypadku w C++, na język zrozumiały przez komputer, żeby komputer zrozumiał czego my tak w ogóle od niego chcemy J i co on ma zrobić.

Po zatwierdzeniu wszystkiego Code::Blocks wróci do okna głównego aplikacji. Zobaczymy dwie nowe rzeczy. Po lewej stronie w zakładce Projects zobaczymy drzewko przedstawiające strukturę naszego projektu. Zwróć uwagę, że po rozwinięciu gałęzi Sources znajduje się plik main.cpp. To główny plik naszego projektu. Dwukrotne kliknięcie go na drzewku spowoduje wyedytowanie tego pliku w głównym oknie po prawej stronie od drzewka projektu (patrz rysunek). Treść którą widzisz poniżej na rysunku powstaje automatycznie przy tworzeniu projektu i pliku main.cpp (listing 1).

cpp c++ course kurs create new project

Rysunek 9. Drzewo projektu i edycja pojedynczego pliku projektu.

Teraz uwagę, że zakładka w której edytujesz plik main.cpp ma taką samą nazwę jak ten plik. W ten sposób będziesz się poruszał pomiędzy poszczególnymi plikami, jeżeli w danym momencie będziesz miał ich otwartych więcej niż jeden a uwierz mi będziesz miał J

Teraz o oknie głównym możesz dowolnie modyfikować treść tego pliku. Już w tym momencie program powinien zadziałać i na ekranie konsoli powinien pojawić się napis Hello world! Żeby uruchomić projekt (program) wciśnij przycisk F9.

cpp c++ course kurs create new project

Rysunek 10. Uruchomienie projektu "Hello world!".

Z powyższego rysunku wynika, że nasz program działa prawidłowo. Na ekranie został wyświetlony napis „Hello world!”. Zwróć uwagę, że poniżej napisu zostały wyświetlone jeszcze dwie dodatkowe linie z informacją o czasie wykonania programu i prośba o wciśnięcie jakiegoś przycisku na klawiaturze. Code:Blocks jest na tyle pomocny, że na samym końcu wstrzymuje nasz program i wyświetla te dodatkowe informację (my sami nie musimy o tym pamiętać) i dopiero po przyciśnięciu jakiegoś przycisku na klawiaturze zamknie okno konsoli. Widzisz jeszcze nie napisałeś nawet kawałka kodu a już uruchomiłeś pierwszy program 🙂


c++ kurs programowania obiektowego spis treści  c++ kurs programowania obiektowego spis treścic++ kurs programowania obiektowego spis treści

C++ kurs programowania obiektowego (#1) Środowisko programistyczne IDE

Oddaję dzisiaj w Twoje ręce pierwszy odcinek serii (mam nadzieję) o obiektowym programowaniu w C++. W dzisiejszym odcinku dowiemy się jak zacząć. Dowiesz się co Ci jest potrzebne do programowania w C++? Skąd masz ściągnąć narzędzia potrzebne do programowania? itd.

Nie tracąc Twojego i mojego cennego czasu zaczynamy!

Czego potrzebuję żeby zacząć programować i co to jest IDE?

Aby rozpocząć swoją przygodę z programowaniem w C++ musisz gdzieś pisać swoje programy. Do tego celu musisz mieć środowisko programistyczne, w skrócie nazywane IDE od angielkich słówek Integrated Development Environment. IDE to aplikacja (lub zbiór aplikacji) w której będziesz pisał kod i dzięki której będzie mógł go uruchomić w celu przetestowania poprawności zaprogramowanych funkcjonalności. Do celów naszego kursu wykorzystamy IDE o nazwie Code::Blocks.

Skąd moge pobrać IDE Code::Blocks?

Środowisko Code::Blocks możemy pobrać ze strony www.codeblocks.org gdzie menu głównym strony klikamy w opcję download. Dzięki temu przejdziemy na stronę skąd możemy pobrać naszego Code::Blocks'a. Aby to zrobić po lewej stronie widzimy menu main w którym klikamy na opcję download a później na binaries.

c++ kurs programowania obiektowego środowisko programistyczne codeblocks

Rysunek 1. Strona codeblocks.org i wybór wersji środowiska programistycznego IDE CodeBlocks

c++ kurs programowania obiektowego środowisko programistyczne codeblocks

Rysunek 2. Wybór źródła pliku instalatora.

W zależności od potrzeb wybieramy odpowiednią opcję. Ja polecam wybranie opcji codeblocks-17.12mingw-nosetup.zip (w nazwie pliku jest zaszyta także wersja IDE więc widać, że w trakcie tworzenia tego kursu aktualną wersją tego IDE jest wersja 17.12). Jest to wersja bez instalacyjna, która zawiera już w sobie kompilator i debuger.

Po kliknięciu w link sourceforge.net przy odpowiedniej wersji CodeBlocks'a uruchomimy ściąganie pliku instalatora w postaci archiwum. Po ściągnięciu i rozpakowaniu archiwum uruchamiamy plik o nazwie codeblocks.exe i już możemy cieszyć się tworzeniem kodu. Acha, nie napisałem chyba chyba najważniejszego plusa tego środowiska, JEST ONO DARMOWE 🙂 więc bez obaw możesz zacząć bawić się w programistę.

c++ kurs programowania obiektowego środowisko programistyczne codeblocks

Rysunek 3. Widok ogólny środowiska programistycznego (IDE) CodeBlocks.


c++ kurs programowania obiektowego spis treści  c++ kurs programowania obiektowego spis treści

C# snippety (ang. snippets)

C# Snippety (ang. snippets)

Ktoś kiedyś żartobliwie powiedział, że leniwi programiści napędzają ewoluowanie języków programowania. Dlaczego leniwi? – ktoś spyta. Otóż leniwy programista zawsze szuka sposobu dzięki któremu zrobi co ma zrobić ale żeby się nie narobić. Może to pchnęło programistów do utworzenia snippetów. Snippet służy programiście do przyspieszenia pisania kodu np. zamiast napisać Console.WriteLine(); możemy użyć snippetu i wpisać cw i dwukrotnie wcisnąć klawisz tab, nagle nasz skrót (tekst) cw zamieni się w pełną instrukcję Console.WriteLine(); Poniżej lista snippetów języka C# w środowisku Visual Studio (aktualnie lista nie jest długa ale będzie uzupełniana na bieżąco).

Snippet Efekt końcowy
cw + 2xtab Console.WriteLine();
for + 2xtab

for (int i = 0; i < length; i++)
            {

            }

foreach + 2xtab

foreach (var item in collection)
            {

            }

if + 2xtab

if (true)
            {

            }

ctor

public Program ()
            {

            }

class

class MyClass
        {

        }

do

do
            {

            } while (true);

lista będzie na bieżąco uaktualniana


wróć do kategorii C#

C# konwersja int to string

C# konwersja int to string

W tym krótkim wpisie pokażę jak przekonwertować wartość zmiennej typu int na zmienną typu string.

Żeby pokazać jak to zrobić na początek stworzymy sobie zmienną x o typie int i przypiszemy jej wartość 1. Wtedy przekonwertujemy sobie jej wartość, dwoma metodami, na typ string i wyświetlimy obie (nowe zmienne) na ekranie, co prezentuje poniższy kod.  

  // deklaracja i inicjalizacja zmiennej x
            // zmienna jest w tym momencie typu int
            int x = 1;

            // teraz przekonwertujemy sobie zmienną x typu int na zmienne y i z typu string
            // dwoma metodami

            // metoda 1
            string y = x.ToString();

            // medota 2
            string z = Convert.ToString(x);

            // teraz wyświetlimy na ekranie obydwie zmienne y i z
            Console.WriteLine("Wartość zmiennej y: " + y);
            Console.WriteLine("Wartość zmiennej z: " + z);

            // żeby zobaczyć efekt na ekranie zastosujemy
            // funkcję ReadKey() która zadziała w ten sposób
            Console.ReadKey();

Kod jest opisany więc myślę, że nie trzeba dodatkowo komentować tego do znajduje się na listingu powyżej.

 


C# instrukcja skoku GOTO

Instrukcja skoku GOTO

Kolejną instrukcją skoku jest GOTO. Za jej pomocą możemy skoczyć w odpowiednie miejsce w kodzie. Warunek jest jeden żeby program wiedział w które miejsc skoczyć musimy to miejsce oznaczyć etykietą. Instrukcja GOTO na pierwszy rzut oka wydaje się bardzo przydatna ale przestrzegam przed jej nadużywaniem, analiza kodu gdzie często używamy instrukcji GOTO jest mordęgą.

Zadanie
    Wykonaj 10 razy pewien kod w pętli (podzielony na dwie części). Przy piątym przebiegu pętli pomiń pierwszą część kodu.

Do rozwiązania tego zadania wykorzystam pętlę FOREACH i instrukcję GOTO. Kod poniżej.

 // deklaracja i inicjalizacja tabeli do które później się odwołamy w pętli
            int[] liczby = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // rozpoczęcie pętli FOREACH
            foreach(int i in liczby)
            {
                Console.WriteLine("Przebieg pętli nr: "+i);
                if (i == 5)
                {
                    goto Finish;
                }
                // wyświetlenie kolejnych wartości z tablicy "liczby"
                Console.WriteLine("Pierwsza część kodu");

                // etykieta Finish: i druga część kodu
                Finish: Console.WriteLine("Druga część kodu");

                Console.WriteLine();

            }
            // żeby zobaczyć na ekranie efekt uruchomienia naszego programu
            // posłużymy się funkcją ReadKey() która "czeka"
            // na wciśnięcie jakiegokolwiek klawisza na klawiaturze
            Console.ReadKey();


Wynik uruchomienia naszego programu poniżej.

kurs csharp instrukcja skoku goto

Na zrzucie widać, że pętla wykonała się 10 razy. Zauważ że przy piątym wykonaniu się pętli wykonała się tylko druga część kodu. Właśnie taki efekt chcieliśmy uzyskać, że przy określonych parametrach (u nas wtedy kiedy i=5) wykona się tylko część naszego kodu.


C# instrukcja skoku CONTINUE

Instrukcja skoku CONTINUE

To kolejna instrukcja skoku. Tą instrukcję wykorzystujemy w sytuacji kiedy nie chemy wykonywać wszystkich instrukcji wewnątrz pętli i przejść do kolejnego przebiegu pętli.

Przykład zastosowania instrukcji CONTINUE w pętli FOREACH

// deklaracja i inicjalizacja tabeli do które później się odwołamy w pętli
            int[] liczby = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // rozpoczęcie pętli FOREACH
            foreach(int i in liczby)
            {
                if (i == 5)
                {
                    continue;
                }
                // wyświetlenie kolejnych wartości z tablicy "liczby"
                Console.WriteLine(i);
            }
            // żeby zobaczyć na ekranie efekt uruchomienia naszego programu
            // posłużymy się funkcją ReadKey() która "czeka"
            // na wciśnięcie jakiegokolwiek klawisza na klawiaturze
            Console.ReadKey();


Efekt uruchomienia programu na obrazku poniżej.

kurs c# csharp instrukcja skoku w pętli continue

Widzimy, że w ciągu liczb brakuje wartości 5. W momencie kiedy zmienna "i" miała wartość 5 program zakończył aktualny przebieg pętli i "przeskoczył" do kolejnego przebiegu ale generalnie nie zakończył działania pętli.


C# instrukcja skoku BREAK

Instrukcja skoku BREAK

Co to są instrukcje skoku w pętlach. Jak sama nazwa wskazuje instrukcje te pozwalają nam przenieść się (skoczyć) do innego miejsca w pętli. Mamy kilka takich instrukcji: BREAK, CONTINUE, GOTO, RETURN, THROW.

W tym wpisie zajmijny się instrukcją BREAK. Jeżeli posłużymy się ta instrukcją to "wyjdziemy" z pętli i już kolejne iteracje się nie wykonają.

Przykład zastosowania instrukcji BREAK w pętli FOREACH  

 // deklaracja i inicjalizacja tabeli do które później się odwołamy w pętli
            int[] liczby = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // rozpoczęcie pętli FOREACH
            foreach(int i in liczby)
            {
                if (i == 5)
                {
                    break;
                }
                // wyświetlenie kolejnych wartości z tablicy "liczby"
                Console.WriteLine(i);
            }
            // żeby zobaczyć na ekranie efekt uruchomienia naszego programu
            // posłużymy się funkcją ReadKey() która "czeka"
            // na wciśnięcie jakiegokolwiek klawisza na klawiaturze
            Console.ReadKey();


Wynik uruchomienia naszego programu poniżej.

kurs c# csharp instrukcja skoku w pętli break

Na zrzucie widać, że pętla wyświetliła tylko wartości od 1 do 4. W momencie kiedy zmienna "i" miała wartość 5 program wyszedł z pętli.

Wewnątrz pętli FOREACH zastosowałem instrukcję IF gdzie dałem warunek, że jeżeli "i" (czyli w naszym przypadku wartość kolejnego elementu w tablicy "liczby")  będzie równe 5 to program ma wyjść z pętli właśnie przez zastosowanie instrukcji BREAK.


C# pętla FOREACH

Pętla FOREACH

FOREACH jest pętlą która operuje na tablicach, łańcuchach oraz kolekcjach. W tej pętli nie musimy ustawiamy zmiennej która ma spełniać funkcję licznika i co jeden "obrót" pętli iterujemy jej wartość tylko odwołujemy się do konkretnego zbioru danych: tabeli, łańcucha, kolekcji, który ma odpowiednią ilość elementów i tyle razy pętla się wykona.

Składnia pętli FOREACH

foreach(typ identyfikator in wyrażenie)
    instrukcja / /jeżeli blok instrukcji, muszą być w nawiasach {}

wyjaśnienie:
typ – tutaj podajemy jakiego typu elementy znajdują się we wskazanym zbiorze
identyfikator – nazwa zmiennej (pamiętaj za każdym "przejściem" pętli ta nazwa jest dla kolejnego elementu zbioru)
wyrażenie – w tym miejscu wskazujemy zbiór danych np. tabelę, łańcuch, kolejcja (pamiętaj typ danych w zbiorze musi być taki sam jak podany w identyfikatorze lub musi się dać na niego przekonwertować)
instrukcja – tutaj wpisujemy instrukcję do wykonania przy każdym "przejściu" pętli (pamiętaj jeżeli jest to kilka instrukcji muszą się one znajdować w nawiasach {} )

Przykład zastosowania pętli FOREACH.
Wyświetl na ekranie ciąg liczb od 0 do 10.

// deklaracja i inicjalizacja tabeli do które później się odwołamy w pętli
int[] liczby = new int[] {1,2,3,4,5,6,7,8,9,10};

// rozpoczęcie pętli FOREACH
foreach(int i in liczby)
{
    // wyświetlenie kolejnych wartości z tablicy "liczby"
    Console.WriteLine(i);
}
// żeby zobaczyć na ekranie efekt uruchomienia naszego programu
// posłużymy się funkcją ReadKey() która "czeka"
// na wciśnięcie jakiegokolwiek klawisza na klawiaturze
Console.ReadKey();

Poniżej zrzut ekranu po uruchomieniu programu.

kurs c# csharp instrukcja pętla foreach

Aby zautomatyzować wprowadzanie struktury pętli FOREACH w kodzie należy napisać słówko FOREACH i kliknąc dwukrotnie przycisk TAB. Od razu powstanie nam odpowiednia struktura pętli.

foreach (var item in collection)
            {

            }

Uwaga:
* Pamiętaj pętla FOREACH wykona się tyle razy ile elementów jest we wskazanym zbiorze. Jeżeli np. twoja tabela do której się odwołujesz ma 10 elementów to pętla FOREACH wykona się 10 razy.


C# pętla FOR

Pętla FOR

Instrukcja FOR to także pętla która wykonuje wewnętrzny kod określoną ilość razy (określamy to poprzed argumenty pętli).

Składnia pętli FOR

for(argument1 ; argument2 ; argument3)
    instrukcja // jeżeli blok instrukcji muszą być w nawiasach {}

wyjaśnienie:
argument1 – (zwany także inicjatorem) to instrukcja (lub grupa instrukcji) które określają jakby parametry początkowe pętli np. przypisują wartość do zmiennej która później będzie zwiększana i to za jej pomocą pętla będzie "wiedziała" ile razy wykonać kod wewnętrzny.
argument2 – tutaj należy wprowadzić wyrażenie (warunek logiczny). Spełnienie tego warunku skutkuje wykonaniem kodu.
argument3 – tzw. iteratory, tutaj musimy "powiedzieć" pętli jak mamy zamiar operować na zmiennych z argumentu1. Czyli np. czy będziemy je zwiększać, zmniejszać i o jaką wartość.

Przykład zastosowania pętli FOR.
Wyświetl na ekranie ciąg liczb od 0 do 10.

// rozpoczęcie pętli FOR
for(int i = 1 ; i < 11 ; i++)
{
    // wyświetlenie wartości zmiennej i na ekranie
    Console.WriteLine(i);
}
// w tym momencie program się zatrzyma i będzie czekał na
// przyciśnięcie jakiegokolwiek klawisza a my będziey mogli
// dzięki temu zobaczyć efekt działania pętli while na ekranie
Console.ReadKey();

Poniżej zrzut ekranu prezentujący efekt uruchomienia programu.

kurs c# csharp instrukcja pętla for

Iterator (argument3) nie zawsze musi być zwiększany (lub zmniejszany) o 1. Może być o zadaną wartość.

Przykład zastosowania pętli FOR.
Wyświetl na ekranie ciąg liczb nieparzystych od 0 do 10.

// rozpoczęcie pętli FOR
for(int i = 1 ; i < 11 ; i+=2)
{
    // wyświetlenie wartości zmiennej i na ekranie
    Console.WriteLine(i);
}
// w tym momencie program się zatrzyma i będzie czekał na
// przyciśnięcie jakiegokolwiek klawisza a my będziey mogli
// dzięki temu zobaczyć efekt działania pętli while na ekranie
Console.ReadKey();

Poniżej zrzut ekranu po uruchomieniu programu.

kurs c# csharp instrukcja pętla for


Aby zautomatyzować wprowadzanie struktury pętli FOR w kodzie należy napisać słówko FOR i kliknąc dwukrotnie przycisk TAB. Od razu powstanie nam odpowiednia struktura pętli FOR.

for(int i = 0; i < length; i++)
{

}

Uwaga:
* Pamiętaj o odpowiednio skonstruowanym warunku logicznym (argument2)
* Pamiętaj kod wewnątrz pętli się nie wykona jeśli nie będzie spełniony warunek logiczny.
* Patrząc na nasz przykład pamiętaj aby skorzystać z inkrementacji zmiennej x, ponieważ w innym przypadku nasza zmienna x nigdy nie osiągnęłaby wartości większej lub równej 11 a co za tym idzie pętla nigdy by się nie zatrzymała.
* Pamiętaj bez sprawdzenia warunku kod wewnątrz pętli WHILE nie wykona się ani razu.


C# pętla DO WHILE

Pętla DO WHILE

Pętla DO WHILE jest instrukcją iteracyjną. Wykorzystujemy ją w przypadku kiedy potrzebujemy ponownie wykonać jakąś instrukcję lub grupę instrukcji. Jest jednak mała różnica między pętlą WHILE i DO WHILE. Różnica jest taka, że pętla WHILE nie wykona się ani razu przed sprawdzeniem warunku zakończenia pętli a pętla DO WHILE za pierwszym razem wykona kod wewnątrz pętli bez tego sprawdzenia. Dopiero później sprawdza warunek zakończenia pętli i w zależności czy warunek będzie spełniony kod wewnątrz pętli wykona ponownie bądź nie. Pętla ta jest idealna jeżeli za pierwszym razem niezaleźnie od niczego chcemy wykonać kod wewnątrz a dopiero później sprawdzamy jakiś warunek. W pętli DO WHILE nie określamy zgóry ile iteracji ma zostać wykonanych to zależy od spełnienia warunku zakończenia pętli.

Składnia pętli DO WHILE

DO
instrukcja // lub instrukcje do wykonania, jeśli wiele instrukcji to w nawiasach {}
WHILE (warunek_zakończenia_pętli)

Przykład zastosowania pętli DO WHILE.
Wyświetl na ekranie ciąg liczb od 0 do 10.
 

// deklaracja i inicjalizacja zmiennej x
int x = 1;

// rozpoczęcie pętli while i ustawienie warunku zakończenia pętli
do
{
    // konwersja wartości zmiennej x na text i wyświetlenie jej na ekranie
    Console.WriteLine(Convert.ToString(x));
    // inkrementacja zmiennej x czyli zwiększenie jej wartości o 1
    x++;
}
while (x < 11);

// w tym momencie program się zatrzyma i będzie czekał na
// przyciśnięcie jakiegokolwiek klawisza a my będziey mogli
// dzięki temu zobaczyć efekt działania pętli while na ekranie
Console.ReadKey();

Poniżej zrzut ekranu po uruchomieniu programu.

kurs c# csharp instrukcja pętla do while

Aby zautomatyzować wprowadzanie struktury pętli DO WHILE w kodzie należy napisać słówko DO i kliknąc dwukrotnie przycisk TAB. Od razu powstanie nam odpowiednia struktura pętli DO WHILE.

do
{

}while(true);

* Pamiętaj kod wewnątrz pętli DO WHILE wykona się jeden raz bez sprawdzenia warunku zakończenia pętli.
* Pamiętaj, skoro kod wykona się minimum jeden raz bez sprawdzania warunku zakończenia pętli to przy sprawdzaniu warunku zakończenia pętli zmienna x (patrz nasz przykład) będzie już większa o 1 (wykona się już inkrementacja).