Vous êtes sur la page 1sur 65

Algoritmo y Estructura de Datos

Semana 1 y Semana 2

QUE ES UN ALGORITMO?

NUESTRA DEFINICION DE ALGORITMO

PARTES DE UN ALGORITMO: Todo algoritmo debe obedecer a la estructura bsica de un sistema, es decir:

Donde: ENTRADA Corresponde al insumo, a los datos necesarios que requiere el proceso para ofrecer los resultados esperados. PROCESO Pasos necesarios para obtener la solucin del problema o la situacin planteada. SALIDA Resultados arrojados por el proceso como solucin.

ENTRADA Valores de de las variables A y B. PROCESO Asignar a la variable Suma, el valor de A mas el valor de B. SALIDA Impresin del valor de la variable Suma, que contiene la sumatoria de los valores de A y B.

Qu ES UN LENGUAJE?

Alcances

Los algoritmos se dividen en: cualitativos, cuantitativos Cualitativos: son aquellos en los que no intervienen clculos numricos como por ejemplo: la bsqueda de la definicin de una palabra en un diccionario, encontrar un nmero telefnico en el directorio, escribir una receta de cocina o el modo de usar un extinguidor de fuego Cuantitativo: son aquellos en los que si intervienen los calculo numricos por ejemplo: el clculo de la nomina de una empresa, la conversin de unidades fsicas.

CARACTERSTICAS DE LOS ALGORITMOS Las caractersticas fundamentales que debe cumplir un algoritmo son: - PRECISIN Indica el orden de realizacin de cada paso dentro del proceso.

- DEFINICION Indica la exactitud y consistencia de los pasos descritos en el proceso, si el algoritmo se prueba dos veces, en estas dos pruebas, se debe obtener el mismo resultado. - FINITUD Indica el nmero razonable de pasos, los cuales deben conllevar a la finalizacin del proceso y producir un resultado en un tiempo finito.

Ejemplo 1: Al disear un algoritmo se debe tener presente las caractersticas de precisin, definicin y finitud. Visualicemos estas caractersticas a travs del siguiente ejemplo: Algoritmo para hacer una torta Entrada: Harina de trigo, mantequilla, huevos, sal, azcar Proceso: 1.- Unir la mantequilla con el azcar 2.- Batir hasta lograr consistencia cremosa 3.- Agregar harina de trigo, huevos, sal y azcar 4.- Batir hasta que esponje 5.- Precalentar el horno, en 250 , y en mantequillar tortera 6.- Una vez logre la consistencia de esponjado, colocar en la tortera 7.- Introducir en el horno por espacio de 45 minutos Salida: Torta

Representacin de un algoritmo
Un algoritmo puede ser representado utilizando diversas tcnicas o mtodos aqu presentamos 3 de estas: 1.- textos narrativos: consiste en escribir paso a paso las acciones que se deben realizar empleando el lenguaje natural; este mtodo no es recomendable ya que puede ser muy extenso. 2.- diagrama de flujo: es posible representar grficamente un algoritmo mediante smbolos, por lo que existe un conjunto estndar de estos smbolos 3.- pseudocdigo: consiste en usar un lenguaje no formal para describir las secuencias de acciones que deben ejecutar.

EJEMPLO: un negocio realiza compra de software atreves de internet el precio y los gastos de envi estn cotizados en dlares por lo que es necesario de conocer el monto de su inversin en pesos mexicanos. SOLUCION: conversin de dlares a pesos

Solucin representada con texto narrativo: PASO 1: leer la cantidad de dlares y el tipo de cambio PASO 2: calcular el equivalente en pesos multiplicado por la cantidad de dlares por el tipo de cambio PASO 3: escribir el resultado en pesos

SOLUCION REPRESENTADA CON PSEUDOCODIGO


INICIO LEER [ cantidad, tipo de cambio Conversin cantidad * tipo de cambio ] Escribir conversin Fin

NOTA: el smbolo indica tomar el valor de . Se utiliza en los diagramas de flujo y en el seudocdigo para indicar una instruccin asignada.

SOLUCION RESPRESENTADA CON DIAGRAMA DE FLUJO

INICIO
LEER cantidad, tipodecambio
Conversin cantidad * tipo de cambio

ESCRIBIR

Conversin

Fin

SEMANA 2

Instruccin o sentencia Una instruccin esta compuesta por uno o ms comandos (accin), datos, smbolos, variables o constantes y expresiones, que en conjunto representan una instruccin o sentencia. Ejemplo de instruccin: En la construccin de los programas se utiliza una instruccin por lnea. As mismo, se utiliza la alineacin de aquellas instrucciones dentro de las estructuras que las contienen de manera ordenada que permita visualizar el inicio y fin de cada bloque de instrucciones.

Si ASISTIO =SI Entonces Leer Sueldo, Asignar Sueldo = Sueldo + HoraExtra Fin Si Donde:

SI Representa una estructura condicional utilizada para establecer preguntas o programar ciertas condiciones ASISTIO Nombre de una Variable lgica que puede obtener slo dos valores SI o NO. En el ejemplo se programa la condicin de la variables cuando es SI

ENTONCES Parte de la instruccin o estructura condicional LEER SUELDO Instruccin utilizando el comando cuya accin es la lectura de un campo o dato Asignar SUELDO= SUELDO+HORAEXTRA Instruccin de asignacin, permite asignar o calcular el valor que adquirir una variable Fin SI Cierra la estructura condicional Si Entonces Fin Si

Comandos o palabras reservadas Los comandos no son ms que acciones que debe interpretar y ejecutar el computador. Cada comando conserva una sintaxis determinada, es decir la forma de utilizarlo. Los lenguajes computacionales tienen en su repertorio comandos dirigidos al procesamiento de archivos y datos, entre ellos: Leer, Calcular, Asignar, Clasificar, Imprimir.

Datos Los datos son smbolos que se convierten en condiciones, hechos, situaciones o valores. Un dato puede significar un nmero, una letra, un signo ortogrfico o cualquier smbolo que represente una cantidad, una medida, una palabra o una descripcin. La importancia de los datos est en su capacidad de asociarse dentro de un contexto para convertirse en informacin.

TIPOS DE DATOS Como se describi anteriormente, un dato es un campo que puede convertirse en informacin. Existen datos simples (sin estructura) y compuestos (estructurados).

Los datos simples son los siguientes


- Numricos (Reales, Enteros) - Lgicos - Carcter (Char, String)

Ejemplo. Ejemplos de tipos de datos simples


Tipo de datos Numricos Enteros Caractersticas Los nmeros enteros son los nmeros naturales positivos y negativos que conocemos. Ejemplos 1 2 25 146 -456 0.56 1.00 25.13 148.45 -456.23

Numricos Reales

Los nmeros reales, son los nmeros que tienen parte decimal.

Lgicos o bolanos

Son aquellos datos cuyos nicos Nacionalidad = Venezolano valores slo pueden ser: Verdadero (S/N)? (V) o Falso (F), puede encontrarse, Verdadero (True) o Falso (False). Se utiliza para representar las opciones (si/no) a determinadas condiciones.

Ejemplo. Ejemplos de tipos de datos simples


Tipo de datos Carcter o Char Caractersticas Su valor lo comprenden todos los caracteres alfabticos, maysculas y minsculas (A Z), numricos (0 9) y smbolos especiales (#,@,%,&). Su valor esta representado por un Abril conjunto de caracteres. Reporte Anual de Fallas Tcnicas 1 de mayo, Da del Trabajador Ejemplos

Carcter String o cadena

Ejercicio. Identifique en la tabla a continuacin los tipos de datos simples (numricos, lgicos y carcter)
Dato
V 2005 -4.25 % MIL5008 Estado Texas DXLVII BARRANQUILLA A TUMACO1826

Repuesta

Dato
3,147114 0,50 10.000.000,00 3 Barranquilla F 1038 CAR/$$22 @ -39,78

Repuesta

VARIABLES Y CONSTANTES Son espacios de memoria creados para contener valores que de acuerdo a su naturaleza deseen mantenerse (Constantes) o que puedan variar (Variables).

Constante Es un dato que permanece con un valor, sin cambios, es decir constante, a lo largo del desarrollo del algoritmo o a lo largo de la ejecucin del programa.
Se utiliza cuando necesitamos que el valor de determinada variable se mantenga durante la ejecucin del programa o hasta tanto se requiera su cambio.

Variable Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo o en el transcurso de la ejecucin del programa.

Una variable descrita o declarada de un tipo determinado, slo podr contener, valores de ese tipo. Una variable declarada numrica entera, no podr contener nmeros reales. Se utiliza cuando el dato que contiene sufrir cambios o variar en la medida que cambien los valores que maneje.

Los algoritmos se Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo) por ejemplo. Escribe un algoritmo para distinguir si es mayor o menor de edad INICIO Edad: Entero ESCRIBA cual es tu edad? Lea Edad SI Edad >=18 entonces ESCRIBA Eres mayor de Edad FINSI ESCRIBA fin del algoritmo FIN

Sumar dos nmeros


Inicio Declarar variable Suma=0 Leer Primer Nmero Asignarlo a la variable A Leer Segundo Nmero Asignarlo a la variable B Asignar el valor de A + B a la variable Suma Suma= A + B Imprimir valor de Suma

Las estructuras condicionales comparan una variable contra otro(s)valor (es), para que en base al resultado de esta comparacin, se siga un curso de accin dentro del programa. Cabe mencionar que la comparacin se puede hacer contra otra variable o contra una constante, segn se necesite. Existen tres tipos bsicos, las simples, las dobles y las mltiples.
Simples:
Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma: Pseudocdigo: Diagrama de flujo:

Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma:

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin.

Donde: Si:Indica el comando de comparacin Condicin : Indica la condicin a evaluar Entonces : Precede a las acciones a realizar cuando se cumple la condicin Instruccin(es):Son las acciones a realizar cuando se cumple o no la condicin si no :Precede a las acciones a realizar cuando no se cumple la condicin Dependiendo de si la comparacin es cierta o falsa, se pueden realizar una o ms acciones.

Mltiples: Las estructuras de comparacin mltiples, son tomas de decisin especializadas que permiten comparar una variable contra distintos posibles resultados, ejecutando para cada caso una serie de instrucciones especificas. La forma comn es la siguiente:

Definicin de While (Mientras). Una de las estructuras de repeticin empleada en la programacion de algoritmos. While permite al programador especificar las veces que se repita una accin (una o ms sentencias de programacion) mientras una condicin se mantenga verdadera. Mientras condicion hacer instruciones Fin mientras Mientras la condicin se mantenga verdadera, el bloque de instrucciones dentro de las llaves se ejecutar "x" cantidad de veces. Es necesario que alguna vez la condicin se haga falsa, pues de lo contrario se entrara en un ciclo infinito de repeticiones (bucle infinito) y el programa se considerara bloqueado. Por lo tanto es necesario que en el bloque de instrucciones dentro de la estructura while, se ejecute alguna accin que en algn momento haga que la condicin

EXPRESIONES Y OPERADORES
Las expresiones son combinaciones de constantes, variables, smbolos de operacin (matemticos, lgicos y relacionales) Las expresiones pueden ser simples o compuestas Las expresiones simples, son asignaciones directas a una variable o constante de un valor numrico o carcter, vase el siguiente ejemplo

Una expresin compuesta es la asignacin a una variable o constante que surge de la unin de valores numricos, operadores aritmticos, de comparacin o lgicos. Por ejemplo:

La forma de escribir una asignacin, es: A = 20 Donde la variable que esta a la izquierda toma el valor que se le asigna.

Esto tambin indica que pierde el valor que hasta ahora tena.

Nombre_variable = expresin El valor de Nombre_variable se sustituye por el valor de expresin


Ejemplos: C = 13 B = 25 X=C+B (despus de estas instrucciones, X contendr el valor 13 + 25 = 38)

Expresiones Aritmticas
Son utilizadas para construir formulas matemticas. Las variables y constantes utilizadas son de naturaleza numrica, es decir nmeros enteros o reales, y las operaciones a efectuar son de orden aritmtico.

Operadores aritmticos

Leer (Nombre_variable) Esta instruccin pide al usuario un valor que ser asignado a la variable Nombre_variable, es decir, en Nombre_variable se almacena el valor ingresado por el usuario.
Operadores de relacin Los operadores relacionales se utilizan para formar expresiones que al ser evaluadas producen un valor de tipo lgico: verdadero o falso.

== comparacin Ej. 2==3 false o 2==2 true = asignacin Ej. A=2

Estructuras de seleccin Ejemplo: Si A = 5 entonces escribe("A es 5") si no escribe("A no es igual a 5") fin si

Estructuras de repeticin Ejemplo: leer(contrasea) mientras (contrasea < > admin") escribe("La contrasea es incorrecta !") leer (contrasea) fin-mientras escribe("Ha tecleado la contrasea correcta")

Salida de resultados

los argumentos pueden ser cadenas de caracteres entrecomilladas o variables: Si son cadenas de caracteres entrecomillados se imprime literalmente lo que est entre comillas Si son variables se imprime el contenido de dicha variable (no el nombre)
Ejemplo: sueldo = 1000 trabajador = Martnez escribe( el sueldo de , trabajador , es , sueldo , Euros. ) La instruccin escribe, muestra lo siguiente: el sueldo de Martnez es 1000 Euros.

EJERCICIOS: ENUNCIADOS Ejercicio 1: Observa la siguiente secuencia de instrucciones: 1. A = 5 2. B = 7 3. C = 2 4. A = A + B + C 5. B = C / 2 6. A = A / B + A ^ C 7. Escribe (A) Ahora responde a las siguientes cuestiones: 1. Qu valor contiene A despus de la cuarta instruccin? 2. Qu valor contiene B despus de la quinta instruccin? 3. Qu valor contiene A despus de la sexta instruccin? 4. Qu valor imprime la ltima instruccin? 5. Si en lugar de escribe(A) hubisemos escrito escribe(A) Qu aparecera?

Ejercicio 2: Observa la siguiente secuencia de instrucciones: A=5 B=7 C=1 D = (A == B) E = (A <> B) F = (MOD(B/A) >= C) Ahora responde a las siguientes cuestiones: 1. Qu valor contiene D despus de la cuarta instruccin? 2. Qu valor contiene E despus de la quinta instruccin? 3. Qu valor contiene F despus de la sexta instruccin? 4. Cunto valen A, B y C despus de la ltima instruccin?

Ejercicio 3: Observa la siguiente secuencia de instrucciones: leer(A) leer(B) leer(C) D = (A == B) E = (A <> B) F = (MOD(B/A) >= C)

Ahora responde a las siguientes cuestiones: Supongamos que el usuario introduce 3 en A, 4 en B y 5 en C

1. Qu valor contiene D despus de la cuarta instruccin? 2. Qu valor contiene E despus de la quinta instruccin? 3. Qu valor contiene F despus de la sexta instruccin? 4. Cunto valen A, B y C despus de la ltima instruccin?

ejemplo, supongamos que en una empresa requieren disear un programa de incentivo a los jvenes empleados, entre los que se encuentran los aprendices que tienen una edad por debajo de los 18 aos y los empleados que tienen 18 y ms aos; de acuerdo a su edad se les brinda la oportunidad de un bono, para los empleados fijos equivale al 50 % de su salario y para los aprendices el 40 %. El algoritmo se desarrolla realizando la lectura de los datos hasta que sea fin de archivo, calcular el incentivo correspondiente e imprimir cdula, nombre, sueldo anterior, incentivo y sueldo nuevo.

Ejemplo. Clculo de bonificacin. Inicio Declaracin de variables Leer Datos hasta fin_ archivo Cdula, Nombre, Edad

Si Edad >= 18 INCENTIVO = SUELDO * 0,50 sino INCENTIVO = SUELDO * 0,40 Fin si
MONTOTOTAL = SUELDO + INCENTIVO ESCRIBE (MONTOTOTAL) Fin

Inicio Declaracin de variables que se requieren Lectura de los datos de entrada Evala el tipo de empleado, Si ya cumpli 18 aos, pertenece a los empleados fijos, y se calcula el monto del incentivo en base al 50%. De ser ese el caso, se ejecutan las dos instrucciones que se encuentran dentro del primer bloque. De lo contrario, no se cumple la condicin anterior, se trata de un aprendiz. Se calcula lo previsto para estos (40%). Se cierra la estructura

Se calcula el monto total y se imprimen los resultados es decir cdula, nombre, sueldo anterior, incentivo, sueldo nuevo.
Fin del algoritmo

Ejercicio 4: Observa la siguiente secuencia de instrucciones:


leer (A) resultado = 1 mientras (A>1) resultado = resultado * A A=A1 fin mientras imprimir(resultado)

Ahora responde a las siguientes cuestiones: Si en la primera instruccin se introduce un valor 2 en A Qu valor se imprime? Si en la primera instruccin se introduce un valor 3 en A Qu valor se imprime? Si en la primera instruccin se introduce un valor 4 en A Qu valor se imprime? Qu se est calculando? Ejercicio 5: Observa la siguiente secuencia de instrucciones:
leer (A) Si (A>0) Imprimir (A,es positivo) Si no Imprimir (A,es negativo) Fin si

Describe, instruccin por instruccin, qu se est haciendo con este algoritmo. Qu pasa si A = 5? Y si A = - 100? Escribe otro algoritmo para distinguir mltiplos de 3 y compralo

Ejercicio 6: Observa la siguiente secuencia de instrucciones: leer (NumeroA) leer (NumeroB) Si (NumeroA < NumeroB) imprimir ("El mayor es:", NumeroB) si-no imprimir ("El mayor es:", NumeroA) fin-si Describe qu se est haciendo con este algoritmo. Qu pasa si NumeroA = 5 y NumeroB = - 100? Qu pasa si NumeroA = 10 y NumeroB = 100? Qu pasa si NumeroA = 10 y NumeroB = 10?

1. 2. 3.

Sumar dos nmeros Escribe un algoritmo para distinguir si es mayor o menor de edad Un algoritmo que escriba el nombre y el apellido del grupo de trabajo

Vous aimerez peut-être aussi