Jump to content
Sign in to follow this  
alex008

Radical De Orin N Din Ceva - In C

Recommended Posts

Salut! Scuze lipsa de activitate din ultima vreme - n-am murit.

Am de facut un program care face media geometrica a n nr.

stiu ca e rezultat=sqrt(x) e pt radical de orin 2, dar pt radical de ordin n cum fac?

Un prieten mi-a sugerat sa fac ceva cu un for dar pana sa fac cu for si sa incrementez ordinul radicalului trebuie sa stiu cum arata sqrt pt ordin n. Ma puteti ajuta? Merci.

Share this post


Link to post
Share on other sites

 

To find the nth root of x just raise it to the power of 1/n.

 

Pe romaneste:

Radical de ordin 3 din 13 este acelasi lucru ca 13 la puterea 1/3.

 

Si ai rezolvat problema.

Share this post


Link to post
Share on other sites

Cum a zis Raziel mai sus.

#include <iostream>
#include <math.h>
using namespace std;
int main()
{
    int a, b;
    float x;
    cout << "Radical de ordin a din b" << 'n';
    cout << "a="; cin >> a;
    cout << "b="; cin >> b;
    x = (float) 1/a;
    cout<<pow(b,x);
    return 0;
}

ab = pow(a,b);  (trebuie biblioteca math.h)

 

 

Sau cu stdio.h daca nu faci cu iostream:

#include <stdio.h>
#include <math.h>
int main()
{
    int a, b;
    float x;
    printf("Radical de ordin a din b n");
    printf("a="); scanf("%d",&a);
    printf("b="); scanf("%d",&b);
    x = (float) 1/a;
    printf("%f",pow(b,x));
    return 0;
}

Daca vrei sa afisezi rezultatul cu 2 zecimale, in loc de %f la final pui %.2f

Share this post


Link to post
Share on other sites

Mai bine zis prima varianta este C++, iar a doua C curat.

Ai uitat un typecast:

printf("%f", pow(b, x));

->

printf("%f", pow((float)b, x));

In Pascal este asemanator:

program Radicali;

uses Math;


var
a, b : integer;
x    : real;

begin

  WriteLn('Radical de ordin a din b');
  Write('a=');
  Read(a);
  Write('b=');
  Read(b);
  x := 1 / a;
  Write('Rezultat: ', power(b, x));
  ReadLn;

end.

Compilatorul face conversiile automat, cel putin FreePascal...

Share this post


Link to post
Share on other sites

Pai b e de tip intreg, iar x e float.

 

Cand i-am atribuit 1/a am pus float in fata.

Share this post


Link to post
Share on other sites

Pai nu prea e asa.

In programul nostru asignezi un integer (a) unui float (x). Pentru asta trebuie sa faci typecast:

x = (float) 1/a;   sau   x = 1 / (float) a;    - tot aia e.

 

Iar aici:

printf("%f",pow(b,x));

 

O fi "b" un integer dar hai sa ne uitam la argumentele pe care le ia functia "pow" din libraria "math.h" si ce rezultat ne intoarce:

inline float __CRTDECL pow(_In_ float _X, _In_ float _Y)

 

 

Edit:

Am mai gasit un overload la functie:

inline float __CRTDECL pow(_In_ float _X, _In_ int _Y)   - dar nu e buna in cazul nostru, integer este exponentul

 

La fel si in Pascal:

function power(base,exponent : float) : float;
function intpower(base : float;const exponent : Integer) : float;

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×