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

#21
Deben ser declaaradas como float la raiz devuelve deciamles
#22
Se me ocurre un array bidimensional del tipo char para almacenar letras pero tendría que ser un array bidimensional dinámico ya que el usuario tiene que ingresar el numero de filas y columnas, el texto si podría hacerse con un array estático, pero no lo de las filas y columnas


corre este codigo a ver si es mas o menos lo que buscas

Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

void creator();

int main()
{

creator();
   return 0;
}

void creator()

{
   unsigned int filas,columnas;
   cout<<"Ingrese cantidad de filas= ";
   cin>>filas;
   cout<<"Ingrese cantidad de columnas= ";
   cin>>columnas;

   char** ary = new char*[filas]; //crea el espacio en memoria del arrreglo bidimensional
   for(int i = 0; i < filas; i++)
       ary[i] = new char[columnas];


   for(int i = 0; i < filas; i++)  //llena el arreglo bidimensional en memoria
       for(int j = 0; j < columnas; j++)
       {
           cout<<"Ingrese un char y presione enter= ";
           cin>>ary[i][j];
       }

   cout<<"\n\nEl texto es el siguiente= \n";

   for(int i = 0; i < filas; i++)  //imprime el arreglo bidimensional
   {
       for(int j = 0; j < columnas; j++)
       {
           cout << ary[i][j];
       }
    cout<<"\n";  //salto de linea cada vez que se termina una linea
   }

}


#23
Al parecer estas haciendo una serie

Tengo dudas por tu codigo y enunciado si en la primera funcion solo se va devolverve ene entonces esa funcion de tener un parámetro de devolucion tipo int.

Pero en tu codigo veo n,base,potencia y no los puedes devolver todos a la vez una función solo devuelve una salida podrias usar la dirección de la variable pero necesitarías pasarle las direcciones a la funcion y el enunciado te lo prohibe.

Algo esta mal en el enunciado.
#24
Hola para la exponencial

porque mejor no usas pow(a,b)= a^b deberías incluir cmath

Código (cpp) [Seleccionar]
#include <iostream>
#include <cmath>

using namespace std;

double exponencial(double,unsigned long int); //cabecera de la funcion exponencial
int factorial(unsigned long int); //cabezera de la funcion factorial


int main()
{
    unsigned long int n=0; //nuemro n de la serie
    double x=0; //valor de x

    cout<<"Ingrese n=";
    cin>>n;
    cout<<"Ingrese x=";
    cin>>x;

    cout<<"Resultado es= "<<exponencial(x,n)<<endl;
}

double exponencial(double x,unsigned long int n)
{
    double resultado=0; //varibale para devolver
    for (unsigned int i=0;i<=n;i++) //desde n=0 hasta donde llegue la serie
    {
        resultado+=pow(x,i)/factorial(i);   //uso de la función pow de la libreia cmath se saca esa potencia y con la función factorial se obtiene ese denominador con ese valor de n
    }
    return resultado; //devuelvo valor
}

int factorial(unsigned long int i)
{
    unsigned int resultado=1; //valor inicial 1
    if (i==0)  //si es cero se devuelve factoril 1
    {
        return resultado;
    }else     //sino se scaa el factorial
    {
        while(i>1)
        {
            resultado=resultado*i;
            i--;
        }

    return resultado;

    }
}


#25
Hay dos diferencias entre un array dinámico y otro estático, el estático se crea cuando compilas el código y es imposible cambiar su tamaño luego de declararlo, el dinámico se crea cuando estas corriendo el programa y es posible cambiar su tamaño en plena corrida.

EL título de tu tema es array dinámico, así que lo haré con un array dinámico, pero en tu explicación no dice nada sobre arrays dinámicos

//primero declaramos un array dinámico usando apuntadores y la palabra clave "new" que hace la misma funcion que malloc() de C

char *p=new char[10]; //lo que se hizo aqui fue crear un array de tamaño 10, notese que en ningun momento declaro el nombre del array esto es porque new busca una posicion libre de memoria donde crea el array y devuelve el apuntador del primer elemento

//ahora para pasarle un valor por referencia seria algo mas o menos asi ya que que tenemos el apuntador

p[0]="a"; //le pasmos un char
p[1]="b";
//....asi hasta llegar a 9
p[9]="n";

