From Łukasz Graczykowski
(Difference between revisions)
|
|
(16 intermediate revisions not shown) |
Line 1: |
Line 1: |
- | Zadanie polega na napisaniu programu służącego do obliczania miejsc zerowych wielomianu stopnia drugiego o zadanych parametrach. W programie tworzymy odpowiednią strukturę <code<Wielomian</code>, której podajemy parametry wielomianu a następnie obliczamy liczbę miejsc zerowych, wartości miejsc zerowych, oraz wypisujemy wynik obliczeń na ekran.<br> | + | Zadanie polega na napisaniu programu służącego do obliczania miejsc zerowych wielomianu stopnia drugiego o zadanych parametrach. W programie tworzymy odpowiednią strukturę <code>Wielomian</code>, której podajemy parametry wielomianu a następnie obliczamy liczbę miejsc zerowych, wartości miejsc zerowych, oraz wypisujemy wynik obliczeń na ekran.<br> |
| <br> | | <br> |
| Struktura <code>Wielomian</code> powinna mieć następujące składowe: | | Struktura <code>Wielomian</code> powinna mieć następujące składowe: |
Line 5: |
Line 5: |
| * <code> double b;</code><br> | | * <code> double b;</code><br> |
| * <code> double c;</code><br> | | * <code> double c;</code><br> |
- | gdzie <code>a</code>, <code>b</code>, <code>c</code> to parametry wielomianu.<br> | + | gdzie <code>a</code>, <code>b</code>, <code>c</code> to parametry wielomianu:<br> |
| + | <code>W(x) = a*x^2 + b*x + c</code><br> |
| <br> | | <br> |
| Oprócz struktury powinny być stworzone również funkcje:<br> | | Oprócz struktury powinny być stworzone również funkcje:<br> |
- | * <code>void UstawWielomian(Wielomian *w, double A, double B, double C)</code> | + | * <code>void UstawWielomian(Wielomian *w, double A, double B, double C)</code> - ustawia parametry wielomianu |
- | * <code>void WypiszWielomian(Wielomian *w)</code> | + | * <code>double Delta(Wielomian *w)</code> - funkcja pomocnicza do obliczenia delty wielomianu (do użycia w innych funkcjach) |
- | <br>
| + | * <code>int LiczbaMiejscZerowych(Wielomian *w)</code> - oblicza i zwraca liczbę miejsc zerowych, czyli 1 lub 2 (potrzebne do alokacji tablicy przechowującej miejsca zerowe) |
- | Należy również stworzyć funkcje '''pomocnicze''' (do wykorzystania w funkcji <code>WypiszWielomian</code>):<br>
| + | * <code>void MiejscaZerowe(Wielomian *w, double *x)</code> - przyjmuje tablicę <code>x</code> alokowaną dynamicznie w zależności od ilości miejsc zerowych. Funkcja ustawia pierwsze miejsce zerowe na elemencie <code>x[0]</code> a drugie na <code>x[1]</code> (jeśli jest tylko 1 miejsce zerowe, to na <code>x[0]</code>) |
- | * <code>double Delta(Wielomian *w)</code><br> | + | |
- | * <code>int LiczbaMiejscZerowych(Wielomian *w)</code><br>
| + | |
- | * <code>void MiejscaZerowe(Wielomian *w, double *x)</code><br>
| + | |
| <br> | | <br> |
| W funkcji głównej <code>main</code> należy:<br> | | W funkcji głównej <code>main</code> należy:<br> |
- | 1. Stworzenie wielomianu w1 (parametry: 1, -8, 12) oraz wielomianu w2 (parametry ustawiane losowo)<br>
| + | * Stworzyć wielomian <code>w1</code> (parametry: 1, -8, 12) |
- | 2. Obliczenie liczby miejsc zerowych<br>
| + | * Obliczyć i wypisać liczbę miejsc zerowych<br> |
- | 3. Obliczenie miejsc zerowych (w tym odpowiednia alokacja tablicy)<br>
| + | * Obliczyć i wypisać miejsca zerowe (czyli elementy przypisane do tablicy)<br> |
- | 4. Wypisanie obliczonych parametrów wielomianu<br>
| + | <br> |
| + | Całość piszemy w trzech plikach, przykładowo: |
| + | * '''Wielomian.h''' - zawierający definicję struktury |
| + | * '''Wielomian.c''' - zawierający funkcje działające na strukturze |
| + | * '''main.c''' - zawierający funkcję główną |
| + | Ponadto, całość kompilujemy w linii poleceń używając pliku '''Makefile''' oraz polecenia <code>make</code>. |
Latest revision as of 07:20, 8 May 2017
Zadanie polega na napisaniu programu służącego do obliczania miejsc zerowych wielomianu stopnia drugiego o zadanych parametrach. W programie tworzymy odpowiednią strukturę Wielomian
, której podajemy parametry wielomianu a następnie obliczamy liczbę miejsc zerowych, wartości miejsc zerowych, oraz wypisujemy wynik obliczeń na ekran.
Struktura Wielomian
powinna mieć następujące składowe:
-
double a;
-
double b;
-
double c;
gdzie a
, b
, c
to parametry wielomianu:
W(x) = a*x^2 + b*x + c
Oprócz struktury powinny być stworzone również funkcje:
-
void UstawWielomian(Wielomian *w, double A, double B, double C)
- ustawia parametry wielomianu
-
double Delta(Wielomian *w)
- funkcja pomocnicza do obliczenia delty wielomianu (do użycia w innych funkcjach)
-
int LiczbaMiejscZerowych(Wielomian *w)
- oblicza i zwraca liczbę miejsc zerowych, czyli 1 lub 2 (potrzebne do alokacji tablicy przechowującej miejsca zerowe)
-
void MiejscaZerowe(Wielomian *w, double *x)
- przyjmuje tablicę x
alokowaną dynamicznie w zależności od ilości miejsc zerowych. Funkcja ustawia pierwsze miejsce zerowe na elemencie x[0]
a drugie na x[1]
(jeśli jest tylko 1 miejsce zerowe, to na x[0]
)
W funkcji głównej main
należy:
- Stworzyć wielomian
w1
(parametry: 1, -8, 12)
- Obliczyć i wypisać liczbę miejsc zerowych
- Obliczyć i wypisać miejsca zerowe (czyli elementy przypisane do tablicy)
Całość piszemy w trzech plikach, przykładowo:
- Wielomian.h - zawierający definicję struktury
- Wielomian.c - zawierający funkcje działające na strukturze
- main.c - zawierający funkcję główną
Ponadto, całość kompilujemy w linii poleceń używając pliku Makefile oraz polecenia make
.