Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Najwieksze mozliwe pole prostokata o danym obwodzie - zadanie c++

Ostatnio zmodyfikowano 2016-03-25 02:56
Autor Wiadomość
Gibas11
» 2016-03-25 02:16:17
Więc w czym leży teraz problem?

Program ładnie szuka współczynników funkcji i wierzchołka, nie tak miało być?
P-146545
jokker110
Temat założony przez niniejszego użytkownika
» 2016-03-25 02:27:58
Sprawdz sobie, kody ktore podales jako przed uproszczeniem nie dzialaja poprawnie, poniewaz masz tam wzor:
x = - b /( 2 * a );

a nie znasz ani a, ani b, gdyz sa ta wspolczynniki funckji. Z obwodu wyciagnales a,b - boki prostokata a nie wsplczynniki.

Chodzi mi o to czy jezeli wprowadze do programu, ze obwod wynosi np. 800 to ustali on, ze:

x+y=800/2  //// x i y to boki
x=400-y

p=-y^2+400y
a z tego wzoru wyciagnie wspolczynniki a=-1 i b=400.
Dopiero po wyciagnieciu tych wspolczynnikow mozna bedzie zastosowac wzor na EDIT //maxymalna x p=-b/2a
P-146546
Gibas11
» 2016-03-25 02:36:00
Owszem wyciągnąłem współczynniki. :p
x - długość boku 1
y - długość boku dwa
o - obwód

y = o/2 - x

f(x) = x * y
f(x) = x * (o/2 - x)
f(x) = xo/2 - x^2
f(x) = -1*x^2 + o/2*x + 0

Na tym etapie widać współczynniki:
a = -1 (stałe)
b = o/2(zależne od obwodu)
c = 0  (stałe)

Punkt p (x wierzchołka) to
- b / 2a
a to zawsze -1, wiec:

p = -b / -2
czyli
p = b / 2

Ponieważ b = o/2
p = o / 2 / 2.
p = o / 4

@down Rzeczywiście, jaka gafa. D: Tak to jest jak się najpierw pisze kod a potem matematyczne uzasadnienie. :p
P-146547
michal11
» 2016-03-25 02:43:31
@up

Powinien być y = o/2 - x na początku.
P-146548
jokker110
Temat założony przez niniejszego użytkownika
» 2016-03-25 02:49:36
Okej, juz rozumiem :D

C/C++
#include <iostream>
using namespace std;

int main()
{
    float obwod;
    cin >> obwod;
   
    float a = - 1;
    float b = obwod / 2.0;
   
    float x = - b /( 2 * a );
    float y = obwod / 2 - x;
    cout << x * y << endl;
   
    return 0;
}

Dzieki za pomoc :)
P-146549
Gibas11
» 2016-03-25 02:52:57
No nie do końca Ci to działa.

40
100

3
0.5625

EDIT: Sorry, zapomniałem, że liczysz pole a nie długość boku. Chyba powinienem już iść spać. D:
P-146550
jokker110
Temat założony przez niniejszego użytkownika
» 2016-03-25 02:56:13
Jak nie dziala? :D
Jak sam wspomniales, najwieksze pole zawsze bedzie mial kwadrat.

Kwadrat o obwodzie 40 ma wymiary 10x10 czyli pole=100.
Kwadrat o obwodzie 3 ma wymiary 0.75x0.75 czyli pole=0.5625


EDIT. No to juz jest pole. Jeszcze raz dziekuje za pomoc :)
P-146551
1 « 2 »
Poprzednia strona Strona 2 z 2