Autor Tema: Programando en Lenguaje PseudoCodigo y exportandolo a C/++/Matlab/Python y otros

0 Usuarios y 1 Visitante están viendo este tema.

01 Noviembre, 2014, 05:28 pm
Respuesta #40

luis

  • Aprendiz
  • Mensajes: 304
  • Karma: +1/-0
  • Sexo: Masculino
hola,

la función derivadora parece ser un buen ejercicio para aprender a manipular listas. el polinomio está representado por una lista, donde la posición \( i \) proporciona el coeficiente correspondiente a \( x^{m-i} \).

consideremos el polinomio \( P = \sum_{i\in[0..m]} {a_{m-i} x^{m-i}} \). su derivada es  \( P' = \sum_{i\in[0..m)} {(m-i) a_{m-i} x^{m-i-1}} \). observemos ahora cómo se modifican las listas asociadas a estos polinomios...

\( [a_m, a_{m-1}, \dots a_2, a_1, a_0] \mapsto [m a_m, (m-1) a_{m-1}, \dots 2 a_2, a_1] \)

en python hay funciones sobre listas que permiten representar adecuadamente estas transformaciones. observemos algunas acciones que nos permiten implementar esta operación.

* crear una lista \( [m, m-1, \dots 2, 1] \)
* aplicar el producto a las dos listas elemento a elemento

pues bien, eso es precisamente lo que hace el siguiente código.

Código: [Seleccionar]
import mul from operator
def derivadora (pol, m):
   aux = range (m, 0, -1)
   out = map (mul, pol, aux)
   return list (out)

el siguiente código más compacto hace lo mismo.

Código: [Seleccionar]
import mul from operator
def derivadora (pol, m):
   return list (map (mul, pol, range (m, 0, -1)))

hay una diferencia muy importante entre lo que muestro aquí y la derivadora original. resulta que en la derivadora original se usa la lista para representar el polinomio, pero se piensa la derivación en términos del polinomio original. en el código que muestro, se piensa la derivación como transformación en la representación del polinomio. ese salto que consiste en entender las transformaciones no en términos del problema original sino en términos de su representación es, a mi juicio, una de las características de la programación.

quiero decir finalmente que, me parece, aún resta pensar más en la representación de qué es un polinomio. en particular, no queda claro por qué aparece el grado de los polinomios. es importante que un polinomio \( P \) quede representado por algún objeto P, y no por una colección de cosas que hay que interpretar en forma conjunta. en el caso de los polinomios, esto se puede resolver con listas; antes de avanzar en la codificación, es importante manejarse con comodidad con la representación elegida.

saludos

luis

17 Diciembre, 2014, 09:49 am
Respuesta #41

avcaballero

  • Nuevo Usuario
  • Mensajes: 1
  • Karma: +0/-0
  • Sexo: Masculino
Hola, saludos desde España. Es el primer foro de matemáticas en el que tomo parte. El programa parece muy interesante. Saludos.

17 Diciembre, 2014, 05:28 pm
Respuesta #42

ingmarov

  • Moderador Global
  • Mensajes: 4,640
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
Hola, saludos desde España. Es el primer foro de matemáticas en el que tomo parte. El programa parece muy interesante. Saludos.

Bienvenido avcaballero!

Te refieres a PSeint, lo es, es interesante y muy útil para comenzar en el mundo de la programación. O te refieres a los programas que hemos publicado, algunos en Pseint y otros con Python.

Saludos
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

22 Diciembre, 2014, 05:49 pm
Respuesta #43

compsystems

  • Junior
  • Mensajes: 60
  • Karma: +0/-0
  • Sexo: Masculino
PSEINT causa revuelo cuando se dice programar el SEUDOCODIGO, mejor debería llamarse programación en CASTELLANO.

Gracias avcaballero por la codificación en ensamblador (ASM) del juego Deducir_Numero, pero este tiene un problema de lógica en la versión de PSEINT, yo reescribí el juego para que funcione bien

Código en PSEINT
Código: (C) [Seleccionar]
Proceso Deducir_Numero//()

// Definicion de Variables y tipo de contenedor
definir intentos, total_intentos como enteros
definir num_secreto, num_ingresado como reales

// Asignacion de Variables
intentos = 0
total_intentos = 0
num_secreto = azar(100)+1
num_ingresado = 0

// Prsentacion
Escribir "Juego Matemático versión 0.7"
Escribir ""
Escribir "El programa genera un numero real entre 1 y 100. Trate de deducirlo como recomendacion en 8 intentos como maximo"

// Entrada de Datos
Escribir ""
Escribir "Ingrese el # de intentos personalizados"
Leer total_intentos
Escribir "Intento #", total_intentos
intentos = total_intentos

Escribir "solo para hacer pruebas num aleatorio=", num_secreto // elimine esta sentencia para verdaderamente jugar

Escribir "Cual es el numero ?"
Leer num_ingresado

Mientras num_secreto <> num_ingresado Y intentos > 1 Hacer

Si num_secreto > num_ingresado
Entonces
Escribir "El numero deducido es MENOR que el numero en cuestion"
Sino
Escribir "El numero deducido es MAYOR que el numero en cuestion"
Fin Si
Escribir ""

intentos  =  intentos - 1 // decrementa en 1 el numero de intentos
Escribir "Le quedan ", intentos, " intento(s):"

Escribir "Intento #", intentos
Escribir "Cual es el numero?"
Leer num_ingresado

Fin Mientras

Si num_secreto <> num_ingresado Entonces
Escribir "Perdio! trato en " ( ( total_intentos + 1 ) - intentos ), " intento(s.) :~(, pero el numero era: ", num_secreto
Sino
Escribir "Gano! Usted lo dedujo en: ", ( ( total_intentos + 1 ) - intentos ), " intento(s.)"
Fin Si

Fin Proceso

PD: Anexo el link tu fabuloso sitio web HOME PAGE de avcaballero

02 Marzo, 2015, 02:35 am
Respuesta #44

compsystems

  • Junior
  • Mensajes: 60
  • Karma: +0/-0
  • Sexo: Masculino
Primera versión del 2015: incluye un gran número de correcciones, pequeñas mejoras a nivel de interfaz, perfiles actualizados (y la posibilidad de configurarlos con más detalle que antes en algunos aspectos), y una nueva funcionalidad denominada "ejercicios autocontenidos"

http://pseint.sourceforge.net/index.php?page=descargas.php

Video mostrando la funcionalidad "ejercicios autocontenidos"
https://www.youtube.com/watch?v=iA1OgEpDrts


12 Marzo, 2015, 08:16 pm
Respuesta #45

compsystems

  • Junior
  • Mensajes: 60
  • Karma: +0/-0
  • Sexo: Masculino
Que os parece esta nueva característica, practica?, novedosa? didáctica? útil?

12 Marzo, 2015, 09:44 pm
Respuesta #46

ingmarov

  • Moderador Global
  • Mensajes: 4,640
  • País: hn
  • Karma: +0/-0
  • Sexo: Masculino
No te confíes, revisa lo que escribo. Yo también me equivoco.
Odio el autocorrector de Android...

24 Diciembre, 2016, 05:39 am
Respuesta #47

compsystems

  • Junior
  • Mensajes: 60
  • Karma: +0/-0
  • Sexo: Masculino