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 - Beginner Web

#331
Bueno, yo tengo una pagina web donde enseño programacion y otras cosas, subo fotos o pongo mi portada y cosas asi y no se ven de buena calidad como en otras paginas, las fotos las hago yo en word, excel, paint, photosop o las saco con el faststone, en algun lugar lei/escuche sobre imagenes vectoriales puede ser? Me ayudan? :xD
#332
Programación C/C++ / Recursion en bst
12 Enero 2019, 01:59 AM
Hola, se puede sumar los valores de las ramas interiores de un arbol binario de busqueda? Quiero decir que sume todos los nodos excepo la raiz y las hojas, me parece que con recursividad no se puede pero si alguien sabe como hacerlo me lo hace saber, esto tengo hecho, me suma la raiz y no quiero eso  >:D
Código (cpp) [Seleccionar]
int sumar(pnodo a)
{
int suma=0;
if(a!=NULL){
suma=sumar(a->izq)+sumar(a->der);
if(a->izq!=NULL || a->der!=NULL)
suma+=a->dato;
}
return suma;
}

Y la funcion iterativa que use para hacer esta operación la hice de esta forma
Código (cpp) [Seleccionar]
int sumar(pnodo a)
{
tpila p;
int suma=0;
pnodo extraido;
if(a!=NULL){
init_stack(p);
push_stack(p,a);
extraido=pop_stack(p);
if(extraido->izq!=NULL)
push_stack(p,extraido->izq);
if(extraido->der!=NULL)
push_stack(p,extraido->der);
while(!empty_stack(p)){
extraido=pop_stack(p);
if(extraido->izq!=NULL || extraido->der!=NULL)
suma+=extraido->dato;
if(extraido->izq!=NULL)
push_stack(p,extraido->izq);
if(extraido->der!=NULL)
push_stack(p,extraido->der);
}
}
return suma;
}
#333
Código (cpp) [Seleccionar]
int main()
{
char palabra[]="salchicha", auxiliar[32];
int i, j=0;
for(i=0;i<strlen(palabra);i++){
if(i%2==0)
cout<<palabra[i];
else{
auxiliar[j]=palabra[i];
j++;
}
}
auxiliar[j]='\0';
cout<<" "<<auxiliar<<endl;
system("pause");
}
#334
Programación C/C++ / Re: ayuda matrices
10 Enero 2019, 07:32 AM
No porque no estas cargando en el lugar adecuado
Aca esta uno de tus errores
for(int i=1;i<4;i++)
En C++ la primera posicion es 0
Por lo tanto tendrias ue empezar a recorrer desde 0
Código (cpp) [Seleccionar]
for(int i=0;i<3;i++)
   for(int j=0;j<3;j++)

otra, debesposicionarte en el lugar exacto de la matrix para colocar el dato este es tu error game[j]=a++;
Seria
Código (cpp) [Seleccionar]
game[i][j]=a++;
Y para mostrar tambien
cout << game[j] << " "
Código (cpp) [Seleccionar]
cout << game[i][j] << " "

asi son las pociciones de las matrices en C++
0,0  0,1  0,2
1,0  1,1  1,2
2,0  2,1  2,2
#335
Programación C/C++ / Grafos
10 Enero 2019, 06:00 AM
Hola, miren queria saber si estan bien definida mi estructura de datos, las cosas que me piden son medio raras para mi no conozco de satelites pro ejemplo  :huh:

48) Un equipo de programadores de la empresa DigitalHackers está desarrollando la aplicación MyAppWay para asistir a viajeros y turistas que quieran conocer Argentina. La aplicación será capaz de formular un plan de viaje para visitar ciudades y sitios históricos. Para ello, MyAppWay mantendrá registro de la siguiente información: ciudades (localidad, provincia), lista de sitios turísticos de la ciudad (nombre, dirección), plaza hotelera (cantidad de hoteles y cantidad de hostales), distancia entre ciudades, medios de transporte disponibles (tipo y costo). En virtud de ello, se pide:
a) defina la estructura de datos que permita representar la situación planteada y
b) desarrolle el algoritmo que inicialice la estructura definida.

Código (cpp) [Seleccionar]

typedef struct tcad[32];
typedef struct medio{
tcad tipo;
float costo;
};
typedef struct destino{
tcad localidad;
tcad provincia;
};
typedef struct lugares{
tcad nombre;
tcad direccion;
};
typedef lugares sitios[20];
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice destino;
float distancia;
medio transporte;
parco sig_arco;
};
typedef struct vertice{
destino ciudad;
sitios turisticos;
int plaza_hotelera[2];//Cantidad de hoteles y hostales
pvertice sig_vertice;
parco lista_ciudades;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}

49) La empresa de transporte KillerBus realiza viajes entre distintos puntos del país ofreciendo 3 tipos de servicio a sus pasajeros: suit, cama y semicama. Para gestionar los viajes que realiza la empresa se registra la siguiente información: ciudad origen, ciudad destino, distancia entre las ciudades origen y destino, duración del viaje (horas), servicio (tipo y costo), consumo de combustible y número de estaciones de servicio en ruta. En virtud de ello, se pide:
a) defina la estructura de datos que permita representar el servicio de KillerBus y
b) desarrolle el algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef struct tcad[32];
typedef struct tipo{
tcad tipo_servicio;
float costo;
};
typedef struct tviaje *pviaje;
typedef struct tdestino *pciudad;
typedef struct tviaje{
pciudad destino;
tipo servicio;
float distancia;
int duracion;
float combustible;
int cantidad_estaciones;
pviaje sig;
};
typedef struct tdestino{
tcad ciudad;
pciudad sig;
pviaje lista_destinos;
};

void iniciar_grafo(pciudad &grafo)
{
grafo=NULL;
}


50) Un instituto de investigación meteorológica, mediante una red de satélites geoestacionarios, recopila información acerca de cambios climáticos alrededor de todo el mundo. Cada satélite tiene un área de cobertura (KM2), posición geoestacionaria (altura, latitud y longitud), nivel de energía y vida útil (años). Asimismo debe tenerse en cuenta la distancia entre satélites y la velocidad de transferencia de información (Gigabytes por segundo) entre ellos. Teniendo en cuenta esto, se le solicita:
a) defina la estructura de datos que permita modelar la situación planteada y
b) diseñe un algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef struct tcad[32];
typedef struct posicion{
int altura;
int latitud[2];
int longitud[2];
};
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice destino;
long int transferencia_datos;
parco sig_arco;
};
typedef struct vertice{
pvertice sig;
long int cobertura;
posicion geoestacionaria;
int nivel_energia;
int vida_util;
parco lista_satelites;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}


51) En 2050 se prevé la construcción del sistema de transporte MetroSalta para comunicar distintos puntos de la ciudad de Salta. Cada uno de estos puntos contará con una estación para el arribo y abordaje de pasajeros. El sistema informático que controlará esta red utilizará la siguiente información: nombre de la estación, ubicación (dirección, barrio), distancia entre estaciones, cantidad de plataformas, cantidad de boleterías, duración del viaje y horario de atención al público (hora de inicio, hora de finalización). Considerando esto:
a) defina la estructura de datos más adecuada para el problema y
b) desarrolle el algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef struct tcad[32];
typedef struct lugar{
tcad direccion;
tcad barrio;
};
typedef struct horario{
int horas;
int minutos;
};
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice destino;
float distancia;
int cantidad_plataformas;
int cantidad_boleterias;
int duracion_viaje;
parco sig_estacion;
};
typedef struct vertice{
pvertice sig;
tcad nombre_estacion;
lugar ubicacion;
horario atencion_inicio;
horario atencion_fin;
parco lista_estaciones;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}

52) FaseBoolstd es una red social que permite a sus usuarios mantenerse en contacto, realizar publicaciones, enviar mensajes y compartir archivos. Para ello, el sistema informático que da soporte a esta red almacena: información del perfil (nombre, apellido, nombre de usuario, fecha de creación, lugar de residencia, ocupación), número de contactos, número de comentarios a otro usuario, número de mensajes enviados a otro usuario, número de archivos compartidos a otro usuario, número de "me gusta" a los comentarios/fotos de otro usuario, tipo de relación (amigos, familia, novio/a). Teniendo en cuenta esto, se le solicita:
a) defina la estructura de datos que permita modelar la situación planteada y
b) diseñe un algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef char tcad[32];
typedef struct fecha{
int dia;
int mes;
int anyo;
};
typedef struct lugar{
tcad calle;
int numero;
tcad barrio;
tcad provincia;
tcad nacionalidad;
};
typedef struct perfil{
tcad nombre;
tcad apellido;
tcad nombre_usuario;
fecha creacion;
lugar residencia;
int numero_contactos;
};
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice amigo_destino;
int comentarios;
int mensajes;
int archivos_compartidos;
int megusta;
tcad tipo_relacion;
parco sig_amigo;};

typedef struct vertice{
perfil usuario;
pvertice sig_usuario;
parco lista_amigos;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}

53) El sistema que controla el tráfico vehicular, entre otras tareas, se ocupa de monitorizar y sincronizar los semáforos distribuidos en toda la ciudad. Para verificar el correcto funcionamiento de los semáforos así como su sincronización respecto a otros semáforos cercanos, el sistema cuenta con sensores integrados. Para llevar a cabo esta tarea un sistema informático registra lo siguiente: número de semáforo, estado (en funcionamiento o no), sincronización (sincronizado o no), distancia entre semáforos y ubicación (calle, altura (número), barrio). En virtud de ello, se pide:
a) defina la estructura de datos más adecuada para el problema y
b) desarrolle el algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef char tcad[32];
typedef struct lugar{
tcad calle;
int altura_numero;
tcad barrio;
};
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice destino;
parco sig_semaforo;
};
typedef struct vertice{
int numero_semaforo;
bool funcionando;
bool sincronizado;
lugar ubicacion;
pvertice sig;
parco lista_semaforos;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}

54) Un sistema de redes de computadoras está conformado por un conjunto de servidores que proporcionan acceso a estaciones de trabajo (computadoras). Cada servidor presenta diferentes características físicas y lógicas (id-servidor, dominio, microprocesador, memoria, espacio en disco, Nº de estaciones de trabajo que gestiona) y la conexión entre servidores puede realizarse por cable coaxil, fibra óptica o comunicación inalámbrica (debe existir al menos uno). El costo y velocidad asociado a las conexiones se determina en base a la distancia entre servidores y el tipo de medio utilizado. En virtud de ello, se pide:
a) defina la estructura de datos más adecuada para el problema y
b) desarrolle el algoritmo que inicialice la estructura definida.
Código (cpp) [Seleccionar]

typedef char tcad[32];
typedef struct caracteristicas{
tcad id;
tcad dominio;
tcad procesador;
int memoria;
int espacio_disco;
int numero_estaciones;
};
typedef struct tmedio{
tcad tipo_conexion;
bool existe;
};
typedef tmedio medios[3];
typedef struct arco *parco;
typedef struct vertice *pvertice;
typedef struct arco{
pvertice destino;
medios conexion;
parco sig_servidor;
};
typedef struct vertice{
caracteristicas servidor;
pvertice sig;
parco lista_servidores;
};

void iniciar_grafo(pvertice &grafo)
{
grafo=NULL;
}

:huh:
#336
Cita de: CalgaryCorpus en  6 Enero 2019, 16:24 PM
No pases variable alguna, solo devuelve el valor que te lo interesa.

Tipicamente será

condicion = ...  // Chequear dato en nodo actual

return condicion + f(nodo izquierdo) + f(nodo derecho)

Posiblente el modo null será especial.
Ya he logrado resolverlos gracias Señor CalgaryCorpus  ;-)
Código (cpp) [Seleccionar]
int vocales(arbol a)
{
int contador=0;
if(a!=NULL){
contador=vocales(a->izq)+vocales(a->der);
switch(a->dato){
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': contador++;
}
}
return contador;
}

int cantidad_nodos(arbol a)
{
int contador=0;
if(a!=NULL){
contador=cantidad_nodos(a->izq)+cantidad_nodos(a->der);
if((a->izq!=NULL && a->der==NULL) || (a->izq==NULL && a->der!=NULL))
contador++;
}
return contador;
}

Asi queda mas elegante que estar haciendo un procedimiento recursivo :)
#337
Hola queria saber como puedo pasar los siguientes "prodecimientos" a funciones, en el primer algoritmo se modifica el valor de una variable pasada por referencia el cual en el main me dice la cantidad exacta de vocales de un arbol binario de busqueda

Código (cpp) [Seleccionar]
void contarNodosQueContenganVocales(pnodo arbol, int &vocales)
{
if(arbol!=NULL){
switch(arbol->dato){
case 'A':
case 'E':
case 'I':
case 'O':
case 'U': vocales++;
}
contarNodosQueContenganVocales(arbol->izq,vocales);
contarNodosQueContenganVocales(arbol->der,vocales);
}
}


Y este  otro procedimiento cuenta la cantidad de nodos que tienen un solo hijito
Código (cpp) [Seleccionar]
void cantidad_nodos(arbol a, int &c)
{
if(a!=NULL){
if((a->izq==NULL && a->der!=NULL) || (a->izq!=NULL && a->der==NULL))
c++;
cantidad_nodos(a->izq,c);
cantidad_nodos(a->der,c);
}
}

:laugh:

uno por uno MAFUS
#338
Pues la imprimes y ya, porque tanta vuelta?  :xD
#339
Programación C/C++ / Re: Ciclos anidados
6 Enero 2019, 00:06 AM
Algo asi?
Código (cpp) [Seleccionar]
#include <iostream>

using namespace std;

main()
{
int k=0, l=1;
for(int i=0; i<1; i++){
for (int j=0; j<=99999; j++){
cout<<j<<","<<i+l<<endl;
    k++;
    if(k==2){
    l+=1;
    k=0;
    }
}
   }
}
  :huh:
#340
Cita de: CalgaryCorpus en  5 Enero 2019, 13:46 PM
En el caso del ABB todas las veces (o la mayoría) que ingresas a la función haces 2 comparaciones, contra null primero y luego si el de la derecha es null. Dada esta última, no es posible que las llamadas recursivas se encuentren con punteros null.

Puedes ahorrarte la primera comparación. Un truco es tener 2 funciones, una que hace la comparación contra null que no es recursiva y que invoca a otra que si es recursiva, pero que no compara contra null.




Ay verdad si cierto!
Entonces me quedaria asi en el main:
Código (cpp) [Seleccionar]

case 9999: if(arbol==NULL)
cout<<"Arbol vacio"<<endl;
else
cout<<"Maximo: "<<maximo(a)<<endl;
break;

Y el algoritmo recursivo asi:
Código (cpp) [Seleccionar]
char maximo(pnodo a)
{
if(a->der==NULL)
return a->dato;
else
return maximo(a->der);
}

Pero voy a desistir y me voy a quedar con esto ;)
Código (cpp) [Seleccionar]
char maximo(pnodo a)
{
if(a==NULL)
return '@';
else{
if(a->der==NULL)
return a->dato;
else
return maximo(a->der);
}
}