„Chciałabym coś zaprogramować, ale programowanie to wiedza dla druidów, z pewnością nie dla mnie.” – jeśli chociaż raz w życiu wpadła Ci do głowy taka myśl, czytaj dalej i daj się przekonać, że jest inaczej. Ten artykuł skierowany jest do każdej osoby, która nie ma palącej potrzeby zgłębiania wiedzy programistycznej, ale chciałaby poświęcić chwilkę i spróbować stworzyć coś swojego od zera. W końcu hobbystycznie zajmujemy się fotografią, hobbystycznie piszemy piosenki i rysujemy. Kto więc powiedział, że hobbystycznie nie można programować?
Na początek ustalmy sobie jeszcze 3 proste zasady tego artykułu:
- Ponieważ artykuł kieruję do tytularnej „nauczycielki”, będę się zwracał do Ciebie jako kobiety – taka mała odmiana na blogu. Liczę, że Panowie nie będą zawiedzeni;-)
- Nie będę stosował technicznego żargonu. Ma być fajnie, łatwo i przyjemnie. W końcu odkrywasz nowe hobby nie?
- Nie zniechęcisz się pierwszym lepszym niepowodzeniem, a jeśli najdą Cię wątpliwości lub pytania – napiszesz do mnie
No to do dzieła!
Fundamenty podstaw – środowisko
Suupeeer, zabieramy się za programowanie! Ale tak właściwie, to co to w ogóle znaczy? Będziemy zwierać kabelki? Albo ustawiać w odpowiednim ciągu zera i jedynki? Mam nadzieję, że przygotowałaś już sobie piwnicę i założyłaś sweter lub bluzę… Stop! Programowanie nie przypomina już tego, co w latach 80′. Zaufaj mi – żeby zacząć, nie musisz mieć żadnej specjalistycznej wiedzy. Cóż to takiego więc, to programowanie?
Programowanie to – mówiąc krótko – napisanie komputerowi co ma robić. W tym celu potrzebujemy jakiś język programowania i kompilator. Język programowania wydaje mi się dość intuicyjny, jak normalne języki którymi się posługujemy. To po prostu zbiór reguł i zasad dzięki którym możemy z komputerem pogadać. W naszym przypadku to będzie C# (słownie –si szarp. Nie ce krzyżyk ani ce krateczka!). A kompilator? No właśnie. Zdanie wcześniej nieco skłamałem (ale nie bardzo!). Język programowania to zbiór reguł i instrukcji które wykorzystujemy żeby napisać program. A kompilator, to taki mechanizm który zamienia to co napisaliśmy na język który rozumie komputer (czyli na ciąg zer i jedynek).
My użyjemy (jak już wyżej wspomniałem) języka C# który został stworzony przez Microsoft. Użyjemy go, ponieważ jest jest wygodny w szybkim pisaniu i nie trzeba się przejmować całą masą zbędnych problemów. A co z kompilatorem? Tutaj użyjemy nie tylko kompilatora, ale i całego IDE (Integrated Development Environment) – czyli całego środowiska, którego składową jest kompilator. Zrobimy tak z dwóch powodów. Po pierwsze – korzysta się z tego w bardzo łatwy sposób (kompiluje się za kliknięciem jednego przycisku, poza tym podpowiada składnię więc nie trzeba wielu rzeczy pamiętać). Po drugie – to profesjonalne środowisko. Nasze IDE nazywa się Microsoft Visual Studio i można pobrać tutaj.
Gdy zainstalujesz możesz się nieco zdziwić ogromem wszystkiego, ale nie przerażaj się – przywykniesz, obiecuję. A może i się zaprzyjaźnisz z VS. Dam krótką instrukcję jak rozpocząć pierwszy projekt. Po odpaleniu możesz spotkać podobny widok jak ten poniżej. Zrób więc tak jak ja. Kliknij „New Project”, następnie Templates-> Visual C# i Console Application. Na dole wybierz ścieżkę docelową w której ma utworzyć projekt oraz jego nazwę (ja nazwałem ją druidzkim kalkulatorem, ale nazwij jak chcesz – całość ma sprawiać Ci przyjemność;-) ).
Gdy klikniesz „Ok” zobaczysz gotowy swój projekt z pierwszym kawałkiem kodu. Na ten moment możesz śmiało zostawić to co się stworzyło w spokoju i wrócić do artykułu.
Fundamenty podstaw – programowanie
Wspaniale! Masz już na komputerze zainstalowane środowisko programistyczne, wiesz czym jest kompilator oraz IDE oraz ogólnie czym jest programowanie. Czas zdobyć przysiąść do tego czym jest programowanie.
Na początku programowanie było wystukiwaniem zer i jedynek. Z czasem ludzie zaczęli tworzyć języki programowania, aż doszli do tego co jest teraz, jednak musisz pamiętać, że „pod spodem” końcem końców wszystko i tak zamienia się w zera i jedynki. Mało romantyczne? Być może. Na szczęście nie musisz teraz o tym myśleć. I nie będziesz musiała póki nie wejdziesz na naprawdę konkretny poziom. Chcę jednak, żebyś wypracowała sobie pewne odpowiednie spojrzenie na programowanie zanim siądziemy do konkretów.
Pamiętasz lekcje logiki na matematyce w liceum? Jeśli Ci się podobały, lub chociaż czujesz do nich mniejszą odrazę niż do reszty Królowej Nauk, to mam dobrą wiadomość – programowanie to właśnie logika. Oczywiście nie musisz teraz przypominać sobie tych wszystkich przyprawiających o zawrót głowy zadań „na 6” w których trzeba było dociec jaki jest efekt zdania logicznego (jak na załączonym obrazku).
Przypomnij sobie zdanie, które musiało paść z twoich ust – szczególnie w momencie w którym musiałaś robić zadania logiczne zamiast iść z koleżankami na imprezę – „Matkoo a po co mi to w ogóle w życiu? Co ja będę zdania logiczne na randce rozwiązywać?”. Nie wiem co robisz na swoich randkach, ale mogę Cię zapewnić, że programowanie to właśnie to miejsce, w którym zdanie logiczne się przydają. Co więcej! Tutaj dostają bardzo fajnej, praktycznej otoczki która sprawia że nie są one uciążliwe ani nudne.
Tak więc, podsumowując – chciałbym żebyś zawsze patrzyła na programowanie jako na zestaw instrukcji które wydajesz komputerowi. To co on zrobi zależy od tego co powiesz mu aby robił. Jest w środowisku programistów takie powiedzenie które powinnaś przyswoić sobie na trudne momenty – „Program robi to co napisałaś żeby robił, a nie to co chciałaś żeby robił”.
Programowanie – pierwsze składowe
Po tym przydługim wstępie możemy wreszcie zacząć się uczyć programować. Przedstawię Ci poniżej kilka składowych, mechanizmów które pozwolą Ci napisać pierwszy program.
Zmienne
Podstawową składową każdego języka programowania są zmienne. To takie „pudełeczka”, w które możemy wrzucić jakieś dane które chcemy wykorzystać później. Na przykład damy użytkownikowi możliwość wpisania imienia. Żeby potem to imię wykorzystać wrzucamy do „pudełeczka” nazwanego na przykład „imieUzytkownika”. Gdy zechcemy je użyć, po prostu wywołujemy naszą zmieną i… już! Mamy imię użytkownika! Czy to nie proste? Oczywiście że tak.
Każda zmienna może mieć swój typ. Rozróżniamy je, ponieważ kompilator musi wiedzieć czy to co przekazujemy to liczba, napis, wartość logiczna czy coś jeszcze. Poniżej tabelka z kilkoma najbardziej podstawowymi typami zmiennych.
Typ | Rodzaj | Przykład |
int | Liczba całkowita | 5 |
float | Liczba zmiennoprzecinkowa | 5.44 |
string | Napis | „No hej, jestem stringiem” |
bool | Wartość logiczna | Zawsze jedna z dwóch: true lub false |
Żeby stworzyć w C# zmienną musimy napisać kawałek kodu według następującego wzoru:
[typ] [nazwa] = [wartość];
Przykłady:
string imie = „Kasia”;
int wiek = 25;
float wzrost = 1.65;
bool jestKobieta = true;
Cóż, jak widać nie ma tu zbyt dużej filozofii. Pamiętaj proszę zawsze, żeby po zakończeniu czegokolwiek postawić średnik. Jego brak jest najczęstszym problemem początkujących programistów.
Napiszmy pierwszy kod! Z pewnością zaciekawiło Cię to co zobaczyłaś zaraz po otwarciu strony. Pozwól że zbyt wiele teraz nie będę tłumaczył (po przejściu całego 3-artykułowego kursu będziesz wiedziała i rozumiała zdecydowanie więcej). Na ten moment jedna ważne jest, że wszystko co będziesz pisała powinno mieć miejsce wewnątrz main(), między klamerką otwierającą a domykającą. Zajmijmy się teraz bardzo prostym kodem, który będzie twoim pierwszym. Poniżej przedstawiam całość, ale postaraj się nie kopiować, a choćby przepisywać. Zobaczysz w ten sposób jak funkcjonuje Visual Studio i zapamiętasz lepiej składnię C#.
1 2 3 4 5 6 |
static void Main(string[] args) { string powitanie = "No czesc, jestem twoja pierwsza aplikacja"; Console.WriteLine(powitanie); Console.ReadLine(); } |
Już tłumaczę. Pierwsza linijka (string powitanie) to stworzenie zmiennej o nazwie powitanie i wartości „no cześć, (blablabla)”. Dzięki temu manewrowi zapamiętaliśmy w pamięci komputera (pudełeczko, pamiętasz?) pewien tekst. Następna linijka to wyrzucenie na ekran powitania. Nie będę tutaj tłumaczył dokładnie czym jest Console ani WriteLine ponieważ nie jest to miejsce na to. Teraz przyjmij ze to pozwala na wyrzucenie na ekran tekstu. Ostatnia linijka to – przyznam – dość prymitywny wybieg mający na celu zatrzymanie programu do momentu w którym użytkownik (czyli Ty) nie postanowi kliknąć klawisza „enter”. W przeciwnym przypadku program natychmiastowo skończyłby pracę nie pokazując nam się dłużej niż ułamek sekundy.
Instrukcje warunkowe if..else
Świetnie, twoje pierwsze starcie z kodem zaliczone! Pora zrobić coś bardziej zaawansowanego. Instrukcje warunkowe if służą do… stawiania warunków. Zasadniczo to banalna konstrukcja na zasadzie jeśli [cośtam] to [zrób coś]. Przykład:
1 2 3 4 |
if (jakasZmienna == 10) { Console.WriteLine("jakas zmienna jest równa dziesiec"); } |
Prawda że proste? To typowa logika jaką znasz z lekcji matematyki z liceum. Wewnątrz nawiasu if() musi być zawsze wartość logiczna, czyli taka której efektem jest true lub false. Taką wartość logiczną można uzyskać właśnie dzięki operator logiczny „==” (Operatory logiczne nieco niżej).
Istnieje jeszcze if…else. To identyczna, ale nieco rozbudowana konstrukcja, która uzupełnia zwykłego if’a o „w przeciwnym wypadku”. Zróbmy to samo raz jeszcze, ale uwzględnijmy inne wypadki.
1 2 3 4 5 6 |
if (jakasZmienna == 10) { Console.WriteLine("jakaś zmienna jest równa dziesiec"); }else{ Console.WriteLine("Jakaś zmienna nie jest równa dziesiec") } |
Prawda że proste? Możemy jeszcze zbudować konstrukcję „else if” i dać po niej nowy warunek, na przykład w taki sposób:
1 2 3 4 5 6 7 8 9 10 |
if (jakasZmienna == 10) { Console.WriteLine("jakaś zmienna jest równa dziesiec"); }else if(jakasZmienna == 20){ Console.WriteLine("Jakaś zmienna jest równa dwadziescia") }else if(jakasZmienna == 30){ Console.WriteLine("Jakaś zmienna jest równa trzydziesci") }else{ Console.WriteLine("Jakaś zmienna nie jest równa ani dziesiec, ani swadziescia, ani trzydziesci") } |
Ta banalnie prosta instrukcja jest niezwykłym (często nadużywanym) narzędziem! Tak więc, skoro poznałaś już to co trzeba, napiszmy program z prawdziwego zdarzenia – z interakcją z użytkownikiem, wykorzystujący instrukcje warunkowe.
Zróbmy coś nietypowego jak na tego typu tutoriale. Nie będzimy pisać żadnego prostego kalkulatora (to pod koniec, w trzecim artykule), ale załóżmy sobie sytuację z życia wziętą. Zapewne masz tak czasem, że piszą do ciebie różne osoby które chcą Cię poznać. Zapewne bywa tak, że piszą gdy jesteś zajęta. Napiszmy przykładowy program który mógłby za Ciebie rozwiązać nieco problemów, który byłby swoistym filtrem i dopuszczał tylko te osoby, które faktycznie mogłabyś chcieć poznać.
Co będzie nam potrzebne?
- Wiek naszego rozmówcy, ponieważ to będzie nasze kryterium. Do tego posłuży nam zmienna int wiek.
- Ramy wiekowe które sami uzupełnimy. Do tego potrzebujemy dwóch zmiennych – minimumWiekowe oraz maximumWiekowe
- Dobrze byłoby dać możliwość napisania, załóżmy że podamy email. W tym celu stwórzmy zmienną string email
- Oczywiście musi być powitanie i ultra szybka instrukcja co użytkownik ma zrobić.
- Na końcu zmiennych pojawią się dwie wersje odpowiedzi – pozytywna i negatywna.
- Oczywiście potrzebne nam będą instrukcje warunkowe if..else.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
static void Main(string[] args) { int wiek; int minimumWiekowe = 20; int maximumWiekowe = 25; string powitanie = "Witaj w moim programie! Podaj swój wiek"; string odpowiedzPozytywna = "Swietnie! Takiej osoby szukalam, napisz do mnie na maila: " + email; string odpowiedzNegatywna = "Niestety, szukam osoby w nieco innym wieku, powodzenia w dalszym szukaniu!"; Console.WriteLine(powitanie); wiek = Convert.ToInt32(Console.ReadLine()); if((wiek >= minimumWiekowe) && (wiek <= maximumWiekowe)) { Console.WriteLine(odpowiedzPozytywna); }else{ Console.WriteLine(odpowiedzNegatywna); } Console.ReadLine(); } |
Chyba jedyne co należy wytłumaczyć to warunek if. Wygląda groźnie, ale jest banalny. Najtrudniejsze wyrażenie tam – „&&” – to zwyczajne logiczne „i”. Tak więc jeśli wiek jest większy lub równy minimum wiekowe i jest mniejszy bądź równy maximum wiekowe, to zrób to co napisane dalej.
Jeśli chodzi o zwrot „Convert” – służy on do zamiany jednego typu zmiennej na drugi. Ponieważ WriteLine sprawia że dostajemy zmienną typu string (a my potrzebujemy zmiennej typu int), musimy zrobić Convert.ToInt32(). Po takim manewrze string staje się intem. Jeśli zrozumiałaś o co tu chodzi to świetnie! Jeśli jednak akurat ta część jeszcze do Ciebie nie dociera, nie ma problemu, obiecuję że za parę artykułów będzie dużo łatwiej.
Tym oto prostym sposobem napisałaś program, który pozwala przesiać według twoich preferencji potencjalnych rozmówców. Proste? Do następnego artykułu mam dla Ciebie zadanie – rozbuduj swoją aplikację o nowe kryteria. Daj podać mu wzrost, zainteresowania lub imię i postaraj się dzięki konstrukcjom if..else if..else wybrać najlepszego kandydata do rozmowy.
To tyle! Dziękuję Ci, że udało Ci się dojść do końca artykułu. To naprawdę niesamowite że spróbowałaś wejść w świat programowania od strony hobbystycznej. Mam nadzieję, że się nie nudziłaś. W następnym artykule poznasz kilka kolejnych składowych które dadzą właściwie nieograniczone możliwości tobie jako programistce. Zachęcam do zapisania się do newslettera (poniżej) żebyś była na bieżąco z moimi artykułami (w ramach Programowania Nie Dla Druidów jeszcze 2!), a na koniec przedstawiam tabelkę – moim subiektywnym zdaniem – najważniejszych operatorów logicznych które możesz stosować m.in. w instrukcji if. Do zobaczenia niedługo!
Zapisz się, żeby dostawać tygodniowe podsumowania
Operatory logiczne
Operator | Znaczenie |
== | Operator porównania (czy jedna wartość równa jest drugiej?) |
>= | Większe lub równe |
<= | Mniejsze lub równe |
!= | Różne |
&& | i (warunek && warunek – oba warunki muszą być true) |
|| | Lub (warunek || warunek – jeden z nich musi być true) |
Ja nazywam się Marek Czuma, a to jest IT-Blog Wolnego Człowieka
piszę do Ciebie prosto z Łodzi
„Nie różni się specjalnie niczym od wersji dla profesjonalistów, ale pamiętaj że nie możesz na tym tworzyć komercyjnie”
Można bez problemu.
Miałem stare info, wielkie dzięki za komentarz, już poprawiam!
Jestem zachwycona, czekam na więcej!
Wspaniale! Druga część już niedługo, a ja zapraszam do zapisu na newsletter – będziesz na bieżąco. A mam do Ciebie propozycję – przyślij mi efekty swoich prac, napisz jakąś aplikację;-) Możesz też przysłać do mnie zdjęcie jak realizujesz nowe hobby, chętnie zamieszczę jako przykład dla innych;-)
“z pewnościa nie dla mnie…” Chyba każdy tak myśli, jeszcze jak się naogląda w filmach jak to programiści pomykają palcami po klawiaturze. wszystko jest kwestią podejścia i zaparcia na starcie. Ja mocno się uparlam, na początku robiłam kursy eduweba, pozniej ksiazki wypozyczalam i cos sama tworzylam. az po pewnym czasie zdalam sobie sprawe z tego ze nie taki diabel straszny jak go malują ;D
Super! Może się podzielisz czymś, co zrobiłaś fajnego? ;>