jueves, 26 de junio de 2014

Ejemplos de algoritmos con PSeint

Algoritmo de complejo habitacional (taller n°6)

Taller 6
Se  tiene un complejo habitacional  de siete torres,  20 pisos por torre y hasta seis  departamentos por piso.
Se desea determinar  mediante un  algoritmo PSeint con subprocesos, la cantidad de habitantes por:  torre, piso y tipo de departamento sabiendo que  en los primeros 10 pisos existen dos departamentos  de un  dormitorio y  dos de dos dormitorios y  de dos tres dormitorios, en los pisos 11 al 15 tres departamentos de  tres dormitorios y  tres de cuatro dormitorios,  y del  piso 16 hacia arriba existen  4 departamentos de cuatro dormitorios.






Leer y mostrar una palabra (taller n°5)

Taller 5
Utilizando funciones  y subprocesos como en el siguiente ejemplo:
subproceso leerYmostrar (palabra por referencia)
                escribir "ingrese una palabra"
                leer palabra
                largo<-longitud(palabra)
                palabra<- Mayusculas(palabra)
                escribir "la palabra tiene ", largo, "caracteres)"
                Para i<-1 Hasta largo Con Paso 1 Hacer
                               letra<- Subcadena(palabra,i,i)
                               numero<- ConvertirANumero(letra)
                               escribir "la letra ", letra, " corresponde al numero " numero
                Fin Para
FinSubProceso
Proceso letrasAnumer
                definir palabra como caracter
                leerYmostrar(palabra)
FinProceso

Que arroja el siguiente resultado:

*** Ejecución Iniciada. ***
ingrese una palabra
> azul
la palabra tiene 4caracteres)
la letra A corresponde al numero 17
la letra Z corresponde al numero 42
la letra U corresponde al numero 37
la letra L corresponde al numero 28
*** Ejecución Finalizada. ***

Escriba un algoritmo en PSeInt que reciba y  almacene en la primera posición de un vector  el largo de la palabra y a continuación en cada una de las celdas la ubicación de la  letra  dentro del alfabeto considerando  que la  letra A es  la número 1  y la letra Z es la letra 27.

En otro subproceso  escriba un algoritmo que rescate desde una matriz   de 5x6  el carácter indicado en cada una de las celdas  construyendo   y mostrando la palabra ingresada. 






Algoritmo Matriz traspuesta (taller n°4)

Taller 4 
Ejercicio PSeInt de Matrices y Vectores
Se pide diseñar un algoritmo en PSeInt que usando Vectores  permita determinar si un texto  es un Palíndromo, a continuación  la definición de palíndromo,
Palíndromo:

Un palíndromo (del griego palin dromein, volver a ir hacia atrás) es una palabra, número o frase que se lee igual hacia adelante que hacia atrás. Si se trata de un número, se llama capicúa. Habitualmente, las frases palindrómicas se resienten en su significado cuanto más largas son.




Ejercicio algoritmo Traza con Mientras Mod=0
Ejercicio Algoritmo Traza suma y resta de variables

Algoritmo del día a día





PSeint

¿Que es PSeInt?


  • Es un software que interpreta el pseudocodigo
  • Permite la generacion de diagramas de flujo, dado un algoritmo en pseudocodigo
  • Tambien es posible exportar el pseudocodigo a un lenguaje orientado a objetos como C++
  • Para compilar y ejecutar nuestro pseudocodigo debemos presionar el boton verde "play"
Tipos de datos

  • En pseint existen los siguientes tipos de datos:
  • Numerico: enteros y decimales, los decimales se separan con un punto (2; 2.5)
  • Logico o booleano: V y F
  • Caracter: caracter y cadena de caracteres, pueden ir encerrados entre comillas simples o dobles ('a', "a", 'hola', "hola")

Los tipos de datos son determinados automaticamente cuando se crean las variables o se les asigna un valor.

Este tipo de dato debera permanecer constante durante todo el proceso, si no es asi el proceso sera interrumpido

Expresiones

Operadores: 

Funciones: 

Acciones secuenciales

Asignacion: Nos permite guardar un valor en una variable.

c<-2;           por lo tanto c=2


Leer: nos permite recibir valores por teclado y guardarlos en variables

Leer a;       recibe el valor y lo almacena en a
Leer a, b, c;        recibe 3 valores y los guarda en la variable que corresponda

Escribir: Nos permite mostrar en pantalla algun tipo de dato, o varios separados por ','

Escribir 'hola mundo';
Escribir'hola mundo', 'hola', 2, c;

Estructuras de control

Si-Entonces: Es una estructura de control que depende del valor de una condicion logica, es decir, se debe evaluar una condicion y si la cumple debera ejecutar todas las acciones despues del "Entonces" y si no las cumple debe ejecutar todas las acciones despues del "Sino"


