Jesteś tutaj
Główna > Cykle > Jestem nauczycielką, ale chcę umieć programować – Kreatywne IT nie dla druidów cz 2

Jestem nauczycielką, ale chcę umieć programować – Kreatywne IT nie dla druidów cz 2

Zastanówmy się –  a co gdyby tak… zmienić podejście ludzi z całego kraju a potem reszty świata do programowania i na masową skalę wprowadzić programowanie jako hobby? A co, gdyby ludzie  umieli to robić i robili to w wolnych chwilach? Spróbujmy potraktować to jako małą prowokację intelektualną. Sądzę, że wtedy świat wokół byłby piękniejszy i mam na to kilka dowodów. Po pierwsze – programowanie pozwala spojrzeć na życie  inaczej i poukładać je choć trochę. Po drugie – każdy mógłby tworzyć rzeczy które mu ułatwią życie! A potem dzielic się tym ze swoimi znajomymi. Po trzecie – każdy mógłby sobie dorabiać na takim hobby. Obecnie aplikacja nie musi być duża żeby była lubiana. Ba! Lepiej nawet, jak jest mała, zwinna i prosta. Nie chciałabyś żyć w ten sposób? Spędzając swój wolny czas na rozwijającym hobby które sprawi że rzeczywistość wokół ciebie będzie lepsza? Jeśli tak – postarajmy się razem doprowadzić do takiego stanu rzeczy. Wybacz wstęp, ale absolutnie nie mogłem nie podzielić się z Tobą swoimi przemyśleniami które mnie naszły po ostatnim artykule. A teraz – bierzmy się do roboty – przed nami druga część „Kreatywnego IT nie dla druidów”.

No to jedziemy

W poprzednim artykule dowiedziałaś się, czym jest programowanie. Poznałaś również podstawowe składowe języka C# – zmienne oraz instrukcje if. Wiesz także, że na całość powinno się patrzeć jak na komendy wydane komputerowi oraz pewien układ logiczny. Po dzisiejszym artykule będziesz dysponowała naprawdę szerokim spektrum narzędzi dzięki którym będziesz mogła dać poszaleć swojej wyobraźni (w kwestii tworzenia programowanie oczywiście;-) ) i stworzyć coś zupełnie ” swojego”. Zabierajmy się do roboty!

PĘTLE

Otwórz swój Visual Studio na projekcie który stworzyłaś poprzednio, nie ma sensu tworzyć nowego.
Zacznijmy nowe składowe od pętli. Na pierwszy ogień idzie pętla while. Zasadniczo konstrukcja jest bardzo podobna do konstrukcji if. Wygląda to następująco

Wygląda znajomo? Pętla while to taki zapętlony if. To znaczy, że kiedy cały kod jaki piszesz wewnątrz tego bloku (pomiedzy nawiasami {}) dojdzie do końca ponownie sprawdzany jest warunek. Pętla wykonywana jest więc do momentu w którym warunek nie zostanie spełniony. Bardzo prosty przykład

Powyższa pętla przebiegnie 9 razy i za każdym wypisze aktualną wartość zmiennej liczba a następnie zwiększy tą wartość o 1.

Druga (i ostatnia dzisiaj) pętla dzisiaj to pętla for. Różni się od pętli while tym, że pozwala na z góry określoną liczbę przebiegów (np. Chcemy wykonać jakaś instrukcję 10 razy – wtedy używamy pętli for). Jej konstrukcja może Cię nieco odepchnąć, ale nie bój się! Już za chwilkę będziesz się nią posługiwała niczym czerwoną szminką przed balem…

Oto przykład najprostszej możliwej pętli for.

Efekt? Dokładnie taki sam jak przy omawianym while. Tworzymy ją w następujący sposób: w nawiasie () najpierw tworzymy zmienną (zwykle nazywamy ją i), następnie podajemy warunek, który musi być spełniony, żeby pętla działała. Na samym końcu podajemy operację która wykonuje się po każdym przejściu pętli for. Już tłumaczę dziwny zwrot „i++”. To tak zwana inkrementacja (wow! wow!). To znaczy, że zmienna i zwiększa swoją wartość o 1. Jeśli więc i=5 i zastosujemy i++, to efektem tego będzie i o wartości 6.

Płynnie przechodzimy do kolejnej składowej

Zmienne lokalne i globalne

Wcześniej (w poprzednim artykule) korzystaliśmy jedynie ze zmiennych globalnych (choć nie do końca, ale dla uproszczenia tak przyjmijmy) – czyli które są dostępne w całym programie. Teraz zetknęliśmy się ze zmienną i wewnątrz pętli for – jest to zmienna lokalna. Co to znaczy? To nadzwyczaj proste i intuicyjne – zmienna lokalna jest widoczna tylko tam, gdzie ją stworzysz. Jeśli więc stworzyliśmy wewnątrz pętli for zmienną int i, nie możemy jej użyć nigdzie indziej. Poniżej dałem przykład dobrego i złego użycia. W tym pierwszym – dla kompilatora zmienna i po prostu nie istnieje (jeśli spróbujesz odpalić program, Visual Studio Ci o tym powie. Poinformuje Cię również gdzie jest błąd)! Jeśli chcemy użyć zmiennej wewnątrz jakiegoś bloku (czy to if, for, while, czy cokolwiek innego), to musimy to zrobić na zmiennej globalnej lub lokalnej dla tego konkretnego bloku.

źle i dobrze
Po lewej nie możemy w if użyć zmiennej ‚i’, ponieważ nie zadeklarowaliśmy jej tam.

Kolekcje

Zmienne są naprawdę bardzo przydatne – można w nich przechowywać różne wartości, dokonywać na nich obliczeń i operacji logicznych. Zastanów się jednak – co zrobić, gdy chcesz na przykład stworzyć listę nazw książek? Możesz wtedy utworzyć zmienną typu string. Albo dwie. Ewentualnie siedem… Tak naprawdę jednak nie możesz przewidzieć ile będziesz chciała książek stworzyć. Co więc począć w takim przypadku? Na szczęście nie zostajesz pozostawiona sama sobie. Z pomocą przychodzą bohaterskie… kolekcje!

Listy

Listy są pierwszym typem kolekcji – najbardziej popularnym. Pamiętasz jak mówiłem o tym, żebyś traktowała zmienne jak swoiste „pudełeczka” których „zawartość” to wartość zmiennej? Listy są po prostu połączonymi pudełeczkami. Sądzę że najłatwiej będzie sobie wyobrazić listę w postaci takich zabawkowych wagoników. Każdy wagonik, to jedna zmienna. Tworzymy więc najpierw listę, a potem możemy „doczepiać kolejne wagoniki” – czyli dodawać do niej kolejne zmienne. Mam nadzieję, że moja wysokich lotów grafika Ci w tym pomoże.

Lista to po prostu miejsce w którym są zebrane w porządku różne zmienne tego samego typu.
Lista to po prostu miejsce w którym są zebrane w porządku różne zmienne tego samego typu.

W C# zrobisz to samo co na grafice w następujący sposób.

Najpierw utworzyliśmy listę. Ten dziwny zapis będzie obecny zawsze, ilekroć będziemy tworzyć zmienne jakichkolwiek bardziej zaawansowanych struktur (o tym więcej możesz przeczytać w moim artykule o programowaniu obiektowym). Następnie stworzyliśmy kolejne zmienne, które są kolejnymi tytułami książek (mam nadzieje, że załapałaś, że ostatni tytuł to żart w aspekcie moich ulubionych?).

Następna linijka pokazuje potęgę list. Tym banalnie prostym poleceniem ( .Add(zmienna) ) „doczepiliśmy wagonik” na koniec. Żeby wyświetlić któryś element listy wystarczy napisać tytuly[numerWagonika]. Musisz pamiętać, że wszelkie kolekcje w C# (i wielu innych językach) są numerowane od 0.



