Informatyka II. Inf & eit. Ćwiczenie Tablice wskaźników na struktury



Pobieranie 9,69 Kb.
Data26.02.2019
Rozmiar9,69 Kb.

Informatyka II. INF & EIT. Ćwiczenie 8.
Tablice wskaźników na struktury
Zagadnienia: Tablice struktur i tablice wskaźników na struktury. Dynamiczne tablice wskaźników. Operacje z wykorzystaniem tablic wskaźników na struktury.


  1. Zdefiniować tablicę wskaźników na struktury typu struct twsp { int x, y; } o rozmiarze N, gdzie N jest stałą. Przyjąć, że struktury służącą do przechowywania współrzędnych punktów. Zainicjować
    tablicę danymi w taki sposób, aby kolejne struktury tworzone dynamicznie zawierały współrzędne
    losowych punktów (x,y), gdzie x należy do przedziału [0,79), natomiast y należy do przedziału [0,24). Wczytać z klawiatury współrzędne badanego punktu (a,b). Wyznaczyć punkty najbliższe punktowi (a,b) w sensie odległości kartezjańskiej (odległość pomiędzy punktami (x,y) i (a,b) jest obliczana ze wzoru d = sqrt[(x-a)(x-a) + (y-b)(y-b)]). Wyprowadzić współrzędne wszystkich znalezionych punktów na ekran. Może być kilka punktów równoodległych od punktu (a,b).




  1. Zdefiniować N - elementową tablicę wskaźników na struktury typu struct tosoba { char naz[20];
    unsigned rok, mies, dzien; long id; }, gdzie N jest stałą w programie. Zdefiniować zmienną unsigned ile=0, która ma służyć do przechowywania liczby wskaźników wprowadzonych do tablicy. Opracować następujące funkcje:

  1. inicjującą strukturę typu tosoba losowymi wartościami w sposób następujący: do pola naz[20] wstawiany jest łańcuch ’naz’ zakończony losową liczbą należącą do przedziału [1, 100), np. ’naz21’, ’naz3’, itd.; do pozostałych pól wstawiane są losowe liczby należące, odpowiednio, do przedziałów [1900, 1981), [1, 13), [1, 32), [1, 1000);

  2. wyprowadzającą zawartość struktury typu tosoba na ekran;

  3. wstawiającą do tablicy adres nowej danej typu tosoba na pozycji o numerze k (0<=k

  4. wyszukującą, począwszy od pozycji k (0<=k(jeśli podano nazwisko, to wyszukiwanie według nazwisk; jeśli podano nazwisko i datę - rok, mies, dzien, to wyszukiwanie według nazwisk i dat; jeżeli podano nazwisko, datę oraz identyfikator, to wyszukiwanie według trzech pól równocześnie);

  5. usuwającą znalezioną daną z pamięci i dokonującą kompresji tablicy (przesunięcia elementów);

  6. sortującą dane według nazwisk za pomocą funkcji qsort;

  7. usuwającą wszystkie dane z pamięci.

W programie głównym utworzyć dynamicznie m

  1. Utworzyć dynamicznie tablicę złożoną z N wskaźników na struktury typu tosoba, gdzie N jest wczytywane z klawiatury, i zapamiętać adres jej początku w zmiennej tosoba **t. Zdefiniować zmienną unsigned ile=0, która ma służyć do przechowywania liczby struktur wprowadzonych do tablicy. Utworzyć m




  1. Utworzyć dynamiczną tablicę N wskaźników na struktury typu struct tdana {int a; char t[20];}, gdzie a jest liczbą arabską należącą do przedziału od 0 do 3999, natomiast t służy do przechowywania
    tekstu reprezentującego liczbę w zapisie rzymskim. Opracować program, który dla każdej struktury losuje liczbę arabską i zapisuje odpowiadającą jej liczbę rzymską w polu t. Wykorzystać zainicjowaną tablicę struktur typu struct RZYM {int w; char *s; } R[ ] = { {1, ”I”}, {5, ”V”}, {10, ”X”},
    {50, ”L”}, {100, ”C”}, {500, ”D”}, {1000, ”M”}}. Przykładowe liczby: 4-IV, 6-VI, 9-IX, 14-XIV, 19-XIX, 40-XL, 90-XC, 400-CD, 900-CM, 3999-MMMCMXCIX. Wyprowadzić struktury typu
    tdana na ekran.




©operacji.org 2017
wyślij wiadomość

    Strona główna