Titulo: Calculo de PI Realizar un programa que calcule una aproximación al número PI, mediante el sumatorio de los 100.000 primeros términos de la serie (y finalmente multiplicada por 4): Nota: Utilicese un bucle for y números de precisión doble (double) PI=3.141573 Solución #include<stdio.h> void main(void) double pi=0.0; int i; int signo=1; for(i=1;i<200000;i+=2) pi+=signo*1.0/i; signo*=-1; pi=pi*4; printf("pi=%f\n",pi);
Titulo: Divisible Dados dos números enteros tecleados por el usuario, comprobar si el primero es divisible por el segundo, repitiendo la operación, hasta que ambos números sean negativos. Si los dos números tecleados son negativos, se termina el programa. Escriba dos numeros separados por un espacio: 15 4 El 15 no es divisible por 4 Escriba dos numeros separados por un espacio: 12-3 El 12 es divisible por -3 Escriba dos numeros separados por un espacio: -25 5 El -25 es divisible por 5 Escriba dos numeros separados por un espacio: -1-3 El -1 no es divisible por -3 Fin del programa Solución #include<stdio.h> int num,val; do printf ("Escriba dos numeros separados por un espacio:\n"); scanf ("%d %d",&num,&val); if (num%val==0) printf ("El %d es divisible por %d\n",num,val); else printf ("El %d no es divisible por %d\n",num,val); while(num>0 val>0); printf("fin del programa\n");
Título: Múltiplos de 7 entre A y B Realizar un programa que imprima los múltiplos de 7 entre A y B, ambos inclusive, donde A y B son valores enteros introducidos por el usuario desde el teclado. El programa debe garantizar que A y B son mayores que 0 y que B>A. Si el usuario introduce valores que no cumplen alguna de estas condiciones, el programa se los volverá a pedir (el programa pedirá reiteradamente los números si alguna condición no se cumple). Introduzca A y B: -10 25 Introduzca A y B: 25 10 Introduzca A y B: 10 25 Los multiplos de 7 entre 10 y 25 son: 14 21 Solución int A, B, i; do printf("introduzca A y B:\n"); scanf("%d %d", &A, &B); while ((A<=0) (B<=0) (B<=A)); printf("los multiplos de 7 entre %d y %d son:\n", A, B); for(i=a;i<=b;i++) if(i%7==0) printf("%d\n",i);
Titulo: Notas 0-10 Realizar un programa que acepte por el teclado un número entero. Dado ese número, el programa presenta por pantalla un nombre de nota asociado a ese número, según la tabla. El programa vuelve al principio, para que se pueda introducir otro número, hasta que se introduzca un número negativo, en cuyo caso el programa termina. Si el número no es válido, (negativo o mayor que 10), se indica con un mensaje "Número incorrecto". Número Nombre de la nota 0-1 Muy deficiente 2-4 Insuficiente 5-6 Suficiente 7-8 Notable 9-10 Sobresaliente Debe emplearse una instrucción switch-case Introduzca nota: 6 Suficiente Introduzca nota: 51 Número incorrecto. Introduzca nota: -1 Número incorrecto. int n; do printf("introduzca nota:"); scanf("%d",&n); switch(n) case 0: case 1: printf("muy deficiente"); break; case 2: case 3: case 4: printf("insuficiente"); break; case 5: case 6: printf("suficiente"); break; case 7: case 8: printf("notable"); break; case 9: case 10: printf("sobresaliente"); break; default: printf("número incorrecto"); while(n>0);
Titulo: Potencia de un número entero Realizar un programa que permita calcular la potencia de un número entero, donde la base y el exponente son introducidos por el usuario. BASE = 2 EXPONENTE = 3 2^3 = 8 int i, base, expo, resu; printf("base = "); scanf("%d",&base); printf("exponente = "); scanf("%d",&expo); resu = base; for(i=1; i<expo; i++) resu = resu*base; printf("%d^%d = %d\n", base, expo,resu);
Titulo: Multiplicación de dos números a través de la suma Realizar un programa en el que se pida al usuario dos números enteros. Se pide realizar la multiplicación de los mismos a través de la suma. Por ejemplo: 3x4 = 3+3+3+3, o 5x10= 5+5+5+ (10 veces) +5 La única estructura de control que puede ser utilizada es el for Introduce dos numeros a multiplicar: 3 4 El resultado de multiplicar 3 x 4 es 12 int num1, num2, mult=0, i; printf("introduce dos numeros a multiplicar:"); scanf("%d %d",&num1,&num2); for(i=0; i<num2; i++) mult = mult +num1; printf("\n%d x %d = %d\n", num1,num2, mult);
Titulo: Mitades sucesivas Realizar un programa que acepte por el teclado un número con decimales, y nos presenta por pantalla ese número, la mitad de ese número, la mitad de la mitad, y así sucesivamente. Cuando el resultado sea menor que 1, el programa termina. Introduzca n: 6.15 6.15 3.075 1.5735 float n; printf("introduzca n:"); scanf("%f",&n); while(n>=1) printf("%f",n); n=n/2; float n,d; d=1.0; printf("introduzca n:"); scanf("%f",&n); while(d<=n) printf("%f", n/d); d=2*d;
Titulo: Objeto acelerado Se pide realizar un programa que calcule la distancia que recorre un objeto y la velocidad alcanzada en cada intervalo de 0.5 segundo durante los 3 primeros segundos de su movimiento. El objeto se mueve desde la posición cero, con velocidad inicial nula y con una aceleración constante tecleada por el usuario. Se debe utilizar un bucle para dicho cálculo. Introduzca aceleracion: 3 T: 0.000000, Pos: 0.000000, Vel: 0.000000 T: 0.500000, Pos: 0.750000, Vel: 1.500000 T: 1.000000, Pos: 3.000000, Vel: 3.000000 T: 1.500000, Pos: 6.750000, Vel: 4.500000 T: 2.000000, Pos: 12.000000, Vel: 6.000000 T: 2.500000, Pos: 18.750000, Vel: 7.500000 T: 3.000000, Pos: 27.000000, Vel: 9.000000 Solución #include<stdio.h> void main(void) float posicion=0.0f,velocidad=0.0f,aceleracion; float t; printf("introduzca aceleracion: "); scanf("%f",&aceleracion); for(t=0.0f; t<= 3.0f; t+=0.5f) posicion=aceleracion*t*t; velocidad=aceleracion*t; printf("t:%f, Pos:%f, Vel: %f\n",t,posicion,velocidad);
Título: Suma de una serie Realizar un programa que calcule la suma de la siguiente serie: n 1 suma = 2 i i= 1 1 = 2 1 1 + 2 2 1 + 2 3 1 +... + 2 n El valor de n será introducido por el usuario desde el teclado. Si el usuario introduce un valor de n menor que 1, el programa se lo volverá a pedir de forma reiterada hasta que el usuario introduzca un número mayor o igual que 1. Introduzca n: -1 Introduzca n: 0 Introduzca n: 100 La suma vale 1.634984 //Con bucles do-while y for int n, i; float suma=0; do printf("introduzca n: "); scanf("%d", &n); while (n<1); for(i=1;i<=n;i++) suma+=1.0f/(i*i); printf("la suma vale %f\n", suma); //Con bucles while int n, i; float suma=0; printf("introduzca n: "); scanf("%d", &n); while (n<1) printf("introduzca n: "); scanf("%d", &n); i=1; while (i<=n) suma+=1.0f/(i*i); i++; printf("la suma vale %f\n", suma);
Titulo: Contando Realizar un programa que cuente desde 1 hasta 10. Imprima los valores en líneas sucesivas. Si el número contado es 3 imprima el siguiente mensaje: He llegado al numero 3. Si el número contado es 10 imprima: He terminado de contar 1 2 He llegado al numero 3 4 5 6 7 8 9 He terminado de contar int i; for(i=1;i<11;i++) if(i == 3) printf("he llegado al numero 3\n"); else if (i == 10) printf("he terminado de contar\n"); else printf("%d\n",i);
Titulo: Cuadrado de asteriscos Realizar un programa que dibuje en la pantalla un cuadrado de asteriscos de lado n, siendo n teclado por el usuario, y pudiendo ser cualquier numero entero positivo. La única estructura de control que puede ser utilizada es el for Introduzca n: 5 ***** ***** ***** ***** ***** int n,i,j; printf("introduzca n:"); scanf("%d",&n); for(i=0;i<n;i++) for(j=0;j<n;j++) printf("*"); printf("\n"); int n,i; printf("introduzca n:"); scanf("%d",&n); for(i=1;i<=n*n;i++) printf("*"); if(i%n==0) printf("\n");
Titulo: Máximo y mínimo Se pide realizar un programa que calcule el máximo y el mínimo de unos datos tecleados por el usuario y que deben estar en el rango [0.0 100.0]. Si se introducen datos fuera de ese rango, la introducción de datos termina y se muestra por pantalla los valores del máximo y el mínimo. Utilizar un bucle while Introduzca dato: 23.4 Introduzca dato: 65.3 Introduzca dato: 22.0 Introduzca dato: -2 Maximo: 65.300003, Minimo: 22.000000 Solución #include<stdio.h> main() float maximo=0.0f, minimo=100.0f, dato; while(1) printf("introduzca dato: "); scanf("%f",&dato); if(dato<0.0f dato>100.0f) break; if(maximo<dato) maximo=dato; if(minimo>dato) minimo=dato; printf("maximo: %f, Minimo: %f\n",maximo, minimo);
Titulo: Volúmenes de cilindros. Escribir una tabla con los volúmenes de un cilindro cuyo radio se solicita al usuario y cuya altura varía desde 1.0 hasta 3.4 metros, cada 0.3 metros. Introduzca el radio: 1.5 Tabla de volumenes: R=1.5 H=1.0 V=7.1 R=1.5 H=1.3 V=9.2 R=1.5 H=1.6 V=11.3 R=1.5 H=1.9 V=13.4 R=1.5 H=2.2 V=15.6 R=1.5 H=2.5 V=17.7 R=1.5 H=2.8 V=19.8 R=1.5 H=3.1 V=21.9 R=1.5 H=3.4 V=24.0 Solución #include<stdio.h> #define PI 3.141592 void main (void) float radio, altura; printf("introduzca el radio: "); scanf("%f",&radio); printf("tabla de volumenes:\n"); for(altura=1.0f;altura<=3.4f;altura+=0.3f) float volumen=pi*radio*radio*altura; printf ("R=%.1f H=%.1f V=%.1f\n", radio, altura, volumen);
Titulo: Numero primo Realizar un programa que solicite un número entero al usuario y le informe si dicho numero es primo o no. Ejemplos de ejecución Teclee numero: 25 El numero 25 no es primo Teclee numero: 17 El numero 17 es primo Solución #include<stdio.h> void main(void) int numero,i; printf("teclee numero: "); scanf("%d",&numero); for (i=2;i<numero;i++) if (numero%i==0) break; if (i==numero) printf("el numero %d es primo\n",numero); else printf("el numero %d no es primo\n",numero);
Título: Contar de A a B de m en m Hacer un programa que imprima los números enteros de A a B, contando de m en m. Los valores de A y B serán asignados dentro del programa en codigo, mediante la inicialización de las variables en su declaración. Por ejemplo, A=8 y B=19. El valor de m será introducido por el usuario desde el teclado. Si el usuario introduce un valor de m menor que 1, el programa se lo volverá a pedir de forma reiterada hasta que el usuario introduzca un número mayor o igual que 1. (para A=8 y B=19) Introduzca m: -1 Introduzca m: 0 Introduzca m: 3 8 11 14 17 int A=8, B=19, m, i; do printf("introduzca m: "); scanf("%d", &m); while (m<1); for(i=a;i<=b;i+=m) printf("%d\n", i);
Título: Tablero de ajedrez Hacer un programa que imprima en la pantalla un tablero de ajedrez de 8x8 mediante el uso de bucles for, uno para las filas y otro para las columnas. Para representar el tablero se utilizará para la casilla negra una N y para la casilla blanca una B. La primera casilla puede ser blanca (B) o negra (N). Nota: la suma de la fila y columna de una casilla de un color es un número par y la del otro un número impar. (con la primera casilla blanca) B N B N B N B N N B N B N B N B B N B N B N B N N B N B N B N B B N B N B N B N N B N B N B N B B N B N B N B N N B N B N B N B int i,j; for(i=1;i<=8;i++) for(j=1;j<=8;j++) if((i+j)%2==0) printf("b "); else printf("n "); printf("\n");
Título: Media de un conjunto de números Hacer un programa que calcule la media de un número indeterminado de números enteros introducidos por el usuario desde el teclado. La introducción de números finalizará cuando el usuario introduzca un número negativo. Introduzca numeros enteros y calculare la media (para terminar introduzca un numero negativo) 1 4-3 La media vale 2.500000 int suma=0, numero, contador=0; float media; printf("introduzca numeros enteros y calculare la media\n"); printf("(para terminar introduzca un numero negativo)\n"); while(1) scanf("%d", &numero); if(numero<0) break; suma+=numero; contador++; media=(float)suma/contador; printf("la media vale %f\n", media);
Título: Tabla de multiplicar de un número del 1 al 9 Hacer un programa que imprima en la pantalla la tabla de multiplicar del número n que será introducido por el usuario desde el teclado y cuyo valor debe estar comprendido entre 1 y 9, ambos inclusive. Si el usuario introduce un valor fuera de ese intervalo, el programa se lo volverá a pedir de forma reiterada hasta que el usuario introduzca un número correcto. Introduzca n: 0 Introduzca n: -1 Introduzca n: 7 La tabla del 7 es 7x1=7 7x2=14 7x3=21 7x4=28 7x5 =35 7x6=42 7x7=49 7x8=56 7x9=63 7x10=70 int n, i; do printf("introduzca n: "); scanf("%d", &n); while (n<1 n>9); printf("\nla tabla del %d es\n", n); for(i=1;i<=10;i++) printf("%dx%d=%d\n", n, i, n*i);
Titulo: Aprobado o Suspenso? Realizar un programa en el que se pida al introducir la nota de una asignatura y se indique si está aprobado (a partir de 5 puntos) o suspenso (menos de 5 puntos). Repita la operación tantas veces como el usuario desee, realizándole la pregunta si quiere continuar, cuya respuesta será un carácter s o n. El programa debe funcionar independientemente de si dichos caracteres están en mayúsculas o minúsculas La única estructura de control que puede ser utilizada es el do-while Introduzca la nota: 3.0 SUSPENSO. Desea Continuar (S/N): S Introduzca la nota: 7.5 APROBADO. Desea Continuar (S/N): N float nota; char var; do printf("introduce la nota: "); scanf("%f",¬a); if(nota >= 5.0) printf("aprobado. Desea Continuar(S/N): "); else printf("suspenso. Desea Continuar(S/N): "); fflush(stdin); scanf("%c",&var); while(var!= 'N' && var!= 'n');
Titulo: Año Bisiesto Un año es bisiesto si es divisible por 4 y no por 100 o bien es divisible por 400. Hacer un programa que pida al usuario un año y muestre si es o no bisiesto. El programa se repite indefinidamente, hasta que el usuario teclea un año negativo Introduce un anio: 1996 BISIESTO Introduce un anio: 1997 NO BISIESTO Introduce un anio: 1998 NO BISIESTO Introduce un anio: 2000 BISIESTO Introduce un anio: 2100 NO BISIESTO Introduce un anio: 2200 NO BISIESTO Introduce un anio: 2400 BISIESTO Introduce un anio: 1992 BISIESTO Introduce un anio: -3 int anio, bis; do printf("introduce un anio: "); scanf("%d",&anio); bis=((anio%4 == 0) && (anio%100!= 0)) (anio%400 == 0); if(bis) printf("bisiesto\n"); else printf("no BISIESTO\n"); while(anio>=0);
Titulo: Calculo de una sucesión Realizar un programa para calcular los n términos de la sucesión: a = ( 1) El valor n es introducido por el usuario. 2 n 1 2n + 1 n n. Introduce el valor n: 10 a1 = 0.000000 a2 = 0.600000 a3 = -1.142857 a4 = 1.666667 a5 = -2.181818 a6 = 2.692308 a7 = -3.200000 a8 = 3.705882 a9 = -4.210526 a10 = 4.714286 int n, i; float signo = 1, an; printf("introduce el valor n: "); scanf("%d",&n); for(i=1;i<=n;i++) signo=(-1)*signo; an=signo*(i*i-1)/(2*i+1); printf("a%d = %f\n",i,an);
Titulo: Positivo o negativo Realizar un programa que pida un número de tipo entero por teclado e indique si el número es positivo o negativo. El programa termina si ese número 0. Realizar el bucle con una estructura do while Introduzca n: -3 El número es negativo. Introduzca n: 7 El número es positivo. Introduzca n: 0 int n; do printf("introduzca n:"); scanf("%d",&n); if(n>0) printf("el número es positivo.\n"); if(n<0) printf("el número es negativo.\n"); while (n!=0);
Titulo: Número de día de la semana Realizar un programa que acepte por el teclado un número entero. Dado ese número, el programa presenta por pantalla el nombre de día asociado a ese número, (1 es Lunes, 2 es Martes, etc.). El programa vuelve al principio, para que se pueda introducir otro número, hasta que se introduzca un 0, en cuyo caso el programa termina. Si el número no corresponde a un mes (negativo, 0 o mayor que 7), se indica con un mensaje "Número incorrecto" Debe emplearse una instrucción switch Introduzca número de día: 6 Sábado Introduzca número de día: 2 Martes Introduzca número de día: 75 Número incorrecto. Introduzca número de día: 0 Número incorrecto. int n; do printf("introduzca número de día:"); scanf("%d",&n); switch(n) case 1: printf("lunes"); break; case 2: printf("martes"); break; case 3: printf("miércoles"); break; case 4: printf("jueves"); break; case 5: printf("viernes"); break; case 6: printf("sábado"); break; case 7: printf("domingo"); break; default: printf("número incorrecto"); while(n!=0) ;
Titulo: Notas 0-10 (con if ) Realizar un programa que acepte por el teclado un número decimal. Dado ese número, el programa presenta por pantalla un nombre de nota asociado a ese número, según la tabla. Si el número no es válido, (negativo o mayor que 10), se indica con un mensaje "Número incorrecto". El programa se repite indefinidamente hasta que se pulsa ctrl.+c. Número Nombre de la nota 0-1 Muy deficiente 1-5 Insuficiente 5-7 Suficiente 7-9 Notable 9-10 Sobresaliente Debe emplearse únicamente la instrucción alternativa if - else if, dentro de un bucle while Ejemplos de ejecución Introduzca nota: 8.1 Notable Introduzca nota: 51.2 Número incorrecto. Introduzca nota: 4.2 Insuficiente float n; while(1) printf("introduzca nota:"); scanf("%f",&n); if(n<0 n>10) printf("numero incorrecto\n"); else if (n<1) printf("muy deficiente\n"); else if(n<5) printf("insuficiente\n"); else if(n<7) printf("suficiente\n"); else if(n<9) printf("notable\n"); else printf("sobresaliente\n");