Sunteți pe pagina 1din 20

Expresin de Problemas y Algoritmos

Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS

3.1. Qu es un algoritmo?
Analizar el problema

Depurar El algoritmo

Disear un algoritmo

Traducir el algoritmo
Figura: 1: Segunda Fase del Ciclo de Programacin

Como expresamos en la Unidad 1, luego de analizar detalladamente el problema hasta entenderlo completamente, se procede a disear un algoritmo (trazar un plan) que lo resuelva por medio de pasos sucesivos y organizados en secuencia lgica. El concepto intuitivo de algoritmo (procedimientos y reglas) se puede encontrar en procesos naturales de los cuales muchas veces no se es consciente. Por ejemplo, el proceso digestivo es un concepto intuitivo de algoritmo con el que se convive a diario sin que haga falta una definicin matemtica del mismo. Tener claro el proceso digestivo, no implica que los alimentos consumidos nutran ms. La familiaridad de lo cotidiano impide a las personas ver muchos algoritmos que se suceden a su alrededor. Procesos, rutinas o biorritmos naturales como la gestacin, las estaciones, la circulacin sangunea, los ciclos csmicos, etc., son algoritmos naturales que generalmente pasan desapercibidos. Un Algoritmo es una secuencia ordenada de instrucciones, pasos o procesos que llevan a la solucin de un determinado problema.
Dato Curioso La palabra Algoritmo tiene su origen en el nombre del matemtico Persa "Mohamed ibn Musa al Khwarizmi" (825 d.C.). Su apellido fue traducido al latn como Algorismus y posteriormente paso al espaol como Algoritmo. Khwarizmi fue bibliotecario en la corte del califa al-Mamun y astrnomo en el observatorio de Bagdad. Sus trabajos de lgebra, aritmtica y tablas astronmicas adelantaron enormemente el pensamiento matemtico y fue el primero en utilizar la expresin al-yabr (de la que procede la palabra lgebra). Su trabajo con los algoritmos introdujo el mtodo de clculo utilizando la numeracin arbiga y la notacin decimal.

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS En el mbito de la computacin, los Algoritmos son una herramienta que permite describir claramente un conjunto finito de instrucciones, ordenadas secuencialmente y libres de ambigedad, que debe llevar a cabo una computadora para lograr un resultado previsible. Caractersticas de un Algoritmo: Realizable: El proceso algortmico debe terminar despus de una cantidad finita de pasos. Se dice que un algoritmo es inaplicable cuando se ejecuta con un conjunto de datos iniciales y el proceso resulta infinito o durante la ejecucin se encuentra con un obstculo insuperable sin arrojar un resultado. Comprensible: Debe ser claro lo que hace, de forma que quien ejecute los pasos (ser humano o mquina) sepa qu, cmo y cundo hacerlo. Debe existir un procedimiento que determine el proceso de ejecucin. Preciso: El orden de ejecucin de las instrucciones debe estar perfectamente indicado. Cuando se ejecuta varias veces, con los mismos datos iniciales, el resultado debe ser el mismo siempre. La precisin implica determinismo. Ejemplos Un procedimiento que realizamos varias veces al da consiste en lavarnos los dientes. Veamos la forma de expresar este procedimiento como un Algoritmo: [1] Tomar la crema dental [2] Destapar la crema dental [3] Tomar el cepillo de dientes [4] Aplicar crema dental al cepillo [5] Tapar la crema dental [6] Abrir la canilla del lavatorio [7] Remojar el cepillo con la crema dental [8] Cerrar la canilla del lavatorio [9] Frotar los dientes con el cepillo [10] Abrir la canilla del lavatorio [11] Enjuagarse la boca [12] Enjuagar el cepillo [13] Cerrar la canilla del lavatorio [14] Secarse la cara y las manos con una toalla Los pasos para cambiar una lmpara quemada son:

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS [1] Ubicar una escalera debajo de la lmpara quemada [2] Tomar una lmpara nueva [3] Subir por la escalera [4] Girar la lmpara quemada hacia la izquierda hasta soltarla [5] Enroscar la lmpara nueva en el portalmparas hasta apretarla [6] Bajar de la escalera [7] Fin Discutir con sus compaeros de clase la forma de optimizar los algoritmos presentados como ejemplo.

Dato Curioso En 1936, el lgico y matemtico ingls Alan Turing (1291-1954), construy la primera mquina conceptual como una herramienta matemtica para estudiar los procesos algortmicos. Un clculo en una mquina de Turing consta de una secuencia de pasos que ejecuta su unidad de control. Si un problema se puede resolver en la mquina de Turing entonces es algortmico, y recprocamente si un problema tiene solucin algortmica, entonces se puede resolver en la mquina de Turing.

