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 - satu

#141
Hola

Inténtalo por lo menos, si no te sale te ayudo

Saludos
#142
Hola


else
        {
        printf("Valor erroneo");
        while(getchar()!='\n');
        getchar();
        return 0;
        }


He añadido esto cada vez que comprobamos un carácter de los introducidos. Tú compruebas si son caracteres válidos con los if, pues si no son válidos entra en el else e imprime un mensaje por pantalla. El while lo que hace es limpiar el buffer de entrada y el getchar de detrás del while espera a que pulses una tecla, y el return para finalizar el programa. Al final de todo pasa lo mismo, limpiamos el buffer de entrada y el programa espera a que se pulse una tecla.

Espero que lo hayas entendido. Hay gente que para pausar el programa utiliza un system("pause"); pero eso solo funciona en windows, el getchar es estandar.

Saludos
#143
Hola

¿Es esto lo que pides??


#include <stdio.h>

int main ()
{
    char car1;
    char car2;
    char valor1;
    char valor2;
    int valor;

    printf("Introduzca un valor hexadecimal:\n");
    scanf("\n%c%c", &car1, &car2);

    if('0'<=car1 && car1<='9')
        valor1=car1-'0';
    else if ('A'<=car1 && car1<='F')
        valor1=car1-'A'+10;
    else if ('a'<=car1 && car1<='f')
        valor1=car1-'a'+10;
    else
        {
        printf("Valor erroneo");
        while(getchar()!='\n');
        getchar();
        return 0;
        }

    if('0'<=car2 && car2<='9')
        valor2=car2-'0';
    else if ('A'<=car2 && car2<='F')
        valor2=car2-'A'+ 10;
    else if ('a'<=car2 && car2<='f')
        valor2=car2-'a'+10;
    else
        {
        printf("Valor erroneo");
        while(getchar()!='\n');
        getchar();
        return 0;
        }

    valor= 16*valor1 + valor2;

    printf("EL valor decimal de 0x%c%c es %d\n",car1,car2,valor);

    while(getchar()!='\n');
    getchar();
    return 0;
}


Saludos
#144
Programación C/C++ / Re: Arreglo AYUDA!
9 Noviembre 2011, 20:59 PM
Señor lo tendrá en su mesa por la mañana.

Léete las normas, anda, no se hacen tareas
#145
PHP / Re: Heredar varios objetos + PHP
4 Noviembre 2011, 12:08 PM
Hola

Acabo de ver esto, no se si será correcto o es lo que buscas pues estoy empezando en PHP

Saludos
#146
Programación C/C++ / Re: ¿Error código?
3 Noviembre 2011, 22:30 PM
Hola

Veo  2 errores:
-Las comparaciones se hacen con == no con = (que es asignación) (linea 17)
-El error que te da es por poner else (a<b), las condiciones solo se ponen en el if no en el else, es decir, si se cumple la condición del if entra, si no se cumple entra en el else, por tanto debes quitar el (a<b) y dejar el else solo


#include <stdio.h>

int main()

{
   int a,b,c;

   printf("Dame un valor:");
   scanf("%d", &a);

   printf("Dame un valor:");
   scanf("%d", &b);

   if (a>b)
       printf("%d es mayor que %d", a,b);

   else if (a==b)
       printf("%d es igual que %d", a,b);

   else
       printf("%d es menor que %d", a,b); /*Línea 21*/

   return 0;
}


Saludos
#147
Hola

No se si funcionará pero sería una idea:

void reverse(char *punt,char *puntt)
{
    int largo1=0, largo2=0, lg=0, i;
    char *aux = punt, *aux2 = puntt;
    while(*punt!='\0')
        {
        punt++;
        largo1++;
        }
    while(*puntt!='\0')
        {
        puntt++;
        largo2++;
        }
    lg=largo1+largo2;
    char largos[lg];

    for(i=0; i<largo1; i++)
        {
        largos[i] = *aux;
        aux++;
        }
    for(; i<lg; i++)
        {
        largos[i] = *aux2;
        aux2++;
        }
}


Saludos
#148
Programación C/C++ / Re: programacion en turbo c++
3 Noviembre 2011, 17:09 PM
Hola

Tienes algunos errores de concepto, deberías coger un buen libro y comenzar con él, además mezclas C con C++, utilizas conio (que está obsoleta), etc.

Puedes encontrar buenos libros aquí, además te vendrá bien leerte esto

Como al menos lo has intentado te lo resuelvo, pero no te acostumbres  :P

Código (cpp) [Seleccionar]

#include <cstring>
#include <iostream>

using namespace std;


bool palindroma(char *palabra, int inicio, int lon)
{
    if(palabra[inicio] != palabra[lon])
        return false;
    if(inicio < lon)
        return palindroma(palabra, inicio+1, lon-1);
    return true;
}


