Jorge magaña

Page 1

QUE ES UN ALGORITMO? 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.


DISEÑO DE UN ALGORITMO •

Fases para el diseño de un algoritmo:

• • •

-Algoritmo narrado -Algoritmo detallado - Diagrama de flujo o pseudocódigo

Algoritmo narrado

Diseño de un algoritmo

Algoritmo detallado

Diagrama de flujo o pseudocódigo.


EJEMPLO DE UN ALGORITMO NARRADO • Ejemplo: Algoritmo para cambiar un foco fundido INICIO 1.Situar escalera bajo el foco quemado. 2.Elegir un foco de reemplazo (de la misma potencia que el anterior). 3.Subir por la escalera hasta alcanzar el foco. 4.Girar el foco contra las manecillas del reloj hasta que estÊ suelto. 5.Ubicar el foco nuevo en el mismo lugar que el anterior. 6.Enroscar en el sentido de las manecillas del reloj hasta que quede apretado. 7.Bajar de la escalera. FIN


ALGORITMO DETALLADO • ALGORITMO DETALLADO: •

Es un lenguaje mas limitado , con reglas de sintaxis y semánticas definidas , esto quiere decir que consiste en crear programas con instrucciones agrupadas en un estricto orden secuencial.


DIAGRAMA DE FLUJO Es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva. -

SIMBOLO

NOMBRE

ACCION

TERMINAL

Representa el inicio o el fin del diagrama de flujo.

ENTRADA Y SALIDA

Representa los datos de entrada y salida.

Decisión

Representa las comparaciones de dos o mas valores , tiene dos salidas de información falso o verdadero.

PROCESO

Indica todas las acciones o cálculos que se ejecutaran con los datos de entrada u otros obtenidos.

LINEAS DE FLUJO DE INFORMACIÓN

Indican el sentido de la información obtenida y su uso posterior en algún proceso.

CONECTOR

Este símbolo permite identificar la continuación de la información si el diagrama es muy extenso.


EJEMPLO DE UN DIAGRAMA DE FLUJO Calcula el área de un triangulo en diagrama de flujo.

INICIO

LEER BASE

LEER ALTURA

Result=(BASE*ALTURA)/2

Escribir "Resultado = a Result.

Fin

En pseudocódigo. Inicio Result<-a*b/2 Introduce la base Leer a Introduce la altura Leer b “El área de un triangulo es”, Result.


PSEUDOCÓDIGO El pseudocódigo es una descripción informal de alto nivel de un algoritmo informático de programación, compacto e informal, que utiliza las convenciones estructurales de un lenguaje de programación. INICIO 1.- Ejemplo de pseudocódigo y en diagrama de flujo. Proceso Promedio Inicio Escribir "Ingrese la cantidad de datos:" Leer n acum<-0 Para i<-1 Hasta n Hacer Escribir "Ingrese el dato ",i,":" Leer dato acum<-acum+dato FinPara

"Ingrese la cantidad de datos" N Acum<-0

"Ingrese el dato ",i,;

dato

Acum<-acum+dato

prom<-acum+dato

prom<-acum/n

"El promedio es ",prom

Escribir "El promedio es: ",prom FIN

FinProceso


ESTRUCTURAS SECUENCIALES La estructura secuencial es aquella en la que una acción (instrucción) sigue a otra en secuencia. Las tareas se suceden de tal modo que la salida de una es la entrada de la siguiente y así sucesivamente hasta el fin del proceso. En Pseudocódigo una Estructura Secuencial se representa de la siguiente forma:

PSEUDOCODIGO :Nombre Variables. Nombre: Tipo de dato. Constantes

INICIO

accion 1

accion 2

Nombre = Valor INICIO acción accion1 accion2 acción N FIN

accion N

FINAL


EJEMPLO DE UNA ESTRUCTURA SECUENCIAL. Ejemplo 1: Escriba un algoritmo que pregunte por dos números y muestre como resultado la suma de estos. Use Pseudocódigo y diagrama de flujos. PSEUDOCÓDIGO SUMAR

INICIO

num1,num2,Suma:ENTERO

Variables: Num1,Num2,Suma: Entero INICIO Escribir ('introduzca dos números') leer (Num1, Num2) Suma=Num1 + Num2 escribir ('La suma es:' , Suma) FIN •

"Diga dos numeros"

Num1,Num2

Suma<- Num1+Num2

"La suma es ;", Suma

FIN


ESTRUCTURAS DE DECISIÓN ESTRUCTURAS DE DECISIÓN: Estas permiten seleccionar la próxima sentencia a ejecutarse sobre la base de una decisión (expresión lógica o variable lógica). Los tipos de estructuras de decisión que podemos encontrar son: ● Simples ● Dobles •● Múltiples ESTRUCTURAS DE DECISION SIMPLE _SI: La estructura de selección simple permite ejecutar una acción o un grupo de acciones sólo si se cumple una determinada condición. Si la condición es verdadera se ejecuta la acción acciona; en caso contrario, no se hace nada. Pseudocódigo (acción simple)SI( condición ) acciona

Si Proposición

Condición

Pseudocódigo (acción compuesta) SI( condición ){ acciona1 acciona2 . . . Accionan. Por ejemplo, si se desea cambiar el signo de un número únicamente en caso que sea negativo, podemos escribir: SI( numero < 0 ) numero = -1 * numero

No


SELECCIÓN DOBLE SI -SINO La estructura de selección doble permite seleccionar una ruta de dos rutas posibles en base a la verdad o falsedad de una condición. Si la condición es verdadera, se ejecuta la acción A; en caso contrario, se ejecuta la acción B. Pseudocódigo (acción simple)SI( condición ) acciona SINO accionb Pseudocódigo (acción compuesta)SI( condición ){ acciona1 acciona2 . . . accionan

Si

Acciona

Condición

No

Accionb

SINO{ accionb1 accionb2 . . . Accionbn. Por ejemplo: la siguiente estructura de selección doble determina si una persona es mayor o menor de edad: SI( edad >= 18 ) estado = "Mayor de edad" SINO estado = "Menor de edad"


ESTRUCTURA DE DECISIÓN MÚLTIPLE SEGUN La estructura de selección múltiple SEGUN permite elegir una ruta de entre varias rutas posibles, en base al valor de una variable que actúa como selector. La estructura compara el valor del selector con las constantes c1, c2, ..., en orden descendente. En el momento en que se encuentre una coincidencia, se ejecuta la acción correspondiente a dicha constante y se abandona la estructura. V PseudocódigoSEGUN( selector ){V selector==c1 accion1 break CASO c1 : accion1 CASO c2 : accion2 F CASO c3 : accion3 V selector==c2 . accion2 break . . CASO cn : accionn F DEFECTO : acciondefecto V accion3 selector==cn break Por ejemplo, la siguiente estructura de selección múltiple determina el nombre de la estación del año conociendo el número de la estación F (1 para Primavera, 2 para Verano, 3 para Otoño y 4 para Invierno) : acciondecto SEGUN(numeroEstacion){ CASO 1 : nombreEstacion = "Primavera" CASO 2 : nombreEstacion = "Verano" CASO 3 : nombreEstacion = "Otoño" DEFECTO : nombreEstacion = "Invierno"


ESTRUCTURAS DE REPETICIÓN Permiten la ejecución de una lista o secuencia de instrucciones (bloque de instrucciones) en varias ocasiones. El número de veces que el bloque de instrucciones se ejecutará se puede especificar de manera explícita, o a través de una condición lógica que indica cuándo se ejecuta de nuevo y cuándo no. A cada ejecución del bloque de instrucciones se le conoce como una iteración

Existen tres tipos principales de sentencias de repetición: - Ciclo mientras - Ciclo haga-mientras - Ciclo para

.


CICLO MIENTRAS El ciclo mientras permite ejecutar un bloque de instrucciones mientras que una expresión lógica dada se cumpla, es decir, mientras su evaluación dé como resultado verdadero. La expresión lógica se denomina condición y siempre se evalúa antes de ejecutar el bloque de instrucciones. Si la condición no se cumple, el bloque no se ejecuta. Si la condición se cumple, el bloque se ejecuta, después de lo cual la instrucción vuelve a empezar, es decir, la condición se vuelve a evaluar. En el caso en que la condición evalúe la primera vez como falsa, el bloque de instrucciones no será ejecutado, lo cual quiere decir que el número de repeticiones o iteraciones de este bloque será cero. Si la condición siempre evalúa a verdadero, la instrucción se ejecutará indefinidamente, es decir, un número infinito de veces.

ENTRADA

CONDICION

f

v BLOQUE

En Pseudocódigo:

•mientras <condición> hacer • <bloque instrucciones> fin _mientras

Donde, <condición> es la expresión lógica que se evalúa para determinar la ejecución o no del bloque de instrucciones, y <bloque instrucciones> es el conjunto de instrucciones que se ejecuta si la condición evalúa a Verdadero.


EJEMPLO DE CICLO MIENTRAS EJEMPLO: Separa un numero entero en sus dígitos Proceso Dígitos Escribir "Ingrese un numero entero positivo:" Leer n

Proceso Digitos

"Ingrese un numero entero positivo" n

// Primero, Contar Cuantos Dígitos cont <- 0 aux <- n Mientras aux>0 hacer // mientras no sea cero cont <- cont + 1 // contar cuantos dígitos aux <- trunc(aux/10) // dividir por 10 y despreciar los de Fin Mientras Escribir "El numero tiene ",cont," dígitos" // luego, mostrarlos uno por uno aux<-n Para i<-1 hasta cont Hacer pot <- 10^(cont-i) // por cuanto hay que dividir para obtener el primer digito digito <- trunc (aux / pot) // obtener el digito aux <- aux - digito*pot // quitar ese digito al numero Escribir "El digito ",i," es ",digito Fin Para Fin Proceso

cont<-0

aux <- n

aux>0

cont <- cont + 1

aux <- trunc(aux/10)

"El numero tiene " , cont , "digitos"

aux<-n

pot<-10*(cont-i) digito<-trunc(aux/pot) aux<-aux-digito*pot "El digito",i,"es , digito

Fin proceso


CICLO PARA El ciclo Para ejecuta un bloque de instrucciones un número determinado de veces. Este número de veces está controlado por una variable contadora (de tipo entero) que toma valores desde un límite inferior hasta un límite superior. En cada ciclo después de ejecutar el bloque de instrucciones, la variable contadora es incrementada en 1 automáticamente y en el momento en que la variable sobrepasa el límite superior, el ciclo termina.

para variable  valor_inicial hasta valor_final [incremento valor_incremento] hacer bloque_de_instrucciones

fin_para En una instrucción repetitiva Para, siempre se utiliza una variable a la que se le debe asignar un valor_inicial 1.Inicio 2.para contador  1 hasta 10 incremento 1 hacer 3.Escribir (contador) 4.fin_para 5.Fin

VarControl<-Val_inicial

SI

Sentencias

VarControl<VarControl+1

VarControl <=Val_final

No

.


EJEMPLO DE CICLO PARA // Calcula el promedio de una lista de N datos Proceso Promedio:

Proceso Promedio

"Ingrese la cantidad de datos!

Escribir "Ingrese la cantidad de datos:" Leer n

n

acum<-0

acum<-0 ingrese el dato , i

Para i<-1 Hasta n Hacer Escribir "Ingrese el dato ",i,":" Leer dato acum<-acum+dato FinPara prom<-acum/n Escribir "El promedio es: ",prom FinProceso

dato

acum<-acum+dato

prom<-acum/n

"El promedio es ",prom

Fin proceso


BIBLIOGRAFIA Paginas Web: http://es.wikipedia.org/wiki/Algoritmo Wikipedia Definiciones. http://www.cs.buap.mx/~andrex/ pagina del profesor José Andrés vesques flores http://informaticaingqmi.blogspot.mx/2010/11/estructuras-de-decision-simples-y.html blog de la Ing. María Piña. http://www.fceqyn.unam.edu.ar/infoiq/temas/Algoritmia/Algoritmia/cap03.htm ejercicios propuestos por David Espinoza Sandoval


Turn static files into dynamic content formats.

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