CRISMEGOREGIFO

Page 1

ESTUDIANTES: *CRIS MEGO RENGIFO

* ALEXANDRA VARGAS BERAÚN

* EMILY VASQUEZ IMAN

* ROXANA BERNILLA VERGARA

DOCENTE: *NERITA TARRILLO DAVILA

CURSO: *EDUCACION PARA EL TRABAJO

TEMA: *MANUAL DE ALGORITMOS

GRADO Y SECCION:

4TO

Manual de algoritmos

“B”

Página 1


ESTE MANUAL SE TRATA SOBRE ALGORITMOS, DIAGRAMA DE FUJO DE DATOS, ESTRUCTURAS CONDICIONALES. ETC SU CONTENIDO BASICAMENTE SON EJERCICIOS ALGORITMICOS MUY ACCESIBLES DE APRENDER Y PODER TENER MEJOR ENTENDIMIENTO DE LO QUE SE ESTA HACIENDO.

Manual de algoritmos

Pรกgina 2


INDICE

CARATULA …………………………………………………………………………….1

PRESENTACION……………………………………………………………………..2

ALGORITMOS…………………………………………………………………………4

PSEUDOCODIGOS………………………………………………………………….22

PROBLEMAS PROPUESTOS POR PSEUDOCODIGOS………………23

DIAGRAMAS DE FLUJO DE DATOS………………………………………..44

BIBLIOGRAFIAS “LINS”…………………………………………………………62

Manual de algoritmos

Página 3


Algoritmos Un ordenador es capaz de realizar “solo” determinadas acciones sencillas, tales como sumar, comparar o transferir datos, pero los problemas que normalmente interesa resolver son más complejos. Para resolver un problema real es necesario, en primer lugar, encontrar un método de resolución y, posteriormente, determinar la sucesión de acciones sencillas (susceptibles de ser ejecutadas por un ordenador) en que se descompone dicho método. No todos los métodos de solución de un problema pueden ser puestos es practica en un ordenador. Para que un procedimiento pueda ser implantado en un ordenador debe ser: Preciso: estar compuesto de pasos bien definidos (no ambiguos) y ordenados. Definido: si se sigue dos veces, se obtiene el mismo resultado cada vez. Finito: tener un número finito de pasos. Un procedimiento o método para resolver un problema que cumpla los requisitos anteriores se dice que es un algoritmo. Se puede dar por tanto la siguiente definición: Un algoritmo es un método para resolver un problema mediante una secuencia de pasos bien definidos, ordenados y finitos. Para que se pueda ejecutar el algoritmo es preciso, además, que se disponga de las “herramientas” adecuadas para llevar a cabo cada uno de los pasos. Si no es así, estos deberán, a su vez, ser descompuestos en una secuencia (algoritmo) de pasos más simples que si se puedan llevar a cabo. Un programa de ordenador es una sucesión de ´ordenes que describen un algoritmo, escritas de forma que puedan ser entendidas por el ordenador. En un algoritmo (y por tanto en un programa) se distinguen las siguientes acciones: Entrada: es la informaci´on de partida que necesita el algoritmo para arrancar. Proceso: es el conjunto de todas las operaciones a realizar. Salida: son los resultados obtenidos. Un ejemplo elemental es el Algoritmo Algoritmo Preparar una taza de té. Entrada: tetera, taza, bolsa de te Salida: taza de te Inicio Tomar la tetera Llenarla de agua Encender el fuego Poner la tetera en el fuego Esperar a que hierva el agua Tomar la bolsa de te Introducirla en la tetera Esperar 1 minuto Echar el té en la taza

Manual de algoritmos

Página 4


Fin

ALGUNOS EJEMPLOS RESUELTOS DE ALGORITMOS 1.- Mostrar su nombre, sexo edad y estado civil, que son ingresados por teclado ALGORITMO datopersonal INICIO CARACTER nombre[30], sexo, Ec Entero edad 1.-LEER nombre, sexo, edad, Ec // Ec = estado civil 2.-MOSTRAR nombre, sexo, edad , Ec FIN 2.- Ingresar por teclado el nombre y la edad de cualquier persona e imprima tanto el nombre como la edad ALGORITMO edad INICIO CARACTER nombre [30]. Entero edad

FIN

1.-LEER nombre, edad 2.-MOSTRAR nombre, edad

3.- Ingresar por teclado el nombre y la edad de cualquier persona e imprima, solo si la persona es mayor de edad, el nombre de la persona. ALGORITMO adulto INICIO CARACTER nombre Entero edad 1.- LEER nombre, edad 2.- SI (edad >= 18) ENTONCES a) MOSTRAR nombre FINSI FIN 4.-.- Ingresar por teclado el nombre y la edad de cualquier persona e imprima solo si la persona es mayor de edad, el nombre de la persona, de lo contrario, imprima un mensaje que diga: “no puede votar”. ALGORITMO votar INICIO Cadena nombre Entero edad 1.-LEER nombre, edad 2.-SI (edad >= 18) ENTONCES a) MOSTRAR nombre SINO a) MOSTRAR “no puede votar” FINSI FIN 5.- Ingresar por teclado el nombre, la edad y el sexo de cualquier persona e imprima, solo si la persona es de sexo masculino y mayor de edad, el nombre de la persona. NOTA: suponga que en el campo denominado sexo el número 1 es masculino o el número 2 es femenino ALGORITMO sex INICIO Cadena nombre Entero sexo, edad

Manual de algoritmos

Página 5


FIN

1.-LEER nombre, sexo, edad 2.-SI (sexo = 1) y (edad>= 18) ENTONCES a) MOSTRAR nombre. FINSI

6.- Ingresar por teclado el nombre, la edad, el sexo (1 o 2) y el estado civil de cualquier persona e imprima solo si la persona es un hombre soltero mayor de edad, el nombre de la persona. NOTA: en el campo de estado civil se graba el número 1 en vez de soltero, el número 2 en vez de casado o el número 3 en vez de otro. ALGORITMO hombsolt INICIO Cadena nombre Entero edad, sexo, ec // e =estado civil. 1.-LEER nombre, edad, sexo, ec. 2.-SI (sexo = 1) y (e = 1) y (edad >= 18) ENTONCES a) MOSTRAR nombre FINSI FIN 7.-Lea de un registro el nombre, la edad, el sexo y el estado civil de cualquier persona e imprima, solo si la persona es hombre o mujer menor de edad o es hombre casado de cualquier edad, el nombre de la persona y un mensaje que diga “usted no se manda”. En los demás casos imprima el nombre de la persona solamente. ALGORITMO mensaje INICIO CARÁCTER nombre [30] , s, ec // s = sexo, e = edad Entero, e // ec = estado civil 1.-LEER nombre, e, s, ec 2.-SI (s = “M”) o ((s = “F”) y (e < 18)) o ((s = “M”) y ( ec = “C”)) ENTONCES a)MOSTRAR nombre, “usted no se manda” SINO a)MOSTRAR nombre. FINSI FIN 8.-Ingrese un numero e imprima el numero y el valor absoluto del mismo. ALGORITMO valorabsoluto INICIO Real , x, VA // {x es el numero} 1.-LEER x 2.-VA ç abs (x) 3.- MOSTRAR VA // VA es el valor absoluto FIN 9.-Ingrese un número y calcule e imprima su raíz cuadrada. Si el numero es negativo imprima el número y un mensaje que diga “tiene raíz imaginaria” ALGORITMO RC INICIO Real ,num, RC 1.-LEER num 2.- SI (num >= 0) ENTONCES a. RC ß sqrt (num) b. MOSTRAR RC SINO a. MOSTRAR num “tiene raíz imaginaria”

Manual de algoritmos

Página 6


FIN

FINSI

10.-Ingrese dos números desde el teclado e imprima solo los positivos ALGORITMO pos INICIO Real A, B 1.-LEER A, B 2.-SI (A>0) ENTONCES MOSTRAR A FINSI 3.-SI (B>0) ENTONCES MOSTRAR B FINSI FIN 11.-Ingrese dos números desde el teclado e imprima ambos números sólo si son positivos ALGORITMO numpos INICIO Real , A, B 1.-LEER A, B 2.-SI (A>0) y (B>0) ENTONCES a)MOSTRAR A, B FINSI FIN 12.-Ingrese dos números desde el teclado e imprima ambos números si por lo menos uno de ellos es positivo ALGORITMO num INICIO Real A ,B 1.-LEER A, B 2.-SI (A>0) o (B>0) ENTONCES a) MOSTRAR A, B FINSI FIN 13.-Ingrese dos números desde el teclado e imprima ambos números solo si son de diferente signo y distintos de cero ALGORITMO signosop INICIO Real A, B 1.-LEER A, B 2.-SI ( A¹ B ) y ( B¹0 ) ENTONCES a) SI (A<0 ) y (B>0) o (A>0) y (B<0) ENTONCES 1) MOSTRAR A, B FINSI FINSI FIN 14.-Ingrese dos números desde el teclado. Calcule la suma e imprima los números leídos y la suma. ALGORITMOsum INICIO Real, A, B, S // S, es la suma 1.- LEER A, B 2.- Sç A + B 3.- MOSTRAR A, B, S FIN 15.- Lea dos números de un mismo registro. Calcule la suma de los números. Imprima los números leídos y sólo si suma es negativa. Imprímala también ALGORITMOsuma INICIO

Manual de algoritmos

Página 7


FIN

Real A, B, S 1.- LEER A, B 2.- S ç A + B 3.- SI ( S < 0 ) ENTONCES a) MOSTRAR A, B, S SINO a) MOSTRAR A, B FINSI

// S es la suma