Słowniki

Zostawmy już w spokoju listy. Drugą (i ostatnią) kolekcją którą poznasz są słowniki. Nazywają się tak, ponieważ… działają jak słowniki. Aby wyszukać element w liście musieliśmy podać jego miejsce (id). Słowniki są kolekcjami, które działają na zasadzie klucz-wartość. Tym razem nie będę pokazywał Ci żadnej grafiki – wystarczy zwykła tabelka ;- )

Dictionary<string, int> wzrosty

Słownik wzrosty z kluczem typu string i wartością typu int

Klucz Zmiennej (typ string) Wartość Zmiennej (typ int)
„marek” 185
„genowefa” 165
„hayley” 157

Twórcy C# przygotowali to dla nas oczywiście w elegancki sposób obsługę słownika, co też za chwilkę wykorzystamy.

Gdy deklarujemy nasz słownik (pierwsza linijka) w nawiasie trójkątnym najpierw podajemy typ klucza, potem typ wartości (dla przypomnienia – string to typ który pozwala pisać tekst, int natomiast to zmienne całkowite). To co musimy pamiętać to fakt, że w jednym słowniku NIE MOŻE powtórzyć się element z tym samym kluczem. Proste? Proste.

Piszemy program!

Poznałaś kilka kolejnych elementów C# (które jednak są wspólne dla większości języków programowania), więc czas coś stworzyć – przecież po to tu siedzisz prawda? Jeśli jednak któregoś elementu zupełnie nie rozumiesz – spróbuj popisać przykładowy kod, poeksperymentuj. Jeśli dalej nie będziesz zupełnie rozumiała o co chodzi – nie wahaj się ani sekundy dłużej i pisz do mnie maila. Z przyjemnością wytłumaczę Ci w jedyny, niepowtarzalny, indywidualny dla Ciebie sposób! Jeśli jednak rozumiesz „trzy po trzy” – to super! To znaczy, że śmiało możesz iść dalej. Idźmy więc dalej, stwórzmy coś fajnego, tylko w praktyce można w pełni zrozumieć to co się poznawało.

Dzisiaj napiszemy… prosty program do nauki słówek w języku angielskim.

Nasz program będzie miał dwie części – w jednej będziemy wypełniali bazę słówkami, zaś w drugiej będziemy mogli się uczyć. Zacznijmy od przygotowania tego, co nam będzie potrzebne.

  • Przede wszystkim słownik! Zadeklarujemy go na samym początku. Tym razem zarówno klucz jak i wartość będą stringami (słówko po polsku i jego odpowiednik po angielsku).
  • Poza tym musimy jakoś podzielić całość. Posłuży nam do tego odpowiedni if (jego konstrukcję omawiałem w poprzednim artykule).
  • Całość obsłużymy dzięki WriteLine() i ReadLine() – to dwie konstrukcje, które przedstawiłem w poprzednim artykule, a które pozwalają pisać na tekst na konsoli (konsola to to czarne okienko) oraz pozwalają użytkownikowi tekst wpisywać.

Tak wygląda cały kod. Poniżej jego omówienie. Oczywiście całość w funkcji main()

 

Na początku – po stworzeniu słownika o nazwie ‘slowka’ – stworzyliśmy pętlę while. Pozwoli ona nie kończyć programu. Wewnątrz dajemy użytkownikowi wybrać którą część chce odwiedzić (czy chce dodać słówko czy chce się pouczyć). Jeśli chce dodać słówko – pozwalamy wpisać po polsku oraz angielsku za każdym razem zapisując do odpowiednich zmiennych. Na końcu dodajemy nowy element do słownika właśnie dzięki wykorzystaniu tychże zmiennych.

