Tecnología de los componentes electrónicos Variables en C G.E.: 2 1. El siguiente código, permite sumar dos variables. Se pide: a. Ejecutarlo y ver el resultado. b. Modificarlo para que todas las variables sean del tipo “signed char”. ¿Qué ocurre en este caso? ¿Qué tipo de variable signada deberá ser utilizada en este caso para que el resultado sea el correcto? #include <stdio.h> #include <stdlib.h> void main(void) { // Declaración de las variables unsigned char A,B,C; // Inicialización de las variables A=123; B=45; C=A+B; printf("%d+%d=%d\n",A,B,C); } 2. Realice un programa que muestre el resultado producto de una resta de dos variables. 3. El siguiente código permite sumar dos variables mediante una función con el nombre suma. Realice un programa que reste dos variables con una función resta que se declare de la siguiente forma: signed long int resta(signed long int Num1,signed long int Num2). #include <stdio.h> #include <stdlib.h> // Declaro las funciones signed short int suma(signed short Var1,signed short Var2); // Comienzo con el main void main(void) { // Declaración de las variables unsigned short int A,B,C; // Inicialización de las variables A=123; B=45; // Inicio del programa C=suma(B,A); printf("El resultado de sumar %d y %d es %d\n",A,B,C); } // Definición de la función suma. signed short int suma(signed short Var1,signed short Var2) { unsigned short int Resultado; Resultado=Var1+Var2; return (Resultado); } 4. Utilizando variables signed long int, realice: 1 a. Un programa que multiplique dos variables. b. Un programa que multiplique dos variables mediante una función que se declare como: signed long int producto(signed short int Num1,signed short int Num2); 5. Utilizando variables del tipo float, realice: a. Un programa que divida dos variables. b. Un programa que divida dos variables mediante una función que se declare como: float division(float Dividendo,float Divisor); c. ¿Qué ocurre si se trabaja con variables del tipo int y se dividen dos números cuyo resultado debería dar con coma (es decir que el resto de la divión es distinta a 0)? NOTA: Para mostrar en la consola variables enteras mediante el printf se utiliza %d. Este es uno de los caracteres de conversión, para variables del tipo float habrá que utilizar %f. Estos caracteres y otros importantes se muestran en la siguiente tabla: Caracter %d %f %o %x %c %s El El El El El El dato dato dato dato dato dato Significado es entero y en decimal. está en coma flotante. está en octal. está en hexadecimal. es un caracter. (ver Código ASCII). es una cadena de caracteres. 6. Con variables enteras, se puede saber cuánto vale el resto de una división mediante el operador %. Realice un programa que obtenga de un número decimal de dos dígitos, la unidad y la decena (tenga presente la conclusión del punto 5.c). Otros ejercicios 7. Realice un programa que implemente la siguiente función, que permita calcular para un circuito monoestable el valor de la resistencia teniendo como datos el tiempo (t) y el valor del capacitor (C). float resistencia_Monoestable(float t,float C); 8. Se desea hacer una calculadora que permita realizar operaciones matemáticas básicas con números complejos. Un número complejo se puede expresar en forma binómica como 𝑍 = 𝑎 + 𝑖𝑏, donde 𝑎 y 𝑏 pueden ser almacenados como dos variables, por ejemplo del tipo float. a. Realice un programa que mediante las dos funciones que se detallan abajo sume dos números complejos 𝑍1 = 𝑎 + 𝑖𝑏 y 𝑍2 = 𝑐 + 𝑖𝑑. float r_suma_imag(float a,float b, float c, float d); float i_suma_imag(float a,float b, float c, float d); La función r_suma_imag suma dos números complejos y devuelve la parte real. Es decir que si 𝑍3 = 𝑒 + 𝑖𝑓 = 𝑍1 + 𝑍2 , esta función devolverá el valor de 𝑒, mientras que r_suma_imag devolverá el valor de 𝑓. b. Realice ahora las funciones relacionadas con la resta. float R_resta_imag(float a,float b, float c, float d); float I_resta_imag(float a,float b, float c, float d); c. Ahora respetando lo realizado anteriormente en los puntos 7.a y 7.b, realice las funciones y los programas que permitan multiplicar y dividir complejos. NOTA: en el caso de necesitar elevar un número al cuadrado recuerde que puede realizarlo simplemente multiplicando dicho número por sí mismo. 2