ALGORITMOS Y
PROGRAMACIÓN ¿Qué son algoritmos?
Un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Método y notación en las distintas fórmulas del cálculo. El algoritmo constituye un método para resolver un problema mediante una secuencia de pasos a seguir.
Ana María Duque Vargas 16/05/2014
16-5-2014
ALGORITMOS Y PROGRAMACIÓN ¿Qué son algoritmos? Un conjunto ordenado y finito de operaciones que permite hallar la solución de un problema. Método y notación en las distintas fórmulas del cálculo. El algoritmo constituye un método para resolver un problema mediante una secuencia de pasos a seguir. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema. Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programación. Programa: Un programa es una serie de instrucciones ordenadas, codificadas en lenguaje de programación que expresa un algoritmo y que puede ser ejecutado en un computador. CLASIFICACIÓN DE ALGORITMOS: Los algoritmos se pueden clasificar en cuatro tipos: • Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una computadora. Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x. • Algoritmo no computacional: Es un algoritmo que no requiere de una computadora para ser ejecutado. Ejemplo: Instalación de un equipo de sonido. • Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o instrucciones no están involucrados cálculos numéricos. Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un tesoro. • Algoritmo cuantitativo: Una algoritmo es cuantitativo cuando en sus pasos o instrucciones involucran cálculos numéricos. Ejemplo: Solución de una ecuación de segundo grado.
CARACTERÍSTICAS DE UN ALGORITMO: Todo algoritmo debe tener las siguientes características: • 1. Debe ser Preciso, porque cada uno de sus pasos debe indicar de manera precisa e inequívoca que se debe hacer. 2. Debe ser Finito, porque un algoritmo debe tener un número limitado de pasos. 3. Debe ser Definido, porque debe producir los mismos resultados para las mismas condiciones de entrada. 4. Puede tener cero o más elementos de entrada. 5. Debe producir un resultado. Los datos de salida serán los resultados de efectuar las instrucciones.
PARTES DE UN ALGORITMO: Todo Algoritmo debe tener las siguientes partes:
· Entrada de datos, son los datos necesarios que el algoritmo necesita para ser ejecutado. · Proceso, es la secuencia de pasos para ejecutar el algoritmo. · Salida de resultados, son los datos obtenidos después de la ejecución del algoritmo. TÉCNICAS DE REPRESENTACIÓN: Para la representación de un algoritmo, antes de ser convertido a lenguaje de programación, se utilizan algunos métodos de representación escrita, gráfica o matemática. Los métodos más conocidos son: diagramación libre (Diagramas de flujo), diagramas Nassi-Shneiderman, Pseudocódigo, lenguaje natural (español, inglés, etc.), fórmulas matemáticas. 1
16-5-2014
Sección N° 1
1. Algoritmos Secuenciales 1.1 Simples
Ejemplo N° 1 Crear un algoritmo que me diga los números del 1 al 10. DIAGRAMA DE FLUJO
ALGORITMO
2
16-5-2014
Secci贸n N掳 1
1. Algoritmos Secuenciales 1.1 Simples
Ejemplo N掳 2 haga un algoritmo para construir u avi贸n de papel. DIAGRAMA DE FLUJO
ALGORITMO
3
16-5-2014
Sección N° 1
1. Algoritmos Secuenciales 1.1 Simples
Ejemplo N° 3 algoritmo para hallar el volumen y el área de un cilindro. DIAGRAMA DE FLUJO
ALGORITMO
4
16-5-2014
Secci처n N째 1
1. Algoritmos Secuenciales 1.1 Simples
Ejemplo N째 4
se desea pedir un libro en una biblioteca.
DIAGRAMA DE FLUJO
ALGORITMO
5
16-5-2014
Sección N° 1
1. Algoritmos Secuenciales 1.1 Simples
Ejemplo N° 5 suma de dos números cualquiera. DIAGRAMA DE FLUJO
ALGORITMO
6
16-5-2014
Sección N° 2
1. Algoritmos Secuenciales 1.2 Condicionales
Ejemplo N° 1 se desea conocer si eres mayor de edad. DIAGRAMA DE FLUJO
ALGORITMO
Inicio Edad entero Escriba “cuál es tu edad” Leer edad Si edad >=18 entonces Escriba “eres mayor de edad” Fin si Escriba “fin del algoritmo” Finproceso
7
16-5-2014
Sección N° 2
1. Algoritmos Secuenciales 1.3 Condicionales
Ejemplo N° 2
Se desea saber si ganó o perdió. Se gana si la definitiva es mayor o igual a 3.0.
DIAGRAMA DE FLUJO
ALGORITMO
Proceso Gano_Perdio Escribir "ENTRE LA NOTA DE TALLER" Leer N1 Escribir "ENTRE LA NOTA DE EXPOSICION" Leer N2 Escribir "ENTRE LA NOTA DE EXAMEN" Leer N2 DEF<-(N1+N2+N3)/3 Si DEF>=3.0 Entonces Escribir "GANO" Sino Escribir "PERDIO" Fin Si FinProceso
8
16-5-2014
Sección N° 2
1. Algoritmos Secuenciales 1.2 Condicionales
Ejemplo N° 3 se desea saber si un número es par o impar. DIAGRAMA DE FLUJO
ALGORITMO
Proceso Par_Impar Escribir "ESCRIBA UN NUMERO" Leer A Si A MOD 2 = 0 Entonces Escribir "EL NUMERO QUE ESCRIBIO ES PAR" Sino Escribir "EL NUMERO QUE ESCRIBIO ES IMPAR" Fin Si FinProceso
9
16-5-2014
Sección N° 2
1. Algoritmos Secuenciales 1.3 Condicionales
Ejemplo N° 4 se desea saber si una persona es: niño (<18); joven(<25); mayores(>25). DIAGRAMA DE FLUJO
ALGORITMO
Proceso NIÑO_JOVEN_MAYOR Escribir "ESCRIBA UNA EDAD" Leer EDAD Si EDAD<18 Entonces Escribir "NIÑO, NIÑA" Sino Si EDAD<25 Entonces Escribir "JOVEN" Sino Escribir "MAYOR" Fin Si Fin Si FinProceso
10
16-5-2014
Secci처n N째 2
1. Algoritmos Secuenciales 1.2 Condicionales
Ejemplo N째 5
se desea saber si una persona puede votar o no.
DIAGRAMA DE FLUJO
ALGORITMO
Proceso PUEDE_VOTAR_O_NO Escribir "ESCRIBA UNA EDAD" Leer EDAD Si EDAD>=18 Entonces Escribir "PUEDE VOTAR" Sino Escribir "NO PUEDE VOTAR" Fin Si FinProceso
11
16-5-2014
Secci처n N째 3
1. Algoritmos Secuenciales 1.3 Simples
Ejemplo N째 1 este algoritmos es un simulador de una calculadora DIAGRAMA DE FLUJO
ALGORITMO Proceso calculator Escribir "que quieres hacer"; Escribir " 1 sumar"; Escribir "2 restar"; Escribir " 3 multiplicar"; Escribir " 4 dividir"; Leer a; Si a=1 Entonces Escribir "digite un valor"; Leer b; Escribir "ingresa el segundo valor"; Leer c; suma<- (b+C); Escribir "la suma de", b, "+" ,c, "=",suma Sino Si a=2 Entonces Escribir "digite un valor" Leer b; Escribir "ingresa el segundo valor"; Leer c; resta<- (b-c); Escribir "la resta de" ,b, "-" ,c, "=",resta Sino Si a=3 Entonces Escribir "digite un valor"; Leer b; Escribir "ingresa el segundo valor"; Leer c; multiplicar<-(b*c); Escribir "la multiplicacion de" ,b, "*" ,c, "=",multiplicar Sino Si a=4 Entonces Escribir "digite un valor"; Leer b; Escribir "ingresa el segundo valor"; Leer c; multiplicar<- (b/c); Escribir "la division de" ,b, "/" ,c, "=",dividir Sino FinSi FinSi FinSi FinSi FinProceso
12
16-5-2014
Secci처n N째 3
1. Algoritmos Secuenciales 1.3 Simples
Ejemplo N째 2 este algoritmo sirve para escribir su nombre DIAGRAMA DE FLUJO
ALGORITMO
Proceso Nombre escribir "programa para saludar"; escribir "escribe tu nombre"; leer a; escribir "hola!tu nombre es:", "****", a ,"****"; FinProceso
13
16-5-2014
Sección N° 3
1. Algoritmos Secuenciales 1.3 Simples
Ejemplo N° 3 escribe dos números cualquiera y nos muestra el resultado de la suma A + B
DIAGRAMA DE FLUJO
ALGORITMO
Proceso sumarAyB Escribir "INGRESA A:"; Leer A; Escribir "INGRESA B:"; Leer B; Suma<-(A+B); Escribir "LA SUMA DE A+ B ES:" , SUMA; FinProceso
14
16-5-2014
Sección N° 3
1. Algoritmos Secuenciales 1.3 Simples
Ejemplo N° 4 escribe números cualquiera y nos muestra el resultado de la resta. DIAGRAMA DE FLUJO
ALGORITMO
Proceso resta Escribir "Escriba el Primer numero a restar" Leer numero1 Escribir "Escriba el segundo numero a restar" Leer numero2 R <- numero1 - numero2 Escribir "La resta de los dos numeros es ", R FinProceso
15
16-5-2014
Sección N° 4
1. Algoritmos Secuenciales 1.4 Con “SI __ ENTONCES”
Ejemplo N° 1 escribe dos números cualquiera y nos halla el cuadrado y el cubo DIAGRAMA DE FLUJO
ALGORITMO
Proceso cubo_cuadrado Escribir "Escriba el PRIMER numero" Leer n1 Escribir "Escriba el SEGUNDO numero" Leer n2 c1<-n1*n1 cu1<-n2*n2*n2 Si c1>cu1 Entonces Escribir "El CUADRADO del PRIMER numero es ",c1 Escribir "El CUBO del SEGUNDO numero es ",cu1 Escribir "El CUADRADO DEL PRIMER NUMERO SI es MAYOR que el CUBO DEL SEGUNDO" Sino Escribir "El CUADRADO del PRIMER NUMERO NO es MAYOR que el CUBO DEL SEGUNDO" Fin Si FinProceso
16
16-5-2014
Sección N° 4
1. Algoritmos Secuenciales 1.4 Con “SI __ ENTONCES”
Ejemplo N° 2 escribe dos horas cualquiera y te calcula las horas y minutos que pasaron en ese lapso de tiempo.
DIAGRAMA DE FLUJO
ALGORITMO Proceso calcula_tiempo_entre_dos_horas Escribir "CALCULA EL TIEMPO TRANSCURRIDO ENTRE DOS HORAS" Escribir "ESCRIBA LA PRIMER HORA" Leer h1 Escribir "ESCRIBA LOS MINUTOS DE LA PRIMER HORA" Leer m1 Escribir "ESCRIBA LA SEGUNDA HORA" Leer h2 Escribir "ESCRIBA LOS MINUTOS DE LA SEGUNDA HORA" Leer m2 difehora <- h2 - h1 difeminu <- m2 - m1 Si difehora < 0 Entonces difehora <- (-1 * difehora) Sino difehora <- difehora Fin Si Si difeminu < 0 Entonces difeminu <- (-1 * difeminu) Sino difeminu <- difeminu Fin Si Escribir "El tiempo transcurrido entre LA HORA1, MINUTOS1 Y la HORA2, MINUTOS2 ES: ",difehora," HORAS ",difeminu," MINUTOS " FinProceso
17
16-5-2014
Sección N° 4
1. Algoritmos Secuenciales 1.4Con “SI __ ENTONCES”
Ejemplo N° 3 escribe números cualquiera y nos indica cuál es el mayor y menor DIAGRAMA DE FLUJO
ALGORITMO
Proceso Mayor Escribir "Entre un Numero Cualquiera" Leer nu1 Escribir "Entre otro Numero Cualquiera" Leer nu2 Si nu1>nu2 Entonces Escribir "El numero MAYOR es ",nu1 Escribir "El numero MENOR es ",nu2 Sino Escribir "El numero MAYOR es ",nu2 Escribir "El numero MENOR es ",nu1 Fin Si FinProceso
18
16-5-2014
Sección N° 4
1. Algoritmos Secuenciales 1.3 Con “SI __ ENTONCES”
Ejemplo N° 4º escribe tres números cualquiera y los ordena números de forma ascendente. DIAGRAMA DE FLUJO
ALGORITMO Proceso orden Escribir "MUESTRA NUMEROS EN ORDEN" Escribir "Escriba el PRIMER numero" Leer n1 Escribir "Escriba el SEGUNDO numero" Leer n2 Escribir "Escriba el TERCER numero" Leer n3 Si n1 > n3 Entonces Temp<-n1; n1<-n3; n3<-Temp; Si n2 > n3 Entonces Temp<-n2; n2<-n3; n3<-Temp; FinSi Si n1 > n2 Entonces Temp<-n1; n1<-n2; n2<-Temp; FinSi Sino Si n2 > n3 Entonces Temp<-n2; n2<-n3; n3<-Temp; FinSi FinSi Escribir "----------------------------------------"; Escribir "Numeros ordenados de forma ascendente: ", n1, ", ", n2, ", ", n3; Escribir "----------------------------------------"; FinProceso 19
16-5-2014
Sección N° 4
1. Algoritmos Secuenciales 1.4 Con “SI __ ENTONCES”
Ejemplo N° 6 escribe cualquier suma de salario que desees pagar a un trabajador y te calcula cuanto es el salario semanal
DIAGRAMA DE FLUJO
ALGORITMO
Proceso salario Escribir "Escriba el NOMBRE" Leer Nom Escribir "Escriba el Salario Mensual" Leer Sal hora <- Sal / 240 sem <- hora * 45 Escribir "NOMBRE ",Nom Escribir "Su SALARIO SEMANAL ES DE ",sem FinProceso
20
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 1 escribe números cualquiera positivos y negativos y nos indicará cuantos son ceros – positivos - negativos
DIAGRAMA DE FLUJO
ALGORITMO
Proceso POSITIVOS_NEGATIVOS_CEROS CNEG<-0 CPOS<-0 CCEROS<-0 Escribir 'CUANTOS NUMEROS DESEA ESCRIBIR' Leer N Mientras CONT<N Hacer Escribir 'ESCRIBA UN NUMERO ' Leer NUM Si NUM=0 Entonces CCEROS<-CCEROS+1 Sino Si NUM>0 Entonces CPOS<-CPOS+1 Sino CNEG<-CNEG+1 FinSi FinSi CONT<-CONT+1 FinMientras Escribir 'LA CANTIDAD DE CEROS ESCDRITA FUE ',CCEROS Escribir 'LA CANTIDAD DE NUMEROS POSITIVOS FUE ',CPOS Escribir 'LA CANTIDAD DE NUMEROS NEGATIVOS FUE ',CNEG FinProceso
21
Sección N° 5
16-5-2014
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 2 escribir un número cualquiera y te halla el cubo y su cuarta. DIAGRAMA DE FLUJO ALGORITMO
Proceso CUBO_CUARTA Escribir 'ESCRIBA UN NUMERO' Leer NUM Mientras NUM<>0 Hacer CUBO<-NUM*NUM*NUM CUARTA<-CUBO*NUM Escribir 'EL CUBO ES ',CUBO,' LA CUARTA ES ',CUARTA Escribir 'ESCRIBIR NUMERO' Leer NUM FinMientras FinProceso
22
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 3 escribe números positivos y negativos e imprime sólo los positivos. DIAGRAMA DE FLUJO
ALGORITMO
Proceso IMPRIMIR_POSITIVOS CN<-0 Escribir 'ESCRIBA LA CANTIDAD DE NUMEROS QUE DESEA ESCRIBIR ' Leer N Mientras CN<N Hacer Escribir 'ESCRIBA UN NUMERO POSITIVO O NEGATIVO' Leer NUM Si NUM>0 Entonces Escribir 'EL NUMERO ES POSITIVO ',NUM FinSi CN<-CN+1 FinMientras FinProceso
23
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 4 nos indica cuántos números son positivos, cuántos negativos y cuantos son ceros.
DIAGRAMA DE FLUJO
ALGORITMO Proceso POSITIVOS_NEGATIVOS_CEROS CNEG<-0 CPOS<-0 CCEROS<-0 Escribir 'CUANTOS NUMEROS DESEA ESCRIBIR' Leer N Mientras CONT<N Hacer Escribir 'ESCRIBA UN NUMERO ' Leer NUM Si NUM=0 Entonces CCEROS<-CCEROS+1 Sino Si NUM>0 Entonces CPOS<-CPOS+1 Sino CNEG<-CNEG+1 FinSi FinSi CONT<-CONT+1 FinMientras Escribir 'LA CANTIDAD DE CEROS ESCRITA FUE ',CCEROS Escribir 'LA CANTIDAD DE NUMEROS POSITIVOS FUE ',CPOS Escribir 'LA CANTIDAD DE NUMEROS NEGATIVOS FUE ',CNEG FinProceso
24
16-5-2014
25
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 5 pasa de números negativos a positivos. DIAGRAMA DE FLUJO
ALGORITMO
Proceso NEGATIVOS_POSITIVOS Escribir 'ESCRIBA 15 NUMEROS' Mientras X<15 Hacer CONTADOR<-CONTADOR+1 Escribir ' ' Escribir 'ESCRIBA EL ',CONTADOR,' NUMERO NEGATIVO ' Leer NUMERO POSITIVO<-NUMERO*(-1) Escribir 'EL NUMERO NEGATIVO ES ',NUMERO Escribir 'EL NUMERO POSITIVO ES ',POSITIVO FinMientras FinProceso
26
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 6suponga que se tiene la nota de una materia de un grupo de 40 alumnos. Calcular la nota promedio y la nota más baja de todo el grupo.
DIAGRAMA DE FLUJO
ALGORITMO
Proceso PROMEDIO SUM<-0 CC<-0 Escribir "NOMBRE" Leer NOMBRE Mientras CC<7 Hacer Leer CALIF SUM<-SUM+CALIF CC<-CC+1 PROM<- SUM/7 Fin Mientras Escribir "EL PROMEDIO ES : ",PROM FinProceso
27
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 7Calcular e imprimir la tabla de multiplicar de un número cualquiera de 1 hasta 10; imprimir el: multiplicando, multiplicador y el producto.
DIAGRAMA DE FLUJO
ALGORITMO
Proceso TABLA_DE_MULTIPLICAR X<-1 Escribir ' QUE TABLA DESEA IMPRIMIR DEL 1 AL 3' Leer NUM Mientras X<=3 Hacer RESUL<-NUM*X Escribir NUM,' * ',X,' = ',RESUL X<-X+1 FinMientras FinProceso
28
16-5-2014
Sección N° 5
1. Algoritmos Secuenciales 1.5 Con “MIENTRAS”
Ejemplo N° 8 Simulador de un reloj digital. DIAGRAMA DE FLUJO
ALGORITMO
Proceso RELOJ_DIGITAL H<-0 Mientras H<12 Hacer M<-0 Mientras M<60 Hacer S<-0 Mientras S<60 Hacer Escribir H,' : ',M,' : ',S S<-S+1 FinMientras M<-M+1 FinMientras H<-H+1 FinMientras FinProceso
29
16-5-2014
Sección N° 6
1. Algoritmos Secuenciales 1.6 Con “PARA”
Ejemplo N° 1 Escribe los números pares del 2 al 20. DIAGRAMA DE FLUJO
ALGORITMO
Proceso PARA3 Escribir "ESCRIBE LOS NUMEROS PARES DEL 2 AL 20" Escribir " " Para EMPIEZA<-2 Hasta 20 Con Paso 2 Hacer Escribir "LOS NUMEROS PARES DEL 2 AL 20 SON ", EMPIEZA Fin Para FinProceso
30
Sección N° 6
16-5-2014
1. Algoritmos Secuenciales 1.6 Con “PARA”
Ejemplo N° 2Escribe los números empezando y terminando donde se desea. DIAGRAMA DE FLUJO ALGORITMO
Proceso EJERCICIO_PARA1 INICIO<-0 EMPIEZA<-0 Escribir "CUANTOS NUMEROS QUIERE ESCRIBIR" Escribir "ESCRIBA EL NUMERO DONDE DESEA COMENZAR" Leer INICIO Escribir "ESCRIBA EL NUMERO DONDE DESEA TERMINAR" Leer TEERMINA Para EMPIEZA<-INICIO Hasta TERMINA Hacer Escribir "LA LISTA DE NUMEROS A IMPRIMIR ES " ,EMPIEZA Fin Para FinProceso
31
Sección N° 6
16-5-2014
1. Algoritmos Secuenciales 1.6 Con “PARA”
Ejemplo N°3Escribe los números desde el 1 hasta el número que uno desee. DIAGRAMA DE FLUJO ALGORITMO
Proceso EJERCICIO_PARA2 INICIO<-0 EMPIEZA<-0 Escribir 'CUANTOS NUMEROS QUIERE ESCRIBIR' Escribir 'ESCRIBA EL NUMERO DONDE DESEA COMENZAR' Leer INICIO Escribir 'ESCRIBA EL NUMERO DONDE DESEA TERMINAR' Leer TERMINA Para EMPIEZA<-INICIO Hasta TERMINA Hacer Escribir 'LA LISTA DE NUMEROS A IMPRIMIR ES ',EMPIEZA FinPara FinProceso
32