elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ingresar datos a lista
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ingresar datos a lista  (Leído 1,843 veces)
berbash116

Desconectado Desconectado

Mensajes: 8


Ver Perfil
ingresar datos a lista
« en: 4 Enero 2019, 04:03 am »

Hola como estan

Necesito ayuda para ingresar 2 datos en una lista, ya tengo un codigo en donde me permite agregar o quitarvalores de una lista, pero no me permite hacerlo para 2, en mi caso quiero registras valores rectangulares y polares.
les dejo los codigos que tengo

Código:
#include<iostream>
#include<cmath>

//Programa para transformar de Rectangular a Polar

using namespace std;
int n,i;
double ang,rest,re,im,pot,mod;

int main()
{
cout<<"\nIngrese cantidad de Tensiones Complejas\n";
cin>>n;

for(i=1;i<=n;i++)
{
cout<<"Por favor introduzca la parte real de su numero complejo"<<i<<":  \n";
cin>>re;
cout<<endl<<"Ahora la parte imaginaria"<<i<<": \n";
cin>>im;


ang = (atan (im/re))* 57,29578;
mod = sqrt ((re*re)+(im*im));

cout<<"La expresion en forma polar"<<i<<" es: "<<mod<<" con angulo "<<ang<<"\n"<<endl;

}

system ("pause");
cin.get();
return 0;
}

Código:
// Programa para pasar de Polar a Rctangular
#include<iostream>
#include<cmath>

using namespace std;
int i,n;
double ang,rest,re,im,pot,mod,rad;

int main()
{
cout<<"\nIngrese cantidad de Tensiones Polares  :    ";
cin>>n;

for(i=1;i<=n;i++)
{
cout<<"Por favor introduzca el modulo: "<<i<<":   \n";
cin>>mod;
cout<<endl<<"Ahora el angulo en grados: "<<i<<":   \n";
cin>>ang;

rad=ang*3.1416/180.0;
re = mod * cos (rad);
im = mod * sin(rad);

cout<<"La expresion en forma rectangular"<<i<<" es: "<<re<<"   "<<im<<"j \n"<<endl;

}
system ("pause");
cin.get();
return 0;
}


En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: ingresar datos a lista
« Respuesta #1 en: 4 Enero 2019, 08:29 am »

Pero en ese código no estás usando ninguna lista, imagino que quieres ir metiendo en una lista las variables <re> e <im> (te recomiendo nombres un poco más largos y que se entiendan mejor <real> e <imaginaria> porque variables con nombres muy cortos podrían significar más cosas, mejor el nombre completo si no es muy largo).

Para lo que quieres hacer te recomiendo empezar a usar objetos, es decir, crear una <struct> o <class> para almacenar un valor. Sería algo así:
Código
  1. struct Rectangular{
  2.    double real;
  3.    double imaginaria;
  4. };
  5.  
  6. int main(){
  7.    Rectangular variable_rectangular;
  8.    cout << "Ingresa parte real: ";
  9.    cin >> variable_rectangular.real;
  10.    cout << "Ingresa parte imaginaria: ";
  11.    cin >> variable_rectangular.imaginaria;
  12.    // y aqui ya puedes meter la variable_rectangular en una lista
  13. }

Te recomiendo mejor que crees dos clases, una Rectangular y otra Polar, hagas un constructor con parámetros, y métodos que te sirvan de algo por ejemplo:
Código
  1. class Rectangular{
  2.    private:
  3.        double real;
  4.        double imaginaria;
  5.  
  6.    public:
  7.        Rectangular(); // constructor por defecto
  8.        Rectangular(double real, double imaginaria); // constructor con parametros
  9.        Polar convertir(); // convierte una variable Rectangular en Polar
  10.        //...
  11. };
  12.  
  13. class Polar{
  14.    private:
  15.        double modulo;
  16.        double angulo;
  17.  
  18.    public:
  19.        Polar();
  20.        Polar(double modulo, double angulo);
  21.        Rectangular convertir(); // convierte una variable Polar a Rectangular
  22.        //...
  23. };

Puedes agregarle más métodos si los necesitas y para meterlos en una lista sólo tienes que crear una lista de variables <Rectangular> para meter esos valores y una lista de tipo <Polar> para meter esos valores. Suerte :-X


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
CalgaryCorpus


Desconectado Desconectado

Mensajes: 323


Ver Perfil WWW
Re: ingresar datos a lista
« Respuesta #2 en: 4 Enero 2019, 11:03 am »

Sugeriría escribir los métodos de conversión fuera de las clases, para no crear una dependencia entre ellas.
En línea

Aqui mi perfil en LinkedIn, invitame un cafe aqui
K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: ingresar datos a lista
« Respuesta #3 en: 4 Enero 2019, 16:31 pm »

Sugeriría escribir los métodos de conversión fuera de las clases, para no crear una dependencia entre ellas.
Entiendo que con escribir los métodos de conversión fuera de las clases te refieres a hacer dos funciones. Mi primera duda es por qué sería mejor así? Es algo que desconozco :rolleyes:
Y tampoco sé si habría alguna diferencia entre hacer dos funciones con nombres distintos y parámetros distintos es decir...:
Código
  1. Rectangular convertirEnRectangular(Polar);
  2. Polar convertirEnPolar(Rectangular);