16.- Lea dos números de un mismo registro y calcule el cociente de dividir el primero por el segundo. Imprima el cociente. Si el segundo número es cero no ejecute el cálculo e imprima un mensaje que diga : “la división no es posible”. ALGORITMO cociente INICIO Real A, B , COC // COC es el cociente 1.-LEER A, B 2.- SI ( B = 0) ENTONCES a. MOSTRAR “la división no es posible” SINO a. COC ç A / B b. MOSTRAR COC “es el cociente” FINSI FIN 17.- Leer de un mismo registro el nombre de un empleado, su salario básico por hora y el número de horas trabajadas en el mes. Calcular su salario mensual e imprimir tanto el nombre como su salario mensual ALGORITMO salario INICIO Cadena nombre Real SxH, SM // SxH es salario por hora, SM, salario mensual Entero HT // HT es el número de horas trabajadas 1.- LEER nombre SxH, HT 2.- SM ç SxH * HT 3.- MOSTRAR nombre, SM FIN 18.- Leer un número y calcular el 5% del número leído. Obtener tanto el número como el porcentaje calculado ALGORITMO porciento INICIO Real Num , PC // PC es el porcentaje 1.- LEER , Num 2.- PC ç (5/100) * Num 3.- MOSTRAR PC, Num FIN 19.- Leer de un registro el nombre de un empleado, su salario básico por hora, el número de horas trabajadas en el período y el porcentaje de retención en la fuente. Calcular el salario bruto, el valor de la retención y su salario neto. ALGORITMO retencion INICIO Real SxH, P, R, SB, SN, HT // SxH salario por hora, P porcentaje de retención, R Retención, SB Salario bruto, SN salario neto, HT, horas trabajadas. Cadena , nombre 1.- LEER nombre Sxh, HT, P 2.- SBçSxH * HT 3.- Rç(P*SB)/100

Manual de algoritmos

Página 8


FIN

4.- SNçSB-R 5.- MOSTRAR SB, R, SN, nombre

20.-Para un salario bruto hasta de $1.500, no hay retención. Para un salario bruto de $1500 a $ 3.000 el porcentaje de retención es de 5%. Para un salario bruto mayor de $3000 el porcentaje de retención es 8%. Obtener el nombre del empleado, el salario bruto, el valor de la retención y el salario neto. Se debe leer el nombre y el salario. ALGORITMO salarioneto INICIO Cadena, nombre Real, SB, SN, Ret // SB salario bruto, SN salario neto, Ret retención 1.- LEER nombre , SB 2.- SI (SB <= 1500) ENTONCES a) Ret ç 0 SINO 1) SI ( SB > 3000) ENTONCES a) Retç(8/100) * SB SINO a) Ret ç(5/100)*SB FINSI FINSI 3.- SN çSB - Ret 4.-MOSTRAR nombre, SB, Ret, SN FIN 21.- Leer de un registro el nombre de un empleado , el salario básico por hora y el número de horas trabajadas durante una semana. Calcular el salario neto, teniendo en cuenta que si el número de horas trabajadas durante la semana es mayor de 48, esas horas demás se consideran horas extras y tienen un 35 % de recargo. Imprima el nombre del empleado y el salario neto. ALGORITMO sueldoneto INICIO Real, Sb, Ht, SN, Sextr, Extr // Sb salario por hora, Ht horas trabajadas, Extr hora extra // SN salario neto, Sextr, salario por hora extra CARACTER Nombre[30] constante Tr = 0.35

FIN

// Tr tasa de recargo

1.- LEER nombre, Sb, Ht, 2.-SI ( Ht>48) ENTONCES a)ExtrçHt-48 b)Sextrç Sb+Sb*Tr c)SNç(48*Sb) + (Extr*Sextr) SINO a)SNçSb*Ht FINSI 3.- MOSTRAR nombre, SN

22.-Obtenga los 100 primeros números naturales. ALGORITMO ciennum INICIO Entero, i 1.- PARA iç 1 HASTA iç 100 HACER a) MOSTRAR i FINPARA 23.- Obtener los números pares comprendidos entre 1 y 1000 ALGORITMO numpar INICIO

Manual de algoritmos

Página 9


FIN

Entero i 1.- PARA iç 2 HASTA i ç 1000 INC = 2 HACER a) MOSTRAR i FINPARA

24.- Leer de un registro un número entero positivo y obtener los múltiplos de 3 comprendidos entre 1 y el número leído. ALGORITMO mult3 INICIO Entero i, N 1.- LEER N 2.- PARA i ç1 HASTA i ç N HACER a) SI ( i MOD 3 = 0 ) ENTONCES 1. MOSTRAR i FINSI FINPARA FIN 25.- Lea los veinte primeros registros de un archivo, cada uno de los cuales contienen un nombre. Imprimir los nombres. ALGORITMO nombre INICIO Entero, i CARACTER nombre[30] 1.- PARA i ç1 HASTA i ç20 HACER a) LEER nombre b) MOSTRAR nombre FINPARA FIN 26.- Leer varios registros cada uno de ellos, conteniendo un nombre. El número de estos registros se encuentra grabado en un registro que precede a los anteriores. Imprimir cada uno de los hombres leídos. ALGORITMO nombres INICIO CARACTER nombre Entero i, N 1.- LEER NReg 2.- PARA iç1 HASTA içNReg HACER a) LEER nombre b) MOSTRAR nombre FINPARA FIN 27.- Leer un conjunto de registros cada uno de ellos conteniendo el código y el nombre de cada uno de los estudiantes de la universidad. El último registro del conjunto (registro centinela) contiene el código 9999999 y es utilizado sólo para chequear el final de los registros. Imprima cada uno de los códigos leídos. Lógicamente la información del registro centinela no se imprime porque no pertenece a ningún estudiante. ALGORITMO estudiante INICIO Entero cod // cod es el código. CARACTER nombre[30] 1.- LEER cod, nombre 2.- MIENTRAS (cod ¹ 9999999) HACER a) MOSTRAR cod , nombre b) LEER cod, nombre FINMIENTRAS FIN

Manual de algoritmos

Página 10


28.-Imprimir cuatro columnas. En la primera columna, los enteros del 1 al 50 . En las otras columnas, la segunda, la tercera y la cuarta potencia de los enteros de la primera columna ALGORITMOpotencia INICIO Entero , i , pot2, pot3, pot4 1.- PARA i ç1 HASTA i ç50 HACER a)pot2 çsqr ( i ) b)pot3 çpot2 * i c)pot4 çpot2 * pot2 d) MOSTRAR i , pot2, pot3, pot4 FINPARA FIN 29.- Calcule la suma de los100 primeros números naturales ALGORITMO suma INICIO Entero suma, i 1.- suma ç 0 2.- PARA iç 1 HASTA i ç 100 HACER a) sumaç suma + i FINPARA 3.-MOSTRAR suma FIN

30.- Obtener la suma de los números pares comprendidos entre 1 y 100 ALGORITMO sum INICIO Entero i , suma 1.- suma ç 0 2.-PARA i ç 2 HASTA iç 100 INC = 2 HACER a) suma ç suma + i FINPARA 3.-MOSTRAR suma FIN

31.- Encuentre la calificación promedio para un gran número, aunque desconocido, de calificaciones de exámenes. Estas vienen grabadas en registros. La calificación más alta posible es 10.0 ALGORITMO calificación INICIO Real calificación, Promedio, Totcal Entero, n

// Totcal suma de las calificaciones,

// n es el número de calificaciones

1.- Totcal ç 0 2.- n ç 0

Manual de algoritmos

Página 11


3.- LEER calificación 4.- MIENTRAS (calificacion >=0 y calificación <= 10 ) HACER a) Totcal ç Totcal + calificación b) nç n + 1 c) LEER calificación FINMIENTRAS 5.-Promedio çTotcal / n 6.-MOSTRAR Promedio FIN 32.-Leer una serie de números. Encontrar el valor absoluto (magnitud) de cada número. Imprimir tanto los números como sus valores absolutos. Use centinela 999 ALGORITMO valorabsoluto INICIO Real num, VA, // VA valor absoluto, num número

1.-LEER num 2.-MIENTRAS ( num ¹ 999) HACER

{999 es el valor centinela}

a)

VA ç abs ( num)

b)

MOSTRAR VA “es el valor absoluto de” num

c) LEER num FINMIENTRAS FIN

33.- Leer una serie de números. Obtener el cuadrado y el cubo de cada número e imprimir tanto los números como sus cuadrados y sus cubos. ALGORITMO potencia INICIO Real num, cuadrado, cubo 1.- LEER num 2.- MIENTRAS ( num ¹ -999) HACER a)

cuadradoçsqr ( num )

b)

cuboç cuadrado*num

{-999 valor centinela}

c) MOSTRAR cuadrado, cubo,num

Manual de algoritmos

Página 12


d) LEER num FIN

FINMIENTRAS

34.- Leer una serie de pares de números y obtener de cada par el número mayor. Imprima un mensaje especial si los números son de igual valor. Los numeros son precedidos por la cantidad de registros ALGORITMO mayornum INICIO Real A, B 1.- LEER nreg 2.- PARA i ç1 HASTA i ç nreg HACER a)

LEER A, B

b)

SI (A = B) ENTONCES 1) MOSTRAR A, B, “son iguales” SINO 1) SI ( A>B) ENTONCES a. MOSTRAR A “es el mayor” SINO a. MOSTRAR B “es el mayor” FINSI

FINSI FINPARA FIN 35.- Leer una serie de grupos de tres números y obtener el número mayor y el número menor de cada terna. Escriba un mensaje si por lo menos dos de cada tres números son iguales. ALGORITMO ternasmayormenor INICIO Real A, B, C Entero, cant 1.-MOSTRAR "ingrese la cantidad de ternas" 2.-LEER cant 3.-PARA iç1 HASTA içcant HACER a) LEER A, B, C b)SI (A=B) o (B=C) o (A=C) ENTONCES 1) MOSTRAR "por lo menos 2 de los 3 números son ="

Manual de algoritmos

Página 13


