Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Acermax

#21
Tu quieres trabajar en la función llenar como si fuera un array, y por el contrario la declaras como un entero.

Citar
http://c.conclase.net/curso/?cap=015b

Cuando pasamos un array como parámetro en realidad estamos pasando un puntero al primer elemento del array, así que las modificaciones que hagamos en los elementos del array dentro de la función serán permanentes aún después de retornar.

Esto significa que declarando simplemente el array bien en la función ya te funciona lo que tu quieres hacer.

Código (cpp) [Seleccionar]

#include <cstdlib>
#include <iostream>
#define max 300
using namespace std;
void llenar(int a[]);
void leer(int a,int b,int c);
int main(int argc, char *argv[])
{
    int num[max],i,x,y,h;

    llenar(num);
    leer(x,y,h);

    system("PAUSE");
    return EXIT_SUCCESS;
}

void leer(int a,int b,int c)
{
     cout<<"Ingrese el valor X ...(0.x)"<<endl;
     cin>>a;
     cout<<"Ingrese el valor Y ...(0.y)"<<endl;
     cin>>b;
     cout<<"Ingrese el valor Z ...(0.z)"<<endl;
     cin>>c;

}
void llenar(int a[])
{
     int i;
          for(i=0;i<max;i++)
          {
               a[i]=0;
          }
          cout << endl;
}
#22
Es que creo que estás confundiendo los términos. El seno, coseno etc no tienen magnitud. Los grados, minutos y segundos o radianes, es sobre el ángulo.
#23
Edito:

A ver, primero debes pasar el valor en grados a radianes, la relación es sencilla 2*PI radianes=360º. Una vez que lo pasas puedes operar en radianes. Con eso ya tienes el resultado del seno, que creo que es lo que tu quieres, o me equivoco?

Bueno, pues eso es lo que tienes guardado en "r", y ese debería ser el resultado que ti quieres y el correcto.

Otra cosa sería que quieras pasarlo a grados de nuevo, tienes que aplicar el arcoseno a "r", y el resultado convertirlo de nuevo a grados con la misma relación.
#24
Pues el problema tiene que venir de otro lado, porque deberías poder llamarla de ambas maneras, es decir, como una función normal
estado(int);

o usando el puntero

this->estado(int);
#25
Algo haces mal para que te de 5 como resultado xD. El seno varía entre -1 y 1 sin desplazamiento... de hecho el resultado que debería dar es 0,49 con ese 300/10.

Date cuenta que estas cuentas debes hacerlas en radianes, si no lo estás haciendo ya.
#26
Para hayar potencias las puedes hacer con un bucle, o mediante la función pow de la librería cmath o math.h

double pow (      double base,      double exponent );
long double pow ( long double base, long double exponent );
      float pow (       float base,       float exponent );
     double pow (      double base,         int exponent );
long double pow ( long double base,         int exponent );


Si pones cmath o math.h en cplusplus.com por ejemplo puedes ver sus funciones.

Respecto al método de la bisección. Alguien a quien le acaban de explicar el teoréma de pitágoras no creo que esté capacitado para entender el método de la bisección, aunque igual me equivoco.
#27
A la hora de imprimir el resultado te estás pasando en el recorrido del array

Esto tienes tú.

   for(j=0; j<=M; j++)
{
 printf("%d ", e[j]);
}

Debería ser así

   for(j=0; j<M; j++)
{
 printf("%d ", e[j]);
}

Date cuenta que los arrays en C y C++ tienen el siguiente rango [0,N-1] y no [1,N]


De todas maneras me extraña que te funcione algo, porque sigues haciendo mal la comprobación


if (T==R)
debería ser
if (T==R[i])

#28
Veo varias cosas mal, lo primero es que recorres mal el vector. Tu haces esto.

Código (cpp) [Seleccionar]

i = strlen(R);
for(;i=0;i++)
     {
     if (T=R)
      {
       M++;
       e=i;
      }


Eso es un bucle infinito, primero es que a i le das el valor del vector, es decir 40 y empiezas a sumar la 'i' hasta que 'i=0' (otra cosa que está mal, esto siempre será cierto, porque a 'i' le estas dando el valor 0, la comparación es hace con '==').

En definitiva, para recorrer el vector tienes 2 posibilidades.
Código (cpp) [Seleccionar]

for (int i=0;i<strlen(R);i++)
o bien
for (int i=strlen(R);i>=0;i--)


Despues vuelves a hacer mal la comparación

Código (cpp) [Seleccionar]

if (T=R)
La comparación es '==', y además tienes que compararlo caracter a caracter
if (T==R[i])


Finalmente debes añadir todas las posiciones al array e. Podrías hacerlo de esta manera.

Código (cpp) [Seleccionar]

e[M]=i;
M++;


Por cierto, no inicializas "M" al principio, eso podría darte problemas. Recuerda inicializar siempre las variables.

Y creo que no me dejo nada.

Un saludo.
#29
Programación C/C++ / Re: Problemita!!
2 Junio 2011, 19:15 PM
Pues nom[0] es un dato de tipo "cam", y eso lo estás intentando meter en mape.map
  • , que es de tipo "int" y no tiene mucho sentido.
#30
La gente que pega aquí los enunciados de sus trabajos de clase, no sé en que demonios piensan si creen que alguien se va a poner a hacerles esto... es que es tener dos dedos de frente.