od Podstaw
5 godz. 10 min · Ruby · Full-stack i Programowanie
Małgorzata ŁyczywekSoftware engineerW pierwszych lekcjach Kursu przejdziemy do omówienia konfiguracji środowiska, by następnie poznać tryb interaktywny Rubiego. Stworzymy pierwsze programy oraz poznamy składnię języka. Dowiesz się między innymi tego, czym są zmienne, jakie istnieją typy danych, jak przekazywać własne dane do programu i jak na nich operować.
Programy oraz instrukcje potrafią w znaczny sposób przyspieszyć i ułatwić pracę w Ruby. Mogą wykonywać za nas powtarzające się czynności i podejmować decyzje. Dlatego też kolejnym, naturalnym krokiem nauki języka Ruby jest poznanie struktur sterujących kodem, takich jak instrukcje warunkowe if, case, pętle while, until, for, each czy inne iteratory.
W kolejnych lekcjach poznasz następne, bardziej rozbudowane zagadnienia. Będziemy korzystać z zaawansowanych struktur danych i metod, jakie możemy na nich wykonywać. Są to metody wbudowane, a więc dostępne domyślnie w Ruby. Przejdziemy do pisania własnych metod dbając, by nasz kod był zgodny z regułą DRY. Poznamy zagadnienia związane ze strukturami specyficznymi dla języka Ruby a także praktykami, jakie są w tym języku stosowane.
Dane do programów najczęściej dotaczane są z zewnętrznego źródła, jak na przykład pobierane z pliku. Przekonasz się jak wykonywać operację na plikach w Ruby - odczytywać, zapisywać, a także w jaki sposób radzić sobie z dużymi plikami w wydajny sposób. Dowiemy się również co zrobić, gdy nasz program spotka niespodziewany błąd. Zajmiemy się przewidywaniem i zapobieganiem błędów w kodzie.
Kolejna, najbardziej obszerna część kursu to dokładne omówienie podstaw paradygmatu programowania obiektowego. Nawet jeżeli wydaje Ci się to bardzo skomplikowane - niedługo wszystko stanie się jasne. Programowanie obiektowe pozwala nam na lepsze odwzorowanie rzeczywistości, czyli tworzenie bardziej praktycznego kodu. Przyjrzymy się jak obiektowość jest realizowana w Ruby oraz jak tworzyć obiekty, klasy i jakich zasad warto przestrzegać. Na koniec dowiemy się jak rozszerzać funkcjonalność istniejących klas za pomocą modułów.
Ten kurs został przygotowany z myślą o wszystkich, którzy chcą zacząć naukę programowania Ruby od podstaw. Stworzono go szczególnie dla osób, które z pisaniem kodu nie miały jeszcze styczności. Nie jest wymagana żadna wcześniejsza wiedza na temat programowania. Jeśli chcesz szybko nauczyć się programowania i myślisz, że twoim kierunkiem jest tworzenie aplikacji webowych, to Ruby jest świetnym wyborem na start.
2.6+
W kolejnej lekcji porozmawiamy sobie o pętlach pętle służą
do wykonywania tego samego bloku instrukcji wielokrotnie i
taką pierwszą pętlą którą poznamy jest pętla while która wygląda
następująco wpiszemy sobie słówko kluczowe while potrzebujemy
tutaj jakiś warunek następnie słowo kluczowe do i pamiętamy
oczywiście o zamknięciu bloku który będziemy wykonywać stworzę
sobie więc zmienną która przechowuje jakąś cenę załóżmy
że cena wynosi 15 dolarów będę chciała coś kupić dopiero kiedy
cena spadnie poniżej pewnego pułapu załóżmy że chcę by moja
cena była mniejsza albo
równa 10 czyli będę chciała wykonać tą pętlę tak długo dopóki cena
a jest większa od 10 po to by tą cenę zmniejszać czyli
zrobię sobie tutaj może wyświetlanie żebyśmy widzieli
co się dzieje zamienię sobie cenę na
string wykonam konkatenację żeby
sobie przypomnieć inny sposób niż interpolacja pokazywania zdania
i mam sobie że cena wynosi tyle dolarów więc
dla mnie jest na razie za drogo albo po
angielsku too high i
następnie uaktualnij moją cenę cena równa
się cena minus 2 załóżmy
a właściwie możemy sobie wykonać taką tutaj operację minus
równa się która od razu uaktualni nam cenę
tutaj mam dokładnie to samo cena to cena minus 2 i
na końcu kiedy cena wreszcie będzie poniżej wyjdzie z tego bloku czy wreszcie cena
po sprawdzeniu tego warunku nie będzie większa od 10 wyświetlę
komunikat cena price
is ok wykonam sobie ten kod zapiszę oczywiście i
wykonam ten kod i zobaczę teraz kolejne wykonania kolejnej iteracje
tej pętli czyli w pierwszym momencie cena wynosi 15 rzeczywiście taki tu ustawiliśmy
i dodajemy dolar cena jest za wysoka potem
kolejną i kolejną i kolejną aż wreszcie
wyjdzie z tego bloku wejdzie ostatni raz czyli że cena jest
11 jest za wysoka wykonamy odejmowanie minus 2 i
finalnie wychodzi nam z bloku cena jest okej zobaczmy
sobie kolejny przykład ja go tutaj szybko nam przepisze i za
chwilę omówię przygotowałam dla was kod który teraz widzicie na ekranie i
chciałam wam pokazać że nie musicie znać każdej dokładnie instrukcji ruby żeby
rozumieć ogólną ideę zacznijmy omawiać ten kod po kolei po pierwsze przypisujemy
do zmiennej bird kaczkę mamy tak i wykonując
pętlę while dopóki ptak nie będzie gołębiem
i oczywiście nasze słowo do kluczowe i kluczowe end które
zamyka nam blok więc możemy nawet zobaczyć że ten blok tutaj jest od while
do end w środku wyświetlamy napis waiting a następnie
mamy if komenda której w sumie nie znamy jest mniejsza od 40
słowo rand będzie nam losować liczbę w zakresie który tu podałam
czyli od 10 do 100 i chcemy sprawdzić że
jeżeli to co się wylosowało jest mniejsze od 40 to
przypisz nową wartość dla zmiennej bird
w ten sposób uzyskamy przy kolejnej iteracji
sprawdzenie czy bird został zaktualizowany i czy wynosi tutaj czy
jest gołębiem w momencie w którym uda nam się to wykonać wychodzimy z
naszej pętli pojawi się komentarz i'm a pigeon no to zobaczmy zapisuje
wykonuję mój kod i wykonuje się on tylko raz ponieważ widzimy
że raz się wyświetliło wylosowało i akurat
trafiło no to może uda nam się trafić że trochę więcej będzie
tych wykonań zobaczmy mamy waiting
waiting i'm a pigeon czyli musiał się dwa razy najpierw wylosować
zanim trafiło w liczbę mniejszą od 40 jeżeli
damy większy zakres powiedzmy 300 to spada
nam prawdopodobieństwo że ta liczba oczywiście się trafi więc prawdopodobnie będziemy trochę
dłużej czekać i rzeczywiście musiałeś tych kolejnych
wykonań pętli while pojawić więcej żeby wreszcie finalnie
trafić w jakąś liczbę mniejszą od 40 teraz
spróbujemy napisać sobie prostą grę która będzie polegała na zgadywaniu kolejnych
liczb poprosimy naszego użytkownika aby podał nam jakąś liczbę w
zakresie powiedzmy od 1 do 20 żeby nie było za dużego tego zakresu your
number 1 do 20 i oczywiście
musimy ten numer pobrać czyli może zgadnięcie tutaj
damy oczywiście gets
żeby pobrać wartość oczywiście
chomp i musimy do naszej
liczby i na int postawimy sobie też jakąś
liczbę którą zna tylko komputer nie będzie bardzo tajemna
ale nazwiemy ją sobie secret number i niech
ta liczba ma wartość 14 jak by sprawdzić
czy użytkownik wygrał oczywiście znamy już if więc możemy po prostu sprawdzić czy
liczba użytkownika będzie równała się naszej liczbie którą
zadaliśmy jeśli tak to możemy zrobić puts
wow you guessed
number no i w
takim wypadku nasz zawodnik wygrywa więc może po prostu zróbmy you win
tylko jeżeli teraz uruchomię ten kod i
podam jakąś liczbę 13 powiedzmy żeby to była liczba inna
niż sekretna nasza to w momencie kiedy użytkownik
podał złą gra się kończy do tego przydałaby
nam się jakaś pętla która będzie to wykonywała tak długo dopóki użytkownik nie
zgadnie dając mu kolejne szanse więc na razie sobie ten
kod zakomentuje a napiszę pętlę while która
sprawdza dopóki liczba użytkownika nie równa się liczbie
podanej przez komputer czyli sobie sprawdzę guess not
equal secret number oczywiście
jest do jako słowo kluczowe że tu się zaczyna nasz blok do wykonywania w
takim razie jeżeli użytkownik nie zgadnie to wyświetlamy mu puts
try again n i jak
wyjdzie możemy mu wyświetlić puts wow
you win czyli teraz znowu uruchamiam mój
kod podaję jakąś liczbę powiedzmy 4
coś tu się nie zgadza w naszym
warunku jeszcze nie mamy kolejnego zapytania
o liczbę więc cały czas pozostaje ta liczba bez
zmiany więc powinniśmy tutaj również zapytać jeszcze raz o podanie nowego
trafienia teraz kiedy
użytkownik poda nam zły numer zapytamy go puts try again następnie
podaj ponownie swój numer zaktualizujemy zmienną
zgadnięcia czy tam to guess i wtedy while znowu
sprawdzi czy aktualnie nowa nadana wartość jest
równa wartości oczekiwanej teraz nie powinno nam się nic tutaj
przydarzyć wykonuje sobie kod podaję błędną
pyta mnie ponownie spróbuj ponownie teraz
podam znowu błędną trzynastkę podam 14 i
teraz wyszłam właśnie z tej naszej pętli while teraz zmodyfikujemy
nasz kod tak żebyśmy uzyskali grę podobną
do gry ciepło-zimno chcemy żeby nasz użytkownik jeśli poda swoje trafienie dowiedział
się czy ono jest za wysokie albo za niskie więc przydałby
nam się jeszcze jakiś tutaj warunek if który sprawdzi
czy podana wartość jest większa
od obecnej liczby i jeżeli oczywiście end
na końcu bo chcemy mieć zawsze zamknięty tutaj if end dobrze
i jeżeli nasze guess jest większe niż sekretna
wartość wyświetlimy użytkownikowi że jego wartość
jest za duża czyli możemy sobie zrobić your number
is too high w
przeciwnym wypadku no chcemy go oczywiście poinformować że potrzebuję
innej wyższej liczby czyli your number
is too low czyli
dodaliśmy sobie warunek kiedy wyświetlimy mu komunikat co jest nie tak z
jego z jego wartością przejdziemy do wykonywania dalszego
czyli poprosimy go o podanie nowej liczby zapisuję sobie uruchamiam i
podaje wartość na przykład 13 dostałam
informację twoja liczba jest za niska spróbuj jeszcze raz no to podam
załóżmy osiemnastkę teraz jest za wysoka
więc powiedzmy trafiam 15 znowu za wysoka trafię
14 i rzeczywiście zgadłam liczbę ukrytą przez komputer
bird · 1 min
bird = "duck"
while bird != "pigeon" do
puts "waiting..."
if (rand 10..300) < 40
bird = "pigeon"
end
end
puts "I'm pigeon!"while
price = 15
while price > 10 do
puts price.to_s + "$ - price is too high"
price -= 2
end
puts price.to_s + "$ - price is ok"hot_and_cold · 2 min
puts "Your number 1-20:"
guess = gets.chomp.to_i
secret_num = 14
while guess != secret_num do
puts "Try again"
if guess > secret_num
puts "Your number is too high"
else
puts "Your number is too low"
end
puts "Your number 1-20:"
guess = gets.chomp.to_i
end
puts "Wow, you win"