Struktury danych
Struktury danych są bardzo istotnym elementem całego informatycznego świata. Każda rzecz jest jakąś daną zapisaną w jakiejś mniej lub bardziej skomplikowanej strukturze. Najprostszym przykładem może być liczba zapisana na zmiennej x=8. Jednak w praktyce zapisywanie wszystkiego na zmienne jest zupełnie niewygodne. Wyobraźmy sobie, że mamy do zapisania 100 kolejnych wyników jakiegoś doświadczenia. Dla przykładu możemy myśleć o bardzo życiowej (dla hodowców drożdży ;) sytuacji: mamy hodowle drożdży i badamy jak wysokie stężenie alkoholu są w stanie znieść, bez większego problemu z mnożeniem się. Możemy oczywiście napisać:
d0=10 d1=8 d2=10 d3=12 d4=6 d5=8 d6=7 d7=12 d8=10 d9=16 d10=16 d11=9 d12=14 d13=9 d14=11 d15=17 d16=18 d17=9 d18=5 d19=17 d20=11 d21=17 d22=7 d23=7 d24=12 d25=9 d26=5 d27=18 d28=6 d29=7 d30=9 d31=9 d32=6 d33=8 d34=8 d35=11 d36=13 d37=16 d38=8 d39=8 d40=12 d41=5 d42=18 d43=15 d44=17 d45=18 d46=7 d47=8 d48=13 d49=5 d50=12 d51=11 d52=11 d53=12 d54=5 d55=17 d56=7 d57=15 d58=10 d59=14 d60=18 d61=5 d62=8 d63=9 d64=10 d65=14 d66=15 d67=13 d68=16 d69=14 d70=17 d71=16 d72=10 d73=7 d74=14 d75=15 d76=17 d77=11 d78=10 d79=18 d80=18 d81=9 d82=12 d83=18 d84=12 d85=13 d86=7 d87=10 d88=16 d89=12 d90=16 d91=8 d92=11 d93=15 d94=8 d95=7 d96=7 d97=10 d98=13 d99=13
Ten zapis już na pierwszy rzut oka nie wygląda najlepiej: trzeba wymyślić bardzo dużo nazw zmiennych oraz trzeba te nazwy zapamiętać, żeby mieć jak sprawdzić jaką tolerancją cechuje się szczep hodowany w cylindrze51518155. W tym wypadku pamiętamy, że wszystkie zmienne wyglądają podobnie i możemy wpisać nazwę odpowiedniej zmiennej aby wyświetlić jej wartość. Ale co jeśli chcieli byśmy dowiedzieć się jaka jest maksymalna tolerancja? #Funkcja max(x1, x2, x3, ...) #zwraca maksymalną wartość z podanych zmiennych.
O funkcjach więcej dowiemy się w odpowiednim rozdziale, ale już w tym miejscu warto o nich wspomnieć . Na razie przyjmijmy, że funkcja to zbiór poleceń zapisany pod pewną nazwą (trochę jak zmienna), może przyjmować argumenty czyli w tym wypadku argumentami są x1, x2 , x3 i tak dalej (zmienne które zawierają liczby). Funcja może też coś zwrócić. Łatwo zrozumieć zwracanie jeśli spojrzymy na prosty przykład:
1+2 zwróci nam 3, czli jeśli wpiszemy wynik = 1+2, to zmienna wynik będzie równa 3, tak samo możemy zrobić z funkcją max(1,2) która zwróci nam liczbę 2, więc po wpisaniu wynik = max(1,2) ustawi wartość zmiennej na 2. Nie wszystkie funkcje muszą coś zwracać i nie wszystkie muszą przyjmować jakieś argumenty. Więcej o funkcjach powiemy na następnej stronie.
Lecz wpisanie:
max(d0,d1,d2,d3,d4,d5,d6,d7,d8,d9,d10,d11,d12,d13,d14,d15,d16,d17,d18,d19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,d32,d33,d34,d35,d36,d37,d38,d39,d40,d41,d42,d43,d44,d45,d46,d47,d48,d49,d50,d51,d52,d53,d54,d55,d56,d57,d58,d59,d60,d61,d62,d63,d64,d65,d66,d67,d68,d69,d70,d71,d72,d73,d74,d75,d76,d77,d78,d79,d80,d81,d82,d83,d84,d85,d86,d87,d88,d89,d90,d91,d92,d93,d94,d95,d96,d97,d98,d99)
kosztuje nas sporo pracy, więc na pewno jest prostszy sposób, aby osiągnąć ten sam efekt, bez takiego wysiłku.
Zauważmy, że nazwy zmiennych ustaliliśmy według dość logicznego wzoru dN gdzie d jest skrótem od drożdże a N to numer hodowli. To sugeruje nam, że skoro coś się powtarza wiele razy to można to w jakiś sposób pominąć i pamiętać tylko raz. Taka chęć uproszczenia zapisu wyników prowadzi nas do dużo wygodniejszej struktury danych - listy.