elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema contador python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema contador python  (Leído 4,468 veces)
runas3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Problema contador python
« en: 30 Mayo 2017, 15:01 pm »

Hola a todos,os explico el problema que tengo.
Estoy haciendo un ejercicio, que es crear una matriz i hacer un triangulo con x, en eso no hay problema, solo que el usuario tiene que entrar un numero inicial y hay un contador que va sumando los números, pero cuando hay una x el contador no lo hace bien por ejemplo habría 13, x, 15 y así no, tendría que ser 13 x 14.
Es como el contador sigue funcionando onde hay x pero quiero que vaya al siguiente parámetro y no cuente la x pero no encuentro la manera de hacerlo.
Haber si me podéis dar alguna pista o ayudarme gracias.

Código:
def omple_simplista(xifra,num_files) :
    matriu_inicial=[['' for i in range(num_files)] for i in range(num_files)]
    contador=0
    for a in range(num_files):
        for b in range(num_files):
            matriu_inicial[a][b]=int(xifra+contador)
            contador=contador+1
    return matriu_inicial

num_files = int(input(" quantes files "))
xifra= int(input(" primer element "))

matriu=[]
matriu=omple_simplista(xifra,num_files)

numero_columna_inicial=num_files//2-1
numero_columna_final=num_files//2+1

for d in matriu:
    matriu[num_files//2][num_files//2]="x"
   
for q in range (num_files//2+1,num_files,1):
    for w in range (numero_columna_inicial,numero_columna_final+1,1):
        matriu[q][w]="x"
    numero_columna_inicial=numero_columna_inicial-1
    numero_columna_final=numero_columna_final+1

for a in matriu:
    print(a)
Pongo link de la imagen(ejecución programa) que no me deja poner la imagen sola,
https://ibb.co/kbf1na


En línea

animanegra

Desconectado Desconectado

Mensajes: 287



Ver Perfil
Re: Problema contador python
« Respuesta #1 en: 30 Mayo 2017, 15:35 pm »

A ver si entiendo tu problema, tu problema es que te pueden meter como parámetros cosas que no sean números y quieres saltártelos ¿no?

Tienes una función de las strings llamada isdigit() que devuelve true o false en caso de que sea o no un numero, simplemente comprueba el argumento que te están pasando y hasta que no sea un numero (osea que la función isdifit te diga true) lee el siguiente parámetro.


En línea


42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.
runas3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema contador python
« Respuesta #2 en: 30 Mayo 2017, 15:46 pm »

El usuario lo único que puedo poner son números pone el numero de filas y columnas, de la matriz y luego el numero inicial con el que empieza.
Básicamente la matriz esta llena de números y luego lo que yo hago es poner x haciendo un triangulo con fors,  pero al poner las x el contador no funciona correctamente.
Si te fijas en la imagen que he puesto veras que esta el numero 13 x y luego 15 pues lo que quiero es que sea 14 y con los otros que siga el contador correctamente.

He intentado poner este if pero no he conseguido que funcione.
Código:
if matriu_inicial[num_files//2][num_files//2]=="x":
                contador=contador
            else:
                contador=contador+1

Con esto he intentado decir que cuando encuentre una x en esta posición de la matriz que contador sea igual al anterior.
En línea

animanegra

Desconectado Desconectado

Mensajes: 287



Ver Perfil
Re: Problema contador python
« Respuesta #3 en: 30 Mayo 2017, 23:49 pm »

a ver, si quieres que el contador sea igual an anterior. Simplemente no lo cambies y asi no pierdes el tiempo con instrucciones inutiles.
La idea del programa es mostrar un triangulo de X en pantalla. ¿Para que utilizas una matriz?
Usas cosas un tanto, complicadas viendo que lo que estas haciendo es empezar en el tema de programacion.
Simplifica tu problema, porque lo estas enfocando realmente mal.
1 necesitas un contador que cuente la altura que tendra tu triangulo, se llama altura y empezará en un tamaño dado por el usario y terminara en 0.
pinta una X por cada valor de la altura cada una en una linea diferente.

2 ahora planteate el problema de ¿que tengo que hacer en cada altura? Que será dibujar el ancho, empieza en lugar de dibujar un triangulo dibujando un cuadrado. Con lo que el problema se reduce a dibujar X seguidas en la misma linea. un numero ancho de veces.

3 Una vez que tienes eso modifica el programa para que en cada altura quites uno a la anchura que dibujas generando asi un triangulo.

Si lo tienes que meter en una matriz por exigencias del ejercicio, genera una matriz al principio y haz el mismo proceso que pintando en pantalla, usando los mismos indices de altura y anchura pero salvando el la X tambien en la matriz.
En línea


42
No contesto mensajes por privado, si tienes alguna pregunta, consulta o petición plantéala en el foro para que se aproveche toda la comunidad.
runas3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema contador python
« Respuesta #4 en: 31 Mayo 2017, 00:16 am »

Estoy obligado a ponerlo en la matriz, y realmente el único problema que tengo es con el contador lo del triangulo sino me equivoco esta bien, lo siento seguramente lo he explicado mal.

Voy a poner el enunciado de lo que estoy haciendo

Ex1.Una matriz es simplista si es una matriz cuadrada de nxn (n es non) y cada elemento de la matriz es igual al elemento anterior incrementado en 1, excepto el triángulo inferior, que tiene el carácter X.
Crea un programa que escribe una matriz simplista según los parámetros que escribe el usuario.

Pongo aquí unas imágenes con los ejemplos del resultado que quiero que me de.
Se puede ver que en el contador salta correctamente por ejemplo cuando esta en 12 y luego encuentra la x y en el siguiente pone 13, pues el problema que yo tengo es que se pone 14
https://ibb.co/bQRKqv
En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Problema contador python
« Respuesta #5 en: 1 Junio 2017, 00:01 am »

Comparto con animanegra que el planteo de solución está muy mal:
1)igual modifique lo básico del código para que muestre lo que quieres, usando la lógica antes expuesta
2)la solución al planteo del triángulo para mí, también está mal, pero usaré tu mismo código
3) supongo que si solo importa el resultado antes descripto ya con esto funciona.

