• Jueves 25 de Abril de 2024, 07:19

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - leosansan

Páginas: [1]
1
C/C++ / Re:Dibujar un rombo con asteriscos con Lenguaje C
« en: Lunes 28 de Abril de 2014, 20:07 »
Hola  leosansan
El caso es que al compilar me sigue dando error y no me deja crear el ejecutable, voy a actualizar el compilador.-
.............................
Saludos y gracias.
Daniel

Mientras tanto puedes declarar el array inicialmente sobredimensionado:

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int i, izq, der,n;
  5.   char ch[100];
  6.   do{
  7.     printf("\nBase del rombo(numero impar positivo): \n");
  8.     scanf("%d", &n);
  9.     }while ( n <=0 || (n % 2) == 0);
  10.   izq = der =  --n/2;
  11.  
  12.   for(i=0; i<n; i++)
  13.     ch[i]=' ';
  14.   ch[i]='\0';
  15.   for(i=0; i<n; i++){
  16.     (i<n/2) ? (ch[izq--] = ch[der++] = '*'):(ch[++izq] = ch[--der] = ' ');
  17.   printf("\n %s", ch);
  18.   }
  19.   return 0;
  20. }

Pero actualiza, es lo mejor.

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



2
C/C++ / Re:Dibujar un rombo con asteriscos con Lenguaje C
« en: Domingo 27 de Abril de 2014, 07:39 »
Hola  leosansan
Muy bien entendí todo sólo que en mi compilador MinGW no me permite declarar las variables en cualquier lado, tiene que ser todas al principio de la función Main.-
.............................................

Yo también uso MinGW y lo único que lanza, estando en modo -Wall y -pedantic, es un warning, que no un error, porque no se ajusta al estándar  C90 ya superado, así que tu problema se arreglará actualizando tu versión del MinGW o bien la del compilador que usas. Yo usualmente uso el Code::Blocks, por supuesto.

Por cierto, he visto que algo fallaba, creo, en el anterior código así que te lo paso revisado por si acaso:

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int i, izq, der,n;
  5.   do{
  6.     printf("\nBase del rombo(numero impar positivo): \n");
  7.     scanf("%d", &n);
  8.     }while ( n <=0 || (n % 2) == 0);
  9.   izq = der =  --n/2;
  10.   char ch[n+1];
  11.   for(i=0; i<n; i++)
  12.     ch[i]=' ';
  13.   ch[i]='\0';
  14.   for(i=0; i<n; i++){
  15.     (i<n/2) ? (ch[izq--] = ch[der++] = '*'):(ch[++izq] = ch[--der] = ' ');
  16.   printf("\n %s", ch);
  17.   }
  18.   return 0;
  19. }

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



3
C/C++ / Re:Dibujar un rombo con asteriscos con Lenguaje C
« en: Sábado 26 de Abril de 2014, 15:18 »
Hola  leosansan
Maravilloso tú código ya estaba por desistir, tengo unas duditas para consultarte/consultarles.-

Si declaro la variable de esta manera funciona.
Código: C
  1. char ate[] = "          ";
Si la declaro de estas otras 2 no me imprime ningún asterisco.-
Código: C
  1. char ate[10] = "";
Código: C
  1. char ate[10] = {‘\0};
Me podrían dar alguna explicación.-
...............................

Estas llenando el array con nada, simplemente está vacío.

Tendrías que hacer algo como esto, y perdona que le halla cambiado el nombre al array:

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int i, izq, der,n;
  5.   do{
  6.     printf("\nBase del rombo(numero impar positivo): \n");
  7.     scanf("%d", &n);
  8.     }while ( n <=0 || (n % 2) == 0);
  9.   izq = der =  --n/2;
  10.   char ch[n+1];
  11.   for(i=0; i<n; i++)
  12.     ch[i]=' ';
  13.   ch[i]='\0';
  14.   for(i=0; i<n; i++){
  15.     (i<n/2) ? (ch[izq--] = ch[der++] = '*'):(ch[++izq] = ch[--der] = ' ');
  16.   printf("\n %s", ch);
  17.   }
  18.   return 0;
  19. }

Hola  leosansan

.........................................................
Otra cosita, según tengo entendido el signo igual tiene asociatividad por la derecha pero esto no lo entiendo.-

ate[izq--] = ate[der++] = '*';
...............................

Te obsesiona la asociatividad pero en este caso no hay tal, simplemente hay una igualación de variables. :suerte:

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




4
C/C++ / Re:Dibujar un rombo con asteriscos con Lenguaje C
« en: Viernes 25 de Abril de 2014, 21:00 »
Hola  chenech
Muchas gracias por la ayuda, un solo favor más te voy a pedir, tan sólo decime si lo que quiero hacer (con el código de dejo a continuación) es factible, practique de todas maneras con paréntesis, punto y coma y nada, con solo saber que se puede hacer voy a seguir leyendo y practicando hasta lograrlo.-
...............................
Daniel

No soy chenech pero te ayudo igual.

Antes que nada ten en cuenta el uso de los pre y post incrementos ya que te aligeran el código, así como la igualación de dos variables:

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int i=0, izq=5, der=5;
  5.   char ate[] = "          ";
  6.   for(; i<10; i++){
  7.     if(i<5)
  8.       ate[izq--] = ate[der++] = '*';
  9.     else
  10.       ate[++izq] =  ate[--der] = ' ';
  11.   printf("\n %s", ate);
  12.   }
  13.   return 0;
  14. }

Y respecto al operador ternario no te preocupes, es normal que al principio no te salga sobre todo con la cantidad de variables que incrementabas y post incrementabas por separado:

Código: C++
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.   int i=0, izq=5, der=5;
  5.   char ate[] = "          ";
  6.   for(; i<10; i++){
  7.     (i<5) ? (ate[izq--] = ate[der++] = '*'):(ate[++izq] = ate[--der] = ' ');
  8.   printf("\n %s", ate);
  9.   }
  10.   return 0;
  11. }


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



5
Python / Re:IndexError: list index out of range
« en: Domingo 3 de Marzo de 2013, 16:56 »
Por cierto los indices de range pueden empezar por 1 o por cualquier otro numero, simplemente indicando el principio y el final.

Los de range sí, pero no me cabe duda que arielb se refería al índice de inicio de una cadena.

Saluditos!. ...

6
Python / Re:IndexError: list index out of range
« en: Viernes 1 de Marzo de 2013, 17:21 »
[
El problema es que los cursos son en python 3 y yo uso el python 2.7, ya le he modificado muchas cosas de python 3 para que funcione en python 2.7.

Ya revise el archivo .csv y tengo las 3 columnas, esta asi:

1,luis,78595658

donde 1 seria el indice 0, luis seria indice 1 y 78595658 seria el indice 2.



y es lo que yo quiero donde llame al indice 1 que seria el nombre partido[1] y como resultado de el telefono indice 2 partido[2]. ya probe de varias formas y nada de nada.

El problema lo tienes en "for i in range(1,30):" que debería ser "for i in range(numero_entradas):", donde numero_entradas serían el número de líneas del fichero.

Una variante es en la función "listar" usar, en Python 3.x:

Código: [Seleccionar]
print ("Aqui buscare las coincidencias: ")
agenda = open("agenda.csv")
for i  in agenda:
    partido = i.split(',')
    print (partido)
    if nombrebuscado == partido [1]:
        print (partido [1])
        print (partido [2])
        break
        print
agenda.close()

Saluditos!. ...

7
Python / Re:IndexError: list index out of range
« en: Viernes 1 de Marzo de 2013, 08:52 »
Estimados su ayuda

tengo esta salida en json

{u'net1': [{u'version': 4, u'addr': u'10.10.10.14'}]}

Como puedo obtener la direccion ip 10.10.10.14 en una variable?

......................................................


Te dejo los print para que "veas" lo que sucede:

Código: [Seleccionar]
a={u'net1': [{u'version': 4, u'addr': u'10.10.10.14'}]}
print (a)
b=a['net1']
print (b)
ip=b[0]['addr']
print (ip)

Creo que se podría compactar más. pero con eso tienes para ir tirando.

Bueno, lo compacto:

Código: [Seleccionar]
ip=a['net1'][0]['addr']
print (ip)

Saluditos!....

8
Python / [Solucionado] matriz bidimensional Python uno de más
« en: Jueves 28 de Febrero de 2013, 16:44 »
Teóricamente es una matriz de 3x4, pero se "cuela" uno más.

Al correr el código:

Código: [Seleccionar]
m=3
n=4
b = [[m]*n for x in range(n)]
for i in range (m):
    for j in range (n):
        b[i][j]=(i*j+i+j)
        print (b[i][j],end=' ')
    print ()
print (b)
print ()

Imprime por un lado de forma correcta:

Código: [Seleccionar]
0 1 2 3
1 3 5 7
2 5 8 11

Pero al hacer print (b) sale esto otro:

Código: [Seleccionar]
[[0, 1, 2, 3], [1, 3, 5, 7], [2, 5, 8, 11], [3, 3, 3, 3]]
Y la duda es  de dónde diablos sale el "cuarto" elemento;[3, 3, 3, 3]. Porque si hago:

Código: [Seleccionar]
for j in range (m):
    print (b[j])
    print ()
print ()

sale de forma correcta:

Código: [Seleccionar]
[0, 1, 2, 3]

[1, 3, 5, 7]

[2, 5, 8, 11]

y no admite range (m+1) para ver al "otro".

Saluditos!. ...

P.D: Ya lo ví :"b = [[m]*n for x in range n". Como n llega a 4 y se ha inicializado a m=3 saldrán n=4 vectores o listas, vamos que n es el número de filas.

La forma correcta, inicializando a cero sería:

Código: [Seleccionar]
m=3
n=4
print ('b=[[0] * n for i in range (m)]\n')
b=[[m] * n for i in range (m)]
print (b) #[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
print ()

for i in range (m):
    for j in range (n):
        b[i][j]=(i+j)
        print (b[i][j],end=' ')
    print ()
'''
0 1 2 3
1 2 3 4
2 3 4 5
'''
print (b) # [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5]]

O como tenía inicialmente, sólo que en ese caso la matriz es de 4x4:

Código: [Seleccionar]
m=3
n=4
print ('b=[[0] * n for i in range (n)]\n')
b=[[m] * n for i in range (n)]
print (b) #[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
print ()

for i in range (n):
    for j in range (n):
        b[i][j]=(i+j)
        print (b[i][j],end=' ')
    print ()
'''
0 1 2 3
1 2 3 4
2 3 4 5
3 4 5 6
'''
print (b) # [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5], [3, 4, 5, 6]]

Como resumen de pequeñas variantes a la hora de declarar e inicializar una matriz bidimensional:

Código: [Seleccionar]
print ('array None: [[None for col in range(5)] for row in range(3)]\n') #inicializa una matriz mxn a None
array = [[None for col in range(5)] for row in range(3)]
print (array)
#[[None, None, None, None, None], [None, None, None, None, None], [None, None, None, None, None]]
print ()

print (' array2D a 0 = [[0 for col in range(5)] for fil in range(3)]\n' ) ##inicializa una matriz mxn a ceros
array2D = [[0 for col in range(5)] for row in range(3)]
print (' array2D')
print (array2D)
'''array2D
[[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]'''
print ()

m = int(input("Filas: "))
n = int(input("Columnas: "))

'otro array None'
print ('c=[[None]*n for i in range(m)]\n')
c=[[None]*n for i in range(m)]
print (c,'\n')#[[None, None, None, None], [None, None, None, None], [None, None, None, None]]
for i in range (m):
    for j in range (n):
        c[i][j]=(j-i)
        print (c[i][j],end=' ')
    print ()
'''
0 1 2 3
-1 0 1 2
-2 -1 0 1
'''

print (c,'\n') #[[0, 1, 2, 3], [-1, 0, 1, 2], [-2, -1, 0, 1]]


print ('c=c=[[0] * n for i in range (m)]\n')
c=[[0] * n for i in range (m)] #inicializa una matriz mxn a ceros
print (c)
for i in range (m):
    for j in range (n):
        c[i][j]=(i+j+i*j)
        print (c[i][j],end=' ')
    print ()
print (c)
print ()

print ('a=[] y m a[i].append(i+j)\n')
a=[]
for i in range (m):
    a.append([])
    for j in range (n):
            a[i].append(i+j)
            print (a[i][j],end=' ')
    print ()

print ()
'''
0 1 2 3
1 2 3 4
2 3 4 5
'''

print ('b=[[0] * n for i in range (m)]\n')
b=[[0] * n for i in range (m)]
print (b) #[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
print ()

for i in range (m):
    for j in range (n):
        b[i][j]=(i+j)
        print (b[i][j],end=' ')
    print ()
'''
0 1 2 3
1 2 3 4
2 3 4 5
'''
print (b) # [[0, 1, 2, 3], [1, 2, 3, 4], [2, 3, 4, 5]]

for j in range (m):
    print (b[j])
    print ()
print ()
'''
[0, 1, 2, 3]

[1, 3, 5, 7]

[2, 5, 8, 11]
'''
print (b)
print ('tabla: [[ 0 for i in range(n) ] for j in range(m)]\n')

tabla= [[ 0 for i in range(n) ] for j in range(m)]
print (tabla) #[[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range (m):
    for j in range (n):
        tabla[i][j]=(i*j+i+j)
        print (tabla[i][j],end=' ')
    print ()
'''
0 1 2 3
1 3 5 7
2 5 8 11
'''
print (tabla) # [[0, 1, 2, 3], [1, 3, 5, 7], [2, 5, 8, 11]]
print ()



b=[[None] * n for i in range (m)]
for i in range (m):
    for j in range (n):
        b[i][j]=(i*j+i+j)
        print (b[i][j],end=' ')
    print ()
print (b) # [[0, 1, 2, 3], [1, 3, 5, 7], [2, 5, 8, 11]]
print ()
'''
0 1 2 3
1 3 5 7
2 5 8 11
'''

Saluditos!, otra vez y perdón por la extensión...

Páginas: [1]