Del mismo modo que en la vida diaria, en un programa es necesario tomar decisiones basadas en ciertos hechos y actuar en consecuencia. El if (si condicional) realiza un test y permite responder de acuerdo al resultado. LOS DISTINTOS USOS de IF, con enunciados ELSE y ELSEIF. La estructura de control IF permite decidir entre dos opciones resultantes de la evaluación de una sentencia. Si la evaluación es positiva hace una cosa, también podemos especificar acciones para realizar en caso de que la evaluación sea negativa. IF (expresion) then Sentencias .... END IF Vemos que en primer lugar tenemos la sentencia IF, luego una expresión, que puede o no ir entre paréntesis, y más tarde la parabra THEN. Vemos que luego hay un salto de línea antes de colocar las sentencias asociadas a la evaluación positiva de la sentencia. Después de poner las sentencias del asociadas a la evaluación positiva colocamos un END IF, para acabar la estructura del IF. Enunciado ELSE Opcional mente se puede colocar una serie de sentencias asociadas a la evaluación negativa de la expresión. Estas sentencias se deben colocar después de la orden ELSE y antes del END IF. IF (expresion) then Sentencias .... ELSE Sentencias .... END IF Enunciado ELSEIF Existe la posibilidad de utilizar un enunciado especial en el lugar donde utilizaríamos un ELSE. Sirve para encadenar sentencias IF de modo que en un resultado negativo de un IF se pueda evaluar otra expresión, que tendría a su vez otros enunciados THEN y probablemente ELSE u otro ELSEIF. Como lo muestra el ejemplo con facilidad: IF (expresion1) then Sentencias1 .... ELSEIF (expresion2) then Sentencias2 .... ELSEIF (expresion3) then Sentencias3 .... ELSE Sentencias4 .... END IF Se evalúa la primera expresión, en caso positivo se ejecutan las sentencias1, en caso negativo se evalúa la expresión 2. Si la expresión 2 es positiva se ejecutan las sentencias 2 en caso negativo evaluamos la expresión 3 con el siguiente ELSEIF. Todo acaba en un ELSE en este ejemplo, pero el ELSE final no es obligatorio. FORMAS DE ESCRIBIR UNA SENTENCIA IF En esta sentencia de control las únicas cláusulas obligatorias son If Then pudiéndose prescindir si es necesario de Else, Else If Then y End If EJERCICIOS Escribir un programa que lea dos caracteres, e imprima su valor cuando se pueda interpretar como un número hexadecimal. Aceptar letras mayúsculas y minúsculas para los valores del 10 al 15. Leer un valor entero. Suponer que el número es un día de la semana. Suponer que 0 corresponde a Domingo y así sucesivamente. Imprimir el nombre del día. Dados como entrada 3 enteros representando la fecha como día, mes, año, imprimir la fecha del día anterior. Por ejemplo para una entrada como: 1 3 1992 La salida será: Fecha anterior a 1-3-1992 es 29-02-1992 Escribir un programa el cual lea dos valores enteros. Si el primero es menor que el segundo, que imprima el mensaje ``Arriba''. Si el segundo es menor que el primero, que imprima el mensaje ``Abajo''. Si los números son iguales, que imprima el mensaje ``igual''. Si hay un error en la lectura de los datos, que imprima un mensaje conteniendo la palabra ``Error'' y haga exit( 0 ). Investigar los diferentes tipos de datos Tipos de datos máquina Todos los datos en los ordenadores basados en la electrónica digital se representan como bits (valores 0 y 1) en el nivel más bajo. La más pequeña unidad direccionable de datos es un grupo de bits llamado un byte (normalmente un octeto, que son 8 bits). La unidad procesada por las instrucciones del código máquina se le llama una palabra (en 2006, normalmente 32 o 64 bits). La mayor parte de las instrucciones interpretan la palabra como un número binario, como por ejemplo una palabra de 32 bits puede representar valores enteros sin signo desde el 0 al 232 − 1 o valores enteros con signo desde − 231 al 231 − 1. Por medio del complemento a dos, la mayor parte del tiempo, el lenguaje máquina y la propia máquina no necesitan distinguir entre tipos de datos con o sin signo. Existe un específico conjunto de instrucciones aritméticas que usa una diferente interpretación de los bits de una palabra como número en coma flotante.