Zajęcia 11 Przykłady: 1. Struktura struct osoba{ //Definicja struktury

Transkrypt

Zajęcia 11 Przykłady: 1. Struktura struct osoba{ //Definicja struktury
Zajęcia 11
Przykłady:
1. Struktura
struct osoba{
char imie[20];
char *nazwisko;
int wiek;
};
//Definicja struktury
struct osoba zmiena, *wskaznik, tablica[10];
//Deklaracja zmiennych do struktury
zmienna.wiek = 7;
wskaznik = &zmienna;
printf("%d\n",wskaznik->wiek);
//Inicjalizacja zmiennych struktury
//Ważny operator ->
(*wskaznik).wiek = 7; lub wskaźnik->wiek = 7;
tablica[2].wiek = 5;
gets(zmienna.imie); printf("%s\n",wskaznik->imie); //Wczytanie i wyświetlenie ciągu znaków
tablica[0].nazwisko = (char*)malloc(100*sizeof(char)); //Alokacja pamięci
strcpy(tablica[0].nazwisko,wskaznik->imie);
//Kopiowanie ciągu znaków
2. Deklaracja typów
typedef int dl;
typedef struct {
char imie[20];
char *nazwisko;
int wiek;
} osoba;
//Definicja typu
osoba zmiena, *wskaznik, tablica[10]; //Deklaracja zmiennych typu osoba
Zadania:
Wykorzystując przykłady z poprzednich zajęć opracuj program, który:
1. Pobierze od użytkownika dane o ramiarze dwóch tablic 2D, zaalokuje dynamicznie pamięć na
nie oraz pobierze dane do tych tablic,
2. Napisz funkcję, która dokona transpozycji wybranej tablicy 2D, jako argument wejściowy
przyjmie wskaźnik do tablicy 2D oraz jej rozmiar, natomiast zwróci wskaźnik do
transponowanej tablicy 2D, (UWAGA: z funkcji możemy zwrócić tylko jedną zmienną),
3. Opracuj odrębną funkcję do wyświetlania tablicy 2D o określonym rozmiarze,
4. Zastosuj strukturę aby rozwiązać problem zwracania danych o tablicy z funkcji,
5. Opracuj odrębną funkcję do wyświetlania danych ze struktury,
6. Stosując struktury napisz funkcję, która dokona mnożenia macierzy zawartych w
odpowiednich strukturach i zwróci zmienną do nowej struktury z wynikami, rozmiarem
tablicy i np. jej nazwą, jako argument wejściowy funkcja przyjmie zmienne do struktur
zawierające rozmiary tablic i dane.
Informacje dodatkowe:
Ciągi znaków – wybrane operacje:
1. Funkcja strcmp służy do porównywania dwu ciągów znaków. Ma dwa parametry i zwraca
-1 gdy pierwszy ciąg znaków jest mniejszy od drugiego, 0 gdy są równe i +1, gdy pierwszy
ciąg jest większy od drugiego,
2. Do kopiowania służy funkcja strcpy o dwu parametrach. Ciąg znakach zawarty w drugim
parametrze kopiowany jest do pierwszego parametru,
3. Funkcja strlen podaje długość ciągu znaków (bez znaku NULL),
4. Do łączenia napisów służy funkcja strcat. Zawartość drugiego parametru funkcji
dopisywana jest na końcu zawartości pierwszego.
Więcej informacji na stronie wykładu:
http://www.immt.pwr.wroc.pl/~myszka/InformatykaI/W11/w11_beamer.pdf