Segun: Es una estructura de control que depende del valor de una variable de tipo numerica para ejecutar una secuencia de instrucciones asociada a ese valor. Puede suceder que una secuencia de instrucciones sea comun para mas de un valor de la variable numerica. Cada valor de la variable numerica es una opcion que ejecuta una serie de instrucciones, es por esto que esta instruccion recomendable para manejar menu muy complejos




De otro modo: Significa que si la variable numerica toma un valor que no esta en ninguna de las opciones anteriores ejecuta las intrucciones de esa opcion. Esta opcion es ocupada generalmente para capturar (Catch) errores al ingresar una opcion no disponible y asi avisarle al usuario
















Mientras: Permite ejecutar una secuencia de instrucciones repetidamente hasta que la condicion no se cumpla 

Arreglos

Los arreglos (arrays) son una estructura de datos que permite el almacenamiento estatico (tamaño definido) de una serie de elementos del mismo tipo (caracter, numerico, Booleano) ordenados en fila.

Su representacion matematica es la de un vector de 1 dimension, por lo que podemos llegar a representar una matriz con arrays multidimensionales.

Cada array posee un indice (empieza en 0) que indica la posicion en la que esta almacenado un eleento en el arreglo, esto se debe a que el array esta segmentado.


Existen dos tipos de arreglos dependiendo del tipo de dato que contenga

Un ejemplo es un arreglo numerico: 

Un arreglo de caracteres: 





En pseint la sentencia para poder definir un arreglo es la siguiente: Dimension <identificador>[tamaño]

Ej: Dimension Lista[9] 

Para poder acceder a un elemento del arreglo se utiliza el siguiente comando:
<identificador>[posicion_elemento] (empieza en la 1 posicion en pseint)

Ej: Lista[1], esto va a devolver el elemento en la posicion 1



Notacionales

Se pueden comentar lineas, para escribir por ejemplo la documentacion de un programa. Esto se ahce con el operador //, todo lo que proceda //, hasta el final de la linea, no sera tomado en cuenta por el interpretador.
-//autor:nombre

No pueden hacer instrucciones despues del proceso y FinProceso, excepto comentarios

Los identificadores de las variables, deben constar solo del etras, numeros y/o guin abajo, comenzado siempre con una letra

Las estructuras no secuenciales puedenanidars, esdecir, pueden contener otras adentro pero la estructura contenida debe comenzar y finalizar dentro de la contenedora.

Algoritmos

Definicion de algoritmo

Un algoritmo es una lista definida y ordenada de operaciones o acciones para poder encontrar la solucion a un problema

Esta compuesto por operaciones, metodos y variables

  • Entre las operaciones se conocen las matematicas: +, -, /, *.
  • Los metodos son las funciones disponibles: Mostrar en pantalla
  • Las variables pueden ser diversos de tipos: 1, V y F, "a", [1 2 3 4 5] ó [a b c d e], "aaaa", Null



Representaciones de un algoritmo 

Todo algoritmo puede ser representado por:

Lenguaje natural: Los algoritmos de este tipo son similares a las recetas de cocina (para preparar comidas, bebidas, etc) o a los manuales de instruccion para manejo de una maquina o un equipo (lavadora o el microondas).
En la vida cotidiana, implicitamente seguimos ciertas actividades rutinarias (algoritmos) en el desarrolo de nuestras acctividades

Pseudocodigo: Es un lenguaje artificial e informal que ayuda a los programadores a desarrollar algoritmos. El pseudocodigo es similar al lenguaje cotidiano; es comodo y amable con el usuario, aunque no es realmente un verdadero lenguaje de computadora. No se ejecutan en las computadoras mas bien sirven para ayudar al programador a razonar un programa antes de intentar escribirlo en algun lenguaje. Un programa ejecutado en Pseudocodigo puede ser facilmente convertido en un programa, si esque esta bien elaborado. Por ejemplo supongamos que la nota para aprobar un examen es de 60. El enunciado del pseudocodigo seria:

Si calificacion >=60 entonces
Mostrar "aprobado"
FinSi

Diagramas de flujo: Los driagramas de flujo son esquemas que representan graficamente un algoritmo por medio de los pasos de un proeso, que se realizan para entender mejor al mismo y son utillizados en programacion, economia y procesos industriales. Utilizan una serie de simbolos con significados especiales.
Un diagrama de flujo u organigrama es una representacion diagramatico que ilustra la secuencia de las operaciones que se realizan para conseguir la solucion de un problema y son usados normalmente para seguir la secuencia logica de las acciones en el diseño de problemas de computadoras y se dibujan generalmente antes de comenzar a programar el codigo frente a la computadora y una que se dibuja el diagrama de flujo, llega a hacer facil escribir el programa en cualquier idioma de alto nivel

Lenguaje de programacion: Es un lenguaje que puede ser utilizador para controlar el comportamiento de una maquina, particularmente una computadora. Consiste en un conjunto de reglas sintacticas y semanticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacion y lenguaje informatico como si fuesen sinonimos,no tiene porque ser asi, ya que los lenguajes informaticos engloban a los lenguajes de programacion y a otro mas, como, por ejemplo, el HTML