Академический Документы
Профессиональный Документы
Культура Документы
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).
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
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.
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 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
Fin
INICIO
Enterob,h,a,p
Leerb,h
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
5 3 SKSKSD 15 16
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
INICIO
Entero
Leer
FIN