Przejdź do treści

Centrum Kształcenia Zawodowego i Ustawicznego w Mrągowie

Typy danych

poniedziałek,

Typy danych

Każdy sensowny program wiąże się z przetwarzaniem danych. Dane występują jako literał, zmienna, stała, argument, wynik funkcji lub wartość. Ważne jest to, w jaki sposób dane są zapisywane w pamięci, ile zajmują miejsca, w jaki sposób są wykonywane na nich operacje.

Przykłady typów danych

Implementacja typów może mocno różnić się w poszczególnych językach. Poniższa lista stanowi zbiór wybranych typów danych z perspektywy wszystkich języków, nie wszystkie przedstawione typy muszą występować w każdym języku.

  • typ całkowity – reprezentuje liczbę całkowitą z jakiegoś zakresu;
  • typ zmiennoprzecinkowy – reprezentuje przybliżoną wartość liczby rzeczywistej;
  • typ stałopozycyjny – reprezentuje liczbę wymierną o stałym mianowniku;
  • typ znakowy – reprezentuje pojedynczy;
  • typ tekstowy – reprezentuje łańcuch znaków;
  • typ wskaźnikowy – wskaźnik na zmienną zadanego typu;
  • typ referencyjny – odmiana wskaźnika;
  • typ wyliczeniowy – typ przyjmujący jedną z zadanych wartości, np. (dziś, jutro, pojutrze);
  • typ tablicowy – ciąg zmiennych zadanego typu indeksowanych liczbą naturalną z pewnego przedziału lub dowolnym unikalnym kluczem, który może być zarówno liczbą, jak i ciągiem znaków;
  • typ strukturalny – struktura połączonych w jedną całość zmiennych zwanych polami struktury;
  • klasa (typ obiektowy) – odmiana struktury, w której oprócz zespołu danych dodane są także procedury działające na tych danych, zmienna typu klasy nazywa się obiektem;
  • typ pusty – występuje np. w oznaczaniu funkcji niezwracających żadnych wartości;
  • typ logiczny – może przyjmować wartości logiczne true lub false;
  • typ bitowy – reprezentuje ciąg bitów;
  • typ zbiorowy – reprezentujący zbiory elementów;
  • typ zespolony – reprezentuje liczby zespolone;
  • typ etykietowy – reprezentuje wartości będące etykietami (wskazaniami) instrukcji.

Kontrola typów

Niektóre języki programowania w celu zabezpieczenia prawidłowego działania kodu stosują ścisłą kontrolę typów, np. próba wykonania działania arytmetycznego na zmiennych typu znakowego uniemożliwi kompilację programu. Nadawanie typów zmiennym w czasie kompilacji programu nazywane jest typowaniem statycznym. Typowanie statyczne stosują m.in. C, C++, C#, Java, Pascal. Występuje także typowanie dynamiczne, gdzie przypisanie typów do wartości przechowywanych w zmiennych następuje w trakcie działania programu. Popularne języki stosujące dynamiczne typowanie to Perl, Python, PHP, Ruby i JavaScript.

Problemy związane z typami zmiennych

Występuje wiele problemów związanych z typami zmiennych i trudno je wszystkie zebrać w jednym artykule. Nasi uczniowie uczą się języka PHP i zamieszczone przykłady ilustrują pod jego kątem odmienne traktowanie typów danych w różnych językach. Należy pamiętać, że poprawność przedstawionego kodu niezależnie od typu wprowadzonych danych da się wymusić, jednak wymaga to jego modyfikacji pod kątem obsługi błędów.

Prezentujemy dwa przykłady dotyczące problemów związanych z typowaniem. Do jednej z demonstracji wybrano język Pascal, którego kod jest łatwy do zrozumienia. Przykładowy program wypisuje podniesioną do kwadratu liczbę wprowadzoną przez użytkownika. W drugim wierszu zadeklarowano zmianą typu całkowitego. Za odebranie wartości wpisanej przez użytkownika odpowiada instrukcja readln. W wierszu szóstym wypisany zostaje wynik działania.

Program skompilował się bez problemu. W pierwszym wywołaniu użytkownik wprowadził liczbę trzy, działanie zostało wykonane prawidłowo. Podczas drugiego wykonania programu zamiast liczby wprowadzono literę i w takiej sytuacji program zakończył pracę z błędem. Czytelnik może zastanowić się, w którym wierszu nastąpił błąd.

Zupełnie inaczej w przypadku podobnego problemu zachowuje się język PHP. „Luźne” traktowanie typów wydaje się przyjaznym dla początkujących, jednak tak nie jest, bo w niektórych sytuacjach może prowadzić do trudnych do zlokalizowania błędów. Czytelnik może zastanowić się, dlaczego w przykładzie wynikiem działania jest zero.

Artykuł: Staże w Hiszpanii

Staże w Hiszpanii

Artykuł: Conformité Européenne

Conformité Européenne

Artykuł: Display Stream Compression

Display Stream Compression

Artykuł: High Dynamic Range

High Dynamic Range

Artykuł: PiP i podobne technologie

PiP i podobne technologie

Nasze technikum

Technik informatyk

Szkoły dla dorosłych

Nasza szkoła

Pełna oferta edukacyjna

Oferta szkoły