Funkcje - operujące na strukturach
Transkrypt
Funkcje - operujące na strukturach
Funkcje - operujące na strukturach 1. Zdefiniuj typ TPunkt odpowiedni do opisu położenia punktu na płaszczyźnie. • Napisz funkcję, która zwraca odległość punktu od początku układu współrzędnych. • Napisz funkcję logiczną która zwraca true, gdy punkty podane jako parametry są sobie równe. 2. Mając dany typ TPunkt zdefiniuj typ strukturalny TOdcinek opisujący odcinek na płaszczyźnie. (Wskazówka: odcinek określany jest przez początek i koniec). Napisz funkcję, która • zwraca długość odcinka podanego jako parametr, • znajduje punkt będący środkiem odcinka podanego jako argument, • dla danych dwóch odcinków zwraca true, gdy odcinki podane jako parametry są identyczne. 3. Zdefiniuj typ strukturalny TLamana opisujący łamaną na płaszczyźnie. Napisz funkcję, która • Pobiera łamaną (najpierw ilość punktów, a następnie punkty)od użytkownika • Oblicza długość łamanej 4. Zdefiniować struktury: -TStudent o polach imie, nazwisko, srednia -TRocznik będącą listą wszystkich studentów. Napisać funkcję, która • pobiera dane o studentach, • wylicza średnią całego roku, • wyświetla na ekranie wszystkich studentów o średniej wyższej od podanej przez użytkownika, • porządkuje studentów względem średniej, • wyświetla na ekranie listę całego roku. 5. Zdefiniuj typ odpowiedni do opisu liczby zespolonej i napisz funkcje, która • pobiera liczbę zespoloną, • wyświetla na ekranie liczbę zespoloną, • liczy element odwrotny względem dodawania (tzn. taki, że c+codwr=(0,0)) do podanego w parametrze, • dla liczby zespolonej podanej jako parametr oblicza wartość modułu tej liczby, • realizuje dodawanie, mnożenie i dzielenie dwóch liczb zespolonych podawanych jako argumenty. 1 6. Mając daną definicję struktury struct TSamochod { int max_predkosc; int altualna_predkosc; //prędkość przy wyłączonym silniku powinna wynosić 0 bool stan_silnika; //określa czy silnik jest włączony czy wyłączony }; napisz funkcje: • UstawParamSam wczytującą maksymalną prędkość, ustawiającą prędkość aktualną na 0 i stan silnika na false; • AktPredkosc wyświetlającą aktualną prędkość; • ZapalSilnik zapalającą silnik; • ZgasSilnik gaszącą silnik; • Przyspiesz powiększającą aktualną prędkość o 10 km/h (funkcja może również ostrzegać użytkownika o przekroczeniu pewnego progu bezpiecznej prędkości). Ta oraz następne funkcje działają tylko wtedy, gdy silnik jest zapalony; • Zwolnij zmniejszającą aktualną prędkość o 10 km/h; • Hamuj zmniejszającą aktualną do 0. Wykorzystaj te funkcje w programie, który będzie wykonywał różne operacje z samochodem jak długo użytkownik będzie wpisywał literę t. Po wpisaniu litery t użytkownik może wybrać (np. wciskając odpowiednią cyfrę), jakie operacje chce wykonywać na samochodzie. 7. Mając daną definicję struktury struct TTelewizor { int ilosc_programow; int altualny_program; bool stan_telewizora; //określa czy telewizor jest włączony czy wyłączony }; napisz funkcje: • UstawParamTel wczytującą ilość programów telewizora, ustawiającą aktualny program na 1 i stan telewizora na false; • AktProgram wyświetlającą aktualny program; • WlaczTelewizor włączającą telewizor; • WylaczTelewizor wyłączającą telewizor; • PrzelaczNaNastepnyProg przełączającą program na następny (jeśli dla ostatniego programu wywołamy tę funkcję, powinna przełączyć na pierwszy program); 2 • PrzelaczNaPoprzedniProg przełączającą program na poprzedni (jeśli dla pierwszego programu wywołamy tę funkcję, powinna przełączyć na ostatni program); • PrzelaczNaKonkretnyProg przełączającą program na podany jako parametr funkcji. Napisz program analogiczny do programu z poprzedniego zadania, wykorzystując zdefiniowane przez siebie funkcje. 8. Mając definicje struktur const int nmax=100; struct TRybka { string nazwa; int zdrowie; //ma wartość od 0 do 100, przy czym 0 oznacza że rybka zdechła }; struct TAkwarium { int ilosc; //ilość rybek w akwarium TRybka akwarium[nmax]; //tablica rybek }; napisz funkcje: • ZalozAkwarium, która wczytuje dane o rybkach do akwarium (każda rybka ma na początku zdrowie równe 100); • PodajStanAkw, która wyświetla dane o rybkach znajdujących się w akwarium; • LekkaChoroba, która zmniejsza zdrowie każdej rybki o 10, a następnie dla losowo wybranej liczby rybek, losowo wybranym rybkom zmniejsza ponownie zdrowie o 10; • CiezkaChoroba, która zmniejsza zdrowie każdej rybki o 50, a następnie dla losowo wybranej liczby rybek, losowo wybranym rybkom zmniejsza ponownie zdrowie do 0 (rybki zdychają); • PodajLek, która zwiększa zdrowie każdej rybki o 10 (należy uwzględnić niemożność wyzdrowienia zdechłej rybki); • KupRybke, która wczytuje dane o nowej rybce na miejsce pierwszej zdechłej rybki (jeżeli wszystkie rybki są zdrowe, funkcja wyświetla odpowiedni komunikat). Napisz program wykorzystujący powyższe funkcje (użytkownik powinien decydować, podobnie jak w poprzednich zadaniach, jakie operacje chce wykonywać z akwarium). Funkcja random(num) zwraca losowo wybraną liczbę całkowitą z zakresu od 0 do num1. Aby używać tej funkcji, należy dołączyć plik nagłówkowy stdlib. Przed pierwszym wywołaniem funkcji random dobrze jest wywołać funkcję randomize(). 3