Вы находитесь на странице: 1из 43

ALGORITMOS PARTEI

Ing.SandraRodrguezAvila 2013I

Paraquaprenderunlenguajede Programacin?
El objetivo de aprender un lenguaje de programacin, es poder utilizar la computadora como una herramienta para resolver problemas, de diversos tipos. Para esto, de manera general y muy simple, la resolucin de un problema se puede dividir en 3 etapas:
Anlisis del Problema. Diseo de un algoritmo. Elaboracin de un programa para computadora.

AnlisisdelProblema

Exige la lectura previa del problema, las veces que sean necesarias, a fin de tener una idea general de lo que se solicita. El problema debe ser definido y comprendido claramente. Se debe definir cuales son las entradas que se requieren y las salidas que se desean obtener. Luegodelanlisissepuedepasaralasiguienteetapa: DiseodeunAlgoritmo.

DiseodeunAlgoritmo
Un algoritmo es un mtodo o conjunto de reglas (sin ambigedades) que se aplican paso a paso en forma ordenada para solucionar un problema. Caractersticas de un Algoritmo: Debe ser preciso: es decir debe indicar el orden exacto de realizacin de cada etapa, evitando acciones innecesarias. Debe estar definido: significa que si se ejecuta un algoritmo 2 o ms veces, con los mismos valores iniciales, se debe obtener el mismo resultado todas las veces. Debe ser finito: esto significa que si se sigue un algoritmo, se debe terminar en algn momento, es decir, debe tener un nmero finito de pasos.

Demanerageneral,enunalgoritmosedebendefinir claramentelassiguientespartes:
Inicializacindevariables. Entradadedatos. Procesosaseguir. Salidaderesultados.

Otroaspectoaconsiderareselmtodoelegidopara representarlosalgoritmos:
DiagramasdeFlujo(convencional) Pseudocdigo DiagramasdeFlujoEstructurado(NassiSchneiderman oNS).

Elempleodeindentacin (justificacinosangrado)enla escrituradelosalgoritmos(Pseudocdigo)facilitasu lecturaycomprensin.

INDENTACION

Inicio
Entero:b,h,a,p Leerb,h a=b*h p=2(b+h) Escribir"rea:",a Escribir"permetro:",p

Fin

ElaboracindeunProgramapara Computadora:
EstafasesedenominaProgramacinyconstadelassiguientes partes: Codificacin: proceso de convertir un algoritmo a un programa, escrito en un lenguaje de programacin. Requiere el uso de un programa editor que permita crear los programas a las que se denomina Programas Fuente. CompilacinyEjecucin:Yaescritoelprogramafuente,se debetraduciralenguajemquina,paraobtenerel correspondienteprogramaobjeto,queeselqueejecutala computadora.Sidurantelatraduccinsedetectanerrores desintaxis,elcompiladorinformaalusuarioculessony cualessuposibleubicacin. Depuracin:Eselprocesodelocalizarycorregirerrores. Existen3posiblestiposdeerrorescuandoseejecutaun programa:

ErroresdeSintaxis,ErroresdeEjecucinyErroresLgicos:

Verificacin:Constatarsiefectivamentehaceloquese desea,ysinolohace,entoncesdeterminarlascausaspor lasquefalta. Optimizacin:Cuandoseconsiguehacefuncionar correctamenteunprograma,elpasosiguientees perfeccionarloparaquefuncionemejor.Laoptimizacines unaetapaderefinamiento,quepuedeincluir:eliminar instruccionesinnecesarias,hacermejorespresentaciones dereportes,etc. Documentacin:paradescribirloquehaceunprograma, comofueconstruido,paraqusirvendeterminadas variablesobloquesdeinstruccionesycomotienequeser utilizado Mantenimiento:Sedenominaasalprocesode actualizacincontinuadeunprograma,conlarealizacin decambiosqueseanconsideradosnecesarios.

Ejemplosdealgoritmosdelavida diaria
Puedenser:Quehagoparatomarunataza deT?,QudebohacerparaverunaPelcula ABC?,tomarunjugodenaranja,tomarun bao,iralauniversidad,tomardesayuno, comprarunperidico,comprarunamedicina enlaFarmacia,etc.

Problema1:Tomarunatazadet
1.Inicio 2.Dirigirsealacocina. 3.Cogerlataza. 4.Echarenlatazaunpocodeaguahervida. 5.Escogerlainfusin(TE)quesedeseatomar 6.Introducirlainfusinenlataza. 7.Agregarelazcar(lacantidadquesedesee) 8.BeberelTE. 9.Fin

Problema2:Cambiarlaruedapinchadadeun automvilteniendounagatamecnicaenbuenestado, unaruedadereemplazoyunallaveinglesa


Los pasos del algoritmo son: 1. Inicio 2. Aflojar los tornillos de la rueda pinchada con la llave inglesa. 3. Ubicar la gata mecnica en su sitio. 4. Levantar la gata hasta que la rueda pinchada pueda girar libremente. 5. Quitar los tornillos y la rueda pinchada. 6. Poner rueda de repuesto y los tornillos. 7. Bajar la gata hasta que se pueda liberar. 8. Sacar la gata de su sitio. 9. Apretar los tornillos con la llave inglesa. 10. Fin.

Podramos modificar este algoritmo, bien sea escribiendo ms lneas de detalle o uniendo algunos pasos, y an as funcionara para resolver nuestro problema. Esto quiere decir que podemos tener algoritmos diferentes, con diferente diseo, que resuelven el mismo problema. Cul de ellos es ms eficiente, hablando desde el punto de vista computacional? Es un tema que trataremos mucho ms adelante.por el momento nos debemos concentrar en cual algoritmo es ms claro, cual es ms fcil de entender.

Problema3: UnlectorhaceunpedidodeunejemplardellibroProgramacin enJavaalbibliotecario.Elbibliotecarioexaminaensubancode datossihayalmenosunejemplardelmismo, sihayelejemplarentonceselbibliotecarioaceptaelpedidoy entregaallectorellibro;encasocontrariorechazaelpedido.


Lospasosdelalgoritmoson: 1.Inicio. 2.Leerelpedidodelejemplar. 3.Examinarelpedidodelejemplar. 4.Sihayunejemplar entonces Aceptarpedido, Entregaejemplarallector. encasocontrario(sino) Rechazarpedido. 5.Fin.

Problema4:Tomarunatazadet
1.Inicio 2.Dirigirsealacocina. 3.Cogerlataza. 4.Echarenlatazaunpocodeaguahervida. 5.Siesquenohayaguacaliente entonces Hervirunpoco Servirenlatazaelaguarecinhervida sino Irapaso6 6.Escogerlainfusinquesedeseatomar. 7.Introducirlainfusinenlataza. 8.Agregarelazcar(lacantidadquesedesee)(supuesto:hay azcar) 9.BeberelTe. 11.Fin

TALLER
Desarrollar 2 algoritmos, uno sencillo y otro ms complejo, puede ser utilizando condicionales para solucionar los siguientes problemas: 1. Disear un algoritmo que responda a la pregunta: Qu debo hacer para ver la pelcula XYZ?. 2. Disear un algoritmo o receta para preparar un plato o postre o bebida especfica, 3. Disear un algoritmo o las instrucciones a seguir para matricularse en el presente ciclo acadmico. 4. Disear un algoritmo para hacer una llamada telefnica desde un telfono pblico.

FORMASDEDESCRIBIRUNALGORITMO 1.LENGUAJENATURAL
La primera y ms sencilla forma de describir un algoritmo. Ventaja fundamental: facilidad de comprensin, cualquier persona (hispanoparlante, por supuesto) que lea dicho algoritmo podra entenderlo y aplicarlo. Problemas que plantea describir un algoritmo de esta forma: El lenguaje natural no es universal El lenguaje natural es ambiguo y, por tanto, susceptible de errores. El lenguaje natural es muy amplio, lo que para una persona puede ser una instruccin sencilla, puede no serlo para otra y, desde luego, no lo ser para un computador. Otras formas estn mejor delimitadas y no son ambiguas.

FORMASDEDESCRIBIRUNALGORITMO 2.PSEUDOCODIGO

Une en un solo tipo de representacin las ventajas del lenguaje natural y de los diagramas. Ventajas:
Fcilmente comprensible para una persona que lo ve por vez primera. Est bien delimitado. Elimina las ambigedades del lenguaje natural. Se representa de una forma compacta.

FORMASDEDESCRIBIRUNALGORITMO 3.DIAGRAMADEFLUJO Representaciones grficas de algoritmos; usan smbolos conectados con flechas para indicar la secuencia de instrucciones y estn regidos por ISO (Organiz. de estndares internacionales) Ventajas
Lossmbolossonuniversales. Sonmenospropensosalaambigedad. Porestarbasadosenunnmeropequeodebloquesy reglasparasuempleopermitendelimitarmejorlos algoritmos. Seaproximanmsalaformaenquetrabajaelordenador

FORMASDEDESCRIBIRUNALGORITMO 3.DIAGRAMADEFLUJO Desventajas


El hecho de emplear smbolos supone que una persona que desconozca los smbolos puede tener dificultades para comprender el algoritmo o no entenderlo en absoluto. Aunque los smbolos son universales el texto que se coloca en su interior sigue siendo lenguaje natural. La representacin grfica puede resultar bastante tediosa y en el caso de algoritmos complejos extremadamente confusa. Un ordenador no es capaz de utilizar una representacin visual como descripcin de un algoritmo

FORMASDEDESCRIBIRUNALGORITMO 4.DIAGRAMANASSISCHNEIDERMANONS

Otra forma de representar los algoritmos grficamente. Diagrama algo similar a los diagramas de flujo en el que se omiten las flechas y las figuras que se usan son rectngulos contiguos para rdenes secuenciales.
Leerb,h

FORMASDEDESCRIBIRUN ALGORITMO
Durante el desarrollo del curso, emplearemos para describir algoritmos: Pseudocdigo, Diagrama de Flujo y Diagramas NS. Estas 3 formas permiten implementar las 3 estructuras Bsicas de Control:
A. Estructura Secuencial B. Estructura Condicional o de Decisin o Selectiva C. Estructura Repetitiva o Iterativa

A.ESTRUCTURASECUENCIAL
La estructura secuencial es aquella en la que una accin sigue a otra en secuencia. Las operaciones se suceden de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso

A.EstructuraSecuencialEJEMPLO1:Disearun algoritmoparacalcularelreayelpermetrodeun rectngulo PASO 1: Definicin del problema Calcular rea y permetro de un rectngulo PASO 2: Anlisis del problema Para desarrollar este problema es necesario conocer las frmulas para obtener tanto el rea como el permetro de un rectngulo. Sea b = base, h = altura, a=rea y p=permetro, las frmulas a utilizar son: a = b * h y p = 2 * (b + h)
Datos de entrada: b y h (base y altura) Datos de salida: a y p Procesos: a = b * h y p = 2 * (b + h)

b,h

a=b*h p=2*(b+h)

a,p

ENTRADA

PROCESO

SALIDA

Inicio

PASO3:Diseodelasolucinodel Algoritmo PSEUDOCODIGO


//Declaracindevariables Entero b,h,a,p //Entradadedatos Leer b,h //Procesodeclculo a=b*h p=2*(b+h) //Salidaderesultados Escribir Area:",a Escribir Permetro:",p

Fin

PASO3:Diseodelasolucinodel Algoritmo DIAGRAMADEFLUJO

INICIO

Enterob,h,a,p

Leerb,h

a=b*h *h p=2*(b+h) Escribir Area:,a Perimetro:,p

FIN

PASO3:Diseodelasolucinodel Algoritmo DIAGRAMANS


IInicio Enterob,h,a,p Leerb,h a=b*h p=2*(b+h) EscribirArea=,a EscribirPermetro=,p Fin

CONCEPTOSBSICOSENELDISEO DEALGORITMOS
Variable Objetocuyovalorpuedesermodificadoalolargodela ejecucindeunprograma. Seleasignaunnombre:contador,rea,suma. Estructurasecuencial: Formado por instrucciones que se ejecutan una despus de otra. Se tienen tres tipos de instrucciones secuenciales: 1. La declaracin de variables, 2. Asignacin, 3. Instruccin Leer e instruccin Escribir.

VARIABLES

DIRECCCIONES

MEMORIA

VALORESDE v VARIABLES b h a p NOMBREDEVARIABLES (IDENTIFICADORES)

001 002 003 004

5 3 SKSKSD 15 16

Declaracindevariables Consisteenescribireltipodedatosylalista deidentificadoresquesetendrndedicho tipo,separandocadaidentificadorpormedio decomasy:paraseparareltipodedatosde lalistadeidentificadores. Ejemplo:


Enteroedad Realestatura,peso,sueldo Cadenanombre,direccin

Asignacin Asignar un valor a una variable equivale a decir que se guarda dicho valor en la posicin de memoria reservado para la variable en mencin. Por lo tanto, para poder realizar una asignacin es necesario primero haber declarado una variable. variable=expresin variableexpresin Laexpresinpuedeestarformadaporunvalor,porun conjuntodevaloresyoperadoresoporunafuncin. Ejemplosdeasignacin: edad=10//Alavariableedadseleasignaelvalorde10 estatura=1.80//Alavariableestaturaseleasignaelvalorde1.80 resultado=2*3//Alavariableresultadoseleasignaelvalor6
resultantedelaexpresin2*3

Instruccin Leer Se utiliza para enviar informacin desde un dispositivo de entrada de datos hacia la memoria. En la memoria los datos son ubicados mediante el nombre de variable utilizado como complemento de la instruccin LEER. Ejemplo: Leer a, b Donde "a" y "b" son las variables que recibirn los valores y que deben haberse declarado previamente.

Instruccin Escribir Permite enviar datos desde la memoria hacia un dispositivo de salida como la pantalla o la impresora. La informacin que se enva puede ser constante o tambin el contenido de variables. Ejemplo: Escribir a, b //Se imprimen los valores de las variables a y b Cuando se escriben ms de una variable es necesario separarlas con comas (,) y los mensajes se escriben entre comillas dobles . Escribir Area = , a
//Se imprime el texto Area = seguido del valor resultante de la variable a

Contador Es una variable que sirve para llevar la cuenta de las veces que se repite una operacin Generalmente se incrementa o decrementa de uno en uno. En el ejemplo, son contadores: c, i, apr, des , con c=c+1 Acumulador Es una variable en la cual se va almacenando la suma de los valores sucesivos que va tomando otra variable. sum=sum+1

A. Estructura SecuencialEJEMPLO 2: Disee un algoritmo para convertir una longitud dada en metros a sus equivalentes en centmetros, pies, pulgadas y yardas. Consideremosque:1metro=100centmetros,1 pulgada=2.54centmetros,1pie=12pulgadas,1 yarda=3pies. PASO 1: Definicin del problema Calcular una longitud dada en metros a sus equivalentes en centmetros, pies, pulgadas y yardas

PASO 2: Anlisis del problema Para desarrollar este problema es necesario conocer las equivalencias de las unidades de medida de longitud planteadas. Sean: metro = medida en metros, acent = convertir a cent, apulg = convertir a pulg, apies = convertir a pies y ayard = convertir a yardas Datos de entrada: metro Datos de salida: acent, apulg, apies, ayard Procesos: acent =metro*100 apulg =acent /2.54 apies =apulg /12 ayard =apies /3

PASO3:DiseodelasolucinodelAlgoritmo PSEUDOCODIGO
Inicio
//Declaracindevariables Realmetro,acent,apies,apulg,ayard //Entradadedatos Leermetro //Procesodeclculo acent =metro*100 apulg =acent /2.54 apies =apulg /12 ayard =apies /3 //Salidaderesultados EscribirCentmetros:,acent EscribirPulgadas:,apulg EscribirPies:,apies EscribirYardas:,ayard

Fin

PASO3:Diseodelasolucinodel Algoritmo DIAGRAMADEFLUJO

INICIO

Entero

Leer

FIN

PASO3:Diseodelasolucinodel Algoritmo DIAGRAMANS

Вам также может понравиться