You are on page 1of 38

FUNDAMENTOS DE PROGRAMACION

CORPORACIN IBEROAMERICANA DE CIENCIA Y TECNOLOGIA CIBERCTEC

MDULO FUNDAMENTOS DE PROGRAMACION PRIMERA UNIDAD ALGORITMOS Y PROGRAMAS AUTORES: Grupo Interdisciplinario Ingenieros de Sistemas

VILLAVICENCIO 2012
1
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

TABLA DE CONTENIDO

PAG.

MAPA CONCEPTUAL DEL AREA..........................................................................3 PROGRAMACION GENERAL DEL AREA.............................................................4 PRESENTACION.....................................................................................................6 COMPETENCIAS.....................................................................................................7 PRIMERA UNIDAD ALGORITMOS Y PROGRAMAS............................................8 OBJETIVOS..............................................................................................................8
OBJETIVO GENERAL ....................................................................................................9 OBJETIVOS ESPECFICOS............................................................................................9 PRUEBA INICIAL............................................................................................................9

1. TEMA 1 RESOLUCIN DE PROBLEMAS POR COMPUTADORAS...............10


1.1 Fase de resolucin del problema..........................................................................10 1.1.1 Anlisis del problema........................................................................................11 1.1.2 Diseo del algoritmo..........................................................................................11 1.1.3 Verificacin de algoritmos.................................................................................12 1.1.4 Fase de implementacin (realizacin) en un lenguaje de Programacin...........12 1.2 Codificacin de algoritmos en pseudocdigo.....................................................12 1.2.1 Operadores, Expresiones y Sentencias.............................................................14 ACTIVIDADES ..........................................................................................................17 Autoaprendizaje.........................................................................................................20

2. TEMA 2: HERRAMIENTAS DE PROGRAMACIN..........................................21


2.1 Diagrama de Flujo...................................................................................................21 2.2 Diagrama Nassi Schneiderman..........................................................................22 2.3 Pseudocdigo.........................................................................................................24 Actividad.....................................................................................................................25 Autoaprendizaje.........................................................................................................26

3. TEMA 3: PROGRAMA DFD PARA EL DESARROLLO DE DIAGRAMAS DE FLUJO ....................................................................................................................27


Actividad.....................................................................................................................29 Autoaprendizaje.........................................................................................................32 Evaluacin .................................................................................................................35 Pistas de aprendizaje.................................................................................................36 GLOSARIO................................................................................................................37 Cibergrafia..................................................................................................................37

2
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

MAPA CONCEPTUAL DEL AREA

3
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

PROGRAMACION GENERAL DEL AREA


MODULO 1 MODULO 3

PRIMERA UNIDAD: ALGORITMOS Y TERCER UNIDAD: INSTRUCCIONES PROGRAMAS CONDICIONALES Objetivo General Objetivo General Objetivos Especficos Objetivos Especficos PRUEBA INICIAL PRUEBA INICIAL Tema 1: Resolucin de problemas por computadoras
Fases de resolucin del problema Anlisis del problema Diseo del algoritmo Verificacin de algoritmos Fase de implementacin en un lenguaje de Programacin Codificacin de algoritmos en pseudocdigo Operadores, Expresiones y Sentencias EJERCICIOS DEL TEMA EJERCICIOS PARA DESARROLLAR Tema 2: Herramientas de programacin Diagrama de Flujo Diagrama Nassi Schneiderman Pseudocdigo EJERCICIOS DEL TEMA Ejercicios para desarrollar Tema 3: Programa DFD para el desarrollo de diagramas de Flujo EJERCICIOS DEL TEMA EJERCICIOS PARA DESARROLLAR Tema 1: Operadores Relacionales y Lgicos Operadores Relacionales Operadores Lgicos Estructuras de Control Sentencias Condicionales Sentencia Switch3.1.6 EJERCICIOS DEL TEMA EJERCICIOS PARA DESARROLLAR Tema 2: Sentencias Repetitivas en Java Bucles while y do-while Bucle for EJERCICIOS DEL TEMA Ejercicios para desarrollar Tema 3: Ciclos anidados EJERCICIOS DEL TEMA EJERCICIOS PARA DESARROLLAR

MODULO 4

MODULO 2
HERRAMIENTAS DE PROGRAMACION

Objetivo General
Objetivos Especficos

PRUEBA INICIAL
Tema 1: Desarrollo de pseudocdigo y diagrama de Flujo EJERCICIOS DEL TEMA EJERCICIOS PARA DESARROLLAR Tema 2: La programacin Lenguajes de programacin Instalacin Jcreator EJERCICIOS DEL TEMA Ejercicios para desarrollar EJERCICIOS DEL TEMA3.3.2 EJERCICIOS PARA DESARROLLAR Tema 3: Paquete Swing EJERCICIOS DEL TEMA

4
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

MODULO: FUNDAMENTOS DE PROGRAMACION


5
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

ESTNDAR DE COMPETENCIAS DEL MODULO

COMPONENTE COMPETENCIA

TELEINFORMATICA
220501007 Construir el sistema que cumpla con los requisitos de la solucin informtica.
220501007 1 Disear el software de acuerdo con el concepto. OB 220501007 2 Desarrollar la lgica y mecnica del software de acuerdo con el diseo establecido. 220501007 3 Desarrollar la lgica y mecnica del videojuego de acuerdo con el diseo establecido. OB 220501007 4 Implementar el arte y audio en el videojuego de acuerdo con el diseo. OB 220501007 5 Depurar el videojuego de acuerdo con las pruebas realizadas.