SINO 1) MENçA 2) SI (B<MEN) ENTONCES a) MENçB FINSI 3) SI (C<MEN) ENTONCES a) MENçC FINSI 4) MOSTRAR MEN "es el menor" 5) MAYçA 6) SI (B > MAY) ENTONCES a)MAYçB FINSI 7) SI (C > MAY) ENTONCES a)MAYçC FINSI 8) MOSTRAR MAY "es el mayor" FINSI FINPARA FIN

36.-Identifique y obtenga el número medio de un conjunto de tres números únicos. EL número medio es aquel que no es el menor ni el mayor. ALGORITMO numeromedio INICIO Real A, B, C. 1.-MOSTRAR "ingrese tres números distintos" 2.-LEER A, B, C 3.-SI ( A>B) ENTONCES a) SI (A>C) ENTONCES 1)SI (B>C) ENTONCES

Manual de algoritmos

Página 14


a)MEDçB SINO a) MEDçC FINSI SINO 1)MEDçA FINSI SINO a) SI (B>C)ENTONCES 1)SI (A>C)ENTONCES a)MEDçA SINO a)MEDçC FINSI SINO 1)MEDçB FINSI FINSI 4.-MOSTRAR MED "es el número medio" FIN 37.- El Dane está interesado en saber el número de personas mayores de 18 años, tanto hombres como mujeres en la ciudad de Medellín . Calcule e imprima el resultado de esta investigación. Se deben leer registros que contiene cada uno el sexo y el número de años. ALGORITMO dane INICIO Entero edad, h, m, sexo 1.-hç 0 2.-mç0 3.-LEER edad , sexo 4.-MIENTRAS (edad ¹ 999) a) SI (edad >= 18) y (sexo = 1) ENTONCES

Manual de algoritmos

Página 15


1)hçh + 1 SINO 1) SI (edad > = 18) y (sexo = 2) ENTONCES a)mçm + 1 FINSI FINSI b) LEER edad, sexo FINMIENTRAS 5.- MOSTRAR h, m FIN

38.-Una tienda de libros y géneros diversos al menudeo ofrecen un descuento de cortesía del 10% para profesores. Muestre como la computadora puede calcular e imprimir el 10% de 1.00, 1.10, 1.20, etc hasta $25.00. ALGORITMO menudeo INICIO Real , desc //desc es el descuento Entero, i 1.- iç1.00 2.- MIENTRAS (i < = 25.00) HACER a)

desc ç 0.10 * i

b)

MOSTRAR desc

c) i ç i + 0.10 FINMIENTRAS FIN

39.-Un vendedor desea calcular su comisión total sobre la venta de varios artículos. Al vendedor le corresponde el 5% de su comisión sobre artículos cuyo precio es menor de $100 y el 7.5 % de comisión sobre aquellos artículos cuyo precio es de $100 o más. Suponga que el vendedor hizo N ventas ALGORITMO comisión INICIO Constantes

Manual de algoritmos

Página 16


TC1 = 0,05 TC2 = 0.075 Entero N , i. Real comision ,tcom, venta 1.-men ç 0 2.-may ç 0 3.-MOSTRAR " ingrese el número de ventas que hizo " 4.- LEER N 5.- i ç 1 6.-MIENTRAS (i <= N ) HACER a) LEER precio, nart b) SI (precio< 100) ENTONCES 1)ventaç (nart*precio) 2)comision ß venta * tc1 SINO 1)ventaç (nart*precio) 2) comision ß venta * tc2 FINSI c) tcom ß tcom + comision d) i ç i + 1 FINMIENTRAS 7.- MOSTRAR tcom FIN 40.-Coldeportes de Antioquia está interesado en promover el básquetbol y para ello desea conocer personas que tengan las siguientes características, edad máxima: 18 años, estatura mínima: 1.80 metros, peso máximo: 80 kilos. Lea identificación. Edad , estatura y peso. Use centinela identificacion 99999 ALGORITMO basquet INICIO Entero identificación, edad Real, estatura, peso 1.- LEER identificación, edad, estatura, peso

Manual de algoritmos

Página 17


2.- MIENTRAS (identificación ¹ 99999) HACER a)

SI (edad <= 18) y (estatura >=1.80 ) y (peso<=80) ENTONCES 1)

MOSTRAR identificación, edad, estatura , peso

FINSI b) LEER, identificación, edad, estatura, peso FINMIENTRAS FIN 41.-Lea de un mismo registro A, B, C (coeficientes de la ecuación cuadrática. Calcule e imprima x1 y x2 (raíces de la ecuación ) Recuerde que x1 y x2 se pueden calcular sólo sí a) B2 - 4. AC >= O b) A ¹ 0. ALGORITMO ecuación INICIO Real, x1, x2 , A, B, C 1.-LEER A, B, C 2.-SI ( A ¹ 0 ) ENTONCES a) Disc ß sqr (B) – 4*A*C b) SI (Disc >= 0) ENTONCES 1) X1ç( - B + sqrt(Disc) ) / (2*A) 2)X2ç( - B - sqrt(Disc) ) / (2*A) 3) MOSTRAR x1, x2 SINO MOSTRAR “Tiene raices imaginarias” FINSI FINSI FIN

42.-Se tienen registro con los datos de los estudiantes de una universidad, así: código del estudiante, nombre del estudiante. Valor crédito del estudiante, número de créditos tomados, valor del recargo en la matrícula. Se requiere leer los registros e imprimir un listado con la siguiente información por estudiante: código, nombre del estudiante, valor crédito, número de créditos, valor del recargo, valor total pagado por estudiante. También se debe calcular e

Manual de algoritmos

Página 18


imprimir al final del listado el total pagado por todos los estudiantes y el promedio por estudiante. Use codigo de centinela = 9999 ALGORITMO pago INICIO Entero, código, n, ct

// n, número de estudiantes, ct créditos tomados

Real, vc, rec, totpag, p // vc valor crédito, ,rec valor de recargo, totpag total pagado CARÁCTER nombre[30] 1.- nç 0 2.- totpagç 0 3.- LEER código, nombre, vc, ct, rec 4.- MIENTRAS ( cod ¹ 9999) HACER a) PEç ( vc* ct) + rec b) nç n + 1 c) totpag ç totpag + PE d) MOSTRAR cod, nombre, vc, ct, rec, PE e) LEER cod, nombre, vc, ct, rec

FIN

FINMIENTRAS 5.-Pç totpag / n 6.-MOSTRAR p,“es el promedio”

43.-Se tiene un conjunto de registros de los empleados de una compañía, cada registro contiene los siguientes datos: número del empleado, nombre del empleado, salario básico por hora, horas trabajadas en el mes, deducciones, Se requiere leer los registros e imprimir un listado con la siguiente información por empleado : número del empleado , nombre del empleado, salario básico por hora, horas trabajadas, deducciones, salario mensual. También se debe calcular e imprimir al final del listado, el total de salarios pagados a todos los empleados y el promedio salarial por empleado. ALGORITMO compañía INICIO Entero, num, i // num, número del empleado, nov, nombre, sh salario por hora, // ht, horas trabajadas,d, deducciones i, número de empleados, tot, // Total pagado, SM, salario mensual, P, promedio salarial//, Real, sh, ht, d, tot sm , p CARÁCTER nomb [30] 1.- i ç 0 2.- totç 0 3.- LEER num, nomb, sh, ht, d 4.- MIENTRAS ( num ¹ 9999) HACER a) iç i + 1 b) sm ç (sh * ht) – d c) tot ç tot + sm d) MOSTRAR num, nomb, sh, ht, d, sm e) LEER num, nomb, sh, ht, d FINMIENTRAS 5.- MOSTRAR tot

Manual de algoritmos

Página 19


FIN

6.- içtot/ i 7.- MOSTRAR P “es el promedio salarial por empleado”

44.-Calcular e imprimir los salarios que se adeudan a trabajadores, basados en tasa a 1.5 veces la tasa regular, cuando Las horas trabajadas excedan de 40 por semana ALGORITMO salarios INICIO Real, ht, d, ext ,td // ht, horas trabajadas, d deuda, sh salario básico por hora, extr, // horas extras, TD total de la deuda 1.-LEER ht, sh 2.- MIENTRAS ( ht ¹ 0 ) HACER a) SI ( ht > 40) ENTONCES 1) Extr çht – 40 2) D ç 1.5 * extr * sh 3) MOSTRAR D 4) TD ß TD + D FINSI b) LEER ht. Sh FINMIENTRAS 3. MOSTRAR TD FIN 45.- Dado que un peso de mañana tiene menor valor que un peso de hoy (fenómeno económico que llamamos inflación) las empresas cuando calculan los futuros ingresos transformados a pesos de hoy superan el monto de la inversión hecha. La fórmula general para el cálculo del valor actual es : VA = C / (1 + i) N donde: C es la cantidad del ingreso i es la tasa de inflación N son los años en consideración Una empresa tiene información sobre la tasa de inflación, la inversión y los ingresos calculados para diez años seguidos. Con ésta desea saber si al cabo de dicho tiempo ha recuperado la inversión, hablando en pesos del día en que se hace la misma ALGORITMO inflación INICIO Entero, N Real, VA,. C, inv, i, den 1.-LEER i , inv , C, N 2.- dençexp( N * ln (1+i)) 3.- VA ç C / den 4.- SI ( VA > inv ) ENTONCES a)

MOSTRAR “recupera inversión”

a)

MOSTRAR “ no recupera la inversión”

SINO

FINSI

Manual de algoritmos

Página 20


Representación de algoritmos Las dos herramientas más utilizadas comúnmente para describir algoritmos son: Diagramas de flujo: son representaciones graficas de secuencias de pasos a realizar. Cada operación se representa mediante un s´ımbolo normalizado el Instituto Norteamericano de Normalización (ANSI - American Nacional Sanders Instituto). Las l´ıneas de flujo indican el orden de ejecución. Algunos de los s´ımbolos principales se muestran en la Figura 5.1, como son: Inicio/Fin del algoritmo, Lectura/Escritura de datos que el programa necesita o genera (por ejemplo, lectura de datos que se teclean o escritura de datos en un fichero); Proceso conjunto de instrucciones secuenciales; Decisión es una bifurcación en el flujo del algoritmo en base a que se verifique o no cierta condición (ver la Sección 5.5). Los diagramas de flujo suelen ser usados s´olo para representar algoritmos peque˜nos, ya que abarcan mucho espacio.

Manual de algoritmos

Página 21


PSEUDOCODIGOS

Describen un algoritmo de forma similar a un lenguaje de programación pero sin su rigidez, de forma m´as parecida al lenguaje natural. Presentan la ventaja de ser m´as compactos que los diagramas de flujo, m´as fáciles de escribir para las instrucciones complejas y m´as fáciles de transferir a un lenguaje de programación. El pseudocódigo no está regido por ningún estándar. En estos apuntes usaremos las palabras LEER/IMPRIMIR para representar las acciones de lectura de datos (el programa recibe datos desde algún sitio) y salida de datos (el programa escribe informaci´on en algún medio) El Algoritmo 5.2 y la Figura 5.2 muestran respectivamente el pseudocódigo y el diagrama de flujo del algoritmo para calcular la altura de una persona en pulgadas y pies a partir de la altura en cent ‘metros introducida por el teclado.

Algoritmo Calcular una altura en pulgadas (1 pulgada=2.54 cm) y pies (1 pie=12 pulgadas), a partir de la altura en cent ‘metros, que se introduce por el teclado. Inicio 123456-

IMPRIMIR ’Introduce la altura en centímetros: ’ LEER: altura CALCULAR pulgadas=altura/2.54 CALCULAR pies=pulgadas/12 IMPRIMIR ’La altura en pulgadas es: ’, pulgadas IMPRIMIR ’La altura en pies es : ’, pies Fin

Manual de algoritmos

Página 22


PROBLEMAS PROPUESTOS POR PSEUDOCODIGOS

Se recomienda hacer estos ejercicios primero en papel, declarando las variables y hacer un seguimiento cuando lo termines de hacer para comprobar que hace lo que pide.

Los ejercicios no tienen una única solución, el objetivo es que haga lo que pide y si se pide que se haga de una forma específica hacerlo.

Los ejercicios resueltos están en un spoiler resueltos en papel y PSeInt (por si los quieres guardar en un fichero).

Variables y constantes. Operadores. Asignación. Operaciones de entrada y de salida. Funciones internas. Instrucciones de control. Instrucciones repetitivas o bucles. Seguimiento. Declaración. Análisis de un problema. Descarga de PSeInt. Si tienes alguna duda o quieres proponer alguna solución alternativa, deja un comentario en este post o mándanos un mensaje a administrador@discoduroderoer.es También dejare algunos comentarios para explicar que hace cada paso. Puedes ponerlos con //

1) Dadas dos variables numéricas A y B, que el usuario debe teclear, se pide realizar un algoritmo que intercambie los valores de ambas variables y muestre cuanto valen al final las dos variables (recuerda la asignación).

Var A, B, C: numerica Inicio Escribir "Introduce el valor de A"

Manual de algoritmos

Página 23


Leer A Escribir "Introduce el valor de B" Leer B C<-A A<-B B<-C Escribir "A vale " A " y B vale " B Fin PSeInt: Proceso ejercicio_1 Escribir "Introduce el valor de A" Leer A Escribir "Introduce el valor de B" Leer B C<-A A<-B B<-C Escribir "A vale " A " y B vale " B FinProceso 2) Algoritmo que lea dos números, calculando y escribiendo el valor de su suma, resta, producto y división.

Var numero1, numero2, resultado: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 resultado<-numero1+numero2 Escribir resultado resultado<-numero1-numero2

Manual de algoritmos

Página 24


Escribir resultado resultado<-numero1*numero2 Escribir resultado resultado<-numero1/numero2 Escribir resultado Fin PSeInt: Proceso ejercicio_2 Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 //inicializamos la variable resultado a 0 (recomendable) resultado<-0 //sumamos los numeros y escribimos su resultado resultado<-numero1+numero2 Escribir resultado //restamos los numeros y escribimos su resultado resultado<-numero1-numero2 Escribir resultado //multiplicamos los numeros y escribimos su resultado resultado<-numero1*numero2 Escribir resultado //dividimos los numeros y escribimos su resultado resultado<-numero1/numero2 Escribir resultado FinProceso 3) Algoritmo que lea dos nĂşmeros y nos diga cual de ellos es mayor o bien si son iguales (recuerda usar la estructura condicional SI) Var numero1, numero2: numerica Inicio

Manual de algoritmos

PĂĄgina 25


Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Si (numero1>=numero2) Entonces Si (numero1=numero2) Entonces escribir "los numeros " numero1 " " numero2 " son iguales" Sino Escribir numero1 " es el mayor de los dos" FinSi Sino Escribir numero2 " es el mayor de los dos" FinSi Fin PSeInt: Proceso ejercicio_3 Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 //comparamos los dos numeros, //si el primero es mayor o igual que el segundo entra Si (numero1>=numero2) Entonces //Si el numero1 y numero2 son iguales entra y escribe que son iguales //Sino lo son escribe que el numero1 es el mayor Si (numero1=numero2) Entonces escribir "los numeros " numero1 " " numero2 " son iguales" Sino Escribir numero1 " es el mayor de los dos" FinSi

Manual de algoritmos

Pรกgina 26


//Si el primer Si es falso, escribe que el numero2 es mayor Sino Escribir numero2 " es el mayor de los dos" FinSi FinProceso 4) Algoritmo que lea tres números distintos y nos diga cual de ellos es el mayor (recuerda usar la estructura condicional Si y los operadores lógicos). NOTA: De esta forma que esta hecha, aunque dos de los números sean iguales, siempre dirá el mayor. Var numero1, numero2, numero3: numerica Inicio Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 Si (numero1>numero2 AND numero1>numero3) Entonces Escribir "el numero " numero1 " es el mayor" Sino Si (numero2>numero3) Entonces Escribir "El numero " numero2 " es el mayor" Sino Escribir "El numero " numero3 " es el mayor" FinSi FinSi Fin 5) Diseñar un algoritmo que pida por teclado tres números; si el primero es negativo, debe imprimir el producto de los tres y si no lo es, imprimirá la suma.

Var numero1, numero2, numero3, resultado: numerica Inicio

Manual de algoritmos

Página 27


Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 Si (numero1<0) Entonces resultado<-numero1*numero2*numero3 Sino resultado<-numero1+numero2+numero3 FinSi Escribir resultado Fin PSeInt: Proceso ejercicio_5 Escribir "Introduce el primer numero" Leer numero1 Escribir "Introduce el segundo numero" Leer numero2 Escribir "Introduce el tercer numero" Leer numero3 //si el numero1 es menor que 0, //multiplicara los numero y sino los sumara Si (numero1<0) Entonces resultado<-numero1*numero2*numero3 Sino resultado<-numero1+numero2+numero3 FinSi Escribir resultado FinProceso

Manual de algoritmos

Pรกgina 28


6) Realizar un algoritmo que lea un número por teclado. En caso de que ese número sea 0 o menor que 0, se saldrá del programa imprimiendo antes un mensaje de error. Si es mayor que 0, se deberá calcular su cuadrado y la raiz cuadrada del mismo, visualizando el numero que ha tecleado el usuario y su resultado (“Del numero X, su potencia es X y su raiz X” ). Para calcular la raiz cuadrada se puede usar la función interna RAIZ(X) o con una potencia de 0,5. Var numero, potencia, raiz: numerica Inicio Escribir "Introduce un numero" Leer numero Si (numero>0) Entonces potencia<-numero^2 raiz_cuadrada<-numero^0,5 Escribir "Su potencia es " potencia " Escribir "Su raiz es " raiz_cuadrada Sino Escribir "Error, introduce un numero mayor que 0" FinSi Fin PSeInt: Proceso ejercicio_6 Escribir "Introduce un numero" Leer numero //si el numero es mayor que 0, calcula la potencia y la raiz //sino muestra un mensaje de error y sale del programa Si (numero>0) Entonces potencia<-numero^2 raiz_cuadrada<-RAIZ(numero) Escribir "Su potencia es " potencia Escribir "Su raiz es " raiz_cuadrada Sino Escribir "Error, introduce un numero mayor que 0" FinSi

Manual de algoritmos

Página 29


FinProceso 7) Un colegio desea saber qué porcentaje de niños y qué porcentaje de niñas hay en el curso actual. Diseñar un algoritmo para este propósito (recuerda que para calcular el porcentaje puedes hacer una regla de 3). Var numero_niños, numero_niñas, resultado: numerica Inicio Escribir "Introduce el numero de niños" Leer numero_niños Escribir "Introduce el numero de niñas" Leer numero_niñas porcentaje_niños<-numero_niños*100/(numero_niños+numero_niñas) porcentaje_niñas<-100-porcentaje_niños Escribir "Hay un " porcentaje_niños " % de niños Escribir "Hay un " porcentaje_niñas " % de niñas Fin PSeInt: Proceso Ejercicio_7 Escribir "Introduce el numero de niños" Leer numero_niños Escribir "Introduce el numero de niñas" Leer numero_niñas //calculamos el porcentaje porcentaje_niños<-numero_niños*100/(numero_niños+numero_niñas) porcentaje_niñas<-100-porcentaje_niños Escribir "Hay un " porcentaje_niños " % de niños Escribir "Hay un " porcentaje_niñas " % de niñas" FinProceso 8) Una tienda ofrece un descuento del 15% sobre el total de la compra durante el mes de octubre. Dado un mes y un importe, calcular cuál es la cantidad que se debe cobrar al cliente. Var mes: cadena importe, total:numerico Inicio

Manual de algoritmos

Página 30


