Programowanie proceduralne Laboratorium 8 – Struktury
1. Zdefiniuj strukturę complex, która przechowuje liczbę zespoloną w postaci algebraicznej (struktura ma dwie składowe odpowiadające częściom: rzeczywistej i urojonej). Struktura powinna być zdefiniowana w pliku complex.h.
2. Zaimplementuj funkcje pozwalające na wypisywanie na ekran i odczytywanie z klawiatury liczb zespolonych. Deklaracje funkcji umieść w pliku complex.h, a ich definicje w pliku complex.c. Zademonstruj ich działanie w programie.
Przykładowy efekt uruchomienia programu:
3. Zaimplementuj funkcje pozwalające na wykonywanie obliczeń na liczbach zespolonych:
dodawanie liczb zespolonych,
mnożenie liczb zespolonych,
sprzęgnięcie liczby zespolonej,
moduł liczby zespolonej,
argument liczby zespolonej.
Deklaracje funkcji umieść w pliku complex.h, a ich definicje w pliku complex.c.
Zademonstruj ich działanie w programie.
Przykładowy efekt uruchomienia programu:
4. Zdefiniuj strukturę vector3, która przechowuje wektor z przestrzeni trójwymiarowej. Struktura powinna być zdefiniowana w pliku vector3.h.
5. Zaimplementuj funkcje pozwalające na wypisywanie na ekran i odczytywanie z klawiatury wektorów trójwymiarowych. Deklaracje funkcji umieść w pliku vector3.h, a ich definicje w pliku vector3.c. Zademonstruj ich działanie w programie.
Przykładowy efekt uruchomienia programu:
6. Zaimplementuj funkcje pozwalające na wykonywanie działań na wektorach trójwymiarowych:
dodawanie,
zmianę znaku współrzędnych,
odejmowanie,
mnożenie skalarne wektorów trójwymiarowych,
mnożenie wektorowe wektorów trójwymiarowych,
długość wektora,
mnożenie wektora przez liczbę.
Deklaracje funkcji umieść w pliku vector3.h, a ich definicje w pliku vector3.c.
Zademonstruj ich działanie w programie.
Przykładowy efekt uruchomienia programu:
7. Zdefiniuj strukturę vectorDouble, która służy do reprezentowania n-elementowego wektora liczb rzeczywistych. Struktura ma dwa pola. Są to liczba całkowita (liczba elementów w wektorze) oraz wskaźnik na typ double (wskazujący na tablicę zawierającą współrzędne wektora). Struktura powinna być zdefiniowana w pliku vectorDouble.h.
8. Zaimplementuj następujące funkcje obsługujące strukturę z poprzedniego zadania:
struct vectorDouble * newVector(int);
void printVectorDouble(struct vectorDouble *);
void setVectorDouble(struct vectorDouble *, int, double);
double getVectorDouble(struct vectorDouble *, int);
void deleteVectorDouble(struct vectorDouble **);