Arreglos o arrays en pseudocódigo

pseint_base_web

Hola a todos, hoy os explicare como podemos hacer arreglos o arrays en PseInt. Los arreglos o arrays en PseInt son estructuras que almacenan valores del mismo tipo como números o cadenas. Tiene una longitud determinada. Lo primero es declarar su dimensión, indicando el nombre del arreglo o array y su longitud dentro de [].

Veamos un ejemplo:

Proceso Prueba
    Definir num como entero;
    Dimension num[5];
FinProceso

Debemos definir num con el tipo de dato que queramos que sea, en este caso numérico, ya que si no al recorrer nos saltará un error.

En los arrays o arreglos empiezan desde 1 y acaban en la longitud que hayamos definido. Si has probado otros lenguajes de programación, sabrás que los arrays empiezan en 0 y acaban en la longitud -1 que hayamos definido. Si es tu caso lo podemos cambiar en las opciones de PseInt, Configurar -> Opciones del Lenguaje -> Personalizar, nos aparecerá lo siguiente:

opciones lenguajes

Elegimos la opción utilizar indices en arreglos y cadenas en base 0.

Nosotros lo dejaremos por defecto, es decir, que empiecen en 1.

Veamos como se asignan valores al array:

Proceso Prueba
      Definir num como entero;
      Dimension num[5];
      num[1]=5;
      num[2]=10;
      num[3]=15;
      num[4]=20;
      num[5]=25;
FinProceso

Como vemos, simplemente debemos indicar el nombre del array, el indice y su valor. Deben estar dentro de la longitud creada, es decir, que en este caso no podríamos asignar un valor al indice 6.

Para recorrer un array, deberemos usar una estructura repetitiva, lo mas recomendable es un Para o Desde donde la variable que declaremos, se insertara en el indice haciendo que en cada repetición varié. Veamos un ejemplo:

Proceso Prueba
      Definir num como entero;
      Dimension num[5];
      num[1]=5;
      num[2]=10;
      num[3]=15;
      num[4]=20;
      num[5]=25;
      Para i<-1 Hasta 5 Con Paso 1 Hacer
         escribir num[i];
      Fin Para
FinProceso

Esta es la salida del ejemplo anterior:

salida array

Ademas de mostrar los valores, también podemos introducirlos por teclado con leer nombre_array[indice] si queremos introducir valores en todos los indices, para ello usaremos un bucle. Veamos un ejemplo:

Proceso Prueba
      Definir num como entero;
      Dimension num[5];
      num[1]=5;
      num[2]=10;
      num[3]=15;
      num[4]=20;
      num[5]=25;
      Para i<-1 Hasta 5 Con Paso 1 Hacer
          leer num[i];
      Fin Para
      Para i<-1 Hasta 5 Con Paso 1 Hacer
          escribir num[i];
      Fin Para
FinProceso

Recuerda que podemos hacer lo que queramos con lo valores del array o arreglo, como sumar sus valores, hacer una media, etc.

Por último, si has probado otros lenguajes de programación sabrás que se puede saber el tamaño de un array o arreglo, con un método. En pseudocódigo esto no existe, pero si podemos hacer para ello, podemos usar una constante para indicar el tamaño. La mayor ventaja es que si cambiamos el tamaño de un array o arreglo, solo deberemos cambiar en un lugar y no en todos.

Veamos un ejemplo:

Proceso Prueba
      Definir num como entero;
      TAMANIO=5;
      Dimension num[TAMANIO];
      num[1]=5;
      num[2]=10;
      num[3]=15;
      num[4]=20;
      num[5]=25;
      Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
          Escribir "Escribe un valor para el indice ",i;
          leer num[i];
      Fin Para
      Para i<-1 Hasta TAMANIO Con Paso 1 Hacer
          escribir num[i];
      Fin Para
FinProceso

NOTA: uso TAMANIO en lugar de TAMAÑO porque PseInt no acepta el carácter ñ.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos para ayudarte.

Etiquetas

14 comments

  1. porque en el Para, inicies el recorrido con i<-1 y no con i=0 ?

  2. Porque por defecto en PseInt, los arrays empiezan en 1 y no en 0. Se puede cambiar con la opción que comento en el mismo post.

  3. Como se aplica esto, para ingresar nombres… digamos que quiero “almacenar” los nombres de un salon de matematica.

  4. Hola Roy,

    Es exactamente igual como lo harías con números, cuando almacenas la primera cadena, el array se considera un array de cadenas.

    Un saludo.

  5. Hola, como lo haria para meses del mes? y si al final ese mismo array lo quiero describir en pseudocodigo?. como seria…

    Sldos

  6. ¿meses del mes? No sé a que te rfieres. Podrías explicarte, por favor.

    Un saludo.

  7. Hola, me gustaría ayuda con una practica donde debo tener un arreglo con 30 vectores entonces por teclado debo poner el subindice de una posición q debo borrar y hacer q los demas valores se muevan a la izquierda, eso ya lo hice lo que no se es q hacer con el último vector si dejarlo en cero o si se puede hacer q queda vacio, si se puede dejar vacio me gustaria q me indicara como hacerlo. Gracias de antemano

  8. Hola como lo arias para que almacene palabras que contienen la letra “a” y que si no la contiene debe volver a ingresar otra palabra, y al final debe mostrar las palabras que guardo el array?

  9. pues pidiendo la palabra, recorriendo y si encuentro una “a” la almaceno y sino pedir nuevo, con lo que dices seria dos bucles anidados, uno para pedir las palabras y otro dentro para recorrer las palabras.

    Espero que te sirva

  10. SI amigo, lo que pasa es que al introducir una plabara no sigue procesando se queda ahi y no deja hacer nada mas y necesito que en un array de dimension de 10 en cada cuadro guarde la palabra siempre y cuando tenga una o mas “a”, pero en cambio si pongo solo la letra “a” el proceso sigue pero si pongo otra letra que no sea “a” se queda ahi y no permite hacer nada: mira lo tengo asi:

    Proceso sin_titulo

    Definir arr,p,x Como caracter
    Definir i,s como entero
    dimension arr[10]

    para i=1 hasta 10 con paso 1 hacer

    mostrar “digite una palabra”
    leer p
    para s=1 hasta Longitud(p)
    x=subcadena(p,s,s)
    si x=”a” o x=”A”
    arr[s]=x
    sino
    s=s-1
    FinSi
    FinPara
    FinPara
    para i=1 hasta 10
    Mostrar arr[i]
    FinPara
    FinProceso

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *