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

#381
Cita de: CalgaryCorpus en  7 Diciembre 2018, 05:53 AM
Dices sentencias pero no das argumentas.
Que es lo que "no va a funcionar" y por que dices que no va a funcionar?





Perdon, tienes razon me confundí, claro que si va funcionar pero no de la manera que yo quiero
#382
Cita de: YreX-DwX en 12 Diciembre 2018, 05:24 AM
Creo que el segundo código no funciona en una lista vacía porque si esta está vacía la inicialización del <for> sería <i = NULL> y en la condición del <for> (i->sig != NULL) te daría un problema ya que no existe un puntero a siguiente.
En cambio en el primer código con el <if> haces una excepción para cuando esto ocurra. :-X
Muchas gracias, tambien pensé lo mismo pero queria estar segura  ;-)
#383
Código (cpp) [Seleccionar]
//Alguien me dice porque este codigo funciona asi y..
bool alguna_funcion(estructura a, estructura b)
{
if(condiciones){
if(condiciones)
if(condiciones)
if(condiciones)
return true;
}
else
return false;
}
// ... no asi? por favor :(
bool alguna_funcion(estructura a, estructura b)
{
if(condiciones)
if(condiciones)
if(condiciones)
if(condiciones)
return true;
else
return false;
}
  :huh:
#384
Código (cpp) [Seleccionar]
/Definicion de la estructura lista doble
typedef struct tnodo *pnodo;
typedef struct tnodo{
int dato;
pnodo sig;
pnodo ant;
};
typedef struct tlista{
pnodo inicio;
pnodo final;
};
//Porque se libera asi la memoria
void liberar_lista(tlista &lista)
{
pnodo borrado;
while(lista.inicio!=NULL){
borrado=lista.inicio;
lista.inicio=borrado->sig;
borrado->sig=NULL;
borrado->ant=NULL;
delete(borrado);
}
}
//Y no asi??
void liberar_lista(tlista &lista)
{
pnodo borrado;
while(lista.inicio!=NULL){
borrado=lista.inicio;
lista.inicio=borrado->sig;
lista.inicio->ant=NULL;
borrado->sig=NULL;
delete(borrado);
}
}
:huh:
#385
Código (cpp) [Seleccionar]
//Porque el codigo funciona asi en listas vacias o no?
void ordenar(tlista &lista)
{
puntero i, j;
estructura cambio;
bool ordenado=true;
if(lista.inicio!=NULL){
while(ordenado){
ordenado=false;
for(i=lista.inicio;i->sig!=NULL;i=i->sig){
j=i->sig;
if(i->dato>j->dato){
cambio=i->dato;
i->dato=j->dato;
j->dato=cambio;
ordenado=true;
}
}
}
}
}
//y este codigo solo funciona en listas no vacias, me perdí
void ordenar(tlista &lista)
{
puntero i, j;
estructura cambio;
bool ordenado=true;
while(ordenado){
ordenado=false;
for(i=lista.inicio;i->sig!=NULL;i=i->sig){
j=i->sig;
if(i->dato>j->dato){
cambio=i->dato;
i->dato=j->dato;
j->dato=cambio;
ordenado=true;
}
}
}
}
#386
Hola, perdon que venga a hacer spam pero queria saber si este TAD Fecha esta bien/se le puede mejorar las operaciones que tiene, me gusto la forma en la que AlbertoBSB validó  la fecha con esa función ;)
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>

using namespace std;

typedef struct tfecha{
int dia;
int mes;
int anyo;
};

void crear_fecha(tfecha &fecha);
bool validar_fecha(tfecha fecha);
void igualdad_fechas(tfecha a, tfecha b);
void comparar_fechas(tfecha a, tfecha b);
bool bisiesto(tfecha fecha);
void dias(tfecha fecha);
void mostrar_mes(tfecha fecha);
void mostrar_fecha(tfecha fecha);

int main()
{
tfecha a, b;
crear_fecha(a);
crear_fecha(b);
igualdad_fechas(a,b);
comparar_fechas(a,b);
if(bisiesto(a)==true)
cout<<"Año bisiesto"<<endl;
else
cout<<"Año normal"<<endl;
dias(a);
mostrar_mes(a);
system("pause");
}

void crear_fecha(tfecha &fecha)
{
do{
cout<<"Ingrese dia: ";
cin>>fecha.dia;
cout<<"Ingrese mes: ";
cin>>fecha.mes;
cout<<"Ingrese año: ";
cin>>fecha.anyo;
}while(validar_fecha(fecha)==false);
mostrar_fecha(fecha);
}

bool validar_fecha(tfecha fecha)
{
int dias_mes[12]={31,28,31,30,31,30,31,31,30,31,30,31};
bool valido=true;
if(bisiesto(fecha)==true)
dias_mes[1]=29;
if(fecha.mes<1 || fecha.mes>12 || fecha.dia<1 || fecha.dia>dias_mes[fecha.mes-1])
valido=false;
return valido;
}