int main()
{
    int n = 0, opcion;
    char b = 'n';
    char palabra[100];

    memset(&palabra, 0x00, 100);

    while (b == 'n')
{
cout << "\n\n\t\tPrograma que indica si una palabra es polindroma.\n";
cout << "\t\t***************************************************\n\n";
cout << "\t1] Escribir una palabra\n";
cout << "\t2] Saber si es polindroma\n";
cout << "\t3] Contar\n";
cout << "\t4] Salir\n";
cout << "\n\n\tOpcion: ";
cin >> opcion;

switch(opcion)
{
            case 1:
                cout << "\n\tIntroduce una palabra: ";
                cin >> palabra;
                n=strlen(palabra);
                cout << "\n\tOK. Pulse una tecla para continuar...";
                while(cin.get() != '\n');
                cin.get();
                break;

            case 2:
                if(n != 0)
                    {
                    if(palindroma(palabra, 0, n-1))
                        cout << "\n\tLa palabra \"" << palabra << "\" es palindroma" << endl;
                    else
                        cout << "\n\tLa palabra \"" << palabra << "\" NO es palindroma" << endl;
                    }
                else
                    cout << "\n\tDebes introducir una palabra antes. Opcion 1 del menu" << endl;
                cout << "\n\tOK. Pulse una tecla para continuar...";
                while(cin.get() != '\n');
                cin.get();
                break;

            case 3:
                if(n != 0)
                    cout << "\n\tLa palabra \"" << palabra << "\" tiene " << n << " letras" << endl;
                else
                    cout << "\n\tDebes introducir una palabra antes. Opcion 1 del menu" << endl;
                cout << "\n\tOK. Pulse una tecla para continuar...";
                while(cin.get() != '\n');
                cin.get();
                break;

            case 4:
                cout << "\n\tHa selecionado salir, desea continuar? (s/n): ";
                cin >> b;
                break;

            default:
        cout << "\n\tOpcion incorrecta. Pulsa una tecla para continuar...";
                while(cin.get() != '\n');
                cin.get();
            }
        }
    cout << endl << endl << endl;
return 0;
}


Saludos
#149
Programación C/C++ / Re: Error al compilar
1 Noviembre 2011, 12:00 PM
Hola

Te sobra la llave que tienes justo después del if. Tu tienes
if  { (....) {
y debería ser
if (.....) {

Saludos
#150
Hola

Tienes algunos errores de concepto, para borrar un registro de un fichero tienes que guardar los válidos en otro fichero y luego cambias el nombre del nuevo fichero.

Te pongo el código, aunque no lo he probado (paso de los errores por culpa de conio)

void baja()
{
    int encontrado=0, ok=0, posicion=0;
    struct dato aux;
    char palabra[20], opc='n';
    FILE *fic_aux;

    archivo = fopen(DICCIONARIO,"r+b");
    if(archivo != NULL)
        {
        fseek(archivo, 0, SEEK_END);
        if(ftell(archivo) != 0)
            {
            fseek(archivo, 0, SEEK_SET);
            memset(&aux, 0x00, sizeof(struct dato));
            memset(&palabra, 0x00, 20);

            printf("ELIMINAR PALABRAS\n");
            printf("\n Ingrese la palabra a eliminar: ");
            gets(palabra);
            strlwr(palabra);
            while(encontrado==0 && !feof(archivo))
                {
                fread(&aux, sizeof(struct dato), 1, archivo);
                if(strcmp(palabra, aux.palabra) == 0)
                    encontrado=1;
                }//while

            if(encontrado == 1)
                {
                printf("\n Esta seguro que desea eliminar la entrada del diccionario (s/n)\n");
                printf("\n Palabra: %s \n Sinonimos: %s %s %s\n Antonimo: %s\n Paronimo: %s\n",aux.palabra,aux.sinonimo1,aux.sinonimo2,aux.sinonimo3,aux.antonimo,aux.paronimo);
               
                scanf("%c", &opc);
                while(getchar()!='\n');

                if(opc=='s' || opc=='S')
                    {
                    fseek(archivo, -(sizeof(struct dato)), SEEK_CUR);
                    posicion = ftell(archivo);
                    fseek(archivo, 0, SEEK_SET);
                    fic_aux = fopen("Auxiliar.bin", "wb");
                    if(aux)
                        {
                        while(ftell(archivo) < posicion)
                            {
                            fread(&aux, sizeof(struct dato), 1, archivo);
                            fwrite(&aux, sizeof(struct dato), 1, fic_aux);
                            }
                        //Adelantamos una posición el cursor
                        fread(&aux, sizeof(struct dato), 1, archivo);
                        while(!feof(archivo))
                            {
                            fread(&aux, sizeof(struct dato), 1, archivo);
                            fwrite(&aux, sizeof(struct dato), 1, fic_aux);
                            }
                        fclose(aux);
                        }
                    }
                }
            else
                printf("\n No se encontro la palabra ingresada\n");
            }
        else
            printf("\nEl fichero esta vacio\n");

        fclose(archivo);

        remove(DICCIONARIO);
        rename("Auxiliar.bin", DICCIONARIO);
        }
    else
        printf("No se pudo abrir al fichero");
}//void


Saludos