Mam pewne zadanie do wykonania i niestety mam z nim mega problem... Składa się ono z paru części... Operacjach na punktach i plikach oraz aproksymacja funkcji... Co do tego ostatniego to nigdy tego nie miałem, więc jest to dla mnie jeszcze większy problem... Języka Ada dopiero zacząłem się uczyć, ale ciężko mi on idzie...
Mam nadzieję, że znajdzie się ktoś i pomoże tyle ile będzie w stanie Każda pomoc tutaj się liczy!
Treść:
Operacje na punktach
Napisać pakiet w języku Ada, zawierający definicję typu rekordowego opisującego punkt na płaszczyźnie oraz następujące operacje działające na tym typie (użyte zmienne mają być typu float)
- * operatory arytmetyczne \(\displaystyle{ +,-}\) oraz operator porównania \(\displaystyle{ =}\)
* procedurę put, wyświetlającą punkt w formacie \(\displaystyle{ x;y}\)
* procedurę get, pobierającą punkt w formacie \(\displaystyle{ x;y}\)
* funkcję przyjmującą jako parametr współrzędne trzech punktów i sprawdzającą, czy trzeci z podanych punktów leży na prostej łączącej dwa pierwsze
Uwaga: Pakiety należy zapisywać w osobnych plikach źródłowych języka Ada.
Operacje plikowe
Pakiet z poprzedniego zadania rozszerzyć o funkcje/procedury służące do:
- * wczytania tablicy punktów z pliku
* zapisania tablicy punktów do pliku oraz sortowania ich względem pierwszej współrzędnej
Uwaga: Należy uwzględnić obsługę wyjątków podczas wykonywania operacji plikowych.
Aproksymacja funkcji
Pakiet z poprzedniego zadania rozszerzyć o funkcję dokonującą aproksymacji funkcji wyznaczonej przez zbiór punktów w dowolnym punkcie o odciętej leżącej w przedziale określonym przez wspomniany zbiór punktów. Funkcja aproksymująca musi posiadać dwa warianty: jeden wykorzystujący najprostszą aproksymację liniową i jeden wykorzystujący dowolną aproksymację nieliniową. Parametrami funkcji aproksymującej są: tablica punktów określających funkcję aproksymowaną oraz odcięta badanego punktu.
Wskazówka: Funkcja aproksymująca znacznie się upraszcza, jeżeli założyć, że tablica punktów przekazywana jako parametr jest posortowana względem odciętych punktów.
Należy także napisać prosty program, który zademonstruje działanie zdefiniowanych operacji, tj. wczyta zestaw punktów z dowolnego, podanego przez użytkownika pliku u dokona aproksymacji określonej przez ten zestaw funkcji. Aproksymacja ma być dokonana dla wszystkich punktów z przedziału odciętych określonego przez zbiór punktów definiujących funkcję (dla przykładowego pliku jest to przedział \(\displaystyle{ 0..10}\)) z krokiem podanym przez użytkownika. Uzyskany zbiór punktów ma zostać zapisany do pliku.
Punkt przecięcia
Pakiet z poprzedniego zadania rozszerzyć o funkcję znajdującą punkt przecięcia funkcji wyznaczonej przez zbiór punktów wczytany z pliku z funkcją kwadratową o podanych przez użytkownika współczynnikach. Punkt ma być znaleziony z dokładnością podaną przez użytkownika.
Wskazówka: Można sprowadzić równanie do postaci \(\displaystyle{ \text{aprox}(x)-A x^{2}-Bx-C=0}\) i użyć dowolnego algorytmu znajdowania miejsc zerowych, np. prostego algorytmu bisekcji. Można założyć, że w badanym przedziale będzie dokładnie jeden punkt przecięcia obu funkcji (wymagane przez wiele algorytmów).
Należy także napisać prosty program, który zademonstruje działanie zdefiniowanych operacji.
To by było na tyle tej treści... Będę wdzięczny za każdą pomoc i wyjaśnienie wszystkiego czego się da... Bardzo mi na tym zależy.-- 31 paź 2011, o 12:59 --Naprawdę nikt nie jest w stanie w żaden sposób pomóc?