Escribir "escribe el importe de la compra" Leer importe Escribir "Introduce el mes" Leer mes Si (mes="octubre") Entonces total<-importe*0.85 Sino total<-importe FinSi Escribir total Fin PSeInt: Proceso ejercicio_8 Escribir "escribe el importe de la compra" Leer importe Escribir "Introduce el mes" Leer mes //Si el mes es octubre, se aplicara el descuento Si (mes="octubre") Entonces total<-importe*0.85 Sino total<-importe FinSi Escribir total FinProceso 9) Realizar un algoritmo que dado un número entero, visualice en pantalla si es par o impar. En el caso de ser 0, debe visualizar “el número no es par ni impar” (para que un numero sea par, se debe dividir entre dos y que su resto sea 0) Var numero: numerica Inicio Escribir "Introduce un numero"

Manual de algoritmos

Página 31


Leer numero Si (numero=0) Entonces Escribir "El " numero " no es par ni impar" Sino Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinSi Fin PSeInt: Proceso ejercicio_9 Escribir "Introduce un numero" Leer numero Si (numero=0) Entonces Escribir "El " numero " no es par ni impar" Sino //comprobamos si el numero es par Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinSi FinProceso 10) Modificar el algoritmo anterior, de forma que si se teclea un cero, se vuelva a pedir el número por teclado (así hasta que se teclee un número mayor que cero) (recuerda la estructura mientras). Var numero: numerica Inicio

Manual de algoritmos

Página 32


Escribir "Introduce un numero" Leer numero Mientras (numero<=0) hacer Escribir "escribe un numero mayor que 0" Leer numero FinMientras Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi Fin PSeInt: Proceso ejercicio_10 Escribir "Introduce un numero" Leer numero //Hasta que no se introduzca un numero mayor que 0 no saldra del bucle Mientras (numero<=0) hacer Escribir "escribe un numero mayor que 0" Leer numero FinMientras Si (numero MOD 2=0) Entonces Escribir "El " numero " es par" Sino Escribir "El " numero " no es par" FinSi FinProceso 11) Algoritmo que nos diga si una persona puede acceder a cursar un ciclo formativo de grado superior o no. Para acceder a un grado superior, si se tiene un titulo de bachiller, en caso de no tenerlo, se puede acceder si hemos superado una prueba de acceso. Var bachiller, prueba_acceso: cadena

Manual de algoritmos

Pรกgina 33


Inicio Escribir "¿Tienes el titulo de bachiller?" Leer bachiller si (bachiller="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "¿Tienes la prueba de acceso superada?" Leer prueba_acceso si (prueba_acceso="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "No puedes acceder a un grado superior" FinSi FinSi Fin PSeInt: Proceso ejercicio_11 Escribir "¿Tienes el titulo de bachiller?" Leer bachiller si (bachiller="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "¿Tienes la prueba de acceso superada?" Leer prueba_acceso si (prueba_acceso="si") Entonces Escribir "Puedes acceder al grado superior" Sino Escribir "No puedes acceder a un grado superior" FinSi FinSi

Manual de algoritmos

Página 34


FinProceso 12) Desarrollar un algoritmo que nos calcule el cuadrado de los 9 primeros números naturales (recuerda la estructura desde-hasta) Var num, res: numerica Inicio Desde num<-1 Hasta 9 In 1 res<-num^2 Escribir num "

" res

FinDesde Fin PSeInt: Proceso ejercicio_12 Para num<-1 Hasta 9 Con Paso 1 res<-num^2 Escribir num " " res FinPara FinProceso NOTA: este ejercicio también se puede hacer con la estructura Mientras, pero lo hemos hecho con la estructura Desde-Hasta porque sabemos el rango. 13) Se pide representar el algoritmo que nos calcule la suma de los N primeros números naturales. N se leerá por teclado (no tenemos porque llamar a la variable N, podemos llamarla como queramos). Var N, contador, suma: numerica Inicio Leer N suma<-0 Desde contador<-1 Hasta 5 In 1 suma<-N+suma N<-N+1 FinDesde Escribir suma Fin

Manual de algoritmos

Página 35


PSeInt: Proceso ejercicio_13 Leer N suma<-0 Para contador<-1 Hasta 5 Con Paso 1 suma<-N+suma N<-N+1 FinPara Escribir suma FinProceso 14) Se pide representar el algoritmo que nos calcule la suma de los N primeros nĂşmeros pares. Es decir, si insertamos un 5, nos haga la suma de 6+8+10+12+14. Var N, contador, suma: numerica Inicio Leer N contador<-0 Mientras (contador<5) Hacer si (N MOD 2=0) Entonces suma<-N+suma contador<-contador+1 FinSi N<-N+1 FinMientras Escribir suma Fin PSeInt: Proceso ejercicio_14 Leer N contador<-0 limite<-N Mientras (contador<limite) Hacer

Manual de algoritmos

PĂĄgina 36


si (N MOD 2=0) Entonces suma<-N+suma contador<-contador+1 FinSi N<-N+1 FinMientras Escribir suma FinProceso 15) Dada una secuencia de números leídos por teclado, que acabe con un –1, por ejemplo: 5,3,0,2,4,4,0,0,2,3,6,0,……,-1; Realizar el algoritmo que calcule la media aritmética. Suponemos que el usuario no insertara numero negativos. Var num, contador, suma: numerica Inicio Leer num suma<-0 contador<-1 Mientras (num<>-1) Hacer suma<-suma+num contador<-contador+1 Leer num FinMientras Escribir suma/(contador-1) Fin PSeInt: Proceso ejercicio_15 Leer num suma<-0 contador<-1 Mientras (num<>-1) Hacer suma<-suma+num contador<-contador+1

Manual de algoritmos

Página 37


Leer num FinMientras Escribir suma/(contador-1) FinProceso 16) Teniendo en cuenta que la clave es “eureka”, escribir un algoritmo que nos pida una clave. Solo tenemos 3 intentos para acertar, si fallamos los 3 intentos nos mostrara un mensaje indicándonos que hemos agotado esos 3 intentos. (Recomiendo utilizar un interruptor). Si acertamos la clave, saldremos directamente del programa. Var clave: cadena acierto: booleano contador: numerica Inicio contador<-0 acierto<-Falso Mientras (contador<3 AND acierto=falso) Hacer Leer clave si (clave="eureka") Entonces Escribir "la clave es correcta" acierto<-Verdadero FinSi contador<-contador+1 FinMientras si (contador=3 AND acierto=falso) Entonces Escribir "Ya no tienes mas intentos" FinSi Fin PSeInt: Proceso ejercicio_16 contador<-0 //interruptor acierto<-Falso //usamos un interruptor, cuando acertemos,

Manual de algoritmos

Página 38


//cambiara y la condicion sera falsa Mientras (contador<3 Y acierto=falso) Hacer //ponemos aqui leer porque con las variables //iniciales entra en el bucle Escribir "introduce la clave" Leer clave si (clave="eureka") Entonces Escribir "la clave es correcta" //el interruptor cambia cuando acertamos acierto<-Verdadero FinSi contador<-contador+1 FinMientras //este mensaje solo aparecera si hemos agotado //todos los intentos y no hemos acertado si (contador=3 Y acierto=falso) Entonces Escribir "Ya no tienes mas intentos" FinSi FinProceso 17) Algoritmo que lea números enteros hasta teclear 0, y nos muestre el máximo, el mínimo y la media de todos ellos. Piensa como debemos inicializar las variables. Var maximo, minimo, num, suma, media, contador: numerica Inicio Leer num minimo<-num maximo<-num suma<-0 Mientras (num<>0) Hacer si (num>maximo) Entonces maximo<-num FinSi

Manual de algoritmos

Página 39


si (num<minimo) Entonces minimo<-num FinSi suma<-suma+num contador<-contador+1 leer num FinMientras media<-suma/(contador) Escribir "El maximo es " maximo Escribir "El minimo es " minimo Escribir "La media es " media Fin PSeInt: Proceso ejercicio_17 Leer num //maximo y el minimo se inician con el numero que //insertemos para que lo podamos modificar //durante el programa minimo<-num maximo<-num suma<-0 Mientras (num<>0) Hacer si (num>maximo) Entonces maximo<-num FinSi si (num<minimo) Entonces minimo<-num FinSi suma<-suma+num contador<-contador+1

Manual de algoritmos

Pรกgina 40


leer num FinMientras media<-suma/(contador) //escrbimos los resultados Escribir "El maximo es " maximo Escribir "El minimo es " minimo Escribir "La media es " media FinProceso 18) Algoritmo que visualice la cuenta de los números que son múltiplos de 2 o de 3 que hay entre 1 y 100. Var num: numerica Inicio Desde num<-1 Hasta 100 In 1 //asi indicamos si un numero es multiplo de 3 o de 2 si (num MOD 2=0 OR num MOD 3=0) Entonces Escribir num FinSi FinDesde Fin PSeInt: Proceso ejercicio_18 Para num<-1 Hasta 100 Con Paso 1 //asi indicamos si un numero es multiplo de 3 o de 2 si (num MOD 2=0 o num MOD 3=0) Entonces Escribir num FinSi FinPara FinProceso

Ejemplo: Realizar el pseudocódigo de un programa que permita calcular el área de un rectángulo. Se debe introducir la base y la altura para poder realizar el cálculo..

Manual de algoritmos

Página 41


Programa; área Entorno: BASE, ALTURA, AREA son número enteros Algoritmo: escribir “Introduzca la base y la altura” leer BASE, ALTURA calcular AREA = BASE * ALTURA escribir “El área del rectángulo es “AREA Finprograma

