Apuntes de Programación 1. Se desea llevar el registro de una caja registradora de un supermercado durante un día, no se sabe cuántos productos se ingresarán. Se finaliza el ingreso de datos con un valor cero o negativo. Se pide: a) Cantidad de productos registrados b) Monto total de ventas c) Valor del producto con mayor precio int main() { float precio; int cont = 0; float suma = 0; float mayorPrecio = -1; printf("Ingrese precio "); scanf("%f",&precio); while(precio > 0) { cont++; suma += precio; if(precio > mayorPrecio) mayorPrecio = precio; printf("Ingrese precio "); scanf("%f",&precio); } printf("Cantidad : %d\n",cont); printf("Suma total : %f\n",suma); printf("Precio mayor : %f\n",mayorPrecio); system("pause"); } Profesor: Mauro Castillo Valdés - 2010 1 Apuntes de Programación 2. Programa que permita ingresar el fondo de pensiones (A, B, C o D) y el monto ahorrado. Determinar el valor del monto bonificado, según el porcentaje respectivo: Fondo A = 30% Fondo B = 25% Fondo C = 10% Fondo D = 5% Versión 1 int main() { float monto, valor; char fondo; printf("Ingrese monto "); scanf("%f",&monto); fflush(stdin), printf("Ingrese fondo "); scanf("%c",&fondo); if(fondo == 'a') valor = monto * 1.30; if(fondo == 'b') valor = monto * 1.25; if(fondo == 'c') valor = monto * 1.10; if(fondo == 'd') valor = monto * 1.05; printf("Bonificacion %f\n",valor); system("pause"); } Profesor: Mauro Castillo Valdés - 2010 2 Apuntes de Programación Versión 2 int main() { int sw = 0; while(sw == 0) {printf("Fondo de pensiones (A, B, C, D): "); scanf("%c",&fondo); printf("Ingrese monto : "); scanf("%f",&monto); fflush(stdin); switch (fondo) { case 'A' : case 'a' : printf("FONDO A\n"); valor = monto * 1.30; sw = 1; break; case 'B' : case 'b' : printf("FONDO B\n"); valor = monto * 1.25; sw = 1; break; case 'C' : case 'c' : printf("FONDO C\n"); valor = monto * 1.10; sw = 1; break; case 'D' : case 'd' : printf("FONDO D\n"); valor = monto * 1.05; sw = 1; break; default: printf("no existe este fondo\n"); } } printf("Valor final es %.2f\n",valor); } Profesor: Mauro Castillo Valdés - 2010 3 Apuntes de Programación 3. Operatoria sobre números enteros Operador / : retorna el cuociente de la división entre dos números Operador % : retorna el resto de la división entre dos números int main() { int x, y, z, r; x = 5; y = 2; z = x / y; r = x % y; printf("x : %d\n",x); printf("y : %d\n",y); printf("z : %d\n",z); printf("r : %d\n",r); system("pause"); } 4. Contar los dígitos de un número int main() { int x, c; printf("Ingrese numero "); scanf("%d",&x); c = 0; while(x != 0) { c++; x = x / 10; } printf("cantidad : %d\n",c); system("pause"); } Profesor: Mauro Castillo Valdés - 2010 4 Apuntes de Programación 5. Sumar los dígitos de un número int main() { int x, s, r; printf("Ingrese numero "); scanf("%d",&x); s = 0; while(x != 0) { r = x % 10; s = s + r, x = x / 10; } printf("Suma : %d\n",s); system("pause"); } 6. Dado un número entero, mostrar cual es su primer dígito Ejemplo Si N=123 Si N=2305 muestra 1 muestra 2 7. Dado un número cualquiera, determinar si es PAR o IMPAR 8. Contar cuántos dígitos impares tiene un número cualquiera 9. Determinar el o los dígitos centrales. Si el número tiene cantidad impar de dígitos debe retornar el dígito central, en caso contrario debe retornar los dos dígitos centrales. Ejemplo: Num=123 mostrar 2 Num=1234 mostrar 23 10. Determinar si el primer y el último dígito de un número son iguales o no. Profesor: Mauro Castillo Valdés - 2010 5