ELEMENTO

CAMPO DE ACCION (Capacidad)

1. Disear modelos de prueba aplicaciones informticas. 2. Implementacin de lenguajes programacin para realizar pruebas.

de de

INTENSIDAD HORARIA NUMERO DE SEMANAS INTENSIDAD HORARIA PRACTICA TEORICA


4 48 24 24

PRESENTACION
6
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

El modulo de Fundamentos de programacin se realiza con el propsito de desarrollar en el futuro Tcnico en Sistemas Redes y Telecomunicaciones y Mantenimiento de Computadoras la capacidad de anlisis y orden en la planificacin, elaboracin y ejecucin de programas. Los laboratorios a desarrollar durante el curso de Fundamentos de programacin, buscan ante todo integrar los fundamentos tericos con la prctica, con la construccin e implementacin de las aplicaciones codificadas en el lenguaje de programacin de Java.

COMPETENCIAS
COGNITIVA El estudiante debe identificar y comprender la terminologa bsica del entorno en el que trabaja Java, instalar los entornos de desarrollo en el computador. Identificar y aplicar los diferentes tipos de variables en la codificacin de programas. Aplicar las estructuras de control en la construccin de programas. COMUNICATIVA Desarrollar las instrucciones necesarias de Java para que el usuario ingrese datos y as poder realizar operaciones con ellos, proporcionado resultados. Realizar la prueba de escritorio o seguimiento a un programa, como tambin explicar lo que realiza el programa a partir de los temas vistos como las estructuras bsicas de operaciones aritmticas, operaciones lgicas entre otros. CONTEXTUAL Desarrollar habilidad para estructurar un algoritmo en casos reales, representarlo e implementarlo bajo un lenguaje de programacin, en este caso, Java. VALORATIVA
Identificar la importancia de la programacin sus procesos y alcances en situaciones diarias para mejorar procesos sociales.

7
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Identificar el proceso de diseo de un programa. Disear programas bajo diagramas de flujo.

PRIMERA UNIDAD ALGORITMOS Y PROGRAMAS


Un ordenador o computadora est, desde que se enciende hasta que se apaga totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para que los entienda una mquina, terminan siendo vagos y confusos para la mayora de quienes no han estudiado programacin. Una mquina no puede entender "escribe Hola Mundo!" porque no sabe lo que es "escribe" ni lo que es una letra o un espacio, ni lo que es una pantalla. En cambio, puede entender "mov eax, 0x23afb31" (escribir en el registro eax el nmero 0x23afb31), aunque nosotros no. Un ordenador es solo un circuito electrnico, no funciona a base de magia ni nada por el estilo. Debido a lo difcil que es escribir en lenguaje mquina, e incluso en ensamblador, se crearon diferentes lenguajes de programacin, ms o menos parecidos al ingls actual y a cmo se redacta un algoritmo. Estos lenguajes proveen de cosas tan complejas para una mquina como los bucles for. Los compiladores se encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el ensamblador de traducirlos a lenguaje mquina y el enlazador de juntar todo ese cdigo mquina en un solo archivo, el programa. Y el microprocesador, se encarga de ir encendiendo o apagando transistores segn lo que le diga el cdigo mquina. Es fcil entender el lenguaje de alto nivel en comparacin al lenguaje maquina pero de la evolucin surgieron.1

OBJETIVOS
1

http://es.wikibooks.org/wiki/Fundamentos_de_programaci%C3%B3n/Algoritmos_y_programas

Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

OBJETIVO GENERAL Definir las reglas bsicas a seguir para la construccin y la correcta interpretacin de los diagramas de flujo, resaltando las situaciones en que pueden, o deben, ser utilizados. OBJETIVOS ESPECFICOS Aprender un mtodo sistemtico que lo convertir en un buen solucionador de problemas y, por lo tanto, en un buen programador. A este mtodo le llamaremos el algoritmo del programador. Aprender y utilizar los pasos que se requieren para resolver casi cualquier problema de programacin usando el mtodo estructurado descendente o de arriba-abajo (topdown). Estudiar el concepto de abstraccin que se requiere para un lenguaje de computadora, que permite ver los problemas en trminos generales sin la angustia de los detalles de implantacin.

PRUEBA INICIAL A continuacin queremos conocer algunas percepciones que tienes frente a los temas que se van a desarrollar, por esta razn responde las siguientes preguntas y socialzalas con tus compaeros.

Que es un problema? Cul es la diferencia entre un problema social y un problema matemtico? Calcula el rea de un tringulo?

9
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

1. TEMA 1 RESOLUCIN DE PROBLEMAS POR COMPUTADORAS


La principal razn para que las personas aprendan lenguajes de programacin es utilizar un ordenador como una herramienta para la resolucin de problemas. Dos fases pueden ser identificadas en el proceso de resolucin:

Anlisis del Problema

Codificacin del Algoritmo

Diseo del Algoritmo

Ejecucin del programa

Verificacin del Algoritmo

Verificacin del Programa

Programa de trabajo

Diagrama 1. Resolucin de problemas por computadoras

- Fase de resolucin del problema. - Fase de implementacin (realizacin) en un lenguaje de Programacin. 1.1 Fase de resolucin del problema. Esta fase incluye, a su vez, el anlisis del problema as como el diseo y posterior verificacin del algoritmo. 10
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION 1.1.1 Anlisis del problema El primer paso para encontrar la solucin a un problema es el anlisis del mismo. Se debe examinar cuidadosamente el problema a fin de obtener una idea clara sobre lo que se solicita y determinar los datos necesarios para conseguirlo. 1.1.2 Diseo del algoritmo Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin ambigedades, que conducen a la resolucin de un problema dado y expresado en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser: Preciso: Indicando el orden de realizacin de cada uno de los pasos. Definido: Si se sigue el algoritmo varias veces proporcionndole los mismos datos, se deben obtener siempre los mismos resultados. Finito: Al seguir el algoritmo, este debe terminar en algn momento, es decir tener un nmero finito de pasos. Para disear un algoritmo se debe comenzar por identificar las tareas ms importantes para resolver el problema y disponerlas en el orden en el que han de ser ejecutadas. Los pasos en esta primera descripcin pueden requerir una revisin adicional antes de que podamos obtener un algoritmo claro, preciso y completo. En un algoritmo se deben de considerar tres partes: Entrada: Informacin dada al algoritmo. Proceso: Operaciones o clculos necesarios para encontrar la solucin del problema. Salida: Respuestas dadas por el algoritmo o resultados finales de los procesos realizados. Como ejemplo supongamos que desea desarrollar un algoritmo que calcule la superficie de un rectngulo proporcionndole su base y altura. Lo primero que debemos hacer es plantearnos las siguientes preguntas: Especificaciones de entrada Qu datos son de entrada? Cuntos datos se introducirn? Cuntos son datos de entrada vlidos? Especificaciones de salida Cules son los datos de salida? Cuntos datos de salida se producirn? Qu formato y precisin tendrn los resultados? 11
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION El algoritmo que podemos utilizar es el siguiente: Paso 1. Entrada desde el teclado, de los datos de base y altura. Paso 2. Clculo de la superficie, multiplicando la base por la altura. Paso 3. Salida por pantalla de base, altura y superficie calculada. El lenguaje algortmico debe ser independiente de cualquier lenguaje de programacin particular, pero fcilmente traducible a cada uno de ellos. Alcanzar estos objetivos conducir al empleo de mtodos normalizados para la representacin de algoritmos, tales como los diagramas de flujo o pseudocdigo. 1.1.3 Verificacin de algoritmos Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que realiza las tareas para las que se ha diseado y produce el resultado correcto y esperado. El modo ms normal de comprobar un algoritmo es mediante su ejecucin manual, usando datos significativos que abarquen todo el posible rango de valores y anotando en una hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las diferentes fases hasta la obtencin de los resultados. Este proceso se conoce como prueba del algoritmo. 1.1.4 Fase de implementacin (realizacin) en un lenguaje de Programacin. Una vez que el algoritmo est diseado, representado mediante pseudocdigo y verificado se debe pasar a la fase de codificacin o traduccin del algoritmo a un determinado lenguaje de programacin, que deber ser completada con la ejecucin y comprobacin del programa en el ordenador. 1.2 Codificacin de algoritmos en pseudocdigo En el ejemplo del clculo del rea de un rectngulo podemos observar que en la resolucin de programas nos encontramos con datos que pueden ser nmeros como por ejemplo la base o la altura y otros que pueden ser los mensajes que aparecen por pantalla ( La superficie es .... ). Quiere esto decir que previamente necesitamos conocer qu TIPOS de datos puede manejar un ordenador en un programa. Qu tipo de nmero es el 7? Entero Qu tipo de nmero es el 3? Entero Qu tipo de nmero es 7/3? ???

12
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION TIPO Entero DESCRIPCIN El rango depende de cuantos bits utilice para codificar el nmero, normalmente 2 bytes, Para nmeros positivos, con 16 bits se pueden almacenar 216= 65536 nmeros enteros diferentes: de 0 al 65535, y de -32768 al 32767 para nmeros con signo. Por ejemplo 2, 14, -199,.... Subconjunto de los nmeros reales limitado no slo en cuanto al tamao, sino tambin en cuanto a la precisin. Suelen ocupar 4, 6 10 bytes. Se representan por medio de la mantisa, y un exponente (1E-3 = 0001), utilizando 24 bits para la mantisa (1 para el signo y 23 para el valor) y 8 bits para el exponente (1 para el signo y 7 para el valor). El orden es de 10-39 hasta 1038. Por ejemplo 6.9, 33.00123, 3E-34...... Conjunto formado por los valores Cierto y Falso. 1 y 0. Operaciones: todas las lgicas y relacionales AND, OR, >,< == (igual), >= , <= , ... Conjunto finito y ordenado de los caracteres que el ordenador reconoce. Se almacenan en un byte. Con 8 bits se podrn almacenar 28= 256 valores diferentes (normalmente entre 0 y 255; con ciertos compiladores entre -128 y 127). Un carcter (letra) se guarda en un solo byte como un nmero entero, el correspondiente en el cdigo ASCII. Los datos de este tipo contendrn una serie finita de caracteres. Podrn representarse de estas dos formas: H O L A == HOLA, No es lo mismo H que H, ya que el primero es una cadena y el segundo un carcter. Ejemplos: C1=Hola, C2=Pepeeerl.
Tabla 1. Tipos de Datos bsicos

Real

Lgico

Carcte r

Cadena

13
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

TIPO Escalar

DESCRIPCIN Se hace una enumeracin de los valores que va a tomar el tipo. Para ello se antepone la palabra Ejemplo: moneda=(peseta,libra,franco,marco) dia=(L,M,X,J,V,S,D)

