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

#391
Cita de: CalgaryCorpus en  7 Diciembre 2018, 02:34 AM
crear una funcion que reciba el string a mostrar y que internamente haga el cout, el fgets o gets y el fflush.
Me gusta la idea pero el cout no es para funciones y no estaria bien ya que los mensajes que para pedir al usuario el dato son diferentes aplicare igual la "funcion", me quedo mejor y mas compacto, gracias  ;-)
Código (cpp) [Seleccionar]
void nueva_cadena(tcad &cadena)
{
fflush(stdin);
gets(cadena);
fflush(stdin);
}
#392
Hola a todos, miren estaba repasando un poco de lo que vi en Estructura de Datos y rehaciendo todo de nuevo y me encuentro que este modulo llamado crear_nodo(nodo nuevo); le pide al usuario ingresar enteros y cadenas y yo habia utilizado el gets(cadena); y la funcion fflush(stdin); para limpiar el buffer el punto es que no me gusto para nada colocar el fflush(stdin); antes y despues de leer una cadena con gets(cadena); si alguien sabe de alguna forma mas estetica me ayuda porfis?
Código (cpp) [Seleccionar]
#include <iostream>
#include <stdlib.h>
#include <string.h>

using namespace std;

const int MAX=32;
typedef char tcad[MAX];
typedef struct tfecha{
int dia;
int mes;
int anyo;
};
typedef struct tdomicilio{
tcad calle;
int numero;
tcad barrio;
tcad localidad;
};
typedef struct tvehiculo{
tcad marca;
tcad modelo;
tcad patente;
};
typedef struct thorario{
tcad entrada;
tcad salida;
};
typedef struct tchofer{
int legajo;
tcad apellido;
tcad nombre;
int DNI;
tfecha fecha_nacimiento;
tdomicilio domicilio;
tvehiculo vehiculo_asignado;
thorario horario_trabajo;
int horas_extras;
};
typedef struct tnodo *pnodo;
typedef struct tnodo{
tchofer dato;
pnodo sig;
};

void iniciar_lista(pnodo &lista);
void crear_nodo(pnodo &nuevo);
void agregar_final(pnodo &lista, pnodo nuevo);
void listar_choferes(pnodo lista, tcad buscado);
void listar_chofer_horas_extras(pnodo lista);
void nueva_cadena(tcad &cadena);

int main()
{
int opcion;
pnodo milista, nuevo;
tcad buscado;
iniciar_lista(milista);
do{
system("cls");
cout<<"1. Agregar chofer"<<endl;
cout<<"2. Listar choferes segun horario de entrada"<<endl;
cout<<"3. Listar chofer con mayor cantidad de horas extras"<<endl;
cout<<"4. Salir"<<endl;
cin>>opcion;
switch(opcion){
case 1: crear_nodo(nuevo);
if(nuevo!=NULL)
agregar_final(milista,nuevo);
break;
case 2: cout<<"Ingrese hora: ";
nueva_cadena(buscado);
listar_choferes(milista,buscado);break;
case 3: listar_chofer_horas_extras(milista);break;
case 4: cout<<"FIN DEL PROGRAMA"<<endl;break;
default: cout<<"Opcion incorrecta"<<endl;
}
system("pause");
}while(opcion!=4);
}

void iniciar_lista(pnodo &lista)
{
lista=NULL;
}

void crear_nodo(pnodo &nuevo)
{
nuevo=new tnodo;
if(nuevo!=NULL){
cout<<"Ingrese datos personales"<<endl;
cout<<"Legajo: ";
cin>>nuevo->dato.legajo;
cout<<"Apellido: ";
nueva_cadena(nuevo->dato.apellido);
cout<<"Nombre: ";
nueva_cadena(nuevo->dato.nombre);
cout<<"DNI: ";
cin>>nuevo->dato.DNI;
cout<<"Fecha de nacimiento"<<endl;
cout<<"Dia: ";
cin>>nuevo->dato.fecha_nacimiento.dia;
cout<<"Mes: ";
cin>>nuevo->dato.fecha_nacimiento.mes;
cout<<"Año: ";
cin>>nuevo->dato.fecha_nacimiento.anyo;
cout<<"Domicilio"<<endl;
cout<<"Calle: ";
nueva_cadena(nuevo->dato.domicilio.calle);
cout<<"Numero: ";
cin>>nuevo->dato.domicilio.numero;
cout<<"Barrio: ";
nueva_cadena(nuevo->dato.domicilio.barrio);
cout<<"Localidad: ";
nueva_cadena(nuevo->dato.domicilio.localidad);
cout<<"Vehiculo asignado"<<endl;
cout<<"Marca: ";
nueva_cadena(nuevo->dato.vehiculo_asignado.marca);
cout<<"Modelo: ";
nueva_cadena(nuevo->dato.vehiculo_asignado.modelo);
cout<<"Patente: ";
nueva_cadena(nuevo->dato.vehiculo_asignado.patente);
cout<<"Horario entrada: ";
nueva_cadena(nuevo->dato.horario_trabajo.entrada);
cout<<"Horario salida: ";
nueva_cadena(nuevo->dato.horario_trabajo.salida);
cout<<"Horas extras: ";
cin>>nuevo->dato.horas_extras;
nuevo->sig=NULL;
}
else
cout<<"MEMORIA INSUFICIENTE"<<endl;
}

void agregar_final(pnodo &lista, pnodo nuevo)
{
pnodo i;
if(lista==NULL)
lista=nuevo;
else{
for(i=lista;i->sig!=NULL;i=i->sig);
i->sig=nuevo;
}
}

void listar_choferes(pnodo lista, tcad buscado)
{
int cantidad=0;
pnodo i;
if(lista!=NULL){
for(i=lista;i!=NULL;i=i->sig){
if(strcmp(i->dato.horario_trabajo.entrada,buscado)==0){
cout<<"Chofer"<<endl;
cout<<"Nombre: "<<i->dato.nombre<<endl;
cout<<"Apellido: "<<i->dato.apellido<<endl;
cout<<"Patente de vehiculo asignado: "<<i->dato.vehiculo_asignado.patente<<endl<<endl;
cantidad++;
}
}
cout<<"Cantidad de choferes: "<<cantidad<<endl;
}
else
cout<<"LISTA VACIA"<<endl;
}

void listar_chofer_horas_extras(pnodo lista)
{
pnodo i, chofer;
if(lista!=NULL){
chofer=lista;
for(i=lista;i!=NULL;i=i->sig){
if(i->dato.horas_extras>chofer->dato.horas_extras)
chofer=i;
}
cout<<"Chofer con mayor cantidad de horas extras"<<endl;
cout<<"Nombre: "<<chofer->dato.nombre<<endl;
cout<<"Apellido: "<<chofer->dato.apellido<<endl;
cout<<"DNI: "<<chofer->dato.DNI<<endl;
cout<<"Horas extras: "<<chofer->dato.horas_extras<<endl;
}
else
cout<<"LISTA VACIA"<<endl;
}

void nueva_cadena(tcad &cadena)
{
fflush(stdin);
gets(cadena);
fflush(stdin);
}
#393
Programación C/C++ / liberar memoria(Resuelto)
6 Diciembre 2018, 18:51 PM
Resuleto!
Código (cpp) [Seleccionar]
//Definicion de la estructura lista
typedef struct tnodo *pnodo;
typedef struct tnodo{
char dato;
pnodo sig;
};
typedef struct tlista{
pnodo inicio;
pnodo final;
};

void liberar_memoria(tlista &lista)
{
pnodo eliminado;
while(lista.inicio!=NULL){
eliminado=lista.inicio;
lista.inicio=eliminado->sig;
eliminado->sig=NULL;
delete(eliminado);
}
}

;-)
#394
Programación C/C++ / Re: POO
4 Diciembre 2018, 03:19 AM
Creo que el "&" esta demas tenia sueño cuando hice este ejercicio
#395
Programación C/C++ / Re: POO
4 Diciembre 2018, 02:07 AM
Cita de: AlbertoBSD en  4 Diciembre 2018, 01:01 AM
Para iniciar esta bien, pero que no te convence de la potencia?

Saludos!
Esto
Código (cpp) [Seleccionar]
(const racional &R
Me marié, ya no se que hace este metodo, no se que objeto es el que modifica
#396
Programación C/C++ / POO
4 Diciembre 2018, 00:25 AM
Hola estuve dos dias estudiando POO y vine para corroborar si aprendí o no POO, despues sigo pasando programas para que me den sus opiniones
Tengo la clase Racional el fichero racional.h
Código (cpp) [Seleccionar]
#ifndef RACIONAL_H
#define RACIONAL_H

#include <iostream>
#include <math.h>

using namespace std;

class racional{
public:
racional(int a2=0, int b2=0) : num(a2), den(b2) {}

void guardar(int a2, int b2);
void leer(int &a2, int &b2);

void suma(const racional, const racional);
void resta(const racional, const racional);
void potencia(const racional &, int valor);

float decimal(float d);

void mostrar();
private:
int num, den;
};

void racional::guardar(int a2, int b2)
{
num=a2;
den=b2;
}

void racional::leer(int &a2, int &b2)
{
a2=num;
b2=den;
}

void racional::suma(const racional Uno, const racional Dos)
{
num=Uno.num*Dos.den+Uno.den*Dos.num;
den=Uno.den*Dos.den;
}

void racional::resta(const racional Uno, const racional Dos)
{
num=Uno.num*Dos.den-Uno.den*Dos.num;
den=Uno.den*Dos.den;
}

void racional::potencia(const racional &R, int valor)
{
num=pow(R.num,valor);
den=pow(R.den,valor);
}

float racional::decimal(float d)
{
d=float(num)/float(den);
return d;
}

void racional::mostrar()
{
cout<<"Racional: "<<num<<"/"<<den<<endl;
}
#endif

Y el main
Código (cpp) [Seleccionar]
#include "racional.h"

int main()
{
racional uno(3,4), dos(1,4), tres;
float decimal;

tres.suma(uno,dos);
cout<<"Suma ";tres.mostrar();

tres.resta(uno,dos);
cout<<"Resta ";tres.mostrar();

tres.potencia(uno,3);
cout<<"Potencia ";tres.mostrar();

cout<<"Decimal: "<<uno.decimal(decimal)<<endl;

system("pause");
return 0;
}

A mi hay cositas que no me convence como el metodo potencia de la clase racional
#397
Bases de Datos / Re: Defina el termino relacion
29 Noviembre 2018, 03:25 AM
Gracias chicos ya aprobé la materia  :laugh:
#398
Programación C/C++ / Re: Resolver C++
29 Noviembre 2018, 03:16 AM
Cita de: AlbertoBSD en 29 Noviembre 2018, 01:05 AM
Es el Operador Ternario, es basicamente un mini if

char C = 'A';
printf("%s\n",(C == 'A')? "Verdadero": "Falso");


Se utiliza para realizar ciertas evaluaciones rapidamente.

De manera que te devuelve el primer valor el que esta antes del ":" si la evaluacion fue verdadera, encaso contrareo te devuelve lo que esta despues del ":"

Otro ejemplo seria:


char C = 'A',otro;
otro = (C == 'A') ? 'q' : 'r' ;



Saludos
Ahh claro es por esto (int  i=1;  i++<10;  i++)  que i nunca va a valer 5 por lo tanto nunca se mostrara "Cinco" por pantalla, solamente el valor de i ya que i no cumple con esa condicion, gracias Alberto, ya lo entendí  :laugh:
#399
Programación C/C++ / Re: Resolver C++
29 Noviembre 2018, 00:57 AM
La verdad que es medio raro eso, se la respuesta pero no se como es que el signo ? funciona en ese fragmento de codigo alguien sabe?
Por cierto una pista de la respuesta son numeros del mismo tipo... ;-)
#400
Despues lo aplico Alberto, ahora no hay tiempo  ;-)
<3