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

#551
Cita de: DanielC# en 26 Diciembre 2013, 21:30 PM
Hola.
Me parece que mi problema es más facil de entender que respirar.-

Codigo de rir3760
char *p = "abeja";
char *q = "Abeja";


¿Puedo hacer lo mismo de esta manera?

char *frase[] = {"abeja", "Abeja"};

Saludos.
Daniel

Creo que rir3760 ya ha respondido a ambos. Por si no te has dado cuenta te dejo la combinación de los dos:

Código (cpp) [Seleccionar]

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

int main(void)
{
    char *p = "abeja";
    char *q = "Abeja";
    printf(" %p --> %s\n",(void*)p, p);
    printf(" %p --> %s\n",(void*)q, q);
    if(strcmp(p, q) > 0){
        char *temp = p;
        p = q;
        q = temp;
    }
    puts("----");
    printf(" %p --> %s\n",(void*)p, p);
    printf(" %p --> %s\n",(void*)q, q);

    char *frase[] = {"abeja","Abeja"};
    int i;
    putchar ('\n');
    for (i = 0; i < 2; i++)
      printf("frase[%d]: %p --> %s\n", i, (void *) frase[i], frase[i]);
    if(strcmp(*frase, *(frase + 1)) > 0){
        char *temp = frase[0];
        rase[0] = frase[1];
        frase[1] = temp;
    }
    puts("----");
    for (i = 0; i < 2; i++)
        printf("frase[%d]: %p --> %s\n", i, (void *) frase[i], frase[i]);
   return 0;
}


;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!


#552
Cita de: amchacon en 26 Diciembre 2013, 16:54 PM
Y si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.

Es la pequeña ventaja de haber usado Python, el compilador te "canta" si no indexas bien, una y otra vez, lo cual te lleva a ser metódico en ese aspecto.. Al final desarrollas ese hábito y resulta sencillo de leer el código.

¡¡¡¡ Saluditos! ..... !!!!
#553
Cita de: amchacon en 26 Diciembre 2013, 16:54 PM
Puede ser, yo cuando veo:

Código (cpp) [Seleccionar]

int valor = 0;
int matriz[100][100];

for (int i = 0; i < 100;i++)
   for (int j = 0; j < 100;j++)
       if (matriz[i][j] > 0)
          while (matriz[i][j] > 0)
               valor += matriz[i][j]*pow(matriz[i][j],valor+matriz[i][j]--);      
       else if (matriz[i][j]) < 0) matriz[i][j] = 0;
              else matriz[i][j] += valor;


Lo entiendo pero me resulta muy confuso. Y si me va una indentación ya la lío parda porque el compilador no me va a avisar de eso.

Código (cpp) [Seleccionar]

for (int i = 0; i < 100;i++)
    {
        for (int j = 0; j < 100;j++)
            {
                if (matriz[i][j] > 0)
                while (matriz[i][j] > 0)
                    {
                        valor += matriz[i][j]*pow(matriz[i][j],valor+matriz[i][j]--);     
                    }
                   
            else if (matriz[i][j]) < 0) matriz[i][j] = 0;
                   {
                       else matriz[i][j] += valor;
                   }
                   
            }
    }
}



Perdona que te cite entero pero es que el código que expones está clarísimo. Repito, supongo que es la costumbre o hábito adquirido. Pero para mayor claridad reconozco que el uso de las llaves va mejor en general. ¿O.K?

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!


#554
Cita de: amchacon en 26 Diciembre 2013, 16:35 PM
Cierto pero, en ocasiones las llaves dan más legibilidad (sobre todo cuando empiezas a anidar cosas)

Supongo que es la costumbre adquirida antaño del Python, donde haces la vista a la indexación.

Cita de: amchacon en 26 Diciembre 2013, 16:35 PM

Otra opción es poner %.4f
De esa forma muestra solo hasta 4 decimales, si quieres 8 solo tienes que cambiar el 4 por un 8 ;)

¡¡¡Quita, quita!!!,me resulta horrible a la vista esta visión:

Citar

La matriz inicial es

1.0000  0.0000  1.0000
1.0000  2.0000  1.0000
2.0000  1.0000  3.0000


Mejor %g y que el decida los decimales distintos de cero al final, Pero para gustos colores  ;) ;)

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!


#555
Cita de: amchacon en 26 Diciembre 2013, 13:01 PM

Indexar el código es muy importante para que se entienda mejor:


Efectivamente, indentar el código es un habito que se debe adquirir desde los inicios.

Pero ya que nos ponemos tiquismiquis, habría que hacer otras observaciones:

* la función main por ser de tipo int necesita al final un return tipo int.

* los bucles con una sola instrucción o función no necesitan de llaves.

* puestos a imprimir float me gusta más el formato %g ya que no llena la pantalla de decimales innecesarios.

Y ya que nos ponemos tontitos,y  lo digo por mí, por lo menos corregir le el código, y antes una muestra:

Citar
Ingresar el orden de la matriz:
3
x[1][1]= 1
x[1][2]= 0
x[1][3]= 1
x[2][1]= 1
x[2][2]= 2
x[2][3]= 1
x[3][1]= 2
x[3][2]= 1
x[3][3]= 3

La matriz inicial es

1  0  1
1  2  1
2  1  3
La matriz triangular inferior es:

1  0  1
0  2  0
0  0  1
la matriz escalonada es

1  0  0
0  2  0
0  0  1

Código (cpp) [Seleccionar]

#include<stdio.h>

