Jump to content

Recommended Posts

Posted

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.

Posted

 

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.

  • Upvote 1
  • 2 weeks later...
  • Moderators
Posted

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

Posted

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...

Posted

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;

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.