Subrango Son un subconjunto finito de un tipo definido por el usuario y, en general, de cualquier tipo que tenga sucesor y predecesor, como los enteros y carcter. Ejemplo: Laboral=L..V Minsculas=a..z aceptado=1000..1100 Constante s

Son datos cuyo valor no cambia durante todo el desarrollo del programa. Numricas enteras: 12, 34,-44,22234, -9837,m=12,n=44592.... Numricas reales: 12.55, -3E3, PI=3.14159..... Lgicas: Slo existen dos constantes lgicas 0,1 Carcter: n=a, k=1,..... Cadena: saludo=hola, s=si, n=no.....

Variables Una variable es un dato representado por una posicin determinada de memoria cuyo valor puede cambiar durante el desarrollo del algoritmo. Ejemplos de identificadores vlidos son los siguientes: tiempo, distancia1, caso_A, PI, velocidad_de_la_luz,x,mm,media
Tabla 2. Tipos de datos definidos por el usuario

1.2.1 Operadores, Expresiones y Sentencias Un operador es un carcter o grupo de caracteres que acta sobre una, dos o ms variables para realizar una determinada operacin con un determinado resultado. Ejemplos tpicos de operadores son la suma (+), la diferencia (-), el 14
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION producto (*), etc. Los operadores pueden ser unarios, binarios y ternarios, segn acten sobre uno, dos o tres operandos, respectivamente. OPERADORES ARITMTICOS Los operadores aritmticos son los ms sencillos de entender y de utilizar. Todos ellos son operadores binarios. Se utilizan los cinco operadores siguientes: Suma: + Resta: Multiplicacin: * Divisin: / Resto: % (resto de la divisin entera. Este operador se aplica solamente a constantes, variables o expresiones de tipo entero). OPERADORES DE ASIGNACIN Los operadores de asignacin atribuyen a una variable, es decir, depositan en su zona de memoria correspondiente, el resultado de una expresin o el valor. Variable (en realidad, una variable es un caso particular de una expresin). El operador de asignacin ms utilizado es el operador de igualdad (=), que no debe ser confundido con la igualdad lgica (==). Su forma general es: nombre_variable = expresin; Primero se evala expresin y el resultado se pone en nombre_variable, sustituyendo cualquier otro valor que hubiera en esa posicin de memoria anteriormente. Una posible utilizacin de este operador es la siguiente: variable = variable + 1; OPERADORES RELACIONALES Una caracterstica imprescindible de cualquier lenguaje de programacin es la de considerar alternativas, esto es, la de proceder de un modo u otro segn se cumplan o no ciertas condiciones. Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones. En un programa si una condicin se cumple, el resultado es cierto; en caso contrario, el resultado es falso. Un 0 representa la condicin de falso, y cualquier nmero distinto de 0 equivale a la condicin cierto. Los operadores relacionales son los siguientes: Igual que: == Menor que: < 15
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Mayor que: > Menor o igual que: <= Mayor o igual que: >= Distinto que: != OPERADORES LGICOS Los operadores lgicos son operadores binarios que permiten combinar los resultados de los operadores relacionales, comprobando que se cumplen las condiciones necesarias. Como operadores lgicos tenemos: el operador Y (&&), el operador O (||) y el operador NO (!). En ingls son los operadores AND, OR y NOT. Su forma general es la siguiente: expresion1 && expresion2, expresion1 || expresin!,expresin FUNCIONES En los lenguajes de programacin existen ciertas funciones predefinidas o internas que aceptan unos argumentos y producen un valor denominado resultado. Como funciones numricas, normalmente se usarn: Funcin abs(x) cos(x),sin(x) cuadrado(x) ent(x) exp(x) ln(x) log(x) raiz(x) redondeo (x) Descripcin Valor Absoluto Coseno,Seno x2 Parte entera ex Ln(x) Log10(x) Raiz Cuadrada Redondear numero

EXPRESIONES Una expresin es una combinacin de variables y/o constantes, y operadores. Por ejemplo, 1+5 es una expresin formada por dos operandos (1 y 5) y un operador (el +); esta expresin es equivalente al valor 6, lo cual quiere decir que esta expresin, en el momento de la ejecucin es evaluada y sustituida por su resultado. Una expresin puede estar formada por otras expresiones ms sencillas, y puede contener parntesis de varios niveles agrupando distintos trminos. 16
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Por ejemplo, la solucin de la ecuacin de segundo grado: se escribe, en la siguiente forma:

x=(-b + raiz ((b*b)-(4*a*c)))/(2*a); El primer programa, Normas: Todos los programas comienzan por la palabra Inicio seguido de un grupo de sentencias. Por tanto debemos recordar que un grupo de sentencias va entre llaves {...}. Una sentencia simple aislada no necesita llaves. Cada sentencia termina por un; (Separador de sentencias) Como norma se declaran todas las variables al inicio del programa. Un grupo de sentencias relacionado guardan la misma vertical. Si necesitamos un nuevo grupo de sentencias se tabula a la derecha. En comentario comienza por // si es de 1 lnea y por /* .....*/ Si abarca a un prrafo.

ACTIVIDADES Desarrolle los algoritmos que resuelva los siguientes problemas: Ejercicio 1. Ir al cine. Para solucionar este problema, se debe seleccionar una pelcula de la cartelera del peridico, ir a la sala y comprar la entrada para, finalmente, poder ver la pelcula. Lo que nos lleva a la siguiente:

17
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Solucin: DATOS DE SALIDA Ver la pelcula. DATOS DE ENTRADA Nombre de la pelcula, direccin de la sala, hora de proyeccin. DATOS AUXILIARES Entrada, numero de asiento. Algoritmo irAlCine() INICIO // Seleccionar la pelcula Tomar el peridico. Mientras no lleguemos a la cartelera pasar la hoja. Mientras no se acabe la cartelera Inicio leer pelcula. Si nos gusta, anotarla. Fin. Elegir una de las pelculas seleccionadas. Leer la direccin de la sala y la hora de proyeccin. // Comprar la entrada Trasladarse a la sala. Si hay entrada Inicio Si hay cola Inicio Colocarse al final de la cola. Mientras no lleguemos a la taquilla Avanzar. Fin. Comprar la entrada. // Ver la pelcula Leer el nmero de asiento de la entrada. Buscar el asiento. Sentarse. Ver la pelcula. Fin. FIN. Ejercicio 2. Poner la mesa para la comida.

18
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Para poner la mesa, despus de poner el mantel, se toman las servilletas hasta que su nmero coincide con el de comensales y se colocan. La operacin se repetir con los vasos, platos y cubiertos. DATOS DE SALIDA La mesa puesta DATOS DE ENTRADA La vajilla, los vasos, los cubiertos, las servilletas, el nmero de comensales. DATOS AUXILIARES Numero de platos, vasos, cubiertos o servilletas que llevamos puestos. Algoritmo ponerMesa() INICIO Poner el mantel. Hacer Tomar una servilleta y colocarla. Mientras el nmero de servilletas no sea igual al de comensales. Hacer Tomar un vaso y colocarlo. Mientras el nmero de vasos no sea igual al de comensales. Hacer Tomar un juego de platos y colocarlo. Mientras el nmero de juegos de platos no sea igual al de comensales. Hacer Tomar un juego de cubiertos y colocarlo. Mientras el nmero de juegos de cubiertos no sea igual al de comensales. FIN. Ejercicio 3. Lavar los platos de la comida. Para fregar los platos: abrir la llave de agua, limpiar los platos con un estropajo con jabn, colocarlos en el escurridor y finalmente secarlos. DATOS DE SALIDA Platos limpios. DATOS DE ENTRADA Platos sucios. DATOS AUXILIARES Numero de platos que quedan. Algoritmo lavarPlatos() INICIO Abrir la llave de agua. Tomar el estropajo. 19
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Echarle jabn. Mientras queden platos Inicio Lavar el plato. Dejarlo en el escurridor. Fin. Mientras queden platos en el escurridor Secar plato. FIN.

Autoaprendizaje 1) Decir si son correctos o no los siguientes identificadores de variables: - contador - 2temporal - Valor$curso - temporal1 - N_numeros - N-terminos - num_bytes - Media_Aritm - MeDiaGeom

2) Escribir en pseudocdigo las siguientes expresiones matemticas:

3) Realizar en pseudocdigo un programa que calcule de forma individual la velocidad de 5 cuerpos, introduciendo por teclado el espacio y el tiempo, hallando posteriormente la media de cada una de las tres magnitudes. 4) Dada la siguiente declaracin de variables, comprobar el siguiente pseudocdigo indicando los posibles reales y los de alta probabilidad de error: x: entero; y: carcter; z,t: real; m, n, p: entero; c, s: cadena

5) Realizar en pseudocdigo un programa que calcule la longitud y el rea total de tres circunferencias sabiendo que la 1 de ellas tiene radio R que ser introducido por teclado, la 2 tiene radio 2R y la 3 tiene radio 3R. 20
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

2. TEMA 2: HERRAMIENTAS DE PROGRAMACIN


Para representar un algoritmo se debe utilizar algn mtodo que permita independizar dicho algoritmo de los lenguajes de programacin y al mismo tiempo, conseguir que sea fcilmente codificable. Los mtodos ms usuales para la representacin de algoritmos son: Diagrama de flujo Diagrama N-S(Nassi Schneiderman) pseudocdigo 2.1 Diagrama de Flujo

Imagen 1.
Nombre de la imagen Direccin Web Autor Fecha de Consulta

Smbolos para desarrollar diagramas de flujo

http://www.monografias.com/trabajos42/diagrama-deflujo/Image3912.gif

Manuel Murillo Garca

01/06/201 2

Los diagramas de flujo son de gran importancia ya que ayudan a designar cualquier representacin grfica de un procedimiento o parte de este; el diagrama de flujo como su nombre lo indica representa el flujo de informacin de un procedimiento. Los diagramas de flujo son importantes para el diseador por que le ayudan en la definicin, formulacin, anlisis y solucin del problema. El diagrama de flujo ayuda al anlisis a 21
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION comprender el sistema de informacin de acuerdo con las operaciones de procedimientos incluidos, le ayudara analizar esas etapas, con el fin tanto de mejorarlas como de incrementar la existencia de sistemas de informacin para la administracin.

Imagen 2.
Nombre de la imagen Direccin Web Autor Fecha de Consulta

Ejemplo de un diagrama de Flujo

http://www.desarrolloweb.com/articulos/images/algoritmos/ejempl o_ordinograma.gif

Manuel Murillo Garca

01/06/201 2