//ya pasamos los valores usando un apuntador al arreglo dinámico que se aloja en memoria mas no en una variable

delete [] p; //liberamos la memoria luego de usar, aqui borramos ese arreglo wipe out
#26
Gracias  ;-)

Es magnifico como Internet  puede conectarme con mentes como la tuya en este caso.

De verdad había una explicación lógica para lo que me planteaba
#27
Hola he estado jugando con las estructuras para manejar bits, hice este simple programa

#include <iostream>

using namespace std;

int main()
{
   struct bits
   {
       int byte:1; //un solo bit asignado
       int word:1; //un solo bit asignado
   };

   bits gate1=
   {
       true, //al "objeto" gate1.byte se le asigna 1
       false //al "objeto" gate1.word se le asigna 0
   };
   cout<<gate1.byte<<"\t"<<gate1.word<<endl;
}


Donde el resultado es el siguiente

-1       0

En cambio si aumento el campo de bits de bytea dos asi

#include <iostream>

using namespace std;

int main()
{
   struct bits
   {
       int byte:2; //dos bits asignados
       int word:1; //un solo bit asignado
   };

   bits gate1=
   {
       true, //al "objeto" gate1.byte se le asigna 1
       false //al "objeto" gate1.word se le asigna 0
   };
   cout<<gate1.byte<<"\t"<<gate1.word<<endl;
}


Donde el resultado es el siguiente

1       0

Notese la diferencia de signo del 1,alguien me podría dar una explicación a esto, ya que true solo tomo el valor de 1 no deberia ser suficiente con solo asignarle un bit para hacerlo.
#28
Hola podría alguien ayudarme a hacer esto, imporar el valor de un lineEdit a una función en una nueva clase.

He creado una nueva clase con la ayuda de QT Creator llamada Ag y me añdio los archivos .h .cpp

ag.h
#ifndef AG_H
#define AG_H

#include <QMainWindow>
#include <QObject>
#include <QSharedDataPointer>
#include <QWidget>

class AGData;

class AG
{
public:
    AG();
    AG(const AG &);
    AG &operator=(const AG &);
    ~AG();
void genetic::fitness()

private:
    QSharedDataPointer<AGData> data;

};

#endif // AG_H


ag.cpp
#include "ag.h"

class AGData : public QSharedData
{
public:

};

AG::AG() : data(new AGData)
{

}

AG::AG(const AG &rhs) : data(rhs.data)
{

}

AG &AG::operator=(const AG &rhs)
{
    if (this != &rhs)
        data.operator=(rhs.data);
    return *this;
}

AG::~AG()
{

}


Ahora añado una función llamada fitness a la clase y unas variables privadas matrix2,i.

En la función fitness hay una variable a esa variable a sería tomada del lineEdit

ag.h
#ifndef AG_H
#define AG_H

#include <QMainWindow>
#include <QObject>
#include <QSharedDataPointer>
#include <QWidget>

class AGData;

class AG
{
public:
    AG();
    AG(const AG &);
    AG &operator=(const AG &);
    ~AG();
     void fitness();

private:
    QSharedDataPointer<AGData> data;
    unsigned long int i;
    double matrix2[100][3];

};

#endif // AG_H


ag.cpp
#include "ag.h"

class AGData : public QSharedData
{
public:

};

AG::AG() : data(new AGData)
{

}

AG::AG(const AG &rhs) : data(rhs.data)
{

}

AG &AG::operator=(const AG &rhs)
{
    if (this != &rhs)
        data.operator=(rhs.data);
    return *this;
}

AG::~AG()
{

}

void AG::fitness(){
    for (i=0;i<100;i++){
        matrix[i][1]=a*100;
    }

}


Tengo dudas de como introducir ese valor en mi clase no se como usar un apuntador a esa varible, ademas no se si tengo que darle datos de entrada a la funcion como void fitness(double a);

De verdad le he estado dando vueltas y revisado por Internet pero no encuentro como.
#29
Gracias si tenias razon ,muchas gracias por responder.
#30
En los ciclos cada quien los hace a su manera mi condicional es que sea menor que tres asi que esta bien.

0,1,2

Lo que me preocupa es el arreglo bidimensional quisiera manejarlo con punteros necesito pasarlo a una función y me gustaría hacerlo por transferencia.