Vistas de página en total

jueves, 26 de junio de 2014

Primeros pasos con PSEINT

El primer paso

El primer paso es descargar el programa para ello sigue el siguiente link el cual es un video tutorial para descargar el progra desde la pagina del autor y luego el procedimiento correcto para instalarlo en tu computador:

Ejecutando los primeros algoritmos

Una vez descargado el programa, el paso siguiente es crear y compilar un algoritmo. Al iniciar el progrma automaticamente nos crea el inicio y el fin del proceso(Algoritmo) y no sugiere un nombre para el proceso .
la instruccion para mostrar un mensaje en pantalla es Ecribir, el texto a mostrar debe ir entre comilla, por ejemplo:

Proceso sin_titulo 
Escribir "Hola Mundo";
FinProceso

Toda instruccion debe terminar con punto y coma. Para ejecutar el algortimo presiona la tecla F9, si el programa esta escrito correctamente debe apracerte la siguiente ventana

Entrada de datos

Para cargar un dato desde el telcado se utiliza La instruccion Leer, con el respectivo nombre de la variable donde se piensa guardar el dato por Ejemplo:
Leer num1;
El progrma completo para leer un numero desde el teclado y mostrarlo en pantalla seria el siguiente:
Cuyo resultado es el siguiente:

Ejercicios


  • Realizar un progrma que le pida al usuario La base y la altura de un Triangulo y muestre en panatalla el área
  • Realizar un programa que convierta cierta cantidad de minutos en horas
Resultado área Triangulo
Minutos a horas

Aquí otro video para poder entender de mejor manera los algoritmos de pseint


domingo, 8 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









Ejercicio de niños, jovenes, adultos y viejos


sábado, 7 de junio de 2014

PSeInt

¿Que es PSeInt?

  • PSeInt es una herramienta para asistir a un estudiante en sus primeros pasos en programación. Mediante un simple e intuitivo pseudolenguaje en español (complementado con un editor de diagramas de flujo), le permite centrar su atención en los conceptos fundamentales de la algoritmia computacional, minimizando las dificultades propias de un lenguaje y proporcionando un entorno de trabajo con numerosas ayudas y recursos didácticos.
  • 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

Definición de algoritmo

Un algoritmo se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema

Para realizar un programa es conveniente el diseño o definición previa del algoritmo. El diseño de algoritmos requiere creatividad y conocimientos profundos de la técnica de la programacion. Luis Joyanes, programador experto y autor de muchos libros acerca de lógica y programacion nos dice "en la ciencia de la computación y en la programacion, los algoritmos son mas importantes que los lenguajes de programacion o las computadoras. Un lenguaje de programacion es solo un medio para expresar un algoritmo y una computadora es solo un procesador para ejecutarlo".

Los algoritmos son independientes de los lenguajes de programacion. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje diferente de programacion. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programacion

Características de los algoritmos


  • Preciso. Definirse de manera rigurosa, sin dar lugares a ambiguedades.
  • Definido. Si se sigue un algoritmo dos veces, se obtendrá el mismo resultado
  • Finito. Debe terminar en algun momento
  • Puede tener cero o mas elementos de entrada
  • Debe producir un resultado. Los datos de salida seran los resultados de efectuar las instrucciones
Se concluye que un algoritmo debe ser suficiente para resolver el problema. entre dos algoritmos que lleven a un mismo objetivo, siempre sera preferible el mas corto (se debera analizar la optimiacion de tiempos y / o recursos)

Etapas para la solucion de un problema por medio del computador

  1. Analisis del problema, definicion y delimitacion (macroalgoritmo). Considerar los datos de entrada, el proceso que debe realizar el computador y los datos de salida
  2. Diseño y desarrollo del algoritmo (se utiliza pseudocodigo, escritura natural del algoritmo, diagramas de flujo, etc)
  3. Prueba de escritorio. Seguimiento manual de los pasos descritos en el algoritmo. Se hace con valores bajos y tiene como fin detectar errores.
  4. Codificacion. Seleccion de un lenguaje de programacion y digitacion del pseudocodigo haciendo uso de la sintaxis y estructura gramatical del lenguaje seleccionado
  5. Compilacion o interpretacion del programa. El software elegido convierte las instrucciones escritas en el lenguaje a las comprendidas por el computador
  6. Ejecucion. El programa es ejecutado por la maquina para llegar a los resultados esperados
  7. Depuracion (debug). Operacion de detectar, localizar y eliminar errores de mal funcionamiento del programa
  8. Evaluacion de resultados. Obtenidos los resultados se los evalua para verificar si son correctos. (Un programa puede arrojar resultados incorrectos aun cuando su ejecucion no muestre errores)
Algoritmos cualitativos y algoritmos cuantitativos

Un algoritmo es cualitativo cuando en sus pasos o instrucciones no estan involucrados calculos numericos. Las instrucciones para armar un aeromodelo, para desarrollar una actividad fisica o encontrar un tesoro, son ejemplos de algoritmos cualitativos.

Trate de diseñar el algoritmo para estos casos
  • Tomar mate
  • Utilizar una guia telefonica
  • Cocinar siguiendo una receta
  • Cambiar una llanta de automovil
  • Buscar una palabra en el diccionario
Los algoritmos cuantitativos involucran calculos numericos

Ejemplos :

  • Solucion de un factorial
  • Solucion de una ecuacion de segundo grado
  • Encontrar el minimo comun multiplicador
Tecnicas de representacion

Para la representacion de un algoritmo, antes de ser convertido a lenguaje de programacion, se utilizan metodos de representacion escrita, grafica o matematica. Los metodos mas conocidos son:

  • Diagramacion libre (Diagramas de flujo)
  • Diagramas Nassi-Shneiderman
  • Pseudocodigo
  • Lenguaje natural (español, ingles, etc)
  • Formulas matematicas
