107
ING. SALDAÑA GOLDSCHMIDT, JUAN Semana No 1 Algoritmos

Semana 01 - Algoritmos.pptx

Embed Size (px)

Citation preview

Diapositiva 1

ING. SALDAA GOLDSCHMIDT, JUANSemana No 1AlgoritmosQue es un algoritmo?

Una lista de instrucciones donde se especifica una sucesin de operaciones necesarias para resolver cualquier problema de un tipo dado.Ejemplo sumar dos nmerosAlgoritmos2Algoritmos5+1=6Anotar 62+9=11Anotar 1 y guardar 14+0=44+1=5Anotar 5El resultado es 516Algoritmos491+ 25516Algoritmos+VVVVFFFVFFFFV+FFAlgoritmos san+ sanosansanoEntradaQu se necesita para realizar los pasos?.ProcesoTransformacin, efectuar las operaciones.SalidaQue se obtiene al final del algoritmo?Tipos de datosNmeros: enteros, reales, complejosTexto: letras, palabras, frasesOtrosAlgoritmosSirven para resolver un tipo de problema especifico.Son secuencias de pasos concretos.Requiere la definicin de la entrada y la salida.Adecuados para ser ejecutados por un computadorAlgoritmos8Qu tiene que ver con la programacin?

La programacin consiste en crear programas de computador que resuelvan problemas especficos.Un programa de computador es la implementacin en cdigo (algn lenguaje de programacin) de un algoritmo.AlgoritmosQu es un programa de computador?Es una secuencia de pasos a ejecutarLos pasos estn descritos en un lenguaje especial.Este lenguaje se puede traducir al lenguaje del computador.Por lo general es un archivo de texto.El texto escrito en dicho lenguaje se denomina el cdigo del programa.AlgoritmosEs necesario contar con formas de expresar algoritmosDiseo del algoritmo antes de codificarDiseo del algoritmo de manera independiente del lenguaje de programacin

Diferentes alternativas (Tcnicas)Pseudo - cdigoDiagramas de flujo

inicio Leer a , b int b =));suma = a + b int suma = a +b;Imprimir suma System.out.println(suma);FinDescripcin de un algoritmoint a,b; integer.parseInt(JOptionPane.ShowInputDialog(a));integer.parseInt(JOptionPane.ShowInputDialog(b));int suma = a +b;System.out.println(suma);Pseudo cdigoEl algoritmo se expresa en lenguaje naturalExpresa de manera genrica los pasos del algoritmoNo provee detalles de la implementacin particular del cdigo finalDescripcin de un algoritmoDiagramas de flujoPresentan el algoritmo de manera grfica.De gran utilidad para seguir la ruta de un algoritmo.Aplicables a muchas otras disciplinas.Descripcin de un algoritmoDefinir el problema a resolverIdentificar las entradas del algoritmoIdentificar la salida del algoritmoDefinir los pasos a seguir para convertir las entradas en la salida. Ej. (suma = x + y)Seguir los pasos y comprobar que el algoritmo sea correcto analizando la salida.Revisar los pasos y hacer las correcciones.Resolver el problema.Construccin de un algoritmoConstruccin de un programaDefinir el problema a resolverDefinir el algoritmo que lo resuelveEscribir el programaEscribir cada uno de los pasos del algoritmo en el lenguaje de programacinEjecutar el programa en el computadorVerificar que las salidas sean correctasHacer correcciones al programaResolver el problemaIWI-131 - Tema 1 AlgoritmosConstruccin de un algoritmoEjemplo:

Objetivo: Calcular el precio de una manzana EntradasPrecio (en soles) del kilo de manzanas [K]Peso (en gramos) promedio de una manzana[P]SalidaPrecio (en soles) de una manzana [M]IWI-131 - Tema 1 AlgoritmosConstruccin de un algoritmoConstruccin de un algoritmoInicioIngresar valor de K y P

Calcular G = K/1000

Calcular M = G x P

Devolver el valor de M

Fin.IWI-131 - Tema 1 AlgoritmosConstruccin de un algoritmoG=K/1000M=G x PIngresar K y PDevolver MIWI-131 - Tema 1 AlgoritmosConstruccin de un algoritmoG=K/1000M=G x PIngresar K y PDevolver MOperaciones bsicasEntrada de datosSalida de datosUtilizacin de variablesUtilizacin de constantesAplicacin de operadoresAsignacin de valoresCombinacin de operaciones bsicasSecuencialSelectivaRepetitivaIWI-131 - Tema 1 AlgoritmosConstruccin de un algoritmoLos algoritmos son para solucionar tipos de problemasEs imprescindible poder entregar entradas distintas en cada ejecucinLa entrada de datos se realiza mediante algn dispositivoIWI-131 - Tema 1 AlgoritmosEntrada de datosDispositivos de entradaTecladoMouseBotonesCensores de tactoCmaras digitalesScannersArchivosIWI-131 - Tema 1 AlgoritmosEntrada de datosIWI-131 - Tema 1 AlgoritmosEntrada de datosCada dispositivo tiene distintas caractersticas.Por lo general, sirven para cosas distintasLos sistemas definen un dispositivo de entrada por defectoEste dispositivo se denomina la entrada estndar.En un computador suele ser el teclado.IWI-131 - Tema 1 AlgoritmosEntrada de datosDe nada sirve implementar un algoritmo si no podemos saber su resultado.Al finalizar el algoritmo (o durante), es imprescindible obtener la informacin resultante de su ejecucin.La salida de datos se realiza mediante dispositivos.IWI-131 - Tema 1 AlgoritmosSalida de datosDispositivos de salidaPantallaImpresoraParlantesTableros luminososMotoresTarjeta de redArchivosIWI-131 - Tema 1 AlgoritmosSalida de datosIWI-131 - Tema 1 AlgoritmosSalida de datosC:\Al igual que con la entrada, cada dispositivo tiene finalidades distintas.Los sistemas definen un dispositivo de salida por defectoEste dispositivo se denomina la salida estndar.En un computador suele ser la pantalla.IWI-131 - Tema 1 AlgoritmosSalida de datosDurante la ejecucin del algoritmo, es importante recordar los resultados parciales de cada paso.Estos resultados se etiquetan con un nombre.Al invocar con posterioridad ese nombre, recuperamos el resultados parcial.IWI-131 - Tema 1 AlgoritmosUtilizacin de variablesIWI-131 - Tema 1 AlgoritmosUtilizacin de variablesG=K/1000Esta variable se denomina G y se utiliza para recordar el valor de un gramo de manzana.K es un dato de entrada, y tambinSe considera una variableLa principal caracterstica de una variable es que su valor puede cambiar en el tiempo.Usualmente se compara con una caja donde se puede almacenar una sola cosa.Por lo general, las variables se definen con un tipo de dato.El tipo de dato restringe que tipo de cosas se pueden guardar en las cajas.IWI-131 - Tema 1 AlgoritmosUtilizacin de variablesAdems de las variables, un algoritmo requiere de constantes.A diferencia de las variables, su valor no puede cambiar en el tiempo.Las constantes tambin pueden recibir nombres para mayor claridad.Ej.: PI = 3.1415IWI-131 - Tema 1 AlgoritmosUtilizacin de constantesIWI-131 - Tema 1 AlgoritmosUtilizacin de constantesG=K/1000La constante 1000 sirva para transformar el valor Por kilo a un valor por gramoPara obtener resultados, generalmente es necesario transformar las entradas en la salida.Para esto se aplican operadores de distinta ndoleAritmticos ( + , - , * , / )Lgicos (igual que, mayor que, menor que, y, o, no)Etc.Los operadores requieren de operandos y entregan un resultado.Por lo general, los operadores son unarios o binarios.IWI-131 - Tema 1 AlgoritmosAplicacin de operadoresIWI-131 - Tema 1 AlgoritmosAplicacin de operadoresM=G * PoperandosoperadorEl resultado de un operador se puede almacenar en una variable.Para esto se utiliza un tipo especial de operador.Este es el operador de asignacin. Solo se pueden asignar valores a variables, no a constantesIWI-131 - Tema 1 AlgoritmosAsignacin de valoresIWI-131 - Tema 1 AlgoritmosAsignacin de valoresM=G * POperador de asignacinEl resultado de GxP se asigna a la variable MSecuencialUn conjunto de operaciones bsicas pueden ser ejecutadas en forma secuencial.Una operacin no inicia hasta que la anterior terminaIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasG=K/1000M=G * PIngresar K y PDevolver MIngresar K=200 y P=250

G tiene el valor 0,2

M tiene el valor 50G=K/1000M=G * PIngresar K y PDevolver MDiagrama de flujoDiagrama de Nassi-SchneidermannSelectivaUn algoritmo puede optar por ejecutar o no una operacin (SI ENTONCES).Un algoritmo puede optar por ejecutar una u otra operacin (SI-ENTONCES-SINO).Esta decisin se basa en un condicin.Esta decisin controla el flujo del algoritmo.Por esto, se denomina una estructura de control.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasC3421C: CondicinIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas3sino421CC: CondicinInicioEjecutar 1Ejecutar 2si se cumple C entoncesEjecutar 3fin siEjecutar 4finIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasEjemplo: levantarse en la maanaIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIniciosalir de la camaducharsetomar desayunosi esta lloviendo entoncestomar el paraguasfin sitomar la mochilatomar la microfinIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasC3a3b421sinoC: CondicinIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas3a3bsino421CC: CondicinInicioEjecutar 1Ejecutar 2si se cumple C entoncesEjecutar 3asi noEjecutar 3bfin siEjecutar 4finIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasEjemplo: levantarse en la maanaIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIniciosalir de la camaducharsetomar desayunosi esta lloviendo entoncesllevar la parcasi nollevar la chaquetafin sitomar la mochilatomar la microfinEstructura de control selectivaUna condicin es cualquier proposicin lgica que tenga un valor verdadero o falso definido.Este esquema selectivo se denomina decision binaria.Y si hay ms de dos opciones?

IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasEstructura de control selectivaToda decisin se puede llevar a un esquema de decisin binaria.Basta con decidir entre una alternativa y todo el restoSi se elige el resto, se decide entre una alternativa y el resto del resto.EtcIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas2a2b2c31x?x mayor que 0x igual a 0x menor que 0IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas3x mayor que 0?1x menor que 0?sisinono2a2b2cIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas132ax mayor que 0?x menor que 0?2b2csisinonoInicioEjecutar 1Si x es mayor que cero entoncesEjecutar 2aSi noSi x es menor que cero entoncesEjecutar 2cSi noEjecutar 2bfin sifin siEjecutar 3finIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasEjemplo: levantarse en la maanaIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIniciosalir de la camaducharsetomar desayunosi esta lloviendo entoncesllevar la parcasi no esta lloviendo pero hace frollevar la chaquetasi nollevar un chalecofin sitomar la mochilatomar la microfinEstructura de seleccin mltiplePara algunos casos se puede utilizar un esquema selectivo no binario (EN EL CASO DE)Ejemplo: ingreso de opcin de men de un cajero automticoSi el usuario presion el botn 1, hacer un giroSi el usuario presion el botn 2, entregar saldoSi el usuario presion el botn 3, cambiar la claveEtc.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasBotngirosaldoclaveerror132etocsalirIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasgiroclavesaldoerrorBotn123etocsalirInicioen el caso que el botn presionadosea el 1hacer girosea el 2entregar saldosea el 3cambiar claveEn cualquier otro casoErrorfin casofinIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasRepetitivaAdems de combinar operaciones en forma secuencial y selectiva, se puede repetir la ejecucin de una operacin cuantas veces se desee.Existen varios esquemasRepetir MIENTRAS se cumpla una condicin.Repetir HASTA QUE se cumpla una condicin.Repetir un nmero de veces.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasMIENTRASSe repite una operacin mientras una condicin sea verdadera.Al dejar de serlo, se rompe el cicloSi la condicin nunca es falsa, se tiene un ciclo infinito.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasC213C: CondicinsinoIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas132CC: CondicinInicioejecutar 1mientras se cumpla la condicinejecutar 2fin mientrasejecutar 3finIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasEjemplo validar ingreso de valor positivoIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIniciodefinir variable xasignar el valor -1 a xmientras x sea menor que ceroingresar x por tecladofin mientrasmostrar valor de xfinHASTA QUESe repite la ejecucin de una operacin hasta que se cumpla una condicin.La principal diferencia con MIENTRAS es que la operacin se ejecuta al menos una vez.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasC213C: CondicinsinoIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas132CC: CondicinIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasInicioejecutar 1repetirejecutar 2hasta que se cumpla condicinejecutar 3finEjemploMismo ejemplo anteriorIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIniciodefinir variable xrepetiringresar x por tecladoHasta que x sea mayor que ceromostrar valor de xfinRepetir un nmero fijo de vecesMuy til cuando se sabe el numero de repeticiones a ejecutar.Por lo general se define una variable que sirve de contadorEl contador mantiene el nmero de cada iteracin.Tambin se puede definir el incremento del contador en cada iteracin.IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasInicio contador, fin contador231IWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicas132Inicio contador, fin contadorIWI-131 - Tema 1 AlgoritmosCombinacin de operaciones bsicasInicioejecutar 1desde contador inicial hasta contador finalejecutar 2fin desdeejecutar 3finCombinacin de operaciones bsicasEjemplo

IWI-131 - Tema 1 AlgoritmosIniciodefinir variable sumatoriaasignar el valor 0 a sumatoriadesde i igual a 0 hasta i igual a 5sumatoria = sumatoria + ifin desdemostrar valor de sumatoriafinCombinacin de estructuras de control seriales, selectivas y repetitivasCualquier combinacin es posiblePueden existir estructuras anidadasEs importante definir el comienzo y el termino de cada estructuraCombinacin de operaciones bsicasProgramacin EstructuradaLa descripcin inicial puede ser un tanto vagaEjemplo: Explicar al alumno la construccin de la oracin simple (sujeto y predicado).Anlisis del problemaEl primer paso en el desarrollo de software es la especificacin precisa del problema.Ejemplo:Desarrollar una pgina web con HTML para la explicacin al alumno de la construccin de la oracin simple a partir de sus componentes sujeto y predicado.AnlisisEn la especificacin del problema se deben describir las entradas de informacin, es decir, qu informacin se da y qu elementos son importantes para resolver el problema y la salida qu informacin debe producirse como solucin del problema.AnlisisEn el desarrollo de software conviene aplicar la generalizacin: el programa debe ser lo suficientemente flexible para resolver no slo un ejemplo, sino varios problemas del mismo estiloEjemplo:La pgina web no slo muestra un caso de oracin simple, sino varios modelos.AnlisisEl diseo de software educativo debe considerar dos elementos fundamentales:

Las estructuras para organizar y almacenar los datos

Los procedimientos para procesar y mostrar la informacin.

DiseoLa programacin estructurada consiste en el diseo del problema a solucionar a partir de un flujo lgico.A diferencia de la programacin lineal, la programacin estructurada considera el uso de elementos de control a partir de decisiones.DiseoLas tres estructuras bsicas en este tipo de programacin son:

Secuenciacin

Seleccin

RepeticinProgramacin estructuradaEs la ejecucin de una secuencia de instrucciones en el orden que aparecen, de tal manera que se ejecutan una sola vez.EjemploEn una pgina web para explicar el concepto de oracin simple, la estructura de secuencia estar marcada en su inicio por la etiqueta y en su trmino por .Estructura secuencialPermite la seleccin de una o varias acciones alternativas, dependiendo de la decisin del usuario o de una decisin en el flujo del programa.EjemploEn la pgina web de oracin simple se puede dar al usuario la oportunidad de ir a una explicacin ms profunda sobre cierto trmino, por ejemplo: la composicin del predicado.Estructura de seleccinHace posible la ejecucin repetida de una o ms instrucciones EjemploEn la pgina web de oracin simple se puede incluir un video o audio que se repita constantemente al momento de seleccionarlo o desde la primera vez que se carga la pgina.Estructura de repeticinLa programacin estructurada (anlisis y diseo del problema) se expresa textualmente como un algoritmo.

Es un conjunto finito de instrucciones que sirven para ejecutar una tarea o resolver un problema. AlgoritmoInstrucciones para el uso de un aparatoPartitura de msicaInstrucciones de construccin de un modelo a escalaTrucos de magiaRecetas de cocinaAlgoritmos en la vida cotidianaSecuencia finita de instrucciones realizables, no ambiguas, cuya ejecucin conduce a la solucin de un problema.Definicin formal de algoritmoDan la solucin genrica a un problema y se puede emplear siempre que se presente el mismo problema.Una vez dado el algoritmo ya no se necesita entender cmo funciona, sino seguir las instrucciones. La inteligencia reside en el algoritmo.Las mquinas algortmicas interpretan algoritmos. El mejor ejemplo es la computadora.Caractersticas de los algoritmosUn programa o software consiste en emplear una regla o lenguaje para codificar el algoritmo y que sea entendible por la computadora.

La inteligencia que se le puede transmitir a la computadora reside en la manera en que se le comuniquen pensamientos y sol.uciones a problemas por medio de algoritmos.Inteligencia para la computadoraMtodo para calcular el mximo comn divisor de dos nmeros enteros

AlgoritmoInicioObtener los dos datos de entradaSea A el mayor y B el menorAsegurarse que sean enteros positivosMientras B no sea igual a cero hacer las siguientes 4 instrucciones en secuencia:El algoritmo de EuclidesDividir A entre BAsignar el valor del residuo a REl nuevo valor de A ser el valor de BEl nuevo valor de B ser el valor de R

El resultado es el ltimo valor de AFinEl algoritmo de EuclidesEs una manera genrica de escribir un algoritmo usando las convenciones de los lenguajes de programacin.

Es una mezcla de frases en lenguaje comn, instrucciones de programacin y palabras clave que definen la estructura de un programa.PseudocdigoEl objetivo es centrarse en la solucin del problema antes de la redaccin en el lenguaje o reglas especficas de cmputo.

Dado que el pseudocdigo no es un lenguaje formal, la descripcin de la solucin a un problema puede variar de un programador a otro, no as la lgica.PseudocdigoInicio

Accin 1Accin 2.Accin n

FinPseudocdigo de secuenciaSi CONDICIN entonces

Accin 1Accin 2.Accin n

Fin del SiPseudocdigo de decisin simpleSi CONDICION entoncesAccin 1Accin 2.Accin nEn caso contrarioAccin 1Accin nFin del SiPseudocdigo de decisin doblePara INICIO hasta FIN hacerAccin 1Accin 2.Accin nFin del ParaPseudocdigo de iteracin fijaMientras CONDICION hacerAccin 1Accin 2Accin nFin del MientrasPseudocdigo de iteracin condicional al inicioRepetirAccin 1Accin 2.Accin nHasta que CONDICIONPseudocdigo de iteracin condicional al finalCaso de SELECTORValor 1 : Accin 1Accin 2Valor 2: Accin 1Accin 2Valor n: Accin 1Accin 2Fin del CasoPseudocdigo de seleccinOperaciones entre dos elementos dados por el usuario:Declaracin de VariablesReal: X, Y, RESPUESTAEntero: OPCIONCarcter: OPEjemplo de PseudocdigoInicioRepetirescribir(Primer valor: )leer(X)escribir(Segundo valor: )leer(Y)escribir(1) Suma )escribir(2) Resta )escribir(3) Multiplicacin )escribir(4) Divisin )escribir(Qu operacin deseas realizar?: )Ejemploleer(OPCION)casos OPCION de1: RESULTADO X+Y2: RESULTADO X-Y3: RESULTADO X*Y4: si Y=0 entoncesEjemploescribir( Error )RESULTADO 0en caso contrario RESULTADO X/Yescribir (Resultado: ,RESULTADO)escribir(Deseas otro clculo?: [S/N] )leer(OP)Hasta que RES = NFinEjemplo