jueves, 30 de enero de 2014

EJERCICIOS DE PROGRAMACIÓN



1. Realizar un algoritmo en donde se pide la edad del usuario; si es mayor de edad debe aparecer un mensaje indicándolo. Expresarlo en Pseudocódigo y Diagrama de flujos. 



2. Se pide leer tres notas del alumno, calcular su definitiva en un rango de 0-5 y enviar un mensaje donde diga si el alumno aprobó o reprobó el curso. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

Pseudocódigo:

INICIO
   Not1, Not2, Not 3 :REAL
   Def: REAL
   LEA Nota1, Nota2, Nota3
   Def ß (Not1 + Not2 + Not3) /3
   Si Def < 3 entonces
      Escriba “Reprobó el curso”
   Sino
      Escriba “Aprobó el curso”
   Fin-Si
FIN

Diagrama de flujo:
 


3. Se desea escribir un algoritmo que pida la altura de una persona, si la altura es menor o igual a 150 cm envíe el mensaje: “Persona de altura baja”; si la altura está entre 151 y 170 escriba el mensaje: “Persona de altura media” y si la altura es mayor al 171 escriba el mensaje: “Persona alta”. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

Pseudocódigo:

INICIO
   Altura: ENTERO
   ESCRIBA “Cuál es tu altura? ”
   LEA Altura
   Si Altura <=150 entonces
      ESCRIBA “persona de altura baja”
   Sino
      Si Altura <=170 entonces
         ESCRIBA “persona de altura media”
      Sino
         Si Altura>170 ENTONCES
            ESCRIBA “persona alta”
         Fin-Si
      Fin-Si
   Fin-Si
FIN

¡Es importante ser ordenado en el código que se escribe!

Diagrama de flujo:





4. Dado un numero entre 1 y 7 escriba su correspondiente día de la semana así:
1- Lunes 2- Martes 3- Miércoles 4- Jueves 5- Viernes 6- Sábado 7- Domingo
Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.

Pseudocódigo: Pseudocódigo:

INICIO
   Dia: ENTERO
   ESCRIBA “Diga un número para escribir su día”
   LEA Dia
   En-caso-de Dia haga
      Caso 1: ESCRIBA “Lunes”
      Caso 2: ESCRIBA “Martes”
      Caso 3: ESCRIBA “Miércoles”
      Caso 4: ESCRIBA “Jueves”
      Caso 5: ESCRIBA “Viernes”
      Caso 6: ESCRIBA “Sábado”
      Caso 7: ESCRIBA “Domingo”
     SINO: ESCRIBA “Escribió un numero fuera del rango 1-7”
   Fin-Caso
FIN


Diagrama de flujo:
 



miércoles, 29 de enero de 2014

Programación en lenguajes estructurados 1



¿Qué es un programa?
                                       
·  Un programa de computadora es un conjunto de instrucciones que la CPU de una computadora puede entender y ejecutar.
·  Los programadores crean programas al escribir declaraciones en un editor.
·  Todo el conjunto de comandos, representados por las declaraciones, se almacena en un archivo y se le denomina código fuentedel programa.
·  La compilación es el proceso mediante el cual se convierte un código fuente a código objeto almacenado en un archivo objeto y es el punto intermedio en la creación de un archivo ejecutable.
·  Un enlazador acomoda todos los archivos objeto para formar un archivo ejecutable.
·  La mayoría de los lenguajes de cómputo tienen variables, que son partes de la memoria de la computadora que un programa reserva para su propio uso.
·  Los programadores deben declarar las variables en el programa para asignar así la cantidad de memoria requerida y asociar un nombre con la memoria.
·  Entre los tipos de variables se incluyen la variable de carácter, de número entero grande, flotante y de cadena.
·  Los programas rara vez ejecutan una secuencia individual de comandos de principio a fin; en vez de hacer eso usan subrutinas, ramificaciones condicionales y ciclos iterativos como construcciones de flujo de control.
·  Un algoritmo es otro tipo de estructura de programa que usa implantaciones matemáticas, estadísticas o de procedimiento, en vez del flujo de control.

Hay dos tipos de programas de sistema: Sistema Operativos y Programas de Utilidades.

Sistemas Operativos
Programas con las instrucciones que coordinan todas las actividades entre el equipo de la computadora. También contienen instrucciones que permiten ejecutar o correr los programas de aplicaciones. Cuando la computadora se enciende, el sistema operativo es cargado a la memoria de la computadora.

Programas de Utilidades
Es un tipo de programa de sistema que ejecuta una tarea específica, usualmente relacionada a manejar la computadora, sus equipos o programas.

Application Software