... o sobrecargar una misma función para ambos casos:
Código
  1. Rectangular convertir(Polar);
  2. Polar convertir(Rectangular);
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
berbash116

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: ingresar datos a lista
« Respuesta #4 en: 7 Enero 2019, 14:36 pm »

hola de nuevo, como dicjiste realice la estructura pero cunado corro el programa no me lo guarda en la listam, es mas, me guarda un 0

Código:
//Cola de datos.Programa de prueba
#include<iostream>
#include "list.h"
#include<cmath>
using namespace std;

template<class T>
void testList(List<T> &listObject, const char *type)
{
cout<<"Programa de prueba de una cola de valores "<<type<<".\n";
cout<<"Ingrese una de las siguientes opciones:\n"
<<" 1 para insertar al final de la cola.\n"
<<" 2 para eliminar al principio de la cola.\n"
<<" 3 para finalizar.\n";

struct polar {
double modulo,angulo;
};
int choice;

T polar;
do
{
cout<<"? ";
cin>>choice;
switch(choice)
{

case 1:

double angulo,real,imaginario,modulo;


cout<<"Por favor introduzca la parte real de su numero complejo: ";
cin>>real;
cout<<endl<<"Ahora la parte imaginaria: ";
cin>>imaginario;


angulo = (atan (imaginario/real))* 57,29578;
modulo = sqrt (real*real+(imaginario*imaginario));

cout<<"La expresion en forma polar es: ("<<modulo<<" con angulo "<<angulo<<")"<<endl;

listObject.insertAtBack(polar);
listObject.print();
break;

case 2:
if(listObject.removeFromFront(polar))
cout<<polar<<" removido de la cola.\n";
listObject.print();
break;
}
}
while(choice!=3);
cout<<"Finalizar prueba de cola.\n";
}
int main()
{
List<int>integerQueue;
testList(integerQueue,"entero");

List<double>doubleQueue;
testList(doubleQueue,"doble precision");

return 0;
}
« Última modificación: 7 Enero 2019, 14:47 pm por berbash116 » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: ingresar datos a lista
« Respuesta #5 en: 7 Enero 2019, 15:16 pm »

Aquí tienes unos cuantos líos y cosas que no están bien entendidas...
Lo primero las clases y estructuras es mejor que las declares fuera de ninguna otra función. Es decir, antes de la función <testList()>.

Y ahora voy a intentar explicarte la idea de crear esa estructura. Si quieres hacer una lista de valores en forma polar, para no meter por un lado el módulo y por otro el ángulo, lo que se hace es un objeto que engloba ambos, es decir, en vez de tener dos variables de tipo <double> (modulo y angulo), se tiene una variable de tipo <polar> y esa variable por dentro lleva guardados tanto el módulo como el ángulo para que no guardarlos por ahí sueltos.
Entonces la lista tiene que ser de tipo <polar>, no de tipo <int> ni <double>.

Tú has creado una variable que creo que piensas que es de tipo <polar> pero no es así. Esa es una variable que es de tipo <int> o <double> según el caso y que se llama polar. Nada que ver con lo que quieres hacer. Para crear una variable de tipo polar y guardar valores dentro es así:
Código
  1. polar variable_polar;
  2. variable_polar.modulo = // lo que sea;
  3. variable_polar.angulo = // lo que sea;

Una vez que tengas esa variable de tipo <polar> con sus datos actualizados entonces es cuando ya puedes meterlo en la lista. Es decir, meter tu variable de tipo <polar> en tu lista de tipo <polar>.

Ahora vamos al <case 2:>:
Parece que quieres hacer una cola <queue> usando una lista. Si usas el método para sacar el elemento del frente, no necesita ningún parámetro, el elemento del frente sólo es uno, no hay otro. Si sacas el elemento de la cola ya no existe, entonces si quieres mostrarlo tienes que guardarlo en algún sitio. O lo que se suele hacer es mostrar primero el elemento que hay al frente de la cola y cuando ya lo has mostrado, lo sacas de esta. Estás usando continuamente la variable llamada <polar> que no pinta nada.

Y ya para terminar te recomiendo que hagas un <default> en el <switch> por si introduces un número que no sea {1,2,3} porque si es 1 o 2 haces lo que que has implementado, si es 3 acaba, pero si alguien introduce 4??

Creo que tienes un lío de conceptos y te recomiendo aclarar eso antes de seguir con programas mayores... Suerte :-X
En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Manejar archivo .txt desde java (ingresar datos, modificar datos, buscar datos y
Java
chuystoty 9 106,468 Último mensaje 20 Mayo 2012, 06:13 am
por ELMED
Ingresar y Mostrar Datos VB6
Programación Visual Basic
do-while1 2 2,124 Último mensaje 20 Noviembre 2012, 04:49 am
por do-while1
problemas al ingresar datos con php « 1 2 »
PHP
::: Devil ::: 16 7,685 Último mensaje 5 Septiembre 2014, 16:20 pm
por #!drvy
Crear lista HTML(formulario) con datos de base de datos (Oracle)
Desarrollo Web
nelbored 1 3,352 Último mensaje 15 Mayo 2017, 16:42 pm
por dato000
Problemas con Vb6 al ingresar datos
Programación Visual Basic
Aeros 2 1,771 Último mensaje 4 Noviembre 2018, 00:13 am
por Aeros
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines