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 - Dark Invader

#91
Si quieres poner palabras deberias usar las funciones de las cadenas,para eso tienes que llamar a la libreria string:

if (strcmp(palabra1,"palabra que quieras")== 0){
haz esto
}

Esto haría lo mismo que el switch solo que con palabras...Luego si quiers escoger otra palabra para elegir realiza otro if,u otro switch para saber la opción de la cadena a elegir,pero es mucho mas facil con if...

Espero que esa fuera tu duda.

Salu2
#92
Programación C/C++ / Re: Problema con la Ñ
19 Junio 2011, 21:49 PM
¿Qué IDE utilizas?¿has probado a reinstalarlo por si el problema es ese?.

Más no sabría decite,los códigos están bien,eres el único al que no se le muestra correctamente...

Podrías probar a reinstalarlo y ver como te funciona.

Salu2
#93
Programación C/C++ / Re: Problema con la Ñ
19 Junio 2011, 20:53 PM
Pues no se que puede ser¿Que IDE usas?

Mira a ver si con un puntero podemos escribir la ñ en la direccion de memoria,pero es derrochar codigo en una cosa que deberia funcionar con las otras acciones,aun asi por probar...

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

int main(){
char *p;
char letra;
p = &letra;
*p = char(164);
cout << letra << endl;
cin.get();
return 0;
}


¿Te sale eso con cualquier cast?

Salu2
#94
Programación C/C++ / Re: Problema con la Ñ
19 Junio 2011, 19:29 PM
A mi este me sirve perfectamente,me da la ñ por pantalla,y ya te lo han recomendado por lo que veo:

Código (cpp) [Seleccionar]
#include <iostream>
using namespace std ;

int main(){
    cout << "ma"<<char(164)<<"a" << endl;
cin.get();
return 0;
}


Un cast muy simple.

Salu2
#95
Programación C/C++ / Re: Ayuda programa c++
18 Junio 2011, 21:14 PM
Hola tienes varias formas,

Esta es 1:

CopyFile( "C:\\Origen\\archivo", "C:\\Dest\\archivo", TRUE  ) ;


Funciona bien con los archivos de texto,pero nunca lo he probado con otros archivos.

Esta la leí por ahí y no se si funcionara,es con la API de windows:

BOOL WINAPI CopyFile(
LPCSTR lpExistingFileName, // Origen del fichero
LPCSTR lpNewFileName, // Destino del fichero
BOOL bFailIfExists // Si existe destino abortar ?
);


O prueba llamando al sistema:

system("copy tal file" "en tal sitio");
system("del archivo primero)"


Lo primero copiaria y lo segundo con el del borraria el primer archivo.Hace mucho que no doy batch por lo que la estructura dentro del paréntesis podría no ser correcta)

Comentanos como te fue.

Salu2
#96
No tengo ningun incoveniente,siempre es un placer explicar algo si es por enseñar  ::)

1:Exit cierra el programa cuando lee esa misma linea,el unico valor que tiene es 0(segun he visto).

2:gets coge una cadena,en este caso hubiera valido scanf,pero scanf no lee espacios por lo que un nombre como:

Juan jose, solo leería Juan,entonces se utiliza el gets y se coge toda la cadena y así no tienes que limpiar el buffer de entrada

3:es lo mismo exactamente,solo que me resulta más comodo llamar a una sola libreria,la stdio.h, y poner getchar que llamar a stadio.h y a cstdlib para llamar al sistema,además creo que en la universidad os cuelgan si utilizais la llamada al sistema(ya lo comprobare el año que viene  :xD )

4:}while(respuesta==!0);

Bueno esto se nota que es del cansancio mio xD porque en vez de while pondria mejor un if, si la respuesta es distinta de 0,exit,osea cierra el programa,como 0 es la unica que le dice al sistema que vuelva a hacer el bucle,cualquier otro numero cerraria el programa.Esto es mientras la respuesta sea igual a un numero que no es 0 haz tal,pero si hubieras puesto if(respuesta !=0) dirias que si la respuesta es disitinta de 0...Como ves,hay varias alternativas.

5:Difici,bastante dificil.En el ejemplo se utilizan arrays y estructuras,puedes añadir una funcion para que te calcule cualquier cosa y adornas el programa,pero es que con estructuras y arrays se puede hacer eso muy facilmente.Intenta hacer alguno con funciones y lo pegas si tienes alguna duda.

6:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


struct fichajes{
float sueldo;
char cadena[20];
};
int main (void){
   struct fichajes jugadores[11];
    int i,j,ok,respuesta;
     float presupuesto = 500000000;
     float presupuesto1[11];
     int numero;

    printf("Vamos a fichar jugadores\n(tiene que fichar 11 jugadores)\n");
    do{
for (i=0;i<11;i++)
            {
                       printf("Introduzca el nombre del jugador %d: ",i+1);
                       fflush(stdin);
                       gets(jugadores[i].cadena);
                       printf("El jugador %s cobra: ",jugadores[i].cadena);
                       scanf("%f",&jugadores[i].sueldo);
                       presupuesto1[i] = presupuesto - jugadores[i].sueldo;
                       printf("le quedan %f euros.",presupuesto1[i]);
                       printf("tiene %d jugadores de momento \n",i+1);
                       
             }
        printf("Desea fichar mas jugadores? Pulse:0-SI o 1-NO \n");
        scanf("%d",&respuesta);
        if(presupuesto<jugadores[i].sueldo){
        printf("ya no queda mas dinero");
       }
if(respuesta!=0){
printf("ha fichado a:");
for (numero = 0;numero<i;numero++){
printf("\n %s con un sueldo de %d",jugadores[numero].cadena,jugadores[numero].sueldo);
system("pause");
                 exit(0);
                 }
                 }
                 
                 }
     

system("pause");
return 0;
}


Creo que era esto lo que pedias,el programa me da algunos errores de parentesis y tal,ahora mismo ando un poco ocupado para encontrarlos  :silbar:

Me comentas como ha ido todo.

Salu2
#97
Hola,

Pues tu codigo se puede simplificar mucho,el numero de jugadores maximos que puedes fichar en este codigo que te voy a poner es 11,si quieres mas solo adaptalo un poco.He utilizado una estructura para ello,mira a ver si te convence:

#include<stdio.h>
#include<string.h>
#include<stdlib.h>


struct fichajes{
float sueldo;
char cadena[20];

};
int main (void){
   struct fichajes jugadores[11];
    int i,j,ok,respuesta;
     float presupuesto = 500000000;
     float presupuesto1[11];
   
    printf("Vamos a fichar jugadores\n(tieen que fichar 11 jugadores)");
for (i=0;i<11;i++)
            {
                       printf("Introduzca el nombre del jugador %d: ",i+1);
                       fflush(stdin);
                       gets(jugadores[i].cadena);
                       printf("El jugador %s cobra: ",jugadores[i].cadena);
                       scanf("%f",&jugadores[i].sueldo);
                       presupuesto1[i] = presupuesto - jugadores[i].sueldo;
                       printf("le quedan %f euros.",presupuesto1[i]);
                       printf("tiene %d jugadores de momento",i);
                         printf("Desea fichar mas jugadores? Pulse:0-SI o 1-NO \n");
        scanf("%d",&respuesta);
        if(presupuesto<jugadores[i].sueldo){
                                            printf("ya no queda mas dinero");
                                            exit(0);}
while(respuesta==!0){
                   
                 exit(0);
                 }
                     
                       }
                       getchar();
                       return 0;
}


Puede que tenga algun fallo,no lo he compilado ni ejecutado.

Salu2
#98
Mmm,

Creo que lo piye,no me presiones mucho que acabo de salir de un examen de fisica  :xD jaja

Si bueno entonces no habría problema,no me había fijado en la condición y ya había preparado otro algoritmo para ver como sería a la inversa pero me olvide del while y solo estaba pendiente a la factorización...

Salu2
#99
Un valor distinto a 0 en el return indica al sistema operativo que hay un fallo y cierra el programa...Como ves es muy útil para no andarse por las ramas,indicas el fallo y se cierra...

¿Es imprescindible?Pues no  :xD Pero es una buena costumbre,yo lo añado en todos mis programas,pero se puede prescindir,a mi me gusta ponerlo siempre.

Cita de: rayk en 17 Junio 2011, 14:24 PM
Editado: Me he dado cuenta de que no es necesario poner la condición de que el primero sea mayor que el segundo. Y esque de no ser asi tras haber entrado en el while los numeros se cambian entre si de manera que la segunda vez que entra en el while es como si los hubiesemos introducido en el orden correcto. No se si me he explicado bien.


No me entere bien de lo que me has dicho  :xD

Salu2
#100
Si,getchar() espera a que se pulse la tecla enter para finalizar,y return 0 indica al programa que todo fue bien.

Mira de nuevo mi codigo ya que edite y puse nuevas funciones que pedias.

Salu2