• Kurs C++ - strona główna
  • Kurs C++ - kontakt z autorem
  • Kurs C++ - mapa witryny
  • Kurs C++ - prawa autorskie
  • Kurs C++ - Kanał RSS
Informatyka krok po kroku
Użytkownik niezalogowany

Witaj nieznajomy

Reklamy
Randki

Lekcja 22

Struktury - część 2 - tablice struktur w języku C++

utworzono: 2005-02-09 zmodyfikowano: 2005-02-09 Autor: mgr inż. Marcin Nabiałek

Wprowadzenie

W tej lekcji postaram Ci się przybliżyć struktury oraz przedstawić nieco bardziej zaawansowane sposoby ich użycia i definicji. Po raz kolejny pragnę zaznaczyć, że cały czas będę operował na uproszczonym modelu struktur, który działa zarówno w języku C, jak i C++.

Tablice w strukturach

Ponieważ struktury mają w jakimś stopniu odzwierciedlać rzeczywistość, to nie można zakładać, że wszystkie dane w strukturze są prostymi typami danych. Jednym z typów, który może się w strukturze pojawić jest tablica.

Odzwierciedlenie tego w rzeczywistości jest dość proste. Gdybyśmy chcieli utworzyć strukturę klasa (w sensie klasa, którą tworzą uczniowie w jakiejś szkole), to wówczas tak naprawdę struktura klasa powinna zawierać tablicę nazwisk uczniów w klasie lub jeszcze lepiej tablicę struktur uczeń (takim przypadkiem zajmiemy się w dalszej części tej lekcji).

Niestety na tym poziomie wiedzy, realizacja nawet tak prostego przykładu nie jest jeszcze możliwa, bowiem tablica w języku C++ musi mieć ściśle określony rozmiar. A niestety na początku tworzenia naszej struktury klasa, nie wiadomo ile będzie w niej uczniów (Możemy oczywiście założyć, że będzie maksimum 40 uczniów i utworzyć tablicę o 40 elementach, ale w ten sposób możemy zmarnować sporą część pamięci operacyjnej).

Dlatego też, na razie zajmiemy się nieco prostszym przypadkiem. Załóżmy, że mamy strukturę samochód i że rozpatrujemy samochody 4-kołowe. Podczas jazdy samochodem może się oczywiście zdarzyć awaria koła (np. przebicie opony, urwanie koła itd.) i my chcielibyśmy w jakiś sposób zasygnalizować, że z którymś z kół stało się coś niedobrego.

Do przechowywania stanu kół użyjemy tablicy 4-elementowej - tutaj możemy użyć tablicy, bowiem rozpatrujemy zawsze samochody 4-kołowe. Każde koło może być albo sprawne (wartość logiczna true) albo niesprawne (wartość logiczna false).

W programie użyjemy dodatkowo wbudowaną funkcję rand, która generuje pseudolosowe liczby całkowite. Przede wszystkim, aby funkcja rand działała zgodnie z naszymi oczekiwaniami, należy przed jej użyciem jednokrotnie użyć zapisu:

srand(static_cast<unsigned>(time(0)));

Jest to tak jakby inicjalizacja dla losowania liczb i jeśli ta linia zostałaby pominięta, wówczas funkcja losowa przy każdym uruchomieniu programu losowałaby identyczną liczbę.

Z kolei zapis:

rand()%4;

oznacza, że uzyskamy losową liczbę całkowitą z przedziału 0 - 3, czyli 0, 1, 2 lub 3. Funkcja rand losuje bowiem liczbę z bardzo dużego przedziału i aby otrzymać żądaną liczbę, należy dokonać dzielenia modulo za pomocą operatora %.

W samym programie wprowadzimy założenie, że samochód może jeździć tak długo, jak ma uszkodzone co najwyżej jedno koło. Gdy drugie koło zostaje uszkodzone, wówczas samochód kończy jazdę.

dodajdo

1 | 2 | 3 | 4 | 5 | 6 | > | |>

Użytkowanie Serwisu oznacza zgodę na wykorzystywanie plików cookie. Szczegółowe informacje