PseInt - Free DFD
Programación
1. Introducción
2. PSeInt
3. Free DFD
1. Introducción
La programación requiere conocer un lenguaje de programación, pero antes de eso es necesario realizar
un diseño lógico.
En Ciencias de la Computación, se tiene tres operaciones fundamentales: Entrada, Proceso y Salida, y
están presentes en un algoritmo:
a) Entrada: Datos para el algoritmo. E/P/S
b) Proceso: Operaciones sobre los datos de entrada y se llegue a los resultados.
c) Salida: Resultados finales como solución al problema.
La resolución de problemas algorítmicos, es aplicar un algoritmo, como una serie de pasos; por ejemplo,
un problema típico puede ser hallar la suma de dos números:
1) Paso 1: Conocer el primer número. (Entrada)
2) Paso 2: Conocer el segundo número. (Entrada)
3) Paso 3: Efectuar la suma. (Proceso)
4) Paso 4: Mostrar el resultado (Salida)
Un algoritmo puede ser representado por un Pseudocódigo o Diagrama de Flujo, si cumple los
requerimiento del usuario entonces ser codificado utilizando un lenguaje de programación cuyo producto
es un programa.
El diagrama de flujo tiene origen como método estructurado para documentar gráficamente un proceso
como un flujo de pasos sucesivos.
El "proceso de diagrama de flujo", fue expuesto por Frank Gilbreth, en la Sociedad Americana de
Ingenieros Mecánicos (ASME), en 1921, bajo el enunciado de "Proceso de Gráficas-Primeros pasos para
encontrar el mejor modo".
La representación del algoritmo:
a) la representación en lenguaje materna usando pseudocódigo y
b) la representación gráfica usando diagramas de flujo.
1.1. Descripción del problema
Algoritmo DOBLE_MITAD
Variable: Entrada : a (Número entero)
Auxiliares : ninguna
Salida : dob, mitad
1) Ingresar a (por el teclado)
2) dob <- 2*a (Procesador y memoria)
3) mitad <- a/2
4) Visualizar dob (por pantalla)
5) Visualizar mitad
Fin_ DOBLE_MITAD
1.2. Diagrama de flujo
Un diagrama de flujo es un diagrama que utiliza bloques y que representan las operaciones del
algoritmo relacionadas por líneas de flujo.
1.1. Símbolos o bloques.
Entrada: Teclado
Proceso: Memoria y microprocesador
Salida: Pantalla:
Inicio / Fin
Líneas de Flujo:
Ejemplo dibujado con Visio de Microsoft Office.
2. Free DFD
Free DFD es un programa que permite realizar diagramas de flujo, asumiendo, es un archivo
ejecutable:
Tiene la siguiente presentación:
z
2.1. Ejecutar el algoritmo
Una vez realizado el diagrama de flujo se presiona el botón ejecutar:
3. PseInt
PSeInt es una herramienta de aplicación, que ayuda en el diseño de la programación. Sigue una idea
intuitiva del pseudo lenguaje en este caso en español, complementado con un editor de diagramas de flujo,
y proporcionando un entorno de trabajo con ayuda contextual.
Tiene el esquema:
Algoritmo (nombre del algoritmo)
Definir lista de variables con tu tipo
Instrucción 1
Instrucción 2
…..
FinAlgoritmo
Algoritmo exponencial
definir a, x, y como real
Leer a
Leer x
y<- exp(x*ln(a))
Escribir y
FinAlgoritmo
3.1. Las variables
Las variables son celdas de memoria en la RAM, donde se almacena el valor de para una
variable. Pueden ser:
Tipo Descripción Ejemplo
Tipo de dato asociado a cantidades enteras, no poseen parte decimal. 3, 7, -15,
entero Num, den, edad.
299,…
Tipo de dato asociado a cantidades con parte decimal.: 3.1415, -2.14, 2.16, Estatura,
real
391.345,… peso, volumen.
lógicos Son datos que toman solo dos posibles valores falso (F) o verdadero (T) Sexo, si, etc.
Datos que contienen caracteres alfanuméricos (letras, número, signos de Nombre, cedula,
cadenas
puntuación, etc.) dirección
Cuando se trabaja con variables el nombre debe ser descriptivo para el problema, por ejemplo, si se va a
manejar un denominador, un nombre apropiado podría ser denom.
3.2. Operador de asignación
Para almacenar valor de una expresión en una variable:
variable <— expresión
Operadores aritméticos
Suma, resta, producto, división + - * /
Potenciación ^
Diagrama de flujo en PseInt:
3.3. Opciones de la barra de menú
Estructura SECUENCIAL.
Aplicación 2: Ingresar 2 números y hallar la suma y la división de estos números, luego visualizar
resultados.
a) Descripción:
Entrada : a=7
: b=2
Salida : suma = a+b = 7+2 = 9
: coc = a/b = 7/2 = 3.5
b) Diagrama de flujo:
c) Pseudocódigo:
Algoritmo operaciones
definir a, b, suma Como Entero
definir coc Como Real
Leer a
Leer b
suma <- a + b
coc <- a / b
Escribir suma
Escribir coc
Escribir 'Hasta luego...'
FinAlgoritmo
Aplicación 3: Ingresar un número entero positivo y obtener la raíz cuadrada.
a) Descripción:
Entrada : num = 9
Salida :r = Raizcuadrada(9) = 3
b) Pseudocódigo
c) Diagrama de flujo
Algoritmo raizcuadrada
definir num Como Entero
definir r Como Real
Escribir 'RAIZ CUADRADA DE UN NUMERO'
Leer num
r <- rc(num)
Escribir 'Raiz cuad = ',r
FinAlgoritmo
Aplicación 4: Ingresar dos números y hallar el residuo de la división.
a) Descripción:
Entrada : a = 17
b =5
Salida : resto = a mod b = 17 mod 5 = 2
b) Pseudocódigo
Algoritmo residuo
definir a, b, resto como entero
Escribir 'RESIDUO DE UNA DIVISION'
Leer a
Leer b
resto <- a mod b
Escribir 'Resto = ', resto
FinAlgoritmo
Aplicación 5: Ingresar dos números, y luego intercambiar sus valores.
c) Descripción:
Entrada : a=7
: b=12
Auxiliar : temp
Salida : a=12
: b=7
d) Pseudocodigo
Algoritmo intercambio
definir a,b,temp Como Entero
Escribir 'INTERCAMBIO DE VALORES'
Escribir 'Íngresar a -> '
Leer a
Escribir 'Íngresar b -> '
Leer b
temp <- a
a <- b
b <- temp
Escribir 'a = ', a
Escribir 'b = ', b
FinAlgoritmo
e) Salida:
Aplicación 6: Ingresar un ángulo en sexagesimal, y hallar el seno y coseno.
a) Descripción:
Entrada : alfa=30
Salida : seno = sen 30 = 0.5
: coseno = cos 30 = 0.866
b) Pseudocódigo
Algoritmo trigonometria
definir alfa Como Entero
definir seno, coseno, r Como Real
Escribir 'TRIGONOMETRIA'
Escribir 'iNGRESAR ALFA -> '
Leer ALFA
r <- alfa/180 * PI
seno <- sen(r)
coseno <- cos(r)
Escribir 'Seno = ', seno
Escribir 'Coseno = ', coseno
FinAlgoritmo
Aplicación 7: Demostrar la Identidad fundamental de la Trigonometría.
a) Descripción:
Es la fórmula siguiente: sen2x + cos2x =1, que se cumple para cualquier ángulo.
sen 2 x + cos2 x = 1
Entrada : x=35õ
Auxiliar : rad = x/180*pi
: seno2 = sin(rad)*sin(rad)
: coseno2 = cos(rad)*cos(rad)
Salida : suma = seno2 + coseno2, se verá que siempre será 1
b) Pseudocódigo:
Aplicación 8: Demostrar el Binomio de Newton.
a) Descripción:
Es la fórmula siguiente: sen2x + cos2x =1, que se cumple para cualquier ángulo.
2
(a + b ) = a 2 + 2ab + b 2
Entrada : a=2 b=5
Salida : suma1 = (a+b)*(a+b) = (2+5)*(2+5) = 49
: suam2 = a*a + 2*a*b +b*b= 4 + 20 + 25 = 49
b) Pseudocódigo:
Algoritmo algebra *** Ejecución Iniciada. ***
definir a, b, suma1, suma2 CORRIDO
como entero Verificar (a+b)2 = a2 +2ab +b2
Escribir 'Verificar (a+b)2 = a2 Ingresar a ->
+2ab +b2' >5
Escribir 'Ingresar a -> ' Ingresar b ->
Leer a >3
Escribir 'Ingresar b -> ' Suma 1 = 64
Leer b Suma 2 = 64
suma1 <- (a+b)^2 *** Ejecución Finalizada. ***
suma2 <- a^2 + 2*a*b + b^2
Escribir 'Suma 1 = ', suma1
Escribir 'Suma 2 = ', suma2
FinAlgoritmo
Aplicación 9: Hallar la distancia entre dos Puntos del Plano cartesiano.
a) Descripción:
d = PQ
2 2
d = (x 2 - x 1 ) + (y2 - y1 )
Entrada : P(x1,y1)=(1,2) Q(x2,y2)=(5,4)
Auxiliar : Suma = (x2-x1)* (x2-x1) + (y2-y1)* (y2-y1)
Salida : dist = raíz(suma)
b) Pseudocódigo:
Algoritmo geometria
definir x1,y1,x2,y2, suma Como Entero
definir dist como real
Escribir 'Distancia en GEO ANALIT'
Escribir 'Ingresar X1 -> '
Leer x1
Escribir 'Ingresar y1 -> '
Leer y1
Escribir 'Ingresar x2 -> '
Leer x2
Escribir 'Ingresar y2 -> '
Leer y2
suma <- (x2-x1)^2 + (y2-y1)^2
dist <- rc( suma )
Escribir 'distancia = ', dist
FinAlgoritmo
Estructura de BIFURCACION.
Aplicación 10: Ingresar un número y si es menor a 10 aumentarle 9, y visualizar los resultados.
c) Descripción:
Entrada : num = 6
num < 10 entonces aumentar 9 al número num <- num +9
Salida : num
d) Diagrama de flujo
e) Pseudocódigo
Algoritmo numeroaumentado
definir num Como Entero
Escribir 'Uso de si entonces'
Escribir 'Ingresar num -> '
Leer num
Si num<10 Entonces
num <- num + 9
Fin Si
Escribir 'Num = ', num
FinAlgoritmo
Aplicación 11: Se compra una camisa que tiene un precio establecido, y por oferta se hará un descuento
del 20 %. Determinar el descuento y el costo final a pagar.
a) Descripción:
Entrada : precio = 90
Porcentaje : porc = 20
Salida : dscto = precio * porc /100 = 90 * 20 /100 = 18
Costo = precio – dscto = 90 – 18 = 72
b) Diagrama de flujo
c) Pseudocodigo:
Aplicación 12: Se compra una camisa que tiene un precio establecido, y por si el precio es mayor a 100
hay un descuento del 20 %.
a) Descripción:
Entrada : precio = 110
Porcentaje : porc = 20
Si precio>100 entonces hay descuento
Salida : dscto = precio * porc /100 = 110 * 20 /100 = 22
Costo = precio – dscto = 110 – 22 = 88
b) Diagrama de flujo
c) Pseudocodigo
Algoritmo camisas
definir precio, porc Como Entero
definir dscto, costo Como Real
Leer precio
Si precio>100 Entonces
porc <- 20
SiNo
porc <- 0
Fin Si
dscto <- precio*porc/100
costo <- precio - dscto
Escribir 'Descuento = ', dscto
Escribir 'Costo = ', costo
FinAlgoritmo
Aplicación 13: Se compra una camisa que tiene un precio establecido, y por si el precio es mayor a 100
hay un descuento del 20 %.
a) Descripción: Ahora será con SIMPLE ALTERNATIVA
El caso anterior (Aplicación 12) era CON DOBLE ALTERNATIVA
Es decir LA DOBLE ALTERNATIVA convertir a SIMPLE ALTERNATIVA
Para esto la parte NO o Falsa, se la coloca antes de la pregunta, y será valor por defecto.
b) Diagrama de flujo:
c) Pseudocódigo
Aplicación 14: Se compra una camisa que tiene un precio establecido, y se tienen los descuentos,
Descuentos
Precio < 100 sin descuento
Precio está entre 100 y 200 10%
Precio > 200 25%
Diseñar ANUNQUE SE TENGA 3 CASOS, con solo 2 Preguntas SI.
a) Descripción
El caso más simple, será por DEFECTO.
b) Diagrama de flujo
c) Pseudocódigo
Algoritmo camisas
definir precio, porc Como Entero
definir dscto, costo Como Real
Leer precio
porc <- 0
Si precio>=100 Y precio<=200 Entonces
porc <- 10
Fin Si
Si precio>200 Entonces
porc <- 25
Fin Si
dscto <- precio*porc/100
costo <- precio - dscto
Escribir 'Descuento = ', dscto
Escribir 'Costo = ', costo
FinAlgoritmo
Aplicación 15: Hallar la raíz cuadrada de un número entero, (solo de Positivo) de un negativo emitir
error.
a) Descripción
x= 9 x = -9
x =3 x = Error
Entrada : num= 9 num = -9
Auxiliar : msj =’’Raiz msj = ‘Error’
Salida : x = raíz(num)= raíz(9) = 3
b) Diagrama de flujo
Aplicación 15: Hallar la raíz cuadrada de un número entero, (Positivo o negativo).
a) Descripción
x= 9 x = -9
x =3 x = 3i
Entrada : num= 9 num = -9
Auxiliar : a = abs( num)
Salida :
b) Diagrama de flujo
c) Pseudocódigo.
Aplicación 15: Tabla de Multiplicar.
a) Descripción
Entrada : n=7
Salida :
7+1=8
7+2=9
……
7 + 9 = 16
b) Pseudocódigo.
Algoritmo tablasuma
definir num, k, suma como enteros
Escribir 'Ingrese num -> '
Leer num
Escribir 'Tabla de multiplicacion del ', num
Para k <- 1 Hasta 9 Con Paso 1 Hacer
suma <- num * k
Escribir num,'x', k, '=', suma
Fin Para
FinAlgoritmo
Aplicación 16: Generar las raíces cuadradas de los números naturales.
a) Descripción
Entrada : n=7
Salida : 1 1.41 1.73 2 2.21 2.57 2.89 2.92 3 ….
b) Pseudocódigo.
Aplicación 18: Generar los valores de seno, coseno y tangente de los ángulos desde 1º a 45 o.
a) Descripción
Entrada :n
Salida :
GRADO SENO COSENO TANGENTE
1º 0.0002 0.99922 0.000
30º 0.5 0.877
45º 0.77 0.77 1.000
b) Pseudocódigo.
Algoritmo senocoseno
definir alfa, a, b Como entero
definir rad, seno, coseno, tangente como real
Escribir 'Angulo inicial a -> '
Leer a
Escribir 'Angulo final b -> '
Leer b
Escribir 'TABLA DE RAZONES TRIGONOMETRICAS'
Para alfa <- a Hasta b Con Paso 1 Hacer
rad <- alfa/180*pi
seno <- sen(rad)
coseno <- cos(rad)
tangente <- seno/coseno
escribir alfa, ' ', seno, ' ', coseno , ' ', tangente
Fin Para
FinAlgoritmo
Aplicación 19: Evaluar la siguiente función:
y = x2 +2x-1, desde x = -3 hasta 5
a) Descripción
Entrada : a = -3 b= 5
Salida :
x y
-3
-2
-1
0
1
2
3
4
5
b) Pseudocódigo.
Algoritmo senocoseno
definir xx, a, b Como entero
definir yy como real
definir rad, seno, coseno, tangente como real
Escribir 'funcion y = x2 +2x-1'
Escribir 'Ingrear a -> '
Leer a
Escribir 'Ingrear b -> '
Leer b
Escribir ' x y'
Para xx <- a Hasta b Con Paso 1 Hacer
yy <- xx*xx + 2*xx -1
Escribir xx, ' ', yy
Fin Para
FinAlgoritmo