El lenguaje natural puede no ser suficientemente preciso, permitiendo ambiguedades, obteniendo una descripcion no del todo satisfactoria. Las formulas, propias del lenguaje matematico, son un buen sistema de representacion, pero no suelen ser faciles de convertir en programas. Por lo tanto, trataremos en este curso los tres primeros modelos

Diagramas de flujo

Es quizas la forma de representacion mas antigua. Algunos autores suelen llamarlos tambien como diagramas de logica o flujogramas. 

Un diagrama de flujo utiliza cajas estandar tales como las que se muestran en las figuras 1, 2 y 3:

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




Diagramas Nassi-Schneiderman o Chapin 

Tambien conocidos como Diagramas de Chapin, corresponden a uno de los tipos de diagramacion estructurada. Las acciones se escriben en rectangulos o cajas sucesivas. Se pueden escribir diferentes acciones en una caja. La simbologia utilizada es como vemos en las figuras siguientes


Pseudocodigo

Es la tecnica que permite expresar la solucion de un problema mediante un algoritmo escrito en palabras normales de un idioma (por ejemplo, el español), utilizando palabras imperativas. Es comun encontrar en pseudocodigo palabras como : Inicie, lea, imprima, sume, divida, calcule, finalice. No hay un lexico obligado para el pseudocodigo, pero con el uso frecuente se han establecido algunos estandares. Este es un ejemplo de un programa escritoen pseudocodigo:



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

Tecnicas de diagramacion

En nuestra asignatura, por su facilidad y adecuada representacion de los problemas a resolver, utilizaremos para representar los algoritmos, a la tecnica de diagramas de flujo

A su vez, para un mejor ordenamiento en la realizacion de esos diagramas, se han elaborado tecnicas de diseños de los mismos

Nosotros utilizaremos las denominadas top-down y estructurada

La primera de ellas, la top-down, persigue la descomposicion de un problema en partes, tomando en primer lugar la dimension total, para luego ir identificando sus partes componentes e ir tratandolas en forma particular y con mayor grado de detalle cada vez, hasta llegar a una expresion final de resolucion simple, trivial o ya conocida

La diagramacion estructurada no indica la forma en que se puedan utilizar y vincular los simbolos graficos entre si

De esta manera se distinguen las siguientes estructuras elementales, que luego al combinarse entre si, dan lugar al diagrama total

Estructuras 

Secuencia
Decision simple
Decision multiple
Repeticion con condicion inicial
Repeticion con condicion final


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

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


Aritmetica binaria

¿Que es la aritmetica binaria?

La unidad aritmético lógica, en la CPU del procesador, es capaz de realizar operaciones aritméticas, con datos numéricos expresados en el sistema binario. Naturalmente, esas operaciones incluyen la adición, la sustracción, el producto y la división. Las operaciones se hacen del mismo modo que en el sistema decimal, pero debido a la sensillez del sistema de numeración, pueden hacerse algunas simplificaciones que failitan mucho la realizacion de las operaciones

Suma en binario

La tabla de sumar, en binario es mucho más sencilla que un decimal. Solo hay que recordar cuatro combinaciones posibles



Las sumas 0 + 0,0 + 1 y 1 + 0 son evidentes:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1

Pero la suma de 1+1, que sabemos que es 2 en el sistema decimal, debe escribirse en binario con dos cifras (10) y, por lo tanto 1+1 es 0 y se arrastra una unidad, que se suma a la posicion siguiente a la izquierda como se explica de mejor manera en el siguiente video:


Sustraccion en binario

La tecnica de la resta en binario es, nuevamente, igual que la misma operación en sistema decimal. Pero conviene repasar la operacion de restar en decimal para comprender la operacion binaria, que es mas sencilla. Los terminos que intervienen en la resta se llaman minuendo, sustraendo y diferencia


Las restas  0 - 0,1 - 0 y 1 -1 son evidentes:
0 – 0 = 0
1 – 0 = 1
1 – 1 = 0

La resta 0 - 1 se resuelve, igual que en el sistema decimal, tomando una unidad prestada de la posición siguiente: 10 - 1, es decir, 210 – 110 = 1.  Esa unidad prestada debe devolverse, sumándola, a la posición siguiente, en el video se explica de una mejor y mas detallada forma


Multiplicacion binaria

La multiplicacion en binario es mas facil que en cualquier otro sistema de numeracion. Como los factores de la multiplicacion solo pueden ser ceros o unos, el producto solo puede ser cero o uno. En otras palabras, las tablas del multiplicar del cero y del uno son muy faciles de aprender



En un ordenador, sin embargo, la operacion de multiplicar se realiza mediante sumas repetidas. Eso crea algunos problemas en la programacion porque cada suma de dos unos origina un arrastre, que se resuelven contando el numero de unos y de arrastres en cada columna. Si el numero de unos es par, la suma es un cero y si es impar, un uno. Luego, para determinar los rrastres a la posicion superior, se cuentan las parejas de unos, aca un video para resumir la informacion en ejemplos




Division binaria

Igual que en el producto, la division es muy facil de realizar, porque no son posibles en el cociente otras cifras que nos y ceros

Si la division es posible, entonces el divisor solo podra estar contenido una vez en el dividendo, es decir, la primera cifra del cociente es un uno. En ese caso, el resultado de multiplicar el divisor por 1 es el propio divisor. Restamos las cifras del dividendo del divisor y bajamos la cifra siguiente

El procedimiento de division continua del mismo modo que en el sistema decimal, aca un video para ejemplificar lo anteriormente hablado