W drugiej części dajemy się uczyć. Dzięki wywołaniu ‘count’ na słowniku wiemy ile ma elementów i tyle razy możemy przejechać po pętli for. Wewnątrz pętli najpierw stworzymy dwie zmienne typu string (ang i pl) i przypiszemy im odpowiednie dane (klucz i wartość) z elementu naszego słownika. Stworzymy zawczasu jeszcze jedną zmienną (angUzytkownika) do której przypiszemy odpowiedź ucznia; – ). Gdy już ją mamy – dzięki konstrukcji if..else możemy napisać użytkownikowi czy dobrze odpowiedział. Dzięki pętli for program spyta nas o kolejne słówka aż do skończenia słownika.

Tak powinien wyglądać program po skompilowaniu
Tak powinien wyglądać program po skompilowaniu

To koniec! Zdaję sobie sprawę z tego, że powyżej było dużo nowości. Jestem przekonany jednak, że dasz sobie radę. Jeśli uznasz, że do tego dania sobie rady potrzebujesz pewnych wskazówek, napisz do mnie śmiało na marek.czuma@gmail.com.

Szczerze powiem, że jestem pod dużym wrażeniem, że udało Ci się tutaj dotrzeć. Znaczy to ni mniej ni więcej to, że jesteś osobą ciekawą świata, która oczekuje od życia ciut więcej niż przeciętnie. Jeśli tak faktycznie jest, zachęcam Cię do polubienia mojego profilu na facebooku – razem będziemy mogli stworzyć grupę osób które wzajemnie pomagają sobie poszerzać horyzonty (nie tylko w Kreatywnym IT! Przejrzyj bloga a dowiesz się np. jak się prowadzi w Łodzi firmę kreatywną;-) ). Możesz również dopisać się do mojego newslettera – obiecuję żadnych spamów. Jedynie raz w tygodniu (zwykle w niedziele wieczorem) dostaniesz maila z podsumowaniem tego co zrobiłem przez ostatni tydzień.

Jeszcze raz gratuluję i powodzenia w zdobywaniu nowych lądów w życiu!

 

Ja nazywam się Marek Czuma,  a to jest IT-Blog Wolnego Człowieka

piszę do Ciebie prosto z Łodzi

Marek Czuma
Autor Bloga Republikańskiego. Chrześcijanin, Polak, Łodzianin. Wierzy w ludzi i ich możliwości, kocha pomagać innym. Uważa, że człowiek wolny kształtuje siebie poprzez własne wybory oraz pracę. Poza tym fan Wiedźmina i CD Projektu - zarówno na giełdzie, jak i w działaniu.

2 thoughts on “Jestem nauczycielką, ale chcę umieć programować – Kreatywne IT nie dla druidów cz 2

  1. Cześć i czołem! Kłaniam się nisko bo dzięki Tobie napisałam 2 programy… ale żaden nie chce mi działać, bo w każdym z nich zrobiłam jakiś drobny błąd i nie umiem go poprawić 🙁 no nic… będę próbowała dalej się bawić. W szkole zawsze mi powtarzali, że matematyka nie jest dla mnie, mimo, że miałam lepsze stopnie od kolegów. Czas im udowodnić i przede wszystkim sobie, jak bardzo się mylili. Dzięki za motywacje i łatwo wyłożoną wiedzę. Na pewno będę tu często wracać w trakcie tej nowo rozpoczętej podróży 😉

    1. Cześć Kasia! Gratuluję decyzji i podejmowanych prób. Współcześnie programowanie jest dla wszystkich. Oczywiście nie każda działka, bo są takie, które wymagają specyficznego myślenia, ale i IT i programowanie w szczególności ma mnóstwo przestrzeni, w której odnaleźć może się ktoś, kto po prostu solidnie pracuje. Jeśli jesteś przygotowana, że niepowodzenia Cię nie zrażają tylko powodują, że szukasz dalej – to wróżę Ci sukcesy:-) Podeślij mi na maila kod, razem pomyślimy. Powodzenia!

Dodaj komentarz

Top