Autor Tema: Se desea leer el elemento j-ésimo de una lista

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

01 Agosto, 2021, 09:02 am
Leído 2461 veces

Berner

  • $$\Large \color{#5e8d56}\pi\,\pi\,\pi$$
  • Mensajes: 340
  • País: cr
  • Karma: +0/-1
Hola alguien  puede ayudarme con este pseudocódigo es que los pruebo en pseint y no me funciona alguien podría darme alguna guía para que funcione en pseint.


01 Agosto, 2021, 09:53 am
Respuesta #1

feriva

  • $$\Large \color{#a53f54}\pi\,\pi\,\pi\,\pi\,\pi\,\pi\,\pi$$
  • Mensajes: 12,032
  • País: es
  • Karma: +1/-0
  • Sexo: Masculino
Hola alguien  puede ayudarme con este pseudocodigo es que los pruebo en pseint y no me funcina alguien podria darme alguna guia para que funcione en pseint.

Te dice que primero hay que saber la longitud de la lista L. Entonces se entiende que tienes metida alguna lista y a partir de algunos comandos hay que conocer su longitud. Ese lenguaje no lo conozco yo, pero sé que es parecido a Python, sólo que en español. Si fuera en Python, éste tiene un comando (función) directo para conocer la longitud de L, que es len(L). Pero si no se puede usar una función tan "prefabricada, habrá que usar un bucle que vaya leyendo uno por uno los elementos e ir contándolos mediante un contador; así tienes la cantidad en una variable (digamos C) y para saber cuántos elementos tiene L pues sólo hay que decirle que es C.

Ya después, entonces sí, pones: "si C=0 entonces escribir lista vacía y tal..." Y, si fuera ese caso y ya ha escrito "lista vacía", le acto mandas acto seguido que pare, mandas parar al programa con el comando o función que tenga para eso; pues si ocurre tal cosa ya no tiene que seguir.

Después, en el “si no”, como la lista no está vacía y ya lo ha comprobado antes (si estuviera vacía se hubiera parado) basta con que compruebe que j=<C, la longitud de L.
Y después ya leer el dato con el comando que sea.

Saludos.

01 Agosto, 2021, 09:18 pm
Respuesta #2

mathtruco

  • Moderador Global
  • Mensajes: 5,598
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Hola Berner. Tampoco conozco ese lenguaje. El pseudocódigo se ve bien, pero viendo la documentación del lenguaje veo que el condicional "Si" lo escriben con mayúscula, al igual que el "Entonces" (tú escribiste con minúscula). Además el "Sino" lo escriben junto y con mayúscula y tú escribiste "si no". Otro error puede ser el "FinSi", que tú escribiste "fin_si". Es posible que el lenguaje aguante ambas formas, como te digo no sé nada del lenguaje, pero creo que es un buen punto de partida verificar en la documentación cuál es la forma correcta.

Veo que el lenguaje tiene un foro oficial, seguro ahí te pueden dar una ayuda más precisa sobre la sinaxis:  https://sourceforge.net/p/pseint/discussion/2368332   aunque parece que no responden rápido.

02 Agosto, 2021, 09:41 am
Respuesta #3

geómetracat

  • Moderador Global
  • Mensajes: 4,065
  • País: es
  • Karma: +0/-0
  • Sexo: Masculino
El problema es el que dice mathtruco. El Pseint este (que no conocía) es un lenguaje de programación con su propia sintaxis, mientras que lo que has puesto en la foto es un algoritmo en pseudocódigo, que no se adecúa a la sintaxis del Pseint. Así que hay que adaptarlo un poco. Por ejemplo, lo siguiente funciona:
Código: [Seleccionar]
SubProceso B <- acceso(P,L,j)
Si L=0 entonces
Escribir('Lista vacía')
SiNo
Si (j>=i) y (j<=L) entonces
B <- P[j]
SiNo
Escribir('ERROR:Elemento no existente')
FinSi
FinSi
FinSubProceso

Algoritmo encontrar_elemento
L=5
Dimension lista[L]
lista[1]<-5
lista[2]<-4
lista[3]<-8
lista[4]<-78
lista[5]<-24
Escribir acceso(lista,L,4)
FinAlgoritmo

El algoritmo que te interesa es solo el subproceso del principio. El proceso de después define una lista y llama al subproceso para ver si va bien. No sé si hay maneras más rápidas de definir listas con Pseint, es la primera vez que lo uso.

Un comentario al margen. El Pseint este parece que es un lenguaje de programación "sencillo" para la gente que aprende a programar. A mí este tipo de cosas me parecen una pérdida de tiempo: si vas a aprender a programar creo que vale más empezar con un lenguaje que vayas a usar más adelante pero que sea sencillo de empezar a aprender (como Python). El problema de estos lenguajes es que no tienen mucho recorrido más allá de un primerísimo curso, y además son muy poco útiles a la que quieres hacer algo un poco sofisticado. Por otra parte, el editor me pone nervioso porque te marca todos los errores mientras estás escribiendo, y lo hace en líneas aparte. Me parece muy molesto.
La ecuación más bonita de las matemáticas: \( d^2=0 \)

02 Agosto, 2021, 06:02 pm
Respuesta #4

mathtruco

  • Moderador Global
  • Mensajes: 5,598
  • País: cl
  • Karma: +0/-0
  • Sexo: Masculino
  • El gran profesor inspira
Un comentario al margen. El Pseint este parece que es un lenguaje de programación "sencillo" para la gente que aprende a programar. A mí este tipo de cosas me parecen una pérdida de tiempo: si vas a aprender a programar creo que vale más empezar con un lenguaje que vayas a usar más adelante pero que sea sencillo de empezar a aprender (como Python).
(...)

Iba a comentar lo mismo. Python es un lenguaje igual de sencillo y además multipropósito, así que junto con aprender a programar el estudiante queda mejor preparado para hacer más cosas.

P.D.

Te dice que primero hay que saber la longitud de la lista L. Entonces se entiende que tienes metida alguna lista y a partir de algunos comandos hay que conocer su longitud. Ese lenguaje no lo conozco yo, pero sé que es parecido a Python, sólo que en español. Si fuera en Python, éste tiene un comando (función) directo para conocer la longitud de L, que es len(L). Pero si no se puede usar una función tan "prefabricada, habrá que usar un bucle que vaya leyendo uno por uno los elementos e ir contándolos mediante un contador; así tienes la cantidad en una variable (digamos C) y para saber cuántos elementos tiene L pues sólo hay que decirle que es C.

El inicio del enunciado (el paso 1 del pseudocódigo) está confuso, pero me parece que la lista y su longitud con conocidas (inputs del programa). Así que el ejercicio es sólo decidir en los casos: si L=0 imprimir 'Lista vacía', si \( i\in\{1,\dots L\} \) imprimir el valor de la i-ésima coordenada del vector, y si \( i>L \) imprimir 'mensaje de error'.