2.2 Diagrama Nassi Schneiderman Los diagramas Nassi-Schneiderman son una tcnica para la especificacin de algoritmos que combina la descripcin textual del pseudocdigo con la 22
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION representacin grfica del diagrama de flujo. Todo algoritmo se representa de la siguiente forma: Inicio <accin 1> <accin 2> ... <accin 3> Fin
Diagrama 2. Representacin general

Existe una representacin para cada una de las instrucciones permitidas en la programacin estructurada. Secuenciales: Recordemos que aqu tenemos: Declaracin de variables (tipo: nombre_variable) Asignacin (nombre_variable = valor) Lectura (Leer <lista de variables>) Escritura de datos (Escribir <lista de constantes y variables>). Inicio <accin 1> <accin 2> ... <accin 3> Fin
Diagrama 3. Representacin secuencial

Alternativas: o Alternativa simple. Inicio 23


Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

SI accin 1 accin 2 . . accin n


Diagrama 4. Representacin Alternativa Simple

NO

o Alternativa doble Inicio SI accin 1 accin 2 . . accin n


Diagrama 5. Representacin Alternativa Doble

NO accin 1 accin 2 . . accin n

Elabora una solucin, la ms conveniente, para calcular el valor de la suma 1 + 2 + 3 + + 100, utilizando la estructura mientras (algoritmo visto en clase). algoritmo suma_1_a_100 var entero: contador, SUMA begin contador 1 SUMA 0 while contador <= 100 do SUMA SUMA + contador contador contador + 1 endwhile write (La suma es:, SUMA) end 2.3 Pseudocdigo 24
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Se considera un primer borrador, dado que el pseudocdigo tiene que traducirse posteriormente a un lenguaje de programacin. El pseudocdigo no puede ser ejecutado por una computadora. La ventaja del pseudocdigo es que en su uso, en la planificacin de un programa, el programador se puede concentrar en la lgica y en las estructuras de control y no preocuparse de las reglas de un lenguaje especfico. Si <expresin lgica> Entonces. Instrucciones en caso de que <expresin lgica> sea verdadera [Si no instrucciones en caso de que <expresin lgica> sea falsa.] Fin Si

Actividad Desarrolle un algoritmo que permita leer dos valores distintos, determinar cul de los dos valores es el mayor y escribirlo. Pseudocdigo Diagrama de Flujo
1. Inicio 2. Inicializar variables: A = 0, B = 0 3. Solicitar la introduccin de dos valores distintos 4. Leer los dos valores 5. Asignarlos a las variables A y B 6. Si A = B Entonces vuelve a 3 porque los valores deben ser distintos 7. Si A>B Entonces Escribir A, Es el mayor 8. De lo contrario: Escribir B, Es el mayor 9. Fin_Si 10. Fin

25
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Autoaprendizaje 1. Desarrolle un algoritmo que realice la sumatoria de los nmeros enteros comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + . + 10. 2. Determinar la hipotenusa de un tringulo rectngulo conocidas las longitudes de sus dos catetos. Desarrolle el algoritmo correspondiente. 3. Desarrolle un algoritmo que permita determinar el rea y volumen de un cilindro dado su radio (R) y altura (H). 4. Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si dicho nmero es par o impar. 5. Desarrolle un algoritmo que permita convertir calificaciones numricas, segn la siguiente tabla: A = 19 y 20, B =16, 17 y 18, C = 13, 14 y 15, D = 10, 11 y 12, E = 1 hasta el 9. Se asume que la nota est comprendida entre 1 y 20.

26
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

3. TEMA 3: PROGRAMA DFD PARA EL DESARROLLO DE DIAGRAMAS DE FLUJO


El DFD es un programa, diseado para analizar y construir los algoritmos. Se pueden crear diagramas de flujo de datos para representar algoritmos; estos son problemas planteados que se pueden solucionar a travs de un proceso especfico, teniendo en cuenta que el mismo proceso aplica solo para el mismo problema, entonces podramos decir que para cada problema algortmico se aplica una solucin diferente.

Imagen 2. Ventana Principal de DFD

Barra de Men: Aqu encontramos las siguientes opciones:

Imagen 3. Barra de men

1. Archivo: Este men se encarga del manejo del archivo que estemos trabajando. Estn los siguientes comandos: Nuevo: Para crear un nuevo archivo DFD. Abrir: Para abrir un archivo DFD guardado. Guardar: Para guardar el archivo que se est utilizando. Guardar como: Para guardar con un nombre diferente el DFD que se est utilizando. Imprimir: Para imprimir el archivo DFD abierto. Salir: Para terminar la sesin. 2. Edicin: Este men es el encargado de manejar los comandos de Edicin del Archivo DFD: Cortar: Para quitar un elemento del archivo Copiar: Para copiar el elemento marcado en el archivo Pegar: Para pegar en el diagrama el elemento copiado o cortado anteriormente. Eliminar: Para borrar el elemento marcado en el archivo. 27
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Editar Objeto: Para cambiar el contenido del elemento marcado. 3. Objeto: En este men se utilizan todos los comandos que estn representados en iconos en la misma ventana principal. 4. Ver: Este men habilita los siguientes comandos: Zoom: Para ampliar o disminuir la vista general del archivo. Anterior Subprograma: Para ver el archivo del anterior subprograma cuando exista. Siguiente Subprograma: Para ver el archivo del siguiente subprograma cuando exista. 5. Ejecucin: Este men activa la ejecucin del diagrama, contiene los siguientes comandos: Ejecutar: Para iniciar la ejecucin del archivo. Pausar: Para pausar la ejecucin. Detener: Para interrumpir la ejecucin. 6. Depuracin: Controla las actividades de avance del archivo. Se compone de los siguientes comandos: Paso Simple: Analiza cada elemento paso a paso e indica el recorrido delineando la zona con un color. Ejecutar Hasta: Permite marcar un elemento dentro del archivo y realizar la ejecucin del diagrama solo hasta ese punto. Detener: Para interrumpir el avance

Imagen 4. Barra de botones.

Nuevo): Crea un nuevo archivo DFD. (Abrir): Abre un archivo DFD existente. (Guardar): Guarda el archivo que se est trabajando. (Imprimir): Imprime el archivo que se est trabajando. (Cortar): Quita un elemento del archivo y se guarda para pegarlo despus. (Copiar): Copia un elemento seleccionado para pegar en otra ubicacin (Pegar): Pega un elemento en una ubicacin seleccionada. (Eliminar): Borra el elemento marcado en el archivo. (Ejecutar): Inicia la ejecucin del archivo. (Detener): Interrumpe la ejecucin. (Pausar): Pausa la ejecucin. (Paso simple): Analiza cada elemento del archivo y lo marca o delinea con un color para saber la ubicacin de anlisis. 28

Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION (Ejecutar hasta): Realiza la ejecucin solo hasta un punto marcado. (Depurador): Activa el depurador del diagrama. (Alejar): Aleja la vista y la reduce. (Acercar): Acerca la vista o la aumenta (Cursor): Activa el puntero del mouse para moverse en el archivo y marcar elementos. (Asignacin): Inserta un elemento de asignacin en el archivo. (Ciclo mientras): Inserta un elemento mientras en el diagrama. (Ciclo para): inserta elemento de ciclo para en el diagrama. (Decisin): Inserta bloque de decisin en el archivo. (Lectura): Inserta bloque de lectura en el diagrama. (Salida): Inserta los datos que se vern en la pantalla cuando se ejecute el programa.

Actividad A continuacin se hace un reconocimiento de la herramienta. Para crear un diagrama de flujo en DFD deben seleccionarse los tipos de elementos a utilizar pulsando sobre el botn de los siguientes:

Imagen 5. Botones de smbolos

Despus de seleccionar el elemento a utilizar se arrastra hasta el lugar de trabajo y se suelta en el punto del diagrama que debe ir, para editar el elemento se le da doble clic sobre el mismo. -Cuando se da doble clic sobre el bloque de lectura aparece la siguiente ventana:

29
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Imagen 6. Botn de lectura

Dentro de la casilla leer, se deben especificar las variables que van a ser ledas separadas por coma (,) y pulsar el botn Aceptar. -Para editar un elemento de asignacin, dando doble clic aparece la siguiente ventana:

Imagen 7. Botn de Asignacin

En la casilla de la izquierda se coloca la variable que va a recibir la asignacin y en la casilla de la derecha, el valor, la variable o la operacin que se va a asignar, y despus se pulsa el botn Aceptar. -Para editar bloque de salida damos doble clic y aparece la siguiente ventana: 30
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Imagen 8. Botn de Salida

Dentro de la casilla mostrar, se deben especificar las variables que van a ser mostradas en pantalla separadas por coma (,) y encerradas entre comillas simples () para que se vean en la pantalla ya que es la informacin que se muestra durante la ejecucin del diagrama. Luego pulsar el botn Aceptar. -Para editar el elemento decisin damos doble clic y aparece la siguiente ventana:

Imagen 9. Botn de Decisin

En la casilla escribimos la condicin que vamos a evaluar, sealar si la condicin verdadera ser a la derecha o la izquierda y posteriormente presionamos aceptar.

31
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Autoaprendizaje A continuacin se disea un algoritmo como ejemplo para trabajar en clase. Como podemos observar en la imagen, esta impresin es la que aparece al instante de abrir el programa; con un circulo que indica inicio y otro que indica fin. Tal idea se muestra ya que el programa DFD est encargado de crear diagramas de flujo; los diagramas de flujo se basan en problemas algortmicos los cuales tienen un proceso; dicho proceso es desarrollado y solucionado a travs del programa, y como tal tendr un inicio y un final; o sea la parte inicial y el momento donde termina el diagrama de flujo o cuando se llega a la solucin del problema algortmico.

Imagen 10. Inicio del diagrama

A continuacin insertaremos un bloque de salida entre la lnea que une el circulo inicio con el circulo fin

Imagen 11. Insercin de un smbolo

32
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Para insertar tal bloque nos desplazaremos con el puntero del mouse hasta la barra de botones y haremos clic sobre el botn salida. Seleccionamos el bloque dando clic y para colocarlo sobre la lnea; nos ubicamos sobre ella y nuevamente clic.

Imagen 12. Como ingresar un texto

Como podemos observar la informacin que se escribe en este bloque va entre comillas simple (Bienvenido) para poder que se muestre; de lo contrario no se ver en la pantalla posteriormente a la ejecucin, hacemos clic en Aceptar.

Imagen 13. Resultado despus de ingresar un texto

Ahora insertaremos un bloque de lectura; este bloque permite al programa asignar una o varias variables que sern utilizadas posteriormente en un bloque de asignacin para arrojar un dato o resultado a travs de una operacin.

Imagen 14. Ingresar Variables.

33
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Ahora para que los valores ingresados por el usuario obtengan un resultado satisfactorio insertaremos un bloque de asignacin, el cual hace la operacin utilizando las dos variables que ya insertamos (A y B).

