Anda di halaman 1dari 32

G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

FUNDAMENTOS DE PROGRAMACION

PRIMERA UNIDAD
ALGORITMOS Y PROGRAMAS

AUTOR:
ING. MARIO ALEJANDRO LONDOÑO

GRANADA 2018

1
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

REGISTRO DEL ESTUDIANTE

NOMBRE DEL ESTUDIANTE : ______________________

____________________________________________________

PROGRAMA: ________________________________________

JORNADA: __________________________________________

NOMBRE DEL DOCENTE : ____________________________

FECHA : DEL __________ AL ___________

CALIFICACION: _______________________________________

_____________________
FIRMA DEL DOCENTE

2
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

TABLA DE CONTENIDO PAG.

MAPA CONCEPTUAL DEL AREA............................................................................3


PROGRAMACION GENERAL DEL AREA...............................................................4
PRESENTACION.......................................................................................................6
COMPETENCIAS......................................................................................................6
PRIMERA UNIDAD ALGORITMOS Y PROGRAMAS..............................................7
OBJETIVOS...............................................................................................................8
OBJETIVO GENERAL.....................................................................................................8
OBJETIVOS ESPECÍFICOS............................................................................................8
PRUEBA INICIAL............................................................................................................. 8
1. TEMA 1 RESOLUCIÓN DE PROBLEMAS POR COMPUTADORAS...............9
1.1 Fase de resolución del problema............................................................................9
1.1.1 Análisis del problema........................................................................................10
1.1.2 Diseño del algoritmo..........................................................................................10
1.1.3 Verificación de algoritmos..................................................................................11
1.1.4 Fase de implementación (realización) en un lenguaje de Programación...........11
1.2 Codificación de algoritmos en pseudocódigo......................................................11
1.2.1 Operadores, Expresiones y Sentencias............................................................13
ACTIVIDADES........................................................................................................... 16
Autoaprendizaje.........................................................................................................19
2. TEMA 2: HERRAMIENTAS DE PROGRAMACIÓN...........................................20
2.1 Diagrama de Flujo...................................................................................................20
2.2 Diagrama Nassi – Schneiderman..........................................................................22
2.3 Pseudocódigo.........................................................................................................24
Actividad.................................................................................................................... 24
Autoaprendizaje.........................................................................................................25
3. TEMA 3: PROGRAMA DFD PARA EL DESARROLLO DE DIAGRAMAS DE
FLUJO.....................................................................................................................26
Actividad.................................................................................................................... 28
Autoaprendizaje.........................................................................................................30
Evaluación.................................................................................................................34
Pistas de aprendizaje.................................................................................................35
GLOSARIO................................................................................................................ 36
Cibergrafia.................................................................................................................36

3
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

PRESENTACION

El modulo de Fundamentos de programación se realiza con el propósito de


desarrollar en el futuro Técnico en Sistemas Redes y Telecomunicaciones y
Mantenimiento de Computadoras la capacidad de análisis y orden en la
planificación, elaboración y ejecución de programas.

Los laboratorios a desarrollar durante el curso de Fundamentos de programación,


buscan ante todo integrar los fundamentos teóricos con la práctica, con la
construcción e implementación de las aplicaciones codificadas en el lenguaje de
programación de Java.

4
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

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 máquina, terminan siendo vagos y confusos para la mayoría
de quienes no han estudiado programación. Una máquina 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 número 0x23afb31), aunque nosotros no.
Un ordenador es solo un circuito electrónico, no funciona a base de magia ni nada
por el estilo.

“Debido a lo difícil que es escribir en lenguaje máquina, e incluso en ensamblador,


se crearon diferentes lenguajes de programación, más o menos parecidos al
inglés actual y a cómo se redacta un algoritmo. Estos lenguajes proveen de cosas
tan complejas para una máquina como los bucles for. Los compiladores se
encargan de traducir esos ficheros al lenguaje ensamblador que corresponda, el
ensamblador de traducirlos a lenguaje máquina y el enlazador de juntar todo ese
código máquina en un solo archivo, el programa. Y el microprocesador, se
encarga de ir encendiendo o apagando transistores según lo que le diga el código
máquina. Es fácil entender el lenguaje de alto nivel en comparación al lenguaje
maquina pero de la evolución surgieron”.1

