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ú

Temas - Beginner Web

#271
Bueno aqui estuve intentando ingresar cadenas mayores a 20 y que solo guarde los primeros 20 como maximo pero no he podido hacerlo, me salta de linea por problemas en el buffer y no tengo idea de como resolverlo aqui el codigo

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdio.h>  //Librerias
#include <stdlib.h> //del C :v

using namespace std;

const int MAX=20;
typedef char tcad[20];
typedef struct{
tcad nombre;
tcad apellido;
int edad;
int DNI;
}templeado;

void cargar(templeado &empleado);
void mostrar(templeado empleado);

int main()
{
templeado EMPLEADO;
cargar(EMPLEADO);
mostrar(EMPLEADO);
system("pause");
return 0;
}

void cargar(templeado &empleado)
{
cout << "Ingrese nombre  : ";
cin.getline(empleado.nombre,MAX+1);
cout << "Ingrese apellido: ";
cin.getline(empleado.apellido,MAX+1);
cout << "Ingrese edad    : ";
cin >> empleado.edad;
fflush(stdin);
cout << "Ingrese DNI     : ";
cin >> empleado.DNI;
}
void mostrar(templeado empleado)
{
cout << "DATOS EMPLEADO" << endl;
cout << "Nombre  : " << empleado.nombre << endl;
cout << "Apellido: " << empleado.apellido << endl;
cout << "Edad    : " << empleado.edad << endl;
cout << "DNI     : " << empleado.DNI << endl;
}



Datos de entrada: Nelson growwwwwwwwwwwwwwwwwwwwww
Datos de salida: Tremendo desbordamiento

Podria hacerlo con funciones propias pero el profesor no lo quiere asi, alguna sugerencia, desde ya gracias  ;-)


#272
Queria saber si alguien me puede decir el camino mas corto para extraer cadenas empleando un arreglo de caracteres sin utilizar la clases string, esto es lo que quiero hacer pero con el tipo de dato char

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

using namespace std;

int main()
{
int opcion;
string fecha;
cout << "INGRESE UNA FECHA EN EL FORMATO DDMMAAAA: ";
getline(cin, fecha);
cout << "ELEGIR FORMATO" << endl;
cout << "1. MM/DD/AAAA" << endl;
cout << "2. DD/MM/AAAA" << endl;
cout << "3. AAAA/MM/DD" << endl;
cin >> opcion;

switch(opcion){

case 1: cout << fecha.substr(2,2) <<"/" << fecha.substr(0,2) << "/" << fecha.substr(4,4) << endl ;break;
case 2: cout << fecha.substr(0,2) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(4,4) << endl ;break;
case 3: cout << fecha.substr(4,4) <<"/" << fecha.substr(2,2) << "/" << fecha.substr(0,2) << endl ;break;
default: cout << "OPCION INCORRECTA" << endl;
}
system("pause");
return 0;
}


Esto es lo que logre, la verdad me dan mas problemas los de tipo char, en cambio con la clase string nunca tuve problemas  ;-)

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

using namespace std;

const int MAX=8;
typedef char tcad[MAX];

int main()
{
tcad fecha;
char dia[2], mes[2], año[4];
int opcion;
cout << "Ingrese un afecha en formato DD/MM/AAAA: ";
cin.getline(fecha,9,'\n');
dia[0]=fecha[0];
dia[1]=fecha[1];
mes[0]=fecha[2];
mes[1]=fecha[3];
año[0]=fecha[4];
año[1]=fecha[5];
año[2]=fecha[6];
año[3]=fecha[7];
cout << "Seleccione formato" << endl;
cout << "1. MM/DD/AAAA" << endl;
cout << "2. DD/MM/AAAA" << endl;
cout << "3. AAAA/MM/DD" << endl;
cin >> opcion;
switch(opcion){
case 1: cout << mes << "/" << dia << "/" << año << endl; break;
case 2: cout << dia << "/" << mes << "/" << año << endl; break;
case 3: cout << año << "/" << mes << "/" << dia << endl; break;
default: cout << "Opcion incorrecta" << endl;
}
system("pause");
return 0;
}


Desde ya muchas gracias, saludos  ;-)
#273
Hola a todxs queria saber si este algoritme esta recursivamente bien , y otra consulta es para que sirve , es viable el uso de fflush(stdin) en limpieza del buffer, estoy algo indecise, gracias a todxs


Código (cpp) [Seleccionar]

void como_la_realidad(int vida)
{
if(vida<=1)
cout << "Entrando en el sueño";
else
como_la_realidad(vida-1);
cout << " del sueño";
}
#274
Hola, estoy en una duda con acerca de la serie de Fibonacci, me piden ingresar un numero y que me devuelva el termino de la serie 1,1,2,3,5,8.. utilizando pilas, no se me da la idea de como lo puedo hacer respetando operaciones del TDA Pila

Código (cpp) [Seleccionar]

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

using namespace std;

const int TAMPILA=32;
typedef int contenedor[TAMPILA];
typedef struct{
contenedor datos;
int cima;
}tpila;

void fibonacci(int n);
void init_stack(tpila &pila);
void push_stack(tpila &pila, int nuevo);
bool full_stack(tpila pila);
bool empty_stack(tpila pila);
int pop_stack(tpila &pila);
int top_stack(tpila pila);

void ingreso(int n);
int main()
{
int numero;
cout << "Ingrese un numero: ";
cin >> numero;
fibonacci(numero);
system("pause");
return 0;
}


void fibonacci(int n)
{
tpila pila;
init_stack(pila);
while(n>0){
//Aca pondria mi algoritmo si tuviera uno
}

cout << "\nFibonacci: " << << endl;
}

void init_stack(tpila &pila)
{
pila.cima=-1;
}

void push_stack(tpila &pila, int nuevo)
{
if(full_stack(pila)==true){
cout << "PILA LLENA" << endl;
}
else{
pila.cima++;
pila.datos[pila.cima]=nuevo;
}
}

bool full_stack(tpila pila)
{
return pila.cima==TAMPILA-1;
}

bool empty_stack(tpila pila)
{
return pila.cima==-1;
}

int pop_stack(tpila &pila)
{
int aux;
if(empty_stack(pila)==true){
aux=-1;
}
else{
aux=pila.datos[pila.cima];
pila.cima--;
}
return aux;
}

int top_stack(tpila pila)
{
int aux;
if(empty_stack(pila)==true){
aux=-1;
}
else{
aux=pila.datos[pila.cima];
}
return aux;
}
#275
Quisiera que alguien diga como tengo que hacer para que cada vez que cometo un error o acierto una letra se vaya limpiando la pantalla con system("cls") de manera correcta y se vaya como actualizando el juego del ahorcado y no mostrando todo secuencialmente como lo hace mi programa  ;-)

Código (cpp) [Seleccionar]

#include <iostream>
#include <string.h>
#include <time.h>

using namespace std;

void inicio();
void primer_error();
void segundo_error();
void tercer_error();
void cuarto_error();
void quinto_error();
void jugar();
void rellenar(string n);
void intentos(int intento);

int main(){
int opcion;
srand(time(NULL));
do{
cout << "1. JUGAR" << endl;
cout << "2. SALIR" << endl;
cin >> opcion;
switch(opcion){
case 1: jugar(); break;
case 2: cout << "HASTA LUEGO" << endl; break;
default: cout << "OPCION INCORRECTA, Intente de nuevo" << endl;
}
}while(opcion!=2);
system("pause");
return 0;
}

void inicio()
{
cout << "**********" << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void primer_error()
{
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void segundo_error()
{
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void tercer_error()
{
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*       /|\\" << endl;
cout << "*           " << endl;
cout << "*           " << endl;
cout << "*           " << endl;
}

void cuarto_error()
{
cout << "**********" << endl;
cout << "*        |  " << endl;
cout << "*        O  " << endl;
cout << "*       /|\\" << endl;
cout << "*        A  " << endl;
cout << "*       / \\" << endl;
cout << "*           " << endl;
}

void quinto_error()
{
cout << "**********   " << endl;
cout << "*        |   " << endl;
cout << "*        O   " << endl;
cout << "*       /|\\ " << endl;
cout << "*        A   " << endl;
cout << "*       / \\ " << endl;
cout << "*            " << endl;
cout << "     PERDISTE" << endl;
}

void jugar()
{
int aleatorio;
string a="OSO", b="PAYASO", c="CUADERNO";
  aleatorio=rand()%3+1;
switch(aleatorio){
case 1: rellenar(a); break;
case 2: rellenar(b); break;
case 3: rellenar(c); break;
}
}

void rellenar(string n)
{
int contador=0, aux=0, aux2, MAX=n.length();
char letra, contenedor[MAX];
for(int i=0;i<MAX;i++){
contenedor[i]='_';
}
inicio();
while(contador<5){
aux2=0;
for(int j=0;j<MAX;j++){
cout << contenedor[j] << " ";
}
cout << endl;
cout << "Ingrese letra: ";
cin >> letra;
for(int k=0;k<MAX;k++){
if(letra==n[k] && contenedor[k]=='_'){
contenedor[k]=letra;
aux++;
break;
}
else{
aux2++;
}
}
if(aux==MAX){
cout << "GANASTE! La palabra oculta es: " << n << endl;
break;
}
if(aux2==MAX){
contador++;
intentos(contador);
}
}
}

void intentos(int intento)
{
switch(intento){
case 1: primer_error(); break;
case 2: segundo_error(); break;
case 3: tercer_error(); break;
case 4: cuarto_error(); break;
case 5: quinto_error(); break;
}
}


#276
Necesito ayuda con la creacion de un TDA Simple,
El problema dice asi;
Definir el TDA Pixel con las siguientes operaciones;
*Crear pixel: Dado 3 valores enteros devuelve un pixel
*Validar Pixel: Dado un pixel, determinar si sus valores son correctos. Considere que los puntos asumen valores solo en el rango[0,255]
*Mostrar pixel: Muestra el valor de sus componentes
*Crear blanco: Dado un pixel genera a sus  puntos los valores apropiados para generar blanco
*Crear negro: Dado un pixel genera a sus  puntos los valores apropiados para generar negro

Implementar el TDA PIxel utilizando a) arreglos, b)registros.

No entiendo bien como y que es lo que tengo que hacer si alguien me ayuda, estare muy agradecido, cualquer ayuda , manual lo que sea me sirve desde ya muchas gracias.

Código (cpp) [Seleccionar]

#include <iostream>
#include <string.h>
#include <fstream>

using namespace std;

typedef struct{
int rojo;
int azul;
int verde;
}tpixel;

const int x=255, y=255;

void crear_pixel(tpixel &color);
bool validar_pixel(tpixel color);
void mostrar_pixel(tpixel color);
void generar_blanco();
void generar_negro();

int main()
{
tpixel color_pixel;
crear_pixel(color_pixel);
mostrar_pixel(color_pixel);
generar_blanco();
generar_negro();
system("pause");
return 0;
}

void crear_pixel(tpixel &color)
{
do{
cout << "Ingrese rojo : "; cin >> color.rojo;
cout << "Ingrese verde: "; cin >> color.verde;
cout << "Ingrese azul : "; cin >> color.azul;
}while(validar_pixel(color)!=true);
}

bool validar_pixel(tpixel color)
{
if((color.rojo<0 || color.rojo>255) || (color.verde<0 || color.verde>255) || (color.azul<0 || color.azul>255)){
return false;
}
else{
return true;
}
}

void mostrar_pixel(tpixel color)
{
cout << "Rojo : " << color.rojo << endl;
cout << "Verde: " << color.verde << endl;
cout << "Azul : " << color.azul << endl;
}

void generar_blanco()
{
ofstream img("picture.ppm");
img << "P3" << endl;
img << x << " " << y << endl;
img << "255" << endl;
for(int i=0; i<x; i++){
for(int k=0; k<y; k++){
int r=x%255;
int g=y%255;
int b=y*x%255;
img << r << " " << g << " " << b << endl;
}
}
system("open picture.ppm");
}

void generar_negro()
{

}