III-Operadores y estructuras selectivas

Page 1

OPERADORES Y ESTRUCTURAS SELECTIVAS

UNIDAD III


3.1 OPERADORES Un operador, es un símbolo que indica al compilador que se lleve a cabo ciertas manipulaciones matemáticas o lógicas.


3.2 OPERADORES ARITMÉTICOS

Todos estos operadores se pueden aplicar a constantes, variables y expresiones. El resultado es el que se obtiene de aplicar la operación correspondiente entre los dos operandos. Los operandos sobre los que actúan los operadores aritméticos deber ser valores numéricos, es decir datos enteros, punto flotante o de carácter (int, float y char, respectivamente)

Este operador NO puede aplicarse a los datos de tipo float.


Una expresiรณn es una sucesiรณn de operandos (variables o constantes) y operadores debidamente relacionados que especifican un cรกlculo y/o resultado lรณgico.


3.3 OPERADORES DE RELACIONALES, LÓGICOS Y UNARIOS Estos operadores, los podemos dividir, en varios tipos, entre los cuales están:

UNARIOS

LÓGICOS RELACIONALES O DE COMPARACIÓN


OPERADORES UNARIOS

C, incluye una clase de operadores que actúan sobe un solo operador para producir un nuevo valor. Por eso el nombre de unarios, porque para poder funcionar solo necesitan de un operador.

Estos operadores, el incremento y el decremento pueden utilizarse de dos maneras, eso depende del orden de aparición de los mismos. - Si el operador procede al operando el valor del operando se modifica antes de ser utilizado. - Si es operador aparece después del operando, este se modifica después de ser utilizado.


OPERADORES RELACIONALES O DE

COMPARACIÓN Cabe mencionar la diferencia entre los operadores = y ==, el primero (=), se utiliza para asignaciones de valores, mientras que el otro (==), se usa para comparaciones. Ejemplo: Si x>5, entonces x==6.

Estos operadores se encuentran dentro del mismo grupo de procedencia, que es menor que la de los operadores unarios y aritméticos. La asociación de éstos es de izquierda a derecha.


OPERADORES Lร GICOS

Estos son los que nos permiten unir varias comparaciones: 10>5 y 6==6. Los operadores lรณgicos son: AND (&&), OR (II), NOT (I).


3.4

OPERADORES DE ASIGNACIร N

Se encargan de atribuirle, asignarle, confinarle, etc. a una variable, el resultado de una expresiรณn o el valor de otra variable. Se utilizan en forma de expresiones de asignaciรณn en los que se asigna en el valor de una expresiรณn a un identificador.


3.5 JERARQUร A DE OPERADORES -, ++, --, !

*, /, % +, -

2. <, <=, >, >= ==, ! =

&& (Y Lรณgico), II (NO Lรณgico) =, +=, -=, *=, /?, %=

1.

3. 4. 5. 6.


REGLAS DE JERARQUÍA: 1. Se ejecuta primero el operador de más alta jerarquía. 2. Operadores que tienen igual jerarquía se evalúan de izquierda a derecha. 3. Si existen expresiones encerradas entre paréntesis, estas se evalúan primero. *Si existen paréntesis anidados se evalúan primero los paréntesis más internos.


Grupo de operadores

Orden de evaluación

Comentarios

() [] -> .

de izquierda a derecha

Este es el grupo de operadores con mayor prioridad.

! ~ ++ -- + - (tipo) de derecha a izquierda * & sizeof

La refundición de tipos y sizeof son operadores unarios.

* / %

de izquierda a derecha

El símbolo "%" denota el operador módulo, que produce el resto entero obtenido al dividir el primer operando por el segundo.

+ -

de izquierda a derecha

Los operadores aditivos tienen menor prioridad que los multiplicativos.

<< >>

de izquierda a derecha

Estos son los operadores de desplazamiento bit a bit (q.v.)

< <= > >=

de izquierda a derecha

== != &

de izquierda a derecha de izquierda a derecha

Este operador y los dos siguientes realizan operaciones lógicas bit a bit, considerando bits individuales de sus operandos.


^ | &&

de izquierda a derecha de izquierda a derecha de izquierda a derecha

Este operador y el siguiente producen resultados lógicos, pero no consideran bits individuales sino el valor global del operando.

|| de izquierda a derecha ?: de derecha a izquierda = += -= *= /= %= &= ^= |= <<= de derecha a izquierda >>=

,

de izquierda a derecha

Este es el operador de menor prioridad en C. Sirve para separar una colección de expresiones, que se irán evaluando de izquierda a derecha. El resultado es el producido por la expresión situada en último lugar (más a la derecha), y tiene por tanto el tipo y valor de esta última expresión. Se emplea a veces en expresiones de control; un ejemplo sería la cláusula de iniciación de un for o la cláusula de mantenimiento de iteración de un while.


3.6 ESTRUCTURAS SELECTIVAS Estas estructuras se basan en la toma de decisiones a través de la evaluación de una condición para obtener algún resultado en el programa o bien seguir por un determinado proceso. En C hay tres tipos de estructuras selectivas, las cuales son: * Estructura Selectiva Simple * Estructura Selectiva Doble (If-Then-Else) * Estructura Selectiva Múltiple (Switch)


ESTRUCTURA SELECTIVA SIMPLE Con estas estructuras se evalúa una condición que al cumplirse efectúa cierta acción, de lo contrario, continua con la ejecución normal del programa o bien termina el programa. Su sintaxis es la siguiente: if(Condición) acción;


IF Toma una decisión referente a la acción a ejecutar en un programa entre dos alternativas basándose en el resultado (verdadero o falso) en una expresión. Cuando en un programa que se esté ejecutando se encuentra la instrucción if, la condición será evaluada para determinar su valor numérico, el cual será interpretado como verdadero o falso. Si la condición produce cualquier valor numérico positivo o negativo que no sea cero, será considerada como condición "verdadera" y se ejecutará la instrucción que sigue al if. Si la condición produce un valor numérico de cero, será considerada "falsa”. Los operadores relacionales o lógicos serán utilizados para operandos con números enteros, flotantes, dobles o carácter en la instrucción if.


EJEMPLO: CONSTRUCCIÓN DE UN PROGRAMA QUE DETERMINE CUÁL ES EL MAYOR DE DOS NUMEROS ENTEROS DIFERENTES.


ESTRUCTURA SELECTIVA DOBLE Esta estructura se caracteriza por el hecho que ofrece dos caminos a seguir, dependiendo si al evaluar la condici贸n resulta cierta o falsa. Su sintaxis es la siguiente: if(Condici贸n) Acci贸n 1; else Acci贸n 2;


IF-ELSE La estructura de control selectiva doble if – else ( si – sino) evaluará una expresión lógica y en caso de que sea verdadera se realizará las instrucciones dentro del primer bloque (bloque if), y en caso de que sea falso se realizarán las instrucciones dentro del segundo bloque (bloque else).


EJEMPLOS:


EJEMPLO: CONSTRUCCIÓN DE UN PROGRAMA QUE PIDA AL USUARIO QUE INTRODUZCA DOS NUMEROS, LOS CUALES EL PROGRAMA DETERMINE E IMPRIMA SI SON IGUALES O DETERMINE CUÁL NUMERO ES MAYOR E IMPRIMA CUÁL LO ES.


ESTRUCTURA SELECTIVA MÚLTIPLE Permite seleccionar entre varios caminos para llegar al final. En este caso se pueden elegir un camino o acción a ejecutar de entre varios posibles que se debe de evaluar, llamada selector. Sintaxis:

switch(selector) { case Etiqueta A: Acción A; break; case Etiqueta B: Acción B; break; case Etiqueta n: Acción n; break; default: Excepción; break; }

SELECTOR: Variables, expresiones simples de tipo ordinal, (enteros y caracteres –int y char-)


SWITCH-CASE La sentencia múltiple switch ( ) está formada por una serie de etiquetas case que solamente cumplen con una condición determinada y un caso opcional default en el que están contemplados todos los valores que no se encuentran en los case. CASE: En estas sentencias el case solamente evalúa una expresión y no mas aunque puede llevar n numero de case, pero son un gran numero se recomienda usar ciclos. Estas expresiones solo puede ser de tipo entero y de un solo carácter, al igual las constantes que se colocan.


SWITCH-CASE Esta estructura de control trabaja con alguna variable, y según su valor realizará “x” caso:


Analizaremos mejor esta estructura: variable : Solo puede ser numérica entera o un carácter. case : Caso, indica el valor que de ser igual que variable, se ejecutarán las acciones en ese caso. Las acciones empiezan en los dos puntos (:) y termina en la instrucción break. break: Romper, sirve para finalizar un bucle o la estructura de control envolvente ( en este caso el switch ), es decir, una vez que se entre a uno de los case solo podrá finalizar cuando encuentre al primer break. default: En caso de que ninguno de los case anteriores se haya cumplido, se ejecutarán las acciones de default. No es necesario que el switch contenga el default.


OJO: En caso de no poner la instrucciรณn break; al finalizar el grupo de instrucciones de un case, se realizarรกn TODOS los grupos de instrucciones desde el case que entrรณ hasta que encuentre un break o finalice todo el switch. Ejemplo:


Si tenemos en cuenta los efectos de poner o no el break, podemos simplificar un poco el cĂłdigo segĂşn sea el caso. Por ejemplo:


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.