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 - Error 404:

#21
Programación C/C++ / Re: Duda en programación C:
8 Septiembre 2014, 03:03 AM
Hola, gracias por la ayuda. rir3760 el dibujo era como lo había puesto, era raro pero si, era como puse al principio.
ivancea96 ya había pensado en eso y lo probé, pero al ver que no variaba en nada el resultado decidí quitarlo, aunque gracias por la sugerencia.
Blaster gracias por tu ayuda, lo he hecho y a funcionado, y he entendido como funciona asi que muchas gracias  ;D.
Gracias a todos por vuestra ayuda, de veras, gracias a este foro he podido avanzar bastante, mucho más de lo que lo hubiera hecho si estuviera totalmente solo sin ninguna ayuda, ya que este foro es mi única ayuda, además de los manuales  :rolleyes:
#22
Programación C/C++ / Duda en programación C:
6 Septiembre 2014, 11:55 AM
Hola a todos de nuevo, veréis, me he atascado en un programita de C, es un ejercicio de un manual que estoy haciendo. El enunciado dice así:

1)Escriba un programa que imprima los patrones siguientes de manera separada, uno debajo del otro. Utilice ciclos
for para generar los patrones. Todos los asteriscos (*) deben imprimirse mediante una sola instrucción printf
de la forma printf("*"); (esto provoca que los asteriscos se impriman uno al lado del otro). Pista: Los dos últimos
patrones requieren que cada línea comience con el número apropiado de espacios en blanco.
Los dibujos están en el código en forma de comentario, hay 4 aunque solo aparecen 3 pues es en el que tengo la duda, y una vez sepa el 3, el 4 yo creo que podré sacarlo.
Dejo también los dos primeros, aunque esos si me han salido sin problema, aunque si veis algo que podría optimizarse un poco o cualquier observación, siempre se agradece  :rolleyes:
Ahí va:



#include<stdio.h>
int main(){
int i,j=10;
int espacios;



/* A)
*
**
***
****
*****
******
*******
********
*********
*/
for(i=1;i<=10;i++){
for(j=1;j<=i;j++){
printf("*");
    }
printf("\n");
}
printf("\n\n");


/* B)
**********
*********
********
*******
******
*****
****
***
**
*
*/
   for(i=1;i<=10;i++){
for(j=10;j>=i;j--){
printf("*");
    }
    printf("\n");
}
printf("\n\n");


/* C)
**********
*********
  ********
   *******
    ******
     *****
      ****
       ***
        **
         *
*/
   for(i=1;i<=10;i++){
      for(espacios=1;espacios<=10-j;espacios++)
     printf(" ");
      for(j=10;j>=i;j--){
     printf("*");
  }
      printf("\n");
   }   

return 0;
}


La figura C) es la que me falla, me sale una representación bastante distinta, es algo así:

**********
                *********
               ********
              *******
            *******
          *******
        *****
......
y así
Gracias por las ayudas de antemano.
#23
ah, creo que lo he entendido, gracias rir3760, y a todos por la ayuda ;-)
#24
Ahhh, entiendo, no era tan difícil, me ha ayudado mucho el pensar que es como una matriz, muchas gracias a los dos por la ayuda¡¡   ;D
#25
Programación C/C++ / Duda con anidamiento de "for":
5 Septiembre 2014, 10:58 AM
Hola a todos, os cuento mi problema, he visto que multitud de programas contienen anidamientos de varias instrucciones "for" y la verdad es que no entiendo como funcionan estos anidamientos  :huh: . Creo que es bastante importante entenderlos por la cantidad de opciones que ofrecen, como por ejemplo el ordenamiento en burbuja, asi que si alguien me lo pudiera explicar con algún ejemplo que me indique paso a paso lo que hace o como crea que es la manera más correcta  para aprenderlo bien lo agradecería muchísimo.
Muchas gracias de antemano por su tiempo.
#26
vk496 me temo que no se absolutamente nada de Bash :-\ pero gracias por la respuesta y me alegro que te resulte interesante mi propuesta  :rolleyes:

Eferion, he seguido algunos de tus consejos, y ahora me avisa de cuando es un palíndromo, pero si pongo una cadena/palabra que no lo es no me dice nada. He conseguido avanzar a que me diga cuando sí lo es, pero no consigo hacer que me diga cuando no.
Antes de ponerte el código actual, decirte que estoy siguiendo un manual pues aún no se mucho (como habrás notado), por eso no he usado el último consejo que me has dicho, pues aún no he llegado a eso, y la clase string, me temo que tampoco la he dado aún.
Bueno, dejo el código actual, para ver si alguien ve mi fallo, agradezco mucho las respuestas de verdad, aunque me gustaría que no solo me digáis lo que debo poner o quitar, sino que me intentéis explicar más o menos. el por qué falla como lo tengo, para así saber porque no funciona y evitar que ese fallo me suceda en más ocasiones.

rir3760 la verdad es que no se qué es size_t,´soy bastante nuevo y solo sé lo que he estudiado en el manual que leo, y no he visto nada de eso, por lo que no he entendido nada  :huh: :huh: :huh:

Dicho esto..


Código (cpp) [Seleccionar]


#include <iostream>
#include <cstring>

using namespace std;

bool palindromo(char cadena[100]);

int main(){

   char cadena[100];

   cout << "Introduzca una palabra o cadena de ellas sin utilizar espacios y/o" << endl;

   cout << " mayusculas, minusculas, acentos, etc. El programa le dira si la" << endl;

   cout << " cadena introducida es un palindromo."<< endl;

   

   cin >> cadena;

   cin.get();

   if (palindromo(cadena)) cout<< "Es un palindromo.";

   else cout<< " No es un palindromo.";


cin.get();

return 0;

}

bool palindromo(char cadena[100])
{

   
    bool esPalindromo = true;
    int j = strlen(cadena)-1;
    int k = 0;

    do{

        if (cadena[k]!=cadena[j]){
        esPalindromo = false;
}
else {                                      

             k++;

             j--;

             }

        } while(k < j && palindromo);
    if (esPalindromo) return true;
    else return false;
       

}






Vale, ya me he dado cuenta del error, el fallo estaba en la línea 57
Código (cpp) [Seleccionar]

} while(k < j && palindromo);


No es eso lo que debo poner, sino

Código (cpp) [Seleccionar]

} while(k < j && esPalindromo);


Al hacer ese pequeño cambio ya funciona todo correctamente, aunque si alguien me pudiera explicar por qué no hacía nada, porque entiendo que diera fallo, pero no que no saliera nada  :huh:
#27
Hola a todos, antes de nada, ya se que saqué este hilo hace algún tiempo, pero sigo teniendo un problema al que no consigo darle la solución. El objetivo del programa que estoy intentando crear es que al introducir una cadena de caracteres, éste te diga si esa cadena es o no un palíndromo (que se lee igual de izquierda a derecha y de derecha a izquierda (ejemplo otto)).
He conseguido compilar el código sin que me salga ningún error ni ningún warning, sin embargo cuando lo ejecuto, al introducir la cadena, no hace nada  :huh:
Les dejo el código por si me pudieran ayudar. Gracias de antemano a todos.
Código (cpp) [Seleccionar]


#include <iostream>
#include <cstring>

using namespace std;

bool palindromo(char cadena[100]);

int main(){

    char cadena[100];

    cout << "Introduzca una palabra o cadena de ellas sin utilizar espacios y/o" << endl;

    cout << " mayusculas, minusculas, acentos, etc. El programa le dira si la" << endl;

    cout << " cadena introducida es un palindromo."<< endl;

   

    cin >> cadena;

    cin.get();

    if (palindromo(cadena)) cout<< "Es un palindromo.";

    else cout<< " No es un palindromo.";


cin.get();

return 0;

}

bool palindromo(char cadena[100])
{

     int n;

     int j = sizeof(cadena)/sizeof(cadena[0]);

     int k = 0;

     do{

         if (cadena[k]!=cadena[j])(n=0);

         else {                                     

              k++;

              j--;

              n=1;

              }

         } while(k != j-1 || n!=0);

         if (n==1) return true; else return false;

}

#28
No copio y pego, simplemente he empezado hace poco y aún no se hacerlo muy bien, nadie empieza sabiendo... Si copiara y pegara simplemente habría cogido el código que me ha dejado de ayuda leosansan.

Cuando le doy a depurar me sale que hay una violación de acceso a memoria (fallo de segmentación), ¿alguien me puede explicar lo que significa?
#29
Vale, he conseguido que me compile, pero cuando lo uso me sale que tiene problemas, el típico cuadro de enviar o no informe de errores. Así lo deje:
Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
using namespace std;
bool palindromo();
char *cadena;
int main(){

// Voy a obviar la introduccion
   cin >> cadena;
   cin.get();
   if (palindromo(cadena)) cout<< "Es un palindromo.";
   else cout<< " No es un palindromo.";
cin.get();
return 0;
}
bool palindromo(char *cadena)
{
         int n;    
         int j = sizeof(cadena)/sizeof(cadena[1]);
         int k = 0;
         do{
              if (&cadena[k]!=&cadena[j])( n=0);                                      
              else{        
                     k++;
                     j--;
                     n=1;
                    }
        } while(k != j-1 || n!=0);
        if (n==1) return true; else return false;


#30
Estoy con el manual de conclase, ese es un ejercicio que manda  :-\
Si me pudieras explicar lo que me has dicho con un ejemplo te lo agradecería mucho  :-(