PRUEBA INICIAL

A continuación queremos conocer algunas percepciones que tienes frente a los


temas que se van a desarrollar, por esta razón responde las siguientes preguntas
y socialízalas con tus compañeros.

 Que es un problema?
 Cuál es la diferencia entre un problema social y un problema matemático?
 Calcula el área de un triángulo?

1
http://es.wikibooks.org/wiki/Fundamentos_de_programaci%C3%B3n/Algoritmos_y_programas
5
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

1. TEMA 1 RESOLUCIÓN DE PROBLEMAS POR


COMPUTADORAS

La principal razón para que las personas aprendan lenguajes de programación es


utilizar un ordenador como una herramienta para la resolución de problemas. Dos
fases pueden ser identificadas en el proceso de resolución:

Codificación
Análisis del del
Problema Algoritmo

Ejecución
Diseño del del
Algoritmo programa

Verificación Verificación
del del
Algoritmo Programa

Programa
de trabajo

Diagrama 1. Resolución de problemas por computadoras

- Fase de resolución del problema.


- Fase de implementación (realización) en un lenguaje de Programación.

6
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

1.1 Fase de resolución del problema.

Esta fase incluye, a su vez, el análisis del problema así como el diseño y posterior
verificación del algoritmo.

1.1.1 Análisis del problema

El primer paso para encontrar la solución a un problema es el análisis 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 Diseño del algoritmo

Un algoritmo puede ser definido como la secuencia ordenada de pasos, sin


ambigüedades, que conducen a la resolución de un problema dado y expresado
en lenguaje natural, por ejemplo el castellano, Todo algoritmo debe ser:

 Preciso: Indicando el orden de realización de cada uno de los pasos.


 Definido: Si se sigue el algoritmo varias veces proporcionándole los
mismos datos, se deben obtener siempre los mismos resultados.
 Finito: Al seguir el algoritmo, este debe terminar en algún momento, es
decir tener un número finito de pasos.

Para diseñar un algoritmo se debe comenzar por identificar las tareas más
importantes para resolver el problema y disponerlas en el orden en el que han de
ser ejecutadas. Los pasos en esta primera descripción pueden requerir una
revisión adicional antes de que podamos obtener un algoritmo claro, preciso y
completo. En un algoritmo se deben de considerar tres partes:

 Entrada: Información dada al algoritmo.


 Proceso: Operaciones o cálculos necesarios para encontrar la solución 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 rectángulo proporcionándole su
base y altura. Lo primero que debemos hacer es plantearnos las siguientes
preguntas:
 Especificaciones de entrada

¿Qué datos son de entrada?


¿Cuántos datos se introducirán?
¿Cuántos son datos de entrada válidos?

7
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

 Especificaciones de salida

¿Cuáles son los datos de salida?


¿Cuántos datos de salida se producirán?
¿Qué formato y precisión tendrán los resultados?
El algoritmo que podemos utilizar es el siguiente:

Paso 1. Entrada desde el teclado, de los datos de base y altura.


Paso 2. Cálculo de la superficie, multiplicando la base por la altura.
Paso 3. Salida por pantalla de base, altura y superficie calculada.

El lenguaje algorítmico debe ser independiente de cualquier lenguaje de


programación particular, pero fácilmente traducible a cada uno de ellos. Alcanzar
estos objetivos conducirá al empleo de métodos normalizados para la
representación de algoritmos, tales como los diagramas de flujo o pseudocódigo.

1.1.3 Verificación de algoritmos

Una vez que se ha terminado de escribir un algoritmo es necesario comprobar que


realiza las tareas para las que se ha diseñado y produce el resultado correcto y
esperado. El modo más normal de comprobar un algoritmo es mediante su
ejecución 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 obtención de
los resultados. Este proceso se conoce como prueba del algoritmo.

1.1.4 Fase de implementación (realización) en un lenguaje de Programación.

Una vez que el algoritmo está diseñado, representado mediante pseudocódigo y


verificado se debe pasar a la fase de codificación o traducción del algoritmo a un
determinado lenguaje de programación, que deberá ser completada con la
ejecución y comprobación del programa en el ordenador.

1.2 Codificación de algoritmos en pseudocódigo

