May 1, 2025, Thursday, 120

PP 2017 Kolokwium 2

From Łukasz Graczykowski

(Difference between revisions)
Jump to: navigation, search
 
(20 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:
-
* <code>double a;</code><br>
+
* <code>double a;</code><br>
-
* <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><br>
+
* <code>void UstawWielomian(Wielomian *w, double A, double B, double C)</code> - ustawia parametry wielomianu
-
<code>void WypiszWielomian(Wielomian *w)</code><br>
+
* <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) (1.5 p.)<br>
+
* Stworzyć wielomian <code>w1</code> (parametry: 1, -8, 12)
-
2. Obliczenie liczby miejsc zerowych (1 p.)<br>
+
* Obliczyć i wypisać liczbę miejsc zerowych<br>
-
3. Obliczenie miejsc zerowych (w tym odpowiednia alokacja tablicy) (2 p.)<br>
+
* Obliczyć i wypisać miejsca zerowe (czyli elementy przypisane do tablicy)<br>
-
4. Wypisanie obliczonych parametrów wielomianu (1 p.)<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.