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