En el ejemplo del cálculo del área de un rectángulo podemos observar que en la


resolución de programas nos encontramos con datos que pueden ser números
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 número es el 7? Entero


¿Qué tipo de número es el 3? Entero

8
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

¿Qué tipo de número es 7/3? ???

TIPO DESCRIPCIÓN
Entero El rango depende de cuantos bits utilice para codificar el número,
normalmente 2 bytes, Para números positivos, con 16 bits se pueden
almacenar 216= 65536 números enteros diferentes: de 0 al 65535, y de
-32768 al 32767 para números con signo.

Por ejemplo 2, 14, -199,....


Real Subconjunto de los números reales limitado no sólo en cuanto al
tamaño, sino también en cuanto a la precisión. Suelen ocupar 4, 6 ó 10
bytes. Se representan por medio de la mantisa, y un exponente (1E-3 =
0’001), 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......


Lógico Conjunto formado por los valores Cierto y Falso. ‘1’ y ‘0’. Operaciones:
todas las lógicas y relacionalesAND, OR,
>,<
== (igual), >= , <= , ...
Carácter Conjunto finito y ordenado de los caracteres que el ordenador
reconoce. Se almacenan en un byte. Con 8 bits se podrán almacenar
28= 256 valores diferentes (normalmente entre 0 y 255; con ciertos
compiladores entre -128 y 127). Un carácter (letra) se guarda en un
solo byte como un número entero, el correspondiente en el código
ASCII.
Cadena Los datos de este tipo contendrán una serie finita de caracteres.
Podrán 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 carácter. Ejemplos:

C1=”Hola”, C2=”Pepeeerl”.
Tabla 1. Tipos de Datos básicos

9
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

TIPO DESCRIPCIÓN
Escalar
Se hace una enumeración 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 carácter. Ejemplo:

Laboral=L..V
Minúsculas=’a’..’z’
aceptado=1000..1100

Constante
s Son datos cuyo valor no cambia durante todo el desarrollo del
programa.

Numéricas enteras: 12, 34,-44,22234, -9837,m=12,n=44592....


Numéricas reales: 12.55, -3E3, PI=3.14159.....
Lógicas: Sólo existen dos constantes lógicas 0,1
Carácter: n=’a’, k=’1’,.....
Cadena: saludo=”hola”, s=”si”, n=”no”.....

Variables
Una variable es un dato representado por una posición determinada
de memoria cuyo valor puede cambiar durante el desarrollo del
algoritmo.

Ejemplos de identificadores válidos 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 carácter o grupo de caracteres que actúa sobre una, dos o


más variables para realizar una determinada operación con un determinado
resultado. Ejemplos típicos de operadores son la suma (+), la diferencia (-), el
producto (*), etc. Los operadores pueden ser unarios, binarios y ternarios, según
actúen sobre uno, dos o tres operandos, respectivamente.
10
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

 OPERADORES ARITMÉTICOS

Los operadores aritméticos son los más sencillos de entender y de utilizar. Todos
ellos son operadores binarios. Se utilizan los cinco operadores siguientes:

Suma: +
Resta: -
Multiplicación: *
División: /
Resto: % (resto de la división entera. Este operador se aplica solamente a
constantes, variables o expresiones de tipo entero).

 OPERADORES DE ASIGNACIÓN

Los operadores de asignación atribuyen a una variable, es decir, depositan en su


zona de memoria correspondiente, el resultado de una expresión o el valor.

Variable (en realidad, una variable es un caso particular de una expresión).


El operador de asignación más utilizado es el operador de igualdad (=), que no
debe ser confundido con la igualdad lógica (==). Su forma general es:
nombre_variable = expresión;
Primero se evalúa expresión y el resultado se pone en nombre_variable,
sustituyendo cualquier otro valor que hubiera en esa posición de memoria
anteriormente. Una posible utilización de este operador es la siguiente:

variable = variable + 1;

 OPERADORES RELACIONALES

Una característica imprescindible de cualquier lenguaje de programación es la de


considerar alternativas, esto es, la de proceder de un modo u otro según se
cumplan o no ciertas condiciones. Los operadores relacionales permiten estudiar
si se cumplen o no esas condiciones.

En un programa si una condición se cumple, el resultado es cierto; en caso


contrario, el resultado es falso. Un 0 representa la condición de falso, y cualquier
número distinto de 0 equivale a la condición cierto. Los operadores relacionales
son los siguientes:

– Igual que: ==
– Menor que: <
– Mayor que: >
– Menor o igual que: <=
– Mayor o igual que: >=
– Distinto que: !=
11
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

 OPERADORES LÓGICOS

Los operadores lógicos son operadores binarios que permiten combinar los
resultados de los operadores relacionales, comprobando que se cumplen las
condiciones necesarias. Como operadores lógicos tenemos: el operador Y (&&), el
operador O (||) y el operador NO (!). En inglés son los operadores AND, OR y NOT.
Su forma general es la siguiente:

expresion1 && expresion2, expresion1 || expresión!,expresión

 FUNCIONES

En los lenguajes de programación existen ciertas funciones predefinidas o internas


que aceptan unos argumentos y producen un valor denominado resultado. Como
funciones numéricas, normalmente se usarán:

Función Descripción

 abs(x) Valor Absoluto


 cos(x),sin(x) Coseno,Seno
 cuadrado(x) x2
 ent(x) Parte entera
 exp(x) ex
 ln(x) Ln(x)
 log(x) Log10(x)
 raiz(x) Raiz Cuadrada
 redondeo (x) Redondear numero

 EXPRESIONES

Una expresión es una combinación de variables y/o constantes, y operadores. Por


ejemplo, 1+5 es una expresión formada por dos operandos (1 y 5) y un operador
(el +); esta expresión es equivalente al valor 6, lo cual quiere decir que esta
expresión, en el momento de la ejecución es evaluada y sustituida por su
resultado. Una expresión puede estar formada por otras expresiones más
sencillas, y puede contener paréntesis de varios niveles agrupando distintos
términos.

Por ejemplo, la solución de la ecuación de segundo grado:

se escribe, en la siguiente forma:

12
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

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 línea y por /* .....*/ Si abarca a un


párrafo.

ACTIVIDADES

Desarrolle los algoritmos que resuelva los siguientes problemas:

Ejercicio 1. Ir al cine.

Para solucionar este problema, se debe seleccionar una película de la cartelera


del periódico, ir a la sala y comprar la entrada para, finalmente, poder ver la
película. Lo que nos lleva a la siguiente:

Solución:
DATOS DE SALIDA Ver la película.
DATOS DE ENTRADA Nombre de la película, dirección de la sala, hora de
proyección.
13
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

DATOS AUXILIARES Entrada, numero de asiento.

Algoritmo irAlCine()
INICIO
// Seleccionar la película
Tomar el periódico.
Mientras no lleguemos a la cartelera
pasar la hoja.
Mientras no se acabe la cartelera
Inicio
leer película.
Si nos gusta, anotarla.
Fin.
Elegir una de las películas seleccionadas.
Leer la dirección de la sala y la hora de proyección.

// 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 película
Leer el número de asiento de la entrada.
Buscar el asiento.
Sentarse.
Ver la película.
Fin.
FIN.

Ejercicio 2.Poner la mesa para la comida.

Para poner la mesa, después de poner el mantel, se toman las servilletas hasta
que su número coincide con el de comensales y se colocan. La operación 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
número de comensales.
DATOS AUXILIARES Numero de platos, vasos, cubiertos o servilletas que
llevamos puestos.
14
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Algoritmo ponerMesa()
INICIO
Poner el mantel.
Hacer
Tomar una servilleta y colocarla.
Mientras el número de servilletas no sea igual al de comensales.
Hacer
Tomar un vaso y colocarlo.
Mientras el número de vasos no sea igual al de comensales.
Hacer
Tomar un juego de platos y colocarlo.
Mientras el número de juegos de platos no sea igual al de
comensales.
Hacer
Tomar un juego de cubiertos y colocarlo.
Mientras el número 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 jabón, 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.
Echarle jabón.
Mientras queden platos
Inicio
Lavar el plato.
Dejarlo en el escurridor.
Fin.
Mientras queden platos en el escurridor
Secar plato.
FIN.

15
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Autoaprendizaje

1) Decir si son correctos o no los siguientes identificadores de variables:

- contador - temporal1 - num_bytes