void igualdad_fechas(tfecha a, tfecha b)
{
if(a.dia==b.dia && a.mes==b.mes && a.anyo==b.anyo)
cout<<"Son iguales"<<endl;
else
cout<<"Son diferentes"<<endl;
}

void comparar_fechas(tfecha a, tfecha b)
{
if(a.anyo>b.anyo)
cout<<"Es mayor"<<endl;
else{
if(a.anyo<b.anyo)
cout<<"Es menor"<<endl;
else{
if(a.mes>b.mes)
cout<<"Es mayor"<<endl;
else{
if(a.mes<b.mes)
cout<<"Es menor"<<endl;
else{
if(a.dia>b.dia)
cout<<"Es mayor"<<endl;
else
cout<<"Son iguales"<<endl;
}
}
}
}
}

bool bisiesto(tfecha fecha)
{
return (fecha.anyo%4==0 && (fecha.anyo%100!=0 || fecha.anyo%400==0));
}

void dias(tfecha fecha)
{
//Tomar en cuenta que se toma los dias que pasaron desde el 1 de Enero.
//suma_dias[11]={...]; es la suma de dias entre los meses anteriores al mismo.
int cantidad_dias=-1, suma_dias[11]={31,59,90,120,151,181,212,243,273,304,334};//xd
if(fecha.mes<2)
cantidad_dias+=fecha.dia;
else
cantidad_dias+=fecha.dia+suma_dias[fecha.mes-2];
if(fecha.mes>2 && bisiesto(fecha)==true)
cantidad_dias++;
cout<<"Cantidad de dias desde el 1 de Enero: "<<cantidad_dias<<endl;
}

void mostrar_mes(tfecha fecha)
{
switch(fecha.mes){
case 1: cout<<"Enero"<<endl;break;
case 2: cout<<"Febrero"<<endl;break;
case 3: cout<<"Marzo"<<endl;break;
case 4: cout<<"Abril"<<endl;break;
case 5: cout<<"Mayo"<<endl;break;
case 6: cout<<"Junio"<<endl;break;
case 7: cout<<"Julio"<<endl;break;
case 8: cout<<"Agosto"<<endl;break;
case 9: cout<<"Semptiembre"<<endl;break;
case 10: cout<<"Octubre"<<endl;break;
case 11: cout<<"Noviembre"<<endl;break;
case 12: cout<<"Diciembre"<<endl;break;
}
}

void mostrar_fecha(tfecha fecha)
{
cout<<"Fecha: "<<fecha.dia<<"/"<<fecha.mes<<"/"<<fecha.anyo<<endl;
}

#387
Hola muchacho, puedes usar esta funcion que acabo de hacer recien para ti  ;-)
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>

typedef struct tfecha{
int dia;
int mes;
int anyo;
};

bool validar_fecha(tfecha fecha)
{
switch(fecha.mes){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if(fecha.dia>0 && fecha.dia<32)
return true;
else
return false;
break;
case 4: case 6: case 9: case 11:
if(fecha.dia>0 && fecha.dia<31)
return true;
else
return false;
break;
case 2: if(fecha.anyo%4==0){
if(fecha.dia>0 && fecha.dia<30)
return true;
else
return false;
}
else{
if(fecha.dia>0 && fecha.dia<29)
return true;
else
return false;
}
break;
default: return false;
}
}

int main()
{
tfecha fecha;
do{
cout<<"Ingrese dia: ";
cin>>fecha.dia;
cout<<"Ingrese mes: ";
cin>>fecha.mes;
cout<<"Ingrese año: ";
cin>>fecha.anyo;
}while(validar_fecha(fecha)==false);
cout<<"Fecha: "<<fecha.dia<<"/"<<fecha.mes<<"/"<<fecha.anyo<<endl;
system("pause");
}

PD: No se hacen tareas, esto es solo un mini ejemplo
#388
GNU/Linux / Re: 6 kB de RAM?
8 Diciembre 2018, 06:32 AM
Hola es con #free -h donde dice Swap:          2.0G
#389
Java / IDE para programar en Java
7 Diciembre 2018, 22:33 PM
Hola a todos, que IDE me recomiendan para programar/desarrollar en Java que no sea NetBeans porque ya lo tengo y no me gusta, gracias.
#390
Cita de: CalgaryCorpus en  7 Diciembre 2018, 04:26 AM
El cout no es para funciones?
No se que quisiste decir.
Algo así quise decir yo.
Código (cpp) [Seleccionar]
void pedir(char *mensaje) {
   // Posiblemente algunas instrucciones antes
   cout << mensaje;
   // Otras instrucciones antes
}


Instrucciones antes o después pueden ser los fflush, etc.
ahh procedimientos si, pero igual no va funcionar