3.2. Pensamiento Algortmico


Con frecuencia, cuando se habla de algoritmos, aparecen tres tipos de pensamiento que generalmente se relacionan con ellos y que se utilizan indiscriminadamente como sinnimos: Pensamiento Computacional, Pensamiento Algortmico y Pensamiento Procedimental. Veamos sus diferencias: El pensamiento Computacional hace referencia a la representacin y solucin de problemas utilizando inteligencia humana, de mquinas o de otras formas que ayuden a resolver el problema. El pensamiento Algortmico se refiere al desarrollo y uso de algoritmos que puedan ayudar a resolver un tipo especifico de problema o a realizar un tipo especifico de tarea. Por su parte, el pensamiento Procedimental se ocupa del desarrollo y utilizacin de procedimientos diseados para resolver un tipo especifico de problema o para realizar un tipo especifico de tarea, pero que no necesariamente, siempre resulta exitoso. El Pensamiento Algortmico incluye elementos tales como: descomposicin funcional, repeticin (iteracin y/o recursin), organizacin de datos (registro, campo, arreglo, lista, etc.), generalizacin y parametrizacin, diseo por descomposicin de un problema en partes ms pequeas y manejables (top-down) y refinamiento. El Pensamiento Algortmico est fuertemente ligado al pensamiento procedimental requerido en la programacin de computadoras; sin embargo, su desarrollo puede ser til en la resolucin de problemas en otros ambientes diferentes a los de la programacin. Una diferencia notoria entre un algoritmo y un programa es que el algoritmo incorpora las caractersticas estructurales

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS bsicas de la computacin, independientemente de los detalles de su implementacin; mientras que un programa tiene un conjunto especfico de detalles para resolver un problema. Se puede observar que una tcnica de solucin (correspondiente al algoritmo) se puede utilizar en diferentes situaciones problemticas (correspondiente a los programas). De manera inversa, se espera que una solucin exitosa de problemas incorpore procesos generales que son independientes de las situaciones especficas. Las siguientes actividades son de razonamiento abstracto que permite entrenarse y desarrollar habilidades de pensamiento algortmico y procedimental. a. Completar el cuadro con un ? con la figura (1 a 5) correspondiente para completar la secuencia:

b. Marcar la figura que no pertenece a la secuencia:

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS

c. Sin hacer ningn dibujo, imaginar y describir las figuras que van en las posiciones con un ?. Luego, dibujar las secuencias completas en la cuadricula inferior:

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS

d. Ordenar los pasos para pescar en un ro: ___ El pez se traga el anzuelo. ___ Enrollar la lnea. ___ Tirar la lnea al agua.

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS ___ Llevar el pescado a casa. ___ Quitar el anzuelo de la boca del pescado. ___ Poner carnada al anzuelo. ___ Sacar el pescado del agua.

3.3. Pre y poscondicin de un algoritmo


Precondicin es una informacin que se conoce como verdadera antes de comenzar el algoritmo. Ejemplo para el algoritmo de la pesca citado anteriormente: Precondicin: Estamos en el ro y el anzuelo est en la lnea Poscondicin es una informacin que debiera ser verdadera al finalizar el algoritmo. Poscondicin: El pescado est en casa o no pescamos ninguno

3.4. Representacin de Algoritmos


Los Algoritmos se puede expresar de muchas maneras, pero en este curso se tratarn slo dos formas: Seudocdigo y Diagramas de Flujo. En Seudocdigo la secuencia de instrucciones se representa por medio de frases o proposiciones, mientras que en un Diagrama de Flujo se representa por medio de grficos. En las secciones anteriores se ha utilizado un lenguaje casi natural para especificar las instrucciones que debern llevarse a cabo. Esto, si bien facilita la escritura del algoritmo para quien debe decir cmo resolver el problema, dificulta la comprensin de dicha solucin por parte de quien debe interpretarla. Algunos de los ejemplos presentados hasta el momento, seguramente pueden tener diferentes interpretaciones. Por qu? Fundamentalmente porque el lenguaje natural tiene varios significados para una palabra y porque admite infinitas combinaciones para armar un enunciado. Estas dos condiciones son indeseables" para un lenguaje de expresin de problemas utilizable en Informtica. En el algoritmo presentado en la pgina 3 de esta unidad, Qu sucede si la lmpara est en el centro de la habitacin y la escalera no es de dos hojas? Dnde se asegura que se dispone de lmparas nuevas? Tomar la lmpara" equivale a tomar la lmpara con la mano para poder girarla? Dnde se deja la lmpara quemada cuando se reemplaza?, etc. Es necesario que el significado de cada instruccin del lenguaje sea exactamente conocido y como consecuencia no se pueden admitir infinitas interpretaciones. Un lenguaje de expresin

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS de problemas contiene un conjunto finito y preciso de instrucciones o primitivas utilizables para especificar la solucin buscada. Es necesario que el significado de cada primitiva del lenguaje sea exactamente conocido y como consecuencia no se pueden admitir infinitas primitivas. Ntese que desde el punto de vista del diseo del algoritmo, el contar con un numero finito de instrucciones posibles termina con el problema de decidir, de una forma totalmente subjetiva, el grado de detalle necesario para que los pasos a seguir puedan ser interpretados correctamente. El conjunto de instrucciones determinar cuales son los pasos elementales posibles que se utilizarn para el diseo de la solucin. Un lenguaje de expresin de problemas debe reunir las siguientes caractersticas: Debe estar formado por un nmero de instrucciones finito. Debe ser completo, es decir que todas las acciones de inters deben poder expresarse con dicho conjunto de instrucciones. Cada instruccin debe tener un significado (efecto) preciso. Cada instruccin debe escribirse de modo nico. No siempre los problemas se expresan con primitivas que representen un subconjunto preciso del lenguaje natural: se puede utilizar un sistema de smbolos grficos (tales como los de los diagramas de flujo); puede emplearse una simbologa puramente matemtica; puede crearse un lenguaje especial orientado a una aplicacin; pueden combinarse grficas con texto, etc. De todos modos, cualquiera sea la forma del lenguaje elegido ste siempre respetar las caractersticas mencionadas anteriormente. Por qu? Porque si se quiere que una mquina interprete y ejecute las rdenes del lenguaje, por ms sofisticada que sea, requerir que las rdenes diferentes constituyan un conjunto finito; que cada orden pueda ser interpretada de un modo nico y que los problemas solubles por la mquina sean expresables en el lenguaje. 3.4.1. Diagramas de Flujo El Diagrama de Flujo es una herramienta grfica valiosa para la representacin esquemtica de la secuencia de instrucciones de un algoritmo o de los pasos de un proceso. Simbologa de los diagramas de flujo

Con el fin de evitar la utilizacin de smbolos diferentes para representar procesos iguales, la Organizacin Internacional para la Estandarizacin (ISO, por su sigla en ingls) y el Instituto Nacional Americano de Estandarizacin (ANSI, por su sigla en ingls), estandarizaron los smbolos que mayor aceptacin tenan en 1985.

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS La Tabla 1 presenta los smbolos de diagramas de flujo que utilizaremos en este curso. Smbolo Funcionalidad del Smbolo
Inicio/Final Se utiliza para indicar el inicio y el final de un diagrama; del Inicio slo puede salir una lnea de flujo y al Final slo debe llegar una lnea. Entrada General Entrada de datos en General. Expresa lectura. Accin/Proceso General Indica una accin o instruccin general (cambios de valores de variables, asignaciones, operaciones aritmticas, etc.) Decisin En su interior se almacena una condicin, y dependiendo de su resultado lgico (verdadero o falso) se sigue por un camino del diagrama u otro. Este smbolo se utiliza en la estructura selectiva si entonces que estudiaremos en la Unidad 5 y en las estructuras iterativas precondiconales y poscondicionales que analizaremos en la Unidad 6. Se utiliza para representar la estructura selectiva doble si entonces/sino, en su interior se almacena una condicin. Si el resultado es verdadero se contina por el camino de la izquierda, y si es falso por el camino de la derecha. Decisin Mltiple En su interior se almacena un selector, y dependiendo de su valor se sigue por una de las ramas o caminos alternativos. Este smbolo se utiliza para la estructura selectiva opcin de, que analizaremos en la Unidad 5. Salida Impresa Representa la impresin de resultados. Expresa escritura.

NO

SI

SI

NO

uno

varios

** Ao 2010 **

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS


Flujo Expresa la direccin del flujo del diagrama, el sentido de ejecucin de las operaciones. Conector Indica el enlace de dos partes de un diagrama dentro de la misma pgina. Conector Indica el enlace de dos partes de un diagrama en pginas diferentes.
Tabla 1: Smbolos de Diagramas de Flujo

Figura: 2: Fases en la Construccin de un Diagrama de Flujo

Las fases mostradas en la Figura 2 se presentan en la mayora de los diagramas de flujo, a veces en orden diferente o repitiendo alguna de ellas o tomando alguna decisin. Reglas para la elaboracin de diagramas de flujo Cuando el algoritmo se desea expresar en forma de diagrama de flujo, se deben tener en cuenta algunas reglas o principios bsicos para su elaboracin (Rojas & acato, 1980):

** Ao 2010 **

10

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS Poner un encabezado que incluya un ttulo que identifique la funcin del algoritmo; el nombre del autor; y la fecha de elaboracin; Slo se pueden utilizar smbolos estndar (ISO 5807); Los diagramas se deben dibujar de arriba hacia abajo (top_down) y de izquierda a derecha (right to left); La ejecucin del programa siempre empieza en la parte superior del diagrama; Los smbolos de Inicio y Final deben aparecer solo una vez; La direccin del flujo se debe representar por medio de flechas (lneas de flujo); Todas las lneas de flujo deben llegar a un smbolo o a otra lnea; Una lnea de flujo recta nunca debe cruzar a otra. Cuando dos lneas de flujo se crucen, una de ellas debe incluir una lnea arqueada en el sitio donde cruza a la otra (Figura 3); No puede llegar ms de una lnea a un smbolo. (Figura 4); Las lneas de flujo deben ser rectas, verticales y horizontales (nunca inclinadas); Se deben inicializar las variables que se utilicen o permitir la asignacin de valores mediante consulta al usuario; Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetra; Cada rombo de decisin debe tener al menos dos lneas de salida (una para SI y otra para NO); La notacin utilizada en el diagrama de flujo debe ser independiente del lenguaje de programacin. La solucin presentada en el diagrama puede escribirse posteriormente en cualquier lenguaje de programacin; Cuando realizamos una tarea compleja es conveniente poner comentarios que expresen o ayuden a entender lo que hicimos. (texto entre { }); Las acciones y decisiones se deben describir utilizando el menor nmero de palabras posible; sin que resulten confusas o poco claras; Si el Diagrama se vuelve complejo y confuso, es mejor utilizar smbolos conectores para reducir las lneas de flujo; Todo el Diagrama debe ser claro, ordenado y fcil de recorrer; El Diagrama se debe probar recorrindolo con datos iniciales simples (prueba de escritorio).

** Ao 2010 **

11

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS

Figura: 3: Cruce de lneas de flujo

Figura: 4: A cada smbolo debe llegar una nica lnea

3.4.2. Pseudocdigo
4

El seudocdigo est compuesto por proposiciones informales en espaol compuestas por metapalabras o palabras reservadas o primitivas que permiten expresar detalladamente las instrucciones que llevan desde un estado inicial (problema) hasta un resultado deseado (solucin). En la siguiente tabla se enumeran las metapalabras que se utilizarn en este curso:

** Ao 2010 **

12

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS Metapalabra


comienza constantes entonces escribir escribirln hacer hasta leer mientras no opcin de para repetir si sino termina variables y

Uso
equivalente al parntesis de apertura en la sintaxis de un enunciado compuesto Encabezamiento para la definicin de constantes. parte de la seleccin simple o doble, que gua el control cuando la condicin es verdadera Procedimiento para imprimir. Procedimiento para imprimir, y luego saltar a la lnea siguiente. parte ejecutora de la estructura iterativa finita parte final de la estructura iterativa poscondicional repetir, o prefijo del lmite superior de la variable de control de la iteracin para Procedimiento para leer, para la entrada de datos. parte inicial de la estructura iterativa precondicional mientras operador lgico de negacin operador lgico de disyuncin parte inicial de la seleccin mltiple Parte inicial de la iteracin precondicional para parte inicial de la estructura iterativa poscondicional repetir parte inicial de la seleccin simple o doble parte de la seleccin doble, que gua el control cuando la condicin es falsa equivalente al parntesis de cierre en la sintaxis de un enunciado compuesto encabezamiento para la definicin de variables operador lgico de conjuncin Tabla 2: Metadefiniciones

Analizar el problema

Depurar El algoritmo

Disear un algoritmo

Traducir el algoritmo
Figura: 5: Tercera Fase del Ciclo de Programacin

** Ao 2010 **

13

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS Retomando el problema del ejemplo analizado en la Unidad 1, realizaremos el diseo de su algoritmo y la traduccin a seudocdigo.
ALGORITMO EN DIAGRAMA DE FLUJO

AREA BASE * ALTURA/DIV

Traducimos el algoritmo diseado a SEUDOCDIGO {conocemos la medida de la base y la altura del tringulo} Paso 1: comienza Paso 2: div = 2 Paso 3: base = 3 Paso 4: altura = 4 Paso 5: area base*altura/div Paso 6: escribir (area) Paso 7: termina {en la variable area est almacenado el valor calculado del rea del tringulo rectngulo}

3.5. Conceptos bsicos de programacin


3.5.1. Variables Una variable es una ubicacin de memoria en el computador o en la calculadora que tiene un nombre (identificador) y en la que se pueden almacenar diferentes valores. Para poder utilizar algoritmos con diferentes conjuntos de datos iniciales, se debe establecer una independencia clara entre los datos iniciales de un problema y la estructura de su solucin. Esto se logra mediante la utilizacin de Variables (cantidades que se suelen denotar con letras y nmeros identificadores- y que pueden tomar cualquier valor de un intervalo de valores posibles). En programacin, las Variables son espacios de trabajo (contenedores) reservados para

** Ao 2010 **

14

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS guardar datos (valores). El valor de una Variable puede cambiar en algn paso del Algoritmo o permanecer invariable; por lo tanto, el valor que contiene una variable es el del ltimo dato asignado a esta. 3.5.2. Constantes Las Constantes, de la misma forma que las variables y son espacios de trabajo (contenedores) reservados para guardar datos (valores), pero que, luego de ser asignados, no cambian en ninguna instruccin del Algoritmo. 3.5.3. Contadores Los contadores se implementan como una estructura de programacin (A A + 1) que consiste en almacenar en una variable A, el valor de ella misma (A) ms un valor constante (por ejemplo 1). Es muy til para controlar el nmero de veces que debe ejecutarse un grupo de instrucciones en un algoritmo. 3.5.4. Acumuladores Estructura muy utilizada en programacin (A A + B) y que consiste en almacenar en una variable A, el valor de ella misma (A) ms otro valor variable (B). Es muy til para calcular sumatorias. 3.5.5. Identificadores Los identificadores son nombres que se dan a los elementos utilizados para resolver un problema y poder diferenciar unos de otros. Al asignar nombres (identificadores) a variables, constantes y procedimientos se deben tener en cuenta algunas reglas: Los nombres pueden estar formados por una combinacin de letras y dgitos (saldoMes12, cadena10, fecha2, etc.). El primer carcter de un nombre debe ser una letra. Los nombres deben ser nemotcnicos, con slo leerlos se puede entender lo que contienen. Deben ser muy descriptivos; no utilizar abreviaturas, a menos que se justifique plenamente. Es conveniente utilizar una sola palabra para nombrar pginas, controles, variables, etc. No utilizar caracteres especiales (%, +, /, #, >, , etc.). Excepto el _ (guin bajo). Se debe tener en cuenta que algunos lenguajes de programacin no admiten las tildes. No utilizar las palabras reservadas por los lenguajes de programacin. Para cumplir con convenciones ampliamente utilizadas, si es un nombre compuesto por varias palabras, cada una de las palabras (con excepcin de la primera) deben empezar con mayscula. Ejemplo: fechaInicial, baseTriangulo, etc.

** Ao 2010 **

15

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS 3.5.6. Operadores Son smbolos que sirven para manipular datos. Los operadores y las operaciones que se pueden realizar con ellos se clasifican en: Aritmticos: Posibilitan las operaciones entre datos numricos y dan como resultado otro valor numrico. Ejemplo: potencia (**); producto (*); divisin (/); suma (+); resta (-); Alfanumricos: Permiten operar con datos alfanumricos. No se vern en este curso. Relacinales: Permiten la comparacin entre datos del mismo tipo y dan como resultado dos valores posibles: Verdadero o Falso. Ejemplo: igual a (=); menor que (<); mayor que (>). Lgicos: Posibilitan la evaluacin lgica de dos expresiones de tipo lgico. Dan como resultado uno de dos valores posibles: Verdadero o Falso. Fueron descriptos y explicados en la Unidad 2. (, , )

Operador Aritmtico ** * / + mod div

Operacin potencia multiplicacin divisin suma resta mdulo (resto de la divisin entera) Divisin entera

Ejemplo 2**3 1.25 * 5 15/4 123 + 45.8 45-18 20 mod 3 20 div 3

Resultado 8 6.25 3.75 168.8 23 2 6

Tabla 3: Operadores Aritmticos

3.5.7. Orden de evaluacin de los operadores

** Ao 2010 **

16

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS Los operadores se ejecutan en un orden determinado, respetando la jerarqua o prioridad de cada uno de ellos. A igual prioridad de operador se ejecuta primero el que est ms a la izquierda. Operadores () ** *,/,div,mod +, =, <>, <, >, <=, >=, Jerarqua (mayor)

(menor)

Tabla 4: Orden de Precedencia de los operadores

3.5.8. Expresiones Una Expresin est compuesta por valores, funciones,primitivas, constantes y/o variables, o por una combinacin de los anteriores mediante operadores. Son Expresiones: Un valor (1.3, Jorge) Una Constante o una Variable (divide, base, rea) Una funcin (cos 60, arctan 1) Una combinacin de valores, constantes, variables, funciones y operadores que siguen reglas de construccin y orden de evaluacin de los operadores (base * altura/2) Las Expresiones pueden ser: Aritmticas: Dan como resultado un valor numrico. Contienen nicamente operadores aritmticos y datos numricos (pi * 20 - X) Alfanumricas: Dan como resultado una serie o cadena de caracteres. (No se analizarn en este curso)

** Ao 2010 **

17

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS Lgicas: Dan como resultado un valor "Verdadero" o "Falso". Contienen variables y/o constantes enlazadas con operadores lgicos (A>0 B<=5). De Asignacin: Estas Expresiones asignan el resultado de una Expresin a una Variable o a una Constante. La Expresin de Asignacin (area base * altura/2) asigna () el valor resultante de la Expresin Aritmtica (base * altura / 2) a la variable area. Si una expresin contiene subexpresiones entre parntesis, estas se resuelven primero, respetando el orden de evaluacin de los operadores contenidos en esas subexpresiones. O sea, siempre se evalan primero las subexpresiones que se encuentran en el ltimo nivel de anidamiento. Las expresiones siempre se evalan teniendo en cuenta la jerarqua de los operadores y de izquierda a derecha. La asignacin es una operacin destructiva. O sea, que si la variable tena asignado un valor, ste se destruye, conservando ahora el nuevo valor asignado. 3.5.9. Ejercitacin 3.5.9.1. Seala con un el identificador correcto para:

I. Una variable que contendr la sumatoria de las producciones anuales a. b. c. d. sumaProduciones Producciones Suma Sum_Prod

II. Una constante que contendr la cantidad de das laborables en el ao a. b. c. d. DiasL D_L diasLaborables DiasLaborablesAo

III. Una variable que cuenta la cantidad de nmeros positivos ledos a. Contador

b. cuentaPositivos

** Ao 2010 **

18

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS c. Positivos

d. Cont_Posi 3.5.9.2. Expresiones I. Evaluar paso a paso las siguientes expresiones: a. 7*8* (160 mod 3 ** 3) div 9 * 2 28 7*8* (160 mod 3 ** 3) div 9 * 2 28
27

7*8* (160 mod 27) div 9 * 2 28


25

7*8* 25 div 9 * 2 28
56

56* 25 div 9 * 2 28
1400

1400 div 9 * 2 28
155

155 * 2 28
310

310 28
282

b. 5 ** 3 > 16*2 c. 5*4 + 28 div 9 <= 7**2 34 div 11 d. (15 <= 6**2) (45 3**3 <> 36 div 2) 3.5.9.3. Asignacin Dados los siguientes bloques de asignacin, completar las tablas con los valores que van tomando las variables: Bloque i 1. cuenta 0 2. acumula0
** Ao 2010 ** 19

Expresin de Problemas y Algoritmos


Universidad Nacional de la Patagonia SJB Facultad de Ingeniera Departamento Informtica

Unidad 3: ALGORITMOS, CONCEPTOS BSICOS 3. palabrahola 4. estadoverdadero 5. cuentacuenta +1 6. acumulaacumula + cuenta *3 7. palabrahola Juan 8. estado(8 > 5) (15 < 2**3) 9. cuentacuenta + 1 10. acumulaacumula + cuenta asignacin 1 2 3 4 5 6 7 8 9 10 2 5 1 3 hola Juan falso cuenta 0 0 hola verdadero acumula palabra estado

Bloque ii 1. validoverdadero 2. total0 3. divide1.5 4. divide25/13 + 4 5. peso23.56 6. total56 * peso + divide 7. validodivide <= peso

** Ao 2010 **

20

S-ar putea să vă placă și