int main()
{
   int i,j,k,n;
   float x[80][80],fac;

   printf("Ingresar el orden de la matriz:\n");
   scanf("%d",&n);
   for(i=0; i<n; i++){
       for(j=0; j<n; j++){
           printf(" x[%d][%d]= ",i+1,j+1);
           fflush (stdout);
           scanf("%f",&x[i][j]);
       }
   }
   printf("\nLa matriz inicial es\n");
   for(i=0; i<n; i++){
       printf("\n");
       for(j=0; j<n; j++)
           printf("%g  ",x[i][j]);
   }
   for(k=0; k<n-1; k++){
       for(i=k+1; i<n; i++){
           fac =-x[i][k]/x[k][k];
           for(j=k; j<n; j++)
               x[i][j]+=x[k][j]*fac;
       }
   }
   printf("\nLa matriz triangular superior es:\n");
   for(i=0; i<n; i++) {
       printf("\n");
       for(j=0; j<n; j++){
           printf("%g  ",x[i][j]);
           fflush (stdout);
       }
   }
   for(k=n-1; k>=0; k--){
       for(i=k-1; i>=0; i--){
           fac =-x[i][k]/x[k][k];
           for(j=n-1; j>=0; j--)
               x[i][j] += x[k][j]*fac;
       }
   }
   printf("\nla matriz diagonal es\n");
   for(i=0; i<n; i++){
       printf("\n");
       for(j=0; j<n; j++){
           printf("%g  ",x[i][j]);
           fflush (stdout);
       }
   }
   return 0;
}


Eso sí, es un tanto chapucero ya que ni usa pivote ni intercambia filas, caso necesario si en medio de la transformación sale un cero en la diagonal. Pero es lo que el autor proponía.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!




REEDITADO: corregida la observación inferior/superior. Thanks!
#556
Cita de: jesus++ en 25 Diciembre 2013, 23:26 PM
Ok, sucede q en mi pc por algun motivo no compila cuando uso system("pause")
Alguna sugerencia en el problema ?

Incluir la librería <stdlib.h>

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!


#557

Aprende a hacerlo, es más fácil:

Código (cpp) [Seleccionar]

#include<stdio.h>
#include<conio.h>
int main(){
   int i,j,k,n;
   float  x[80][80];

   
   printf("ingresar el orden de la matriz\n");
   scanf("%d",&n);
   
   for(i=1; i<=n;i++){
   for(j=1; j<=n;j++){
   printf("ingresar x[%d][%d]: ",i,j);
   scanf("%f",&x[i][j]);}}
   
   for(k=1; k<n;k++){
   for(i=k+1; i<=n;i++){
   for(j=1; j<=n;j++)
   x[i][j]=x[i][j]-(x[k][j]*x[i][k])/x[k][k];
   
   }}
   
   printf("la matriz escalonada es");
   for(i=1; i<=n;i++){
                     printf("\n");
            for(j=1; j<=n;j++)
                     printf("%f  ",x[i][j]);}
   
   for(k=n; k>1;k--){
   for(i=k-1; i>=1;i--){
   for(j=n; j>=1;j--)
   x[i][j]=x[i][j]-(x[k][j]*x[i][k])/x[k][k];
   }}

printf("la matriz escalonada es");
   for(i=1; i<=n;i++){
                     printf("\n");
            for(j=1; j<=n;j++)
                     printf("%f  ",x[i][j]);}

   getch();
}



De entrada, no deberías hacer uso de la de la libreria conio y su función getch.

Leete Lo que no hay que hacer en C/C++. Nivel basico]
#558
Antes que nada cuando postees código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

;-)  ;-) Felices Navidades y Próspero Año Nuevo.  ;-)  ;-)

¡¡¡¡ Saluditos! ..... !!!!


#559
Cita de: Silenciosita en 25 Diciembre 2013, 13:05 PM
...................................................
el problema viene cuando tengo que extraer un numero del fichero que empieza por 0, a la hora de mostrar ese dato, el 0 se omite.
¿Hay alguna solución para que no se ignoren los 0s?
.........................................

Eso será así si los lees como enteros o float. Prueba a leerlos como cadena de caracteres y luego si los necesitas los transformas en números.

Felices Navidades y Próspero Año Nuevo.

¡¡¡¡ Saluditos! ..... !!!!



#560
Cita de: minari02 en 25 Diciembre 2013, 05:37 AM
jajajaja... muchas gracias... eres genial, tienes mucha paciencia jajajaja  :laugh: :laugh: :laugh: :laugh: :laugh: :laugh:

oh! pensaba que si, pero bueno... no importa, sabe como seria utilizando ese metodo? al menos la parte del
Código (cpp) [Seleccionar]
for(b = 2; b<=a; b++)
pero luego intento... ya son las 10:37 y ps... es noche buena no... jajaj feliz navidad y gracias por despejar mis dudas y aguantar mi ignorancia jajaja  :laugh: :laugh: :laugh:

Feliz Navidad  :rolleyes:

Siempre que pueda y esté en mis escasos conocimientos seguiré ayudando. La verdad es que esto del foro es como vivir la Navidad todo el año, la gente comparte sus conocimientos sin pedir nada a cambio, Es guay  ;-) ;-) ;-)

Ese bucle en concreto es para ir recorriendo rodos los números desde 2 hasta el introducido Ya el siguiente bucle se encarga de comprobar si cada uno de esos números tiene divisores o no, es decir si son primos i no.

Y lo dicho:


Felices Navidades y Próspero Año Nuevo.

¡¡¡¡ Saluditos! ..... !!!!