Imagen 15. Asignamos los valores

El siguiente paso que arroja el resultado de la operacin lo hacemos en un bloque de salida; el cual permite leer la informacin que va entre comillas simples y los datos, arrojados por el resultado de la suma van colocados sin comillas de la siguiente manera:

Imagen 16. Asignamos los valores

34
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION Tras haber conocido estos pasos; a continuacin se ejecuta el ejercicio, cuando damos clic en el botn ejecutar.

Evaluacin A continuacin desarrollo el respectivo pseudocdigo y diagrama de flujo de los siguientes ejercicios: Desarrolle un algoritmo que permita leer dos nmeros y ordenarlos de menor a mayor, si es el caso. Desarrolle un algoritmo que permita leer un valor entero positivo N y determinar si es primo o no.

35
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

Pistas de aprendizaje Tener en cuenta: Los diagramas de flujos de datos son una tcnica de anlisis estructurado que van de lo general a lo especfico muestran las posibles entradas, procesos y salidas del sistema. Los diagramas son usados cuando los analistas tratan de comprender los requerimientos de informacin de los usuarios de una manera grfica utilizando varios smbolos combinados entre s. Tener presente: El uso de los diagramas de flujo de datos da ciertas ventajas como pueden ser las siguientes: a) Libertad para realizar en forma temprana la implementacin tcnica de un sistema. b) Mejor comprensin entre las interrelaciones de los sistemas y los subsistemas. c) Comunicacin del conocimiento del sistema actual a los usuarios por medio de diagramas de flujos de datos. d) Anlisis de un sistema propuesto para determinar si han sido definidos los datos y los procesos necesarios. Traer a la memoria: Existen dos tipos de diagramas de flujo de datos: a) El diagrama de flujo de datos lgico que es el que se enfoca en el negocio y en la manera en que opera el negocio. En este diagrama no importa la manera que en el sistema va a ser realizado o construido. Es por esto que solo describe los eventos del negocio que suceden y los datos requerido y producidos por cada evento. La utilizacin de estos diagramas tiene ciertas ventajas como es que puede existir mejor comunicacin con los usuarios, sistemas ms estables, que el analista comprenda mejor el funcionamiento del negocio o como se maneja el negocio. b) El diagrama de flujo de datos fsico es todo lo contrario, en este diagrama se muestra cmo va a ser realizado el sistema incluyendo tanto el hardware como el software del sistema. La utilizacin de los diagramas de flujos de datos fsicos tambin tiene algunas ventajas como son el de calificar los tipos de procesos, describen procesos a mayor detalle, identifican almacenamientos de datos temporales, aaden controles para asegurar que los procesos son realizados adecuadamente.

36
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION

GLOSARIO LGICA: Es una secuencia de operaciones realizadas por el hardware o por


el software. ALGORITMO: Conjunto de sentencias / instrucciones en lenguaje nativo, los cuales expresan la lgica de un programa. DIAGRAMA DE FLUJO: Es la representacin grfica de una secuencia de instrucciones de un programa que ejecuta un computador para obtener un resultado determinado. CDIGO FUENTE: Programa en su forma original, tal y como fue escrito por el programador, el cdigo fuente no es ejecutable directamente por el computador, debe convertirse en lenguaje de maquina mediante compiladores, ensambladores o intrpretes. VARIABLE: En programacin es una estructura que contiene datos y recibe un nombre nico dado por el programador, mantiene los datos asignados a ella hasta que un nuevo valor se le asigne o hasta que el programa termine. CONSTANTE: Valor o conjunto de caracteres que permanecen invariables durante la ejecucin del programa. ACUMULADOR: Campo o variable que sirve para llevar una suma o cuenta de diferentes valores. DATO: El trmino que usamos para describir las seales con las cuales trabaja la computadora es dato; Aunque las palabras dato e informacin muchas veces son usada indistintamente, si existe una diferencia importante entre ellas. En un sentido estricto, los datos son las seales individuales en bruto y sin ningn significado que manipulan las computadoras para producir informacin. PROGRAMA: Es una coleccin de instrucciones que indican a la computadora que debe hacer. Un programa se denomina software, por lo tanto, programa, software e instruccin son sinnimos. PROGRAMA FUENTE: Instruccin escrita por el programador en un lenguaje de programacin para plantear al computador el proceso que debe ejecutar. PSEUDOCODIGO: Herramienta de anlisis de programacin. Versiones falsificadas y abreviadas de las actuales instrucciones de computadora que son escritas en lenguaje ordinario natural. SUBRUTINA: Programa (conjunto de instrucciones), que desde otro programa se pueden llamar a ejecucin bien se puede, decir grupo de instrucciones que realizan una funcin especfica, tal como una funcin o marco. Una subrutina grande se denomina usualmente * * MODULO * * * *PROCEDIMIENTO * *, pero todos los trminos se utilizan de manera alternativa.

Cibergrafia http://es.wikipedia.org/wiki/Bubblesort http://sistemas.itlp.edu.mx/tutoriales/estructdatos2/tema5_1.htm http://macabremoon0.tripod.com/id13.html 37


Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

FUNDAMENTOS DE PROGRAMACION http://clintyanyurbis-diagramasdeflujo.blogspot.com/2007/07/diagramas-deflujo.html

38
Corporacion Iberoamerica de Ciencia y Tecnologia CIBERCTEC SAS

You might also like