- 2temporal - N_numeros - Media_Aritm
- Valor$curso - N-terminos - MeDiaGeom

2) Escribir en pseudocódigo las siguientes expresiones matemáticas:

3) Realizar en pseudocódigo 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 declaración de variables, comprobar el siguiente


pseudocódigo indicando los posibles reales y los de ‘alta probabilidad de error’:

x: entero;
y: carácter;
z,t: real;
m, n, p: entero;
c, s: cadena

5) Realizar en pseudocódigo 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.

2. TEMA 2: HERRAMIENTAS DE PROGRAMACIÓN

Para representar un algoritmo se debe utilizar algún método que permita


independizar dicho algoritmo de los lenguajes de programación y al mismo tiempo,
conseguir que sea fácilmente codificable. Los métodos más usuales para la
representación de algoritmos son:

16
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

 Diagrama de flujo
 Diagrama N-S(Nassi – Schneiderman)
 pseudocódigo

2.1 Diagrama de Flujo

Imagen 1.

Nombre de la Dirección Web Autor Fecha de


imagen Consulta
Símbolos http://www.monografias.com/trabajos42/diagrama-de- Manuel 01/06/201
para flujo/Image3912.gif Murillo 2
desarrollar García
diagramas
de flujo

Los
diagramas de flujo son de gran
importancia ya que ayudan a designar
cualquier representación gráfica de un
procedimiento o parte de este; el diagrama de
flujo como su nombre lo indica
representa el flujo de
información de un

procedimiento.
Los
diagramas de flujo son
importantes para el diseñador por que le ayudan en la definición, formulación,
análisis y solución del problema. El diagrama de flujo ayuda al análisis a
comprender el sistema de información 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 información para la
administración.

17
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Imagen 2.
Nombre de la Dirección Web Autor Fecha de
imagen Consulta
Ejemplo de http://www.desarrolloweb.com/articulos/images/algoritmos/ejempl Manuel 01/06/201
un o_ordinograma.gif Murillo 2
diagrama García
de Flujo

2.2 Diagrama Nassi – Schneiderman

Los diagramas Nassi-Schneiderman son una técnica para la especificación de


algoritmos que combina la descripción textual del pseudocódigo con la
representación gráfica del diagrama de flujo. Todo algoritmo se representa de la
siguiente forma:

Inicio

<acción 1>

18
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

<acción 2>

...

<acción 3>

Fin
Diagrama 2. Representación general

Existe una representación para cada una de las instrucciones permitidas en la


programación estructurada.

 Secuenciales: Recordemos que aquí tenemos:

Declaración de variables (tipo: nombre_variable)


Asignación (nombre_variable = valor)
Lectura (Leer <lista de variables>)
Escritura de datos (Escribir <lista de constantes y variables>).

Inicio

<acción 1>

<acción 2>

...

<acción 3>

Fin

Diagrama 3. Representación secuencial

 Alternativas:
o Alternativa simple.
Inicio

SI NO
acción 1
acción 2
.

19
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

.
acción n
Diagrama 4. Representación Alternativa Simple

o Alternativa doble
Inicio

SI NO
acción 1 acción 1

acción 2 acción 2

. .

. .
acción n acción n
Diagrama 5. Representación Alternativa Doble

Elabora una solución, la más 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 Pseudocódigo

Se considera un primer borrador, dado que el pseudocódigo tiene que traducirse


posteriormente a un lenguaje de programación. El pseudocódigo no puede ser
ejecutado por una computadora. La ventaja del pseudocódigo es que en su uso,
en la planificación de un programa, el programador se puede concentrar en la
lógica y en las estructuras de control y no preocuparse de las reglas de un
lenguaje específico.

Si <expresión lógica>
Entonces.

20
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Instrucciones en caso de que <expresión lógica> sea verdadera


[Si no instrucciones en caso de que <expresión lógica> sea falsa.] Fin Si

Actividad

Desarrolle un algoritmo que permita leer dos valores distintos, determinar cuál de
los dos valores es el mayor y escribirlo.
Pseudocódigo Diagrama de Flujo

1. Inicio

2. Inicializar variables: A = 0, B = 0

3. Solicitar la introducción 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

Autoaprendizaje