·  Consiste de programas que realizan tareas específicas para los usuarios. Incluyen programas de procesadores de palabras (ejemplo: Word, WordPerfect), programas de hojas de cálculo (ejemplo: Excel, Lotus123) y programas de gráficas para presentaciones (ejemplo: PowerPoint, Presentation). Otros tipos de programas de aplicaciones son:

Package Software – son programas con derechos de autor (copyright) que satisfacen las necesidades de una gran variedad de usuarios. Se pueden comprar en tiendas de computadoras o a través del Internet.

Custom Software – programa desarrollado para realizar funciones específicas de un usuario o compañía. Por lo general son programas que atienden necesidades que no son satisfechas por software package.

Freeware, Public-domain software, Shareware

Freeware – programa que una compañía o individuo provee libre de costo, a un usuario. Un programa

freeware tiene derechos de autor, el usuario no puede venderlo.

Public-domain software – es un programa libre de costo que ha sido donado para uso público y no tiene

restricciones de derecho de autor.
Shareware – es un programa con derechos de autor que es distribuido libre de costo por un periodo de prueba. Si se desea continuar utilizando el programa después del periodo de prueba, se envía el pago a la persona o compañía que lo desarrolló.
·  Application Service Provider (ASP) – Es una compañía que maneja y distribuye programas y servicios en el Internet. En vez de que el usuario instale programas en su computadora, los programas se ejecutan desde el Internet. Algunos suplidores proveen acceso libre de costo, otros no.

Desarrollo de programas

Los programadores son las personas que escriben programas para las computadoras. Debe colocar las instrucciones en la secuencia correcta para que la computadora genere los resultados deseados. Cuando se escriben programas complejos para grandes empresas, los programadores siguen un plan desarrollado por un analista de sistemas. El analista diseña los programas, trabajando junto al usuario y al programador para determinar los resultados del programa.




Diagrama de Flujo

Un diagrama de flujo es la representación gráfica de un algoritmo. También se puede decir que es la representación detallada en forma gráfica de como deben realizarse los pasos en la computadora para producir resultados.

Esta representación gráfica se da cuando varios símbolos (que indican diferentes procesos en la computadora), se relacionan entre si mediante líneas que indican el orden en que se deben ejecutar los procesos. Los símbolos utilizados han sido normalizados por el instituto norteamericano de normalización (ANSI): 
           Símbolo                                                  Descripción



Indica el inicio y el final de nuestro diagrama de flujo.
Indica la entrada y salida de datos.

Símbolo de proceso y nos indica la asignación de un valor en la memoria y/o la ejecución de una operación aritmética. 
Indica la salida de información por impresora.

Conector dentro de página. Representa la continuidad del diagrama dentro de la misma página.
Conector fuera de pagina. Representa la continuidad del diagrama en otra pagina.  

Indica la salida de información en la pantalla o monitor .

Símbolo de decisión. Indica la realización de una comparación de valores. 





Símbolo de Selección Múltiple. Dada una expresión permite escoger una opción de muchas. 







Símbolo del Mientras. Dada una expresión al principio de la iteración esta es evaluada; si la condición es verdadera realizará el ciclo, si es falsa la repetición cesará.  









Símbolo del Para. Esta estructura de control repetitiva se usa generalmente cuando se conoce de antemano el numero de iteraciones.






Símbolo Repita Hasta. funciona igual que la estructura Mientras, con la diferencia que al menos una vez hará el grupo de instrucciones y luego evaluará una condición. Si la condición evaluada es falsa continua dentro del ciclo y si es verdadera termina la iteración. 








Líneas de flujo o dirección. Indican la secuencia en que se realizan las operaciones. 
Recomendaciones para el diseño de Diagramas de Flujo

  • Se deben usar solamente líneas de flujo horizontales y/o verticales.
  • Se debe evitar el cruce de líneas utilizando los conectores.
  • Se deben usar conectores sólo cuando sea necesario.
  • No deben quedar líneas de flujo sin conectar.
  • Se deben trazar los símbolos de manera que se puedan leer de arriba hacia abajo y de izquierda a derecha.
  • Todo texto escrito dentro de un símbolo deberá ser escrito claramente, evitando el uso de muchas palabras.
Qué es el pseudocódigo y sus ventajas frente a los diagramas de flujos y las definiciones de los diagramas estructurados y las estructuras algorítmicas.

Pseudocódigo

Mezcla de lenguaje de programación y español (o ingles o cualquier otro idioma) que se emplea, dentro de la programación estructurada, para realizar el diseño de un programa. En esencial, el Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.

