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.