1. Desarrolle un algoritmo que realice la sumatoria de los números enteros


comprendidos entre el 1 y el 10, es decir, 1 + 2 + 3 + …. + 10.

2. Determinar la hipotenusa de un triángulo rectángulo 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).
21
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

4. Desarrolle un algoritmo que permita leer un valor cualquiera N y escriba si


dicho número es par o impar.

5. Desarrolle un algoritmo que permita convertir calificaciones numéricas, según


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.

3. TEMA 3: PROGRAMA DFD PARA EL DESARROLLO DE


DIAGRAMAS DE FLUJO

El DFD es un programa, diseñado 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 través de un proceso
específico, teniendo en cuenta que el mismo proceso aplica solo para el mismo
problema, entonces podríamos decir que para cada problema algorítmico se aplica
una solución diferente.

22
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

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. Están 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 sesión.

2. Edición: Este menú es el encargado de manejar los comandos de Edición 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.
 Editar Objeto: Para cambiar el contenido del elemento marcado.
3. Objeto: En este menú se utilizan todos los comandos que están 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. Ejecución: Este menú activa la ejecución del diagrama, contiene los siguientes
comandos:
23
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

 Ejecutar: Para iniciar la ejecución del archivo.


 Pausar: Para pausar la ejecución.
 Detener: Para interrumpir la ejecución.

6. Depuración: 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
ejecución 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 después.
 (Copiar): Copia un elemento seleccionado para pegar en otra ubicación
 (Pegar): Pega un elemento en una ubicación seleccionada.
 (Eliminar): Borra el elemento marcado en el archivo.
 (Ejecutar): Inicia la ejecución del archivo.
 (Detener): Interrumpe la ejecución.
 (Pausar): Pausa la ejecución.
 (Paso simple): Analiza cada elemento del archivo y lo marca o delinea con
un color para saber la ubicación de análisis.
 (Ejecutar hasta): Realiza la ejecución 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.
 (Asignación): Inserta un elemento de asignación en el archivo. (Ciclo
mientras): Inserta un elemento mientras en el diagrama.
 (Ciclo para): inserta elemento de ciclo para en el diagrama.
 (Decisión): Inserta bloque de decisión en el archivo.
 (Lectura): Inserta bloque de lectura en el diagrama.
 (Salida): Inserta los datos que se verán en la pantalla cuando se ejecute el
programa.

24
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Actividad

A continuación 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 botón de los siguientes:

Imagen 5. Botones de símbolos

Después 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:

Imagen 6. Botón de lectura

Dentro de la casilla leer, se deben especificar las variables que van a ser leídas
separadas por coma (,) y pulsar el botón “Aceptar”.

-Para editar un elemento de asignación, dando doble clic aparece la siguiente


ventana:

25
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Imagen 7. Botón de Asignación

En la casilla de la izquierda se coloca la variable que va a recibir la asignación y en


la casilla de la derecha, el valor, la variable o la operación que se va a asignar, y
después se pulsa el botón “Aceptar”.

-Para editar bloque de salida damos doble clic y aparece la siguiente ventana:

Imagen 8. Botón 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 información que se muestra
durante la ejecución del diagrama. Luego pulsar el botón “Aceptar”.

-Para editar el elemento decisión damos doble clic y aparece la siguiente ventana:

26
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Imagen 9. Botón de Decisión

En la casilla escribimos la condición que vamos a evaluar, señalar si la condición


verdadera será a la derecha o la izquierda y posteriormente presionamos aceptar.

Autoaprendizaje

A continuación se diseña un algoritmo como ejemplo para trabajar en clase.

Como podemos observar en la imagen, esta impresión 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 algorítmicos los
cuales tienen un proceso; dicho proceso es desarrollado y solucionado a través
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 solución del
problema algorítmico.

27
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Imagen 10. Inicio del diagrama

A continuación insertaremos un bloque de salida entre la línea que une el circulo


“inicio” con el circulo “fin”

Imagen 11. Inserción de un símbolo


Para insertar tal bloque nos desplazaremos con el puntero del mouse hasta la
barra de botones y haremos clic sobre el botón salida. Seleccionamos el bloque
dando clic y para colocarlo sobre la línea; nos ubicamos sobre ella y nuevamente
clic.