En esencial, el Pseudocódigo se puede definir como un lenguaje de especificaciones de algoritmos.
Es la representación narrativa de los pasos que debe seguir un algoritmo para dar solución a un problema determinado. El Pseudocódigo utiliza palabras que indican el proceso a realizar.

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo
  • Ocupa menos espacio en una hoja de papel
  • Permite representar en forma fácil operaciones repetitivas complejas
  • Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de programación.
  • Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación.
Diagramas estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como diagrama de chapin es como un diagrama de flujo en el que se omiten las flechas de unión y las cajas son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en los diagramas de flujo, se pueden escribir diferentes acciones en una caja. Un algoritmo se represente en la siguiente forma:


Estructuras Algorítmicas

Las estructuras de operación de programas son un grupo de formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
Explicamos las estructuras secuenciales, cómo se representan en pseudocódigo y algunos ejemplos prácticos de las mismas.

La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso.

En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:


Observe el siguiente problema de tipo cotidiano y sus respectivos algoritmos representados en Pseudocódigo y en diagramas de flujos:

• Tengo un teléfono y necesito llamar a alguien pero no sé como hacerlo.



El anterior ejemplo es un sencillo algoritmo de un problema cotidiano dado como muestra de una estructura secuencial. Ahora veremos los componentes que pertenecen a ella:

Asignación

La asignación consiste, en el paso de valores o resultados a una zona de la memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La asignación se puede clasificar de la siguiente forma:
  • Simples: Consiste en pasar un valor constante a una variable (a 15)
  • Contador: Consiste en usarla como un verificador del numero de veces que se realiza un proceso (a <=a + 1)
  • Acumulador: Consiste en usarla como un sumador en un proceso (a<= a + b)
  • De trabajo: Donde puede recibir el resultado de una operación matemática que involucre muchas variables (a<= c + b*2/4).
En general el formato a utilizar es el siguiente:
< Variable >  <=    <valor o expresión >

El símbolo     <=  debe leerse “asigne”.

Escritura o salida de datos

Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o mensaje. Esta instrucción presenta en pantalla el mensaje escrito entre comillas o el contenido de la variable. Este proceso se representa así como sigue:

 

  Lectura o entrada de datos

La lectura o entrada de datos consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor o dato. Este dato va a ser almacenado en la variable que aparece a continuación de la instrucción. Esta operación se representa así:


DECLARACION DE VARIABLES Y CONSTANTES

La declaración de variables es un proceso que consiste en listar al principio del algoritmo todas las variables que se usarán, además de colocar el nombre de la variable se debe decir qué tipo de variable es.

Contador:   ENTERO
Edad, I:   ENTERO
Direccion :    CADENA_DE_CARACTERES
Salario_Basico :    REAL
Opcion :    CARACTER

En la anterior declaración de variables Contador, Edad e I son declaradas de tipo entero; Salario_Basico es una variable de tipo real, Opcion es de tipo carácter y la variable Direccion está declarada como una variable alfanumérica de cadena de caracteres.

En el momento de declarar constantes debe indicarse que lo es y colocarse su respectivo valor.

CONSTANTE Pi 3.14159
CONSTANTE Msg “Presione una tecla y continue”
CONSTANTE ALTURA 40

Cuando se trabaja con algoritmos por lo general no se acostumbra a declarar las variables ni tampoco constantes debido a razones de simplicidad, es decir, no es camisa de fuerza declarar las variables. Sin embargo en este curso lo haremos para todos los algoritmos que realicemos, con esto logramos hacerlos más entendibles y organizados y de paso permite acostumbrarnos a declararlas ya que la mayoría de los lenguajes de programación (entre ellos el C++) requieren que necesariamente se declaren las variables que se van a usar en los programas.


Veamos algunos ejemplos donde se aplique todo lo que hemos visto hasta el momento sobre algoritmos:

Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos.

Ejemplo 2: Escriba un algoritmo que permita conocer el área de un triángulo a partir de la base y la altura. Exprese el algoritmo usando Pseudocódigo y diagrama de flujos.



Explicamos las distintas estructuras poniendo ejemplos tanto en diagrama de flujo como en pseudocódigo.

Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparación, se siga un curso de acción dentro del programa. Cabe mencionar que la comparación se puede hacer contra otra variable o contra una constante, según se necesite. Existen tres tipos básicos, las simples, las dobles y las múltiples.

Simples:

Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:






                          Pseudoodigo                                         Diagrama de Flujo


Dobles:

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:
         Pseudocódigo:
                                                                      Diagrama de flujo:






Donde:
Si:Indica el comando de comparación
Condición : Indica la condición a evaluar
Entonces : Precede a las acciones a realizar cuando se cumple la condición
Instrucción(es):Son las acciones a realizar cuando se cumple o no la condición
si no :Precede a las acciones a realizar cuando no se cumple la condición
Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más acciones.