ajutor problema c++


  1. #1
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5

    ajutor problema c++

    Să se calculeze valorile următoarei funcţii:ajutor problema c++-functie-jpg
    am primit-o ca tema desi la laborator n-am facut nimic asemanator

  2. #2
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    Cred ca poti sa o rezolvi destul de simplu cu cmath.h cu functia pow().
    Radacina n a unui numar x se poate scrie ca pow(x, (1.0 / n)) adica x la puterea 1 supra n.
    Deci o sa ai ceva de genul result = (pow(pow(x, 4) - pow(x, 6), (1.0 / 4.0)) si in rest decat iterezi si aplici formula pentru fiecare numar din interval.

    x la a 4-a minus x la a 6-a este intotdeauna pozitiv deci problema are sens.
    Last edited by alex707; 18-05-2012 at 19:12.
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

  3. #3
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5
    incercai s-o rezolv cu indicatiile pe care mi le-ai dat,dar tot nu-mi iasa.

  4. #4
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    Ce nu-ti iese? Pune cod.
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill

  5. #5
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5
    #include<iostream>
    using namespace std;
    #include<cmath>
    void main(){
    int x,f;
    float result,pow;
    cout<<"x="<<endl;
    cin>>x;
    {
    f=pow(x,(1.0 / 4))-pow(x, (1.0 / 6));
    result=(pow(pow(x, 4) - pow(x, 6), (1.0 / 4));
    }
    return f;}

    stiu ca e o harababura totala ce scrisai,dar pana acum am scris doar probleme rezolvate si n-am scris niciuna cu radicali

  6. #6
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    - result este ok ... de ce dai return f (return din main iti iese din program ... trebuie sa faci cout)? f este radical de ordinul 4 din x minus radical de ordinul 6 din x.
    Partea a doua:
    - radical de ordin par dintr-un numar negativ nu are logica. De-asta ti-am zis ca asa cum e formulata problema are logica dar doar in intervalul -1, 1 (inclusiv).
    Asa cum ai scris tu, cu x fiind int (deci un numar intreg), x la a 4-a minus x la a 6-a este intotdeauna negativ sau 0. Deci nu pot face radical de ordin par din el.
    In intervalul -1, 1 functioneaza pentru ca x la a 4-a este mai mare decat x la a 6-a, deci doar pentru x subunitar.

    In primul rand transforma x in float.
    In al doilea rand aplica un x intre -1 si 1, adica 0.5, 0.3, -0.000123 (numai subunitare negative sau pozitive) la formula din result, nu la f.

    Si partea a treia:
    - eu am scris 1.0 / 4 ca sa intelegi conceptul. Poti sa scrii 0.25 in loc de 1.0/4: adica x la puterea 0.25 este egal cu radical de ordinul 4 din x (asa e mai clar?)
    Last edited by alex707; 18-05-2012 at 21:51.
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill

  7. #7
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5
    mai modificai prin ea dar nu-mi seama ce vrei sa zici cu subunitarele alea.ma cam bate programarea asta,avand in vedere ca fac de nici 3 luni asa ceva
    #include<iostream>
    using namespace std;
    #include<cmath>
    void main(){
    int f;
    float x,result,pow,sqrt;
    f=(sqrt(x,4)-(x,6)(0.25));
    result=(pow(pow(x,4)-pow(x,6),(0.25));
    return ;}

  8. #8
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    Tine de matematica mai mult, decat de programare. Hai sa o luam altfel:

    Sa luam nr 0.5 de ex:
    0.5 la a 4-a este: 0.0625 (sa-l numim pe asta a)
    0.5 la a 6-a este: 0.015625 (si pe asta b)
    a - b = 0.046875 (deci un numar pozitiv pentru ca a > b intotdeauna, pentru numere intre -1 si 1)

    Daca faci acelasi lucru cu 3 de exemplu:
    3 la a 4-a este: 81 (tot a)
    3 la a 6-a este: 729 (tot b)
    a - b = - 648 (intotdeauna va fi negativ pentru ca a < b intotdeauna, pentru numere mai mari ca 1 si mai mici ca -1)

    Acelasi lucru se intampla pentru numere negative, pentru ca ridicate la o putere para vor fi pozitive si revii la aceeasi problema de mai sus. -2 la patrat este 4 si -0.3 la patrat este 0.09

    Nu stiu in ce clasa esti, dar intr-a 7-a se fac radicalii si ar fi trebuit sa-ti spuna cineva ca radical de ordin par dintr-un numar negativ nu exista. De ce? Pentru ca nu exista numar negativ care ridicat la o putere para sa iti dea tot un numar negativ. Si cum radicalul este inversul puterii radical dintr-un numar negativ nu exista (de fapt este imaginar). Motiv pentru care x-ul din problema ta trebuie sa fie intre -1 si 1.

    Daca ti se pare greu de inteles ce am scris mai sus nu e nici o problema, probabil esti tanar si ai destul timp ca sa mai inveti matematica, dar strict pentru problema ta trebuie sa intelegi doar atat:
    - x trebuie sa fie un float cuprins intre -1 si 1;
    - iterezi intr-un for sau intr-un while (in intervalul de mai sus) in incremente de 0.1 (de ex. pornesti de la -1 si aduni 0.1 pana ajungi la 1);
    - aplici formula pentru x (cea pe care ai scris-o la "result");
    - afisezi rezultatul, dar nu cu return (return iti iese din functie);
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill

  9. #9
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5
    sunt anul I la facultate,problema imi trebuie s-o prezint pentru a intra in examen.o sa mai analizez maine ce-mi explicasi si sper sa-i dau de cap pana la urma.mersi mult pentru ajutor.o seara buna

  10. #10
    Member alex707's Avatar alex707 reprezinta o cantitate neglijabila
    Data de inscriere
    28-09-2006
    Varsta
    44
    Sex
    M
    Mesaje
    183
    Mesaje bazar
    63
    Putere Reputatie
    0
    Reputatie
    8
    Puncte CF
    30.0
    OMG. Ingrijorator.

    Cod:
    #include <iostream>
    #include <cmath>
    using namespace std;
    void main()
    {
    	float x = -1.0;
    	float result;
    	while (x <= 1)
    	{
    		result = pow(pow(x, 4) - pow(x, 6), 0.25f);
    		x += 0.1f;
    		cout << "result=" << result;
    		cout << endl;
    	}
    	system("PAUSE");
    }
    Ca sa iti explic de ne nu ajungi exact la 0 si la 1 (sau chiar la -0.1) cred ca trebuie sa mai studiezi un pic.
    Success is not final, failure is not fatal: it is the courage to continue that counts. --Sir Winston Churchill

  11. #11
    De-al casei A-Mazing este placut de toti A-Mazing este placut de toti A-Mazing este placut de toti
    Data de inscriere
    26-08-2010
    Sex
    M
    Mesaje
    334
    Mesaje bazar
    345
    Putere Reputatie
    31
    Reputatie
    249
    Puncte CF
    2.5
    gimnaziul l-am terminat acum 7 ani,in liceu nu pot sa spun ca am facut matematica,desi am fost pe profil.sper pe viitor sa imbunatatesc cunostintele si sa ma descurc mai bine.pana acum am mers pe pascal,iar cand am folosit prima data c++ -ul mi s-a parut cu totul si cu totul alta mancare de peste.inca o data multumesc
    Vrei mai putine reclame? Inregistreaza-te sau logheaza-te

Tags for this Thread

Google+

Cautati logo-ul CraiovaForum?

Iata cateva variante: