CI-2125, Computación I Practica 2. Semana 3: Instrucciones primitivas: asignación, entrada y salida (scanf, printf). Operadores. Expresiones aritméticas y lógicas. 1. Cual de los siguientes identificadores o nombres de variables, en el Lenguaje C, son validos? Identificadores Solución n correcto MiProblema correcto Mi Juego incorrecto, no se debe dejar espacios m&m incorrecto 85Nombre incorrecto Registro correcto AAAAAAAA correcto 92 incorrecto *143edad incorrecto 2. Escriba las siguientes expresiones aritméticas como expresiones válidas del lenguaje C: a. x + 1 b. d --------------y c+e c. xy --------1 – 4x Resp: a. x/y+1 b. d/(c+e) c. x*y/(1-4*x) d. (x+y)/(x-y) d. x + y -------x–y 3. Indique las fórmulas matemáticas a las que corresponden las siguientes expresiones en C a. sqrt(a+b/c) b. sqrt((a+b)/c) c. a *x *x + b * x + c d. w * t * log(1.0 + s/n) 4. Indique lo que imprime, cada una de las siguientes instrucciones. Suponga que x = 2 y y = 3 a. printf(“%d”, x); Resp: 2 b. printf(“%d”, x+x); Resp: 4 c. printf(“x = “); Resp: x = d. printf(“x = %d”,x); Resp: x = 2 e. printf(“%d = %d”, x+y, y+x); Resp: 5 = 5 f. /* printf(“x + y = %d”,x+y); */ Resp: Nada, sin el comentario seria x + y = 5 g. printf(“\n”); Resp: Nada, pero baja una linea 5. Evalúe cada una de las siguientes expresiones en C a. 3*(9 % 2) - 5 Resp: -2 b. 1 – 2 – 3 – 4 – 5 Resp: -13 c. ((9/3) + (9/4) + (9/5)) % 4 Resp: 2 6. Dada la expresión ax3 + 7, diga cuál de las siguientes, son expresiones equivalentes en el lenguaje C, de acuerdo a las reglas de precedencia a. y = a * x * x * x + 7 Resp: SI b. y = a * x * x * (x + 7) Resp: NO c. y = (a * x) * x *(x + 7) Resp: NO d. y = (a * x) * x * x + 7 Resp: SI e. y = a * x * x * x + 7 Resp: SI f. y = a * (x * x * x) + 7 Resp: SI g. y = a * x * (x * x + 7) Resp: NO 7. Diga el orden del cálculo de los operadores de las siguientes expresiones en C, indique el valor de x en cada caso. a. x = 7 + 3 * 6 / 2 – 1; Resp: *, /, +, -, x = 15 b. x = 2 % 2 + 2 * 2 – 2 / 2; Resp: %, *, /, +, -, x = 3 c. x = (3 * 9 * (3 + (9 * 3 / (3)))); Resp: 9*3 = 27, 27/3 = 9, 3 + 9 = 12, 3 * 9 = 27, 27 * 12 = 324 8. Escriba un programa en C que imprima en dos líneas distintas las frases Bienvenido a la programación en C Pronto comenzaremos a programar Codificación: #include <stdio.h> void main() { printf(“Bienvenido a la programación en C \n”); printf(“Pronto comenzaremos a programar \n”); } 9. Escriba un programa en C que solicite al usuario el largo y ancho de una habitación y a continuación visualice su superficie con cuatro decimales. #include <stdio.h> void main() { float largo, ancho; printf("Introduzca la longitud de la habitacion: \n"); scanf("%f",&largo); printf("Introduzca el ancho de la habitacion: \n"); scanf("%f",&ancho); printf("su supercies es %10.4f \n", long*ancho); } 10. Escriba un programa en C que solicite al usuario el radio de una circunferencia (número real), y calcule e imprima el área, el perímetro de la circunferencia, y el volumen de la esfera asociada. #include <stdio.h> #define PI 3.14159 void main() { float radio, area, volumen; printf("Introduzca el radio: \n"); scanf("%f",&radio); printf("Perímetro= %f\n",2.0*PI*radio ); area = PI*radio*radio; printf("Área = %f\n",area); volumen=4/3*PI*radio*radio*radio; printf("Volumen = %f\n",volumen); } 11. Escriba un programa que imprima los números del 1 al 4, en un mismo renglón. Utilizando los siguientes métodos. a. Instrucción printf sin especificadores de conversión. Resp: printf(“1 2 3 4\n”); b. Instrucción printf con cuatro especificadores de conversión. Resp: printf(“%d %d %d %d\n”,1, 2, 3, 4); c. Cuatro instrucciones printf. Resp: printf(“1”); printf(“2”); printf(“3”); printf(“4\n”); 12. Sean a, b y c, expresiones booleanas, cuyos valores son: a = true, b = false, c = true. Evalúe cada una de las expresiones: a. a && (b || c) Resp: true b. (a && b) || (a && c) Resp: true c. !a || !c Resp: false d. a && (!b || !c) Resp: true 13. Escriba un programa en C, que desglose cierta cantidad de segundos introducida por teclado en su equivalente en semanas, días, horas, minutos y segundos. Análisis: El programa que se codifica lee el número de segundos y realiza las conversiones, teniendo en cuenta que un día tiene 24 horas, una hora 60 minutos y un minuto 60 segundos. Codificación : #include <stdio.h> void main() { int totalseg; /* entrada */ int semanas, dias, horas, minutos, segundos; /* salida */ /* PRE: totalseg >=0 */ int acum; printf("Introduzca segundos: \n"); scanf("%d",&acum); segundos = acum%60; acum = acum / 60; minutos = acum % 60; acum = acum / 60; horas = acum % 24; acum = acum / 24; dias = acum % 7; semanas = acum / 7; /* POST: totalseg=(((((7*semanas) + dias)*24) + horas) 60 ) + minutos ) 60 + segundos*/ /* o POST: totalseg=604800*semanas + dias* 86400 + horas*3600 + minutos*60 segundos ) y 0<= segundos, minutos < 60 y 0 <= dias < 7 y 0<= horas < 24 */ printf("numero de segundos %d\n",segundos ); printf("numero de minutos %d\n",minutos ); printf("numero de horas %d\n", horas ); printf("numero de dias %d\n",dias ); printf("numero de semanas %d\n",semanas ); }