Imagen 12. Como ingresar un texto

28
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Como podemos observar la información 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 ejecución, hacemos clic en Aceptar.

Imagen 13. Resultado después de ingresar un texto

Ahora insertaremos un bloque de lectura; este bloque permite al programa asignar


una o varias variables que serán utilizadas posteriormente en un bloque de
asignación para arrojar un dato o resultado a través de una operación.

Imagen 14. Ingresar Variables.

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

Imagen 15. Asignamos los valores

El siguiente paso que arroja el resultado de la operación lo hacemos en un bloque


de salida; el cual permite leer la información que va entre comillas simples y los
29
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

datos, arrojados por el resultado de la suma van colocados sin comillas de la


siguiente manera:

Imagen 16. Asignamos los valores

Tras haber conocido estos pasos; a continuación se ejecuta el ejercicio, cuando


damos clic en el botón “ejecutar”.

Evaluación

A continuación desarrollo el respectivo pseudocódigo y diagrama de flujo de los


siguientes ejercicios:

 Desarrolle un algoritmo que permita leer dos números 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.

30
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

Pistas de aprendizaje

Tener en cuenta: Los diagramas de flujos de datos son una técnica de análisis
estructurado que van de lo general a lo específico muestran las posibles entradas,
procesos y salidas del sistema. Los diagramas son usados cuando los analistas
tratan de comprender los requerimientos de información de los usuarios de una
manera gráfica utilizando varios símbolos 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 implementación técnica de un


sistema.
b) Mejor comprensión entre las interrelaciones de los sistemas y los
subsistemas.
c) Comunicación del conocimiento del sistema actual a los usuarios por medio
de diagramas de flujos de datos.
d) Análisis 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 lógico 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 utilización de estos diagramas tiene ciertas
ventajas como es que puede existir mejor comunicación con los usuarios,
sistemas más estables, que el analista comprenda mejor el funcionamiento
del negocio o como se maneja el negocio.

b) El diagrama de flujo de datos físico es todo lo contrario, en este diagrama


se muestra cómo va a ser realizado el sistema incluyendo tanto el hardware
como el software del sistema. La utilización de los diagramas de flujos de
datos físicos también tiene algunas ventajas como son el de calificar los
tipos de procesos, describen procesos a mayor detalle, identifican
almacenamientos de datos temporales, añaden controles para asegurar
que los procesos son realizados adecuadamente.

31
G R A D O O N C E - F U N D A M E N TO S D E P R O G R A M A C I O N

GLOSARIO
 LÓGICA: 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 lógica de un programa.
 DIAGRAMA DE FLUJO: Es la representación gráfica de una secuencia de
instrucciones de un programa que ejecuta un computador para obtener un resultado
determinado.
 CÓDIGO FUENTE: Programa en su forma original, tal y como fue escrito por el
programador, el código fuente no es ejecutable directamente por el computador, debe
convertirse en lenguaje de maquina mediante compiladores, ensambladores o
intérpretes.
 VARIABLE: En programación 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
ejecución del programa.
 ACUMULADOR: Campo o variable que sirve para llevar una suma o cuenta de
diferentes valores.
 DATO: El término que usamos para describir las señales con las cuales trabaja la
computadora es dato; Aunque las palabras dato e información muchas veces son
usada indistintamente, si existe una diferencia importante entre ellas. En un sentido
estricto, los datos son las señales individuales en bruto y sin ningún significado que
manipulan las computadoras para producir información.
 PROGRAMA: Es una colección de instrucciones que indican a la computadora que
debe hacer. Un programa se denomina software, por lo tanto, programa, software e
instrucción son sinónimos.
 PROGRAMA FUENTE: Instrucción escrita por el programador en un lenguaje de
programación para plantear al computador el proceso que debe ejecutar.
 PSEUDOCODIGO: Herramienta de análisis de programación. 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 ejecución ó bien se puede, decir grupo de instrucciones que realizan
una función específica, tal como una función o marco. Una subrutina grande se
denomina usualmente * * MODULO * * ó * *PROCEDIMIENTO * *, pero todos los
términos 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
 http://clintyanyurbis-diagramasdeflujo.blogspot.com/2007/07/diagramas-de-
flujo.html

32

Anda mungkin juga menyukai