Ejemplo: Realizar el pseudocódigo que permita al usuario introducir por teclado dos notas, calculando la suma y el producto de las notas. Programa: SumaProducto Entorno: NOTA1,NOTA2,SUMA,PRODUCTO son números enteros Algoritmo: escribir “Introduzca las notas” leer NOTA1,NOTA2 calcular SUMA = NOTA1 + NOTA2 calcular PRODUCTO = NOTA1 * NOTA2 escribir “La suma de las dos notas es:” SUMA escribir “El producto de las dos notas es :”PRODUCTO Finprograma Ejemplo: Realizar el pseudocódigo de un programa que permita saber si un número es mayor, menor o igual a cero. Programa: ComparaNúmeros Entorno: NUMERO es un número entero Algoritmo: Escribir “Introduzca un número “ leer NUMERO SI NUMERO>0 ENTONCES escribir “El número introducido es positivo” SI NO SI NUMERO<0 ENTONCES escribir “El número introducido es negativo” SI NO escribir “El número es cero” FINSI FINSI Finprograma Supongamos un algoritmo que lea las coordenadas de tres puntos y los mueva tres puntos en la coordenada x y escriba el resultado en algún dispositivo de salida: ALGORITMO lee_tres_vertices ENTRADA: las coordenadas (x,y) de tres puntos SALIDA: las coordenadas (x,y) de los tres puntos movidos 3 puntos hacia la derecha. VARIABLES: i:entera x,y: real INICIO PARA i=1 HASTA 3 CON INCREMENTO +1 ESCRIBE "Abscisa del punto número ", i LEER x ESCRIBE "Ordenada del punto número ", i LEER Y ESCRIBE "El punto es (" x+3","y")"

Manual de algoritmos

Página 42


FIN_PARA FIN El programa equivalente a este algoritmo se muestra a continuación. Como podemos apreciar en un programa en Pascal es importantísimo no olvidar detalles de sintaxis. Por ejemplo cada sentencia termina en punto y coma. De cualquier forma es inmediato apreciar los simples cambios existentes. program lee_tres_vertices; var x,y:real; i:integer; begin for i:=1 to 3 do begin write ('Abscisa del punto número ',i); readln(x); write ('Ordenada del punto número ',i); readln(y); writeln (' El punto es (',x+3,',',y,')'); end; end; Problema: calcular y mostrar la suma de los diez primeros números entre 1 y 1000 que sean divisibles por uno dado. programa suma_divisibles variables natural : divisor, suma, contador, número inicio programa divisor leer ‘Introduce el divisor: ’ suma 0 contador 0 para número desde 1 hasta 1000 hacer si divisor divide a número entonces suma suma + número contador contador + 1 fin si si contador = 10 entonces interrumpir fin si fin para escribir ‘La suma es’, suma fin programa

Manual de algoritmos

Página 43


DIAGRAMA DE FLUJO DE DATOS Es un grafico lógico del plan de trabajo que se ejecutara para la solución de un determinado problema. A través de él, se planifica la solución del problema independiente del lenguaje de computación a usar. De esta manera se separa loas instrucción es un lenguaje determinado con todas las reglas. Las capacidades humanas necesarias para elaborar un diagrama de flujo correcto son: Lógico, Prácticas, y Atención. El empleo de la maquina en las funciones del procediendo de datos han hecho necesario un flujo ordenado de la información. La secuencia en que deberán ejecutarse las operaciones tendrá que definirse claramente, y cuando se combine con los datos a los que debe aplicarse, esa secuencia creara el flujo de información. No puede hacerse mucho hincapié en documentación, ósea el registro de Información .Sin Instrucciones escritas y sin representación grafica del flujo de trabajo seria muy difícil de llevar una tarea de procediendo de datos en forma apropiada. Hay varios métodos mas eficientes organizados y normalizados, es el de los diagramas de Flujo que el Futuro programador comprenda la necesidad de los diagrama de flujo. OBJETIVOS DE UN DIAGRAMA DE FLUJO a. Estructura la solución del problema independiente del lenguaje a utilizar. b. Separar la solución lógica de programación de la parte de reglas y sintaxis de codificación con esta división del trabajo se obtiene mayor eficiencia. c. Dar una visión completa del problema al programador ya que pierde en un programa ya codificado. d. Permitir una compresión más rápida del programa a otros programadores. TIPOS DE DIAGRAMA DE FLUJOS Diagrama de flujo de sistemas: muestra en que forma se procesan los datos, entre as principales funciones o estaciones de trabajo .En este diagrama completo de computadora se presenta con un solo símbolo de procesamiento. Ejemplo de Diagrama de Flujo de sistema: 1. CONCEPTOS BASICOS PARA TRABAJAR CON DFD a) ¿Que es Dfd? Dfd es un software diseñado para construir y analizar algoritmos . Usted puede crear diagramas de flujo de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para éste propósito suministra el programa. Después de haber ingresado el algoritmo representado por el diagrama, podrá ejecutarlo, analizarlo y depurarlo en un entorno interactivo diseñado para éste fin. La interfaz gráfica de Dfd, facilita en gran medida el trabajo con diagramas ya que simula la representación estándar de diagramas de flujo en hojas de papel. b) Algoritmo Un algoritmo es un procedimiento para la resolución de problemas de cualquier tipo por medio de determinada secuencia de pasos simples y no ambiguos. El concepto fue utilizado originalmente para el cálculo matemático pero ahora es ampliamente usado en programación de computadoras. c) Diagrama de Flujo de Datos

Manual de algoritmos

Página 44


Un diagrama de flujo de datos es una descripción gráfica de un procedimiento para la resolución de un problema. Son frecuentemente usados para describir algoritmos y programas de computador. Los diagramas de flujo de datos están conformados por figuras conectadas con flechas. Para ejecutar un proceso descrito por un diagrama de flujo de datos se comienza por el INICIO y se siguen las flechas de figura a figura, ejecutándose las acciones indicadas por cada figura; el tipo de figura indica el tipo de paso que representa. Los diagramas de flujo son frecuentemente usados debido a que pueden suprimir detalles innecesarios y tener un significado preciso, si son usados correctamente. d) Tipos de Datos Real: Valores numéricos que van desde -1*10 ^ 2000 hasta 1*10 ^ 2000 . Los valores más cercanos a 0 que se pueden manejar son 1*10 ^ -2000 y -1*10 ^ -2000. Ejemplo: 1998, 1.0007, 0, 328721, -3242781 Cadena de Caracteres: Secuencia de caracteres encerrada entre comillas simples. Ejemplo: `Diagramar es fácil' , `París' , `1955' Lógico: La letra V ó F encerrada entre puntos, para indicar verdadero ó falso respectivamente. Ejemplo: .V. , .F. , .v. , .f. e) Campos de Datos Constantes: Con su nombre muestran su valor y éste no se puede cambiar. Ejemplo: 1996 , `Los algoritmos son útiles' , .V. Variables: Es posible modificar su valor. El nombre de una variable debe comenzar por una letra seguida de letras, números o el caracter ( _ ). Ejemplo: Valor , Contador , año , Valor_1 No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el nombre de una variable; es decir, CASA equivale a casa. Cuando una variable recibe un valor por primera vez, el tipo de dato de ésta será igual al tipo de dato del valor. f) Arreglos Dfd soporta arreglos n-dimensionales de cualquier tipo de dato. El nombre de un arreglo debe comenzar por una letra seguida de letras, números o el carácter ( _ ). Ejemplo: Vector ( 2 ) , Matriz ( i , j ) , v ( 1, j, ñ, p ) No se tiene en cuenta la diferencia entre mayúsculas y minúsculas para el nombre de un vector; es decir, VECTOR(2) equivale a vector(2). g) Interfaz de Usuario Dfd posee una ventana principal que proporciona el ambiente de trabajo en donde se pueden construir y analizar algoritmos. Los componentes básicos de la ventana principal son: La barra de menú, barras de herramientas, barras de desplazamiento y el área de trabajo. h) Acción Actual

Manual de algoritmos

Página 45


Es el estado en el que se encuentra Dfd. La acción actual puede ser: Edición Ejecución Depuración La barra de estado ubicada ubicada en la parte inferior de la ventana de Dfd muestra la acción actual. i) Subprograma Actual En Dfd, solo un subprograma (incluyendo el principal) puede ser visualizado a la vez, considerándose éste el Subprograma Actual. j) Errores de Sintaxis Estos errores son detectados en tiempo de revisión cuando se intenta ejecutar un algoritmo que contiene expresiones incorrectas. El mensaje de error correspondiente será mostrado y se indicara el objeto en el que se produjo el error. 2. SISTEMA DE MENÚS a) Menú Archivo Archivo | Nuevo El comando Nuevo inicia la sesión de trabajo con un nuevo diagrama. Otras formas de acceder al comando: Barra de herramientas: Teclado: CTRL + N Dfd da como nombre temporal al nuevo diagrama “Sin nombre.dfd”, hasta que éste sea guardado con un nombre de archivo único. Al ejecutar este comando quedará seleccionada la opción Angulos en Grados del menú Opciones. Archivo | Abrir Inicia la sesión de trabajo con un diagrama ya existente, con este comando puede abrir un archivo de Dfd y comenzar a trabajar sobre él. Otras formas de acceder al comando: Barra de Herramientas Teclado CTRL + A Al abrir un archivo de Dfd, las opciones del menú Opciones, tomarán el estado que tenían en el momento en que fue guardado el archivo. Archivo | Guardar

Manual de algoritmos

Página 46


Guarda en disco el diagrama que se está editando(principal y subprogramas) y el estado del menú Opciones, como un archivo de extensión “dfd”. A medida que Usted trabaja va haciendo cambios en el diagrama original, por lo cual es conveniente guardar con frecuencia el diagrama. Otras formas de acceder al comando: Barra de herramientas Teclado CTRL + G Archivo | Guardar Como El comando Guardar Como guarda en disco permite colocar un nombre al diagrama en edición. Se despliega un cuadro de diálogo donde se selecciona el nombre y la ubicación (unidad y directorio) del archivo en cual se va a guardar el diagrama. Otra forma de acceder el comando: Teclado ALT + A , C Archivo | Imprimir Este comando despliega el cuadro de diálogo de impresión del sistema, el tamaño del diagrama a imprimir será proporcional al tamaño del diagrama que se visualiza en pantalla. Otras formas de acceder al comando: Barra de herramientas Teclado CTRL + P Archivo | Salir El comando Salir termina una sesión de trabajo con Dfd . Otras formas de acceder al comando: Teclado ALT + A , S Si el diagrama en edición no ha sido guardado desde la última modificación, Dfd le preguntará si desea guardar antes de salir. b) Menú Edición Edición | Cortar Este comando se usa para eliminar un objeto seleccionado de un diagrama y colocarlo en el portapapeles de Dfd . El comando Cortar estará disponible cuando un objeto eliminable se encuentre seleccionado y la acción actual sea Edición. Otras formas de acceder el comando: Barra de herramientas Teclado CTRL + X

Manual de algoritmos

Página 47


Cuando se cortan objetos, estos reemplazan el contenido del portapapeles de Dfd . Los objetos que conforman estructuras de control serán cortados junto con su cuerpo. Edición | Copiar Este comando se usa para obtener una copia del objeto seleccionado en el portapapeles de Dfd. El objeto seleccionado queda intacto; es decir, no se remueve del diagrama. El comando Copiar estará disponible cuando exista un objeto eliminable seleccionado y la acción actual sea Edición. Otras formas de acceder el comando: Barra de herramientas Teclado CTRL + C Cuando se copian objetos, estos reemplazan el contenido del portapapeles de Dfd. Los objetos que conforman estructuras de control serán copiados juntos con su cuerpo. Edición | Pegar Use este comando para insertar una copia del contenido del portapapeles de Dfd a continuación del objeto seleccionado. El comando Pegar estará disponible cuando el portapapeles de Dfd no esté vacío, exista un objeto seleccionado y la acción actual sea Edición. Otras formas de acceder al comando: Barra de herramientas Teclado CTRL + V Después de haber sido pegado, el objeto permanece en el portapapeles de Dfd, de manera que puede pegarlo las veces que desee. Edición | Eliminar Este comando elimina el objeto seleccionado del diagrama sin colocarlo en el portapapeles de Dfd . Se encontrará disponible cuando un objeto eliminable se encuentre seleccionado y la acción actual sea Edición. Otras formas de acceder al comando: Barra de herramientas Teclado SUPR Los objetos que conforman estructuras de control serán eliminados junto con su cuerpo. En caso de que el objeto seleccionado sea de tipo subprograma, entonces se ejecutará el comando Eliminar Subprograma. Edición | Eliminar Subprograma Este comando se usa para eliminar todos los objetos que conforman un subprograma. El comando estará disponible cuando esté visualizado un subprograma (no el principal) y la acción actual sea Edición. Otras formas de acceder el comando: Barra de herramientas

Manual de algoritmos

Página 48


Teclado ALT + E, S Edición | Insertar Objeto Este comando se utiliza para insertar a continuación del objeto seleccionado un objeto del tipo que indique el ítem seleccionado en el menú Objeto; es decir, el último objeto seleccionado en la barra de herramientas. El comando estará disponible cuando exista un objeto seleccionado, el ítem seleccionado en el menú Objeto sea diferente de Cursor y la acción actual sea Edición. Otra forma de acceder al comando: Teclado INS Mouse Clic sobre la zona de inserción Edición Objeto | Editar Este comando se utiliza para editar el contenido de un objeto seleccionado. Estará disponible cuando se encuentre seleccionado un objeto editable y la acción actual sea Edición. Otra forma de acceder al comando: Teclado ENTER Mouse Doble clic sobre el objeto c) Menú Objeto Objeto | Cursor Este comando selecciona el cursor normal del Mouse, el cual se puede usar para: - Seleccionar y quitar la selección de objetos. - Abrir los cuadros de diálogo para la edición de objetos. Otras formas de acceder al comando: Barra de herramientas Teclado ALT + O, C Cuando la acción actual es diferente de Ejecución, el cursor normal puede cambiar dependiendo de la posición del apuntador del Mouse. Es la flecha de cursor que se presenta cuando el apuntador del Mouse no está sobre ningún objeto. La forma de este puntero depende de las propiedades del Mouse que maneja el sistema. El cursor en forma de mano señalando se presenta cuando el apuntador del Mouse se sitúa sobre un objeto que se puede seleccionar, éste indica que se puede seleccionar, quitar la selección de otro objeto ó editar el objeto Hacer clic con el botón izquierdo del Mouse dentro de un objeto selecciona el objeto y quita la selección a cualquier otro que se encuentre seleccionado en el subprograma actual. Hacer clic con el botón izquierdo del Mouse sobre un área vacía del diagrama quita la selección del objeto. Hacer doble clic con el botón izquierdo del Mouse sobre un objeto editable invoca al correspondiente cuadro de diálogo para la edición.

Manual de algoritmos

Página 49


Objeto | Asignación Este comando se utiliza para indicar que el siguiente objeto a ser insertado en el diagrama es de tipo Asignación. Otras formas de acceder al comando: Barra de herramientas Teclado ALT + O, A

DIAGRAMA DE FLUJOS DE PROGRAMACIÓN

Son las operaciones y decisiones en la secuencia en que las ejecutará una computadora de procesamiento de datos. Los símbolos representan esas operaciones e indican el orden en que se ejecutaran. Por lo tanto, un diagrama de flujo de programa proporciona una descripción grafica del programa. Ejemplo de Diagrama e Flujo de Programa:

Manual de algoritmos

Página 50


SIMBOLOGÍA DE LOS DIAGRAMAS DE FLUJO Las diversas organizaciones usan distintos símbolos, pero el comité sobre computadoras y procesadores de información de la Asociación Norteamericana de Normas ha hecho un gran esfuerzo para normalizar los símbolos de los diagramas de flujo. Esa normalización permite comprender cualquier diagrama de flujo que use los símbolos recomendados. Cada símbolo normal de diagrama de flujo tiene un significado especial.

Manual de algoritmos

Página 51


Manual de algoritmos

Pรกgina 52


REGLAS PARA ESTRUCTURAR UN DIAGRAMA DE FLUJO  

El sentido de un diagrama de flujo generalmente es de arriba hacia abajo. Es un símbolo solo puede entrar una flecha de flujo si varias líneas se dirigen al mismo símbolo, se deben unir en una sola flecha.

  

Las líneas de flujo no deben cruzarse, para evitar los cruces se utilizan los conectores. De un símbolo excepto el de decisión, solo puede salir una línea de flujo. Los símbolos Terminal, Conector dentro de página y conector fuera de página solo pueden estar conectados al diagrama por una sola flecha, ya que por su naturaleza es imposible que tenga una entrada y una de salida. Los émbolos de decisión tendrán siempre una sola flecha de entrada y dos o tres flechas de salida según la cantidad de alternativas que se presentan.

Un diagrama de flujo debe estar complemente cerrado, teniendo una continuidad de principio a fin, no pueden quedar flechas en el aire ni símbolos sin conexión al diagrama pues el flujo seria interrumpido.

CONSIDERACIONES SOBRE DIAGRAMA DE FLUJO Un diagrama de flujo, puede tener tipos de errores diferentes: DE FORMA: Se genera por no seguir las reglas establecidas, puede hacer el diagrama difícil interpretación, confundir el diagrama y hasta convertirlo en errado en cuanto ser lógica. DE LÓGICA: Son errores de estructura del diagrama en cuanto al arden puede ser de distinta gravedad, desde dejar de mostrar el resultado. O falta un cálculo hasta un error que determine que un programa nunca llegue a su fin. DE OBJETIVO: Es cuando un diagrama de flujo esta correcto en cuanto a su estructura y forma pero no soluciona el problema propuesto sino otro.

Manual de algoritmos

Página 53


Una vez terminado e diagrama de flujo, es necesario asegurarse de que funcione correctamente cumpliendo el objetivo fundamental, las condiciones especificas y las excepciones del problema propuesto a esto se le llama generalmente "corrida en frió" prueba de escritorio. Para ellos e selecciona algunos datos (creadas por el programador para fines de la prueba) que cubran todos los casos posibles en todas las condiciones. Tomando estos datos se recorre el diagrama de flujo símbolo a símbolo siguiendo la orden de cada uno de ellos, todo esto se hará a un lado del diagrama o en una hoja aparte dándole valores a variables y ejecutando operación que se indique .Ejemplo:

¿QUÉ ES UN DIAGRAMA DE FLUJO DE DATOS? Es una descripción grafica de un procedimiento para la resolución de un problema. Son frecuentemente usados para descubrir algoritmos y programas de computador. Los diagramas de flujos están compuestos por figuras conectadas con flechas. Para ejecutar un proceso comienza por el Inicio y se siguen las acciones indicadas por cada figura: El tipo de figura indica el tipo de paso que representa. Del Software, DFD es un software diseñado para contribuir y analizar algoritmos se puede crear diagramas de flujos de datos para la representación de algoritmos de programación estructurada a partir de las herramientas de edición que para este propósito suministra el programa .Después de hacer haber ingresado el representado por el diagrama, podrá, ejecutarlo analizarlo y depurarlo en un entorno interactivo diseñado para este fin. La interfaz grafica de DFD facilita en gran medida el trabajo con diagramas ya que simula la representación estándar dediagramas de flujo en hojas de papel.

Manual de algoritmos

Página 54


   

LOS COMPONENTES DE UN DIAGRAMA DE FLUJO SON: Proceso Flujo Almacén Terminador PROCESO: El primer componente de diagrama de flujo de datos se conoce como Proceso. El proceso nuestra una parte del sistema que transforman Entradas y Salidas. Algunas analistas prefieren usar un ovalo o un rectángulo con esquinas redondeadas, otros prefieren usar un rectángulo. Las diferencias entre estas tres formas son puramente cosméticas, aunque obviamente es importante usar la misma forma de la manera consistente para representar todas las funciones de un sistema.

FLUJO: Un flujo se representa gráficamente por medio de una flecha que entra y sale de proceso; el flujo se usa para describir el movimiento, de bloques o paquetes de información de una parte del sistema a otra. Los flujos realmente representan Datos, es decir, Bits caracteres, mensajes, números, de puntos, flotante y los diversos tipos de información con los que las computadoras pueden tratar. Los flujos también muestran la dirección: Una cabeza de flecha en cualquier extremo(o posiblemente ambos) del flujo indica si los datos (o el material) se esta moviendo hacia adentro a hacia fuera por ejemplo indica claramente que el numero se esta mandando hacia el proceso denominado validar numero telefónicos, y el flujo denominado honorarios de entrega de chóferes. Los datos que se mueven a dicho flujo viajaran ya sea de un proceso a otro. Ejemplo:

Manual de algoritmos

Página 55


ALMACÉN: Se utiliza para modelar una colección de paquetes de datos en reposo. Se denota por dos líneas paralelas, de modo característico el nombre que se utiliza para identificar para los paquetes que entran y salen del almacén por medios de flujo.

 

PEDIDOS: Para el analista con conocimiento de proceso de datos es tentador referirse a los almacenes como archivos o bases de datos; pro un almacén también pudiera consistir en datos almacenados también pudiera consistir en datos almacenados en tarjetas perforadas, microfilm, microfichas, discos ópticos, etc. y un almacén también puede ser en conjunto de fichas de papel en una caja de cartón , nombres de fichas de papel en un directorio, diversos archivos en un archivero, o varias formas no computarizadas. Los almacenes se conectan por flujos a los procesos. Así el contexto en el que se muestra en un DFD (Diagrama de Flujo de Datos) es uno de los siguientes: Un flujo desde un almacén. UN flujo hacia un almacén. TERMINADOR: Se representa como un rectángulo como los terminadores ser representa en entidades externas con las cuales el sistema se comunica, continuamente, puede ser una persona, o un grupo. Por ejemplo: una organización externa n o una agencia gubernamental, o un grupo o departamento que este dentro de la misma compañía u organización, pero fuera del control del sistema que se esta modelando. En algunos casos, un terminador puede ser otro sistema, como algún otro sistema computacional con el cual se comunica este.

Manual de algoritmos

Página 56


  

Existen tres cosas importantes que debemos recordar acerca de los terminadores. Son externos al sistema que se esta modelando. Es evidente que ni el analista ni el diseñador del sistema están en posibilidades de cambiar los contenidos de un terminador o la manera en que esta trabaja. Las relaciones que existen entre lo terminadores no se muestran en el modelo DFD (Diagrama de Flujo de Datos).

REGLAS PARA LA CREACIÓN DE DIAGRAMAS 1. Los diagramas de flujo deben escribirse de arriba hacia abajo y/o de Izquierda a derecha. 2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica su dirección que fluye la información procesos, se deben utilizar solamente líneas de flujo horizontal o vertical (nunca diagonales). 3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se pudiera realizar utilizando los conectores, se debe tener en cuenta que solo se van a utilizar conectores cuando sean estrictamente necesario. 4. No deben quedar líneas de flujo sin conectar. 5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras. 6. Todos los símbolos pueden tener mas de una línea de entrada, a excepto del símbolo final. 7. Solo los símbolos de decisión pueden y deben tener mas de una línea de flujo de salida. Ejemplo de Diagrama de Flujo: Diagrama de flujo que encuentra la suma de los primeros 50 números naturales.

Manual de algoritmos

Página 57


El quinto bloque es un símbolo de suma de decisiones y ramificaciones lo q hay dentro del bloque es una pregunta que se le hace a las valores que actualmente incluyen en el proceso.

Manual de algoritmos

Página 58


¿Es N=50?, obviamente la respuesta es No, ya que N todavía es 1.Por lo que el flujo de nuestro programa se dirigirá hacia la parte en donde se observa la palabra No. Tercer bloque, este le sumara1 (N=N+1) y vuelve a llegar a este bloque, donde preguntará ¿es N=50? No todavía es 2 ha pues regresa al tercer bloque y vuelve hacer lo mismo así la suma los primeros 50 números naturales. Por ultimo indicaciones que le resultado será mostrado en la impresora.

EXPLICACIÓN DEL DIAGRAMA DE FLUJO 

El primer bloque indica el inicio del diagrama de flujo.

El segundo bloque, es un símbolo de procesos.

En este bloque se asume que las variables suman y N ha sido declarada previamente y las inicializa en o para comenzar al conteo y la suma de valores. Tercer bloque, es también un símbolo de procesos.

En este paso se incrementa en 1 la variable N(N=N+1), por lo que en la primera pasada esta valdrá 1, ya que estaba inicializada en 0. Cuarto bloque, es exactamente lo mismo que el anterior.

Manual de algoritmos

Página 59


Pero en este, ya se agrega el valor de N a la variable que contendrá la suma (en el primer caso contendrá 1, ya que N=1).

VENTAJAS DEL ENFOQUE DE FLUJOS DE DATOS

El enfoque de flujo de datos tiene cuatro ventajas principales sobre la explicación narrativa de la forma en que se mueven los datos a trabes del sistema .Las ventajas son. 1. Libertad para realizar en forma muy temprana la implementación de técnicas de sistema. 2. Una mayor comprensión de las interrelaciones de los sistemas y subsistemas. 3. Comunicación del conocimiento del sistema actual a los usuarios por medio de diagramas de flujo de datos. 4. Análisis de un sistema propuesto para determinar si han sido definidas los datos y procesos necesarios. SÍMBOLOS USADOS EN EL DIAGRAMA DE FLUJO DE DATOS

Manual de algoritmos

Página 60


SIGNIFICADO DE LOS SÍMBOLOS DE FLUJO El cuadrado doble es representado y usado para una actividad externa (otro departamento, un negocio, una persona, o una maquina) que puedan enviar datos y recibirlas del sistema. La entidad externa es llamada una fuente de destino de datos y es considerada externa al estudio, cada entidad externa es etiquetada con un nombre adecuado. La flecha muestra el movimiento de datos de un punto a otro , esta señalada hacia suceden simultáneamente pueden ser representadas simplemente mediante el uso de flechas paralelas, debido a que una flecha representada datos acerca de una persona lugar o casa, también :Debe ser descrita con un nombre. Un rectángulo con esquinas redondeadas es usado para mostrar la aparición de un proceso de transformación. Los procesos siempre denotan un cambio o transformación de los datos. USO DE DIAGRAMAS DE FLUJO DE DATOS

   

     

Los diagramas de flujo de datos son útiles a lo largo del proceso de análisis y diseños, .Existen compromisos para decidir que tanto deben ser explotados de los flujos de datos. Se desperdiciara tiempo y se sacrificara complusibilidad si los diagramas de flujo de datos son exclusivamente complejos. Por otro lado, si los diagramas de flujo de datos están muy poco explotados, pueden ocurrir errores u omisiones que pueden eventualmente afectar el sistema que esta en desarrollo. Por ultimo, recuerde que los diagramas del sistema de flujo pueden ser usados para documentar niveles altos o bajos del análisis y para ayudar a sustentar la lógica subyacente en los flujos de datos de la organización. CARACTERÍSTICAS DE LOS DIAGRAMAS DE FLUJO DE DATOS Muestran que debe hacer el sistema sin referencias. Son diagramas explícitos y comprensibles. Dan la posibilidad de representan el sistema a diferentes niveles de complejidad, desde lo mas global a lo mas detallado solo requieren de 4 símbolos. Son fácil de mantenimiento, pues los cambios afectan solo algunos de sus elementos y no al todo. ¿CUÁLES SO LAS VENTAJAS DE LOS DIAGRAMAS DE FLUJO DE DATOS? Fácil lectura, con esto se constituye en un instrumento de mucha versatilidad. Facilitan la interacción Usuario-Analista. ¿CUÁLES SON LAS LIMITACIONES DE LOS DIAGRAMAS DE FLUJO DE DATOS? No permite recoger el comportamiento de sistema que deben responder a eventos en tiempos acotados. Para ello se usa el diagrama de transición de Estados. No permite dar cuenta de la de las relaciones entre los datos que se precisan almacenar .Para ello se usan el diagrama Entidad-Relación. No permite reflejar situaciones en las cuales es preciso dejar de manifiesto la necesaria concurrencia de dos o más flujo de datos para un subproceso pueda iniciar efectivamente su tarea. Para ello se utiliza la especificación de procesos. No permite recoger el contenido de los flujos de datos ni el contenido de los archivos .Para ello se utiliza el diccionario de datos. CONCLUSIÓN Muchas personas consideran a un algoritmo y a un diagrama de flujo de datos como herramienta de gran importancia para la programación de computadora y están en lo cierto para la resolución de problemas mediante algoritmos y diagramas de flujo se ha convertido hoy en día en un instrumento efectivo para el desarrollo de habilidades y destrezas lógicas de y creativas del pensamiento humano. Hoy diferentes formas de resolver un problema, esto es debido a la forma de razonar del ser humano, al igual que cada algoritmo, o diagrama de flujo de datos elaborado. El término lógica define la exposición de leyes, modos y formas aplicadas al razonamiento. El ser humano aplica la lógica para la resolución de problemas de diferentes tipos. Algunos instructores del área de computación no hace mucho hincapié sobre el desarrollo de algoritmo y diagramas de flujo de datos.

Manual de algoritmos

Página 61


http://www.monografias.com/trabajos60/diagrama-flujo-datos/diagrama-flujo-datos2.shtml https://www2.cofbizkaia.net/COFBI/publico/formulacion/formu2.htm http://www.areatecnologia.com/informatica/ejemplos-de-diagramas-de-flujo.html http://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-en-pseudocodigo/

Manual de algoritmos

Pรกgina 62


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.