Código
  1. #-*- coding: utf -8 -*-
  2. filas=int(input("Cantidad de filas: "))
  3. primero=int(input("Número inicial:"))
  4.  
  5. matriz= [[0]*filas for a in range(filas)]
  6. numero_columna_inicial=filas//2-1
  7. numero_columna_final=filas//2+1
  8.  
  9. for d in matriz:
  10.    matriz[filas//2][filas//2]="x"
  11.  
  12. descontar= 1
  13. for q in range (filas//2+1,filas,1):
  14.    for w in range (numero_columna_inicial,numero_columna_final+1,1):
  15.        matriz[q][w]="x"
  16.        descontar+=1
  17.    numero_columna_inicial=numero_columna_inicial-1
  18.    numero_columna_final=numero_columna_final+1
  19.  
  20. for f in range(filas):
  21.    for c in range(filas):
  22.        if matriz[f][c] == 0 :
  23.            matriz[f][c]= primero
  24.            primero+=1
  25.  
  26. for a in matriz:
  27.    print(a)
  28.  

Por supuesto no es absoluto! python da muchas formas de resolución, aunque traté de mantenerme en el código, algunas cosas las salté por obvias e innecesarias
Saludos
« Última modificación: 1 Junio 2017, 00:05 am por tincopasan » En línea

runas3

Desconectado Desconectado

Mensajes: 4


Ver Perfil
Re: Problema contador python
« Respuesta #6 en: 1 Junio 2017, 12:53 pm »

Gracias por la respuesta!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con contador en C « 1 2 »
Programación C/C++
-/lnkx/- 12 20,184 Último mensaje 7 Diciembre 2011, 18:53 pm
por A.ABAENA
[Python] - Contador de palabras en frases
Scripting
ChicoMaravilla 4 31,069 Último mensaje 18 Enero 2011, 21:17 pm
por Karcrack
[PYTHON] Contador de palabras
Scripting
ChicoMaravilla 2 10,780 Último mensaje 5 Abril 2011, 20:47 pm
por Novlucker
[Python] Contador de edades
Scripting
sora_ori 2 2,868 Último mensaje 20 Noviembre 2013, 15:29 pm
por sora_ori
Contador de tiempo en Python
Scripting
duRRR 3 10,107 Último mensaje 27 Mayo 2015, 06:26 am
por 0x5d
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines