Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: Zedmix en 14 Marzo 2010, 12:13 pm



Título: Examenes Grado Superior C
Publicado por: Zedmix en 14 Marzo 2010, 12:13 pm
Examenes sin resolver del segundo trimestre:

1º.

Crear un programa en C que solicite números enteros positivos distintos de 0 hasta que el usuario desee terminar, que será cuando introduzca un número negativo. Por cada número introducido se deberá visualizar:

  • a. Si el número es primo: la suma de todos los primos anteriores a él, no incluyendole.
  • b. Y si el número no es primo: sus 10 primeros múltiplos.

Para resolver el ejercicio, deberás utilizar tres funciones fuera del main: una que te diga si un numero es primo o no; otra que te devuelva la suma de los números primos; y otra que te imprima por pantalla los múltiplos del númeo.

Por ejemplo:
Introduzca un número: 5
Es primo
Suma de todos los primos anteriores: 6

Introduzca un número: 9
No es primo.
Sus múltiplos: 9, 18, 27, 36, 45, 54, 63, 72, 81, 90


2º Examen

Realiza un programa que rellene un vector de 12 elementos con números enteros positivos introducidos por teclado por el usuario. A continuación realiza las siguiente tareas mediante el uso de funciones, una por cada punto y en el orden indicado:
  • Calcula la media aritmética de los elementos mayores que 15 del vector e imprime por pantalla el resultado, además de los números que han sido utilizados para la media.
  • Indica si la media de los elementos que ocupan posiciones pares es mayor, menos o igual que la media de los elementos que ocupan posiciones impares en el vector.
  • Busca e imprime todos los divisores del elemento que ocupa la posición 2 en el vector.
  • Utiliza una función para intercambiar de posición los elementos mayor y menor del vector. Despues imprime el vector en el main para ver el cambio.

Ejemplo: sea el vector 10 15 20 4 6 5 6 8 9 2 16 33

Los elementos para calcular la media son: 20 16 33 y la media es: 23

Media de elementos que ocupan posiciones pares: 11,16
Media de elementos que ocupan posiciones impares: 11,16
La media de los elementos que ocupan posiciones pares es igual que la suma de los elementos que ocupan posiciones impares.

El elemento mayor es 33 y esta en la posición 11
El elemento menor es 2 y esta en la posición 9

Divisores de 20: 10 20 4 5 2

No los tengo resulto por que no los aprove xD un saludo y espero que os sirva de practica.


Título: Re: Examenes Grado Superior C
Publicado por: h0oke en 14 Marzo 2010, 14:14 pm
Eso es un exámen? Vaya pero que fáciles son...  :-\


Título: Re: Examenes Grado Superior C
Publicado por: Zedmix en 14 Marzo 2010, 23:11 pm
Yo me quede en stdlib y stdio...


Título: Re: Examenes Grado Superior C
Publicado por: ^Tifa^ en 5 Abril 2010, 17:22 pm
Código
  1. int esPrimo(int a){
  2.  
  3. int b=0;
  4. int res=0;//Es primo
  5. int i=2;
  6. while(i<a && b==0){
  7. if(a%i==0){
  8. b=1;
  9. res=1;//No es primo
  10. }else i++;
  11. }
  12. return res;
  13.  
  14. };
  15.  
  16. unsigned int Multiplo(int a) {
  17.  
  18. int tabla[10] = { 1,2,3,4,5,6,7,8,9,10 };
  19. unsigned int contador;
  20.  
  21.  for ( contador = 0; contador < 10; contador++ ) {
  22.  
  23.      if ( a == tabla[contador] * contador ) { printf("El multiplo de %i Es (%i X %i)\n", a, tabla[contador], contador); };
  24.  
  25.  }
  26.  
  27. };
  28.  
  29. int main()
  30. {
  31.  
  32. int numero;
  33. unsigned int resultado, respuesta;
  34.  
  35.  for ( ; ; ) {
  36.  
  37.    fprintf(stdout, "Inserte un numero :: ");
  38.    fscanf(stdin, "%i", &numero);
  39.  
  40.      if ( numero <= 0 ) {
  41.  
  42. puts("Adios :-P");
  43. break;
  44.  
  45.      } else {
  46.  
  47. resultado = esPrimo(numero);
  48. respuesta = Multiplo(numero);
  49.  
  50.  resultado == 0 ? fprintf(stdout, "El numero es Primo\n") : fprintf(stdout, "El numero no es Primo\n");
  51.      }
  52.  
  53.  };
  54.  
  55. return EXIT_SUCCESS;
  56.  
  57. };
  58.  

Te basta con esos 2 headers que ya conoces.. no requieres otros mas avanzados para la tarea que te solicitan. No me se la formula de numeros primos asi que la copie de internet esta funcion  :xD  tampoco soy muy buena obteniendo multiplos.. por lo que habria que re modificar la funcion Multiplos para que te encuentre el multiplo de otro numero (No solo del 2 y el 6) Pero mas o menos por ahi iria el asunto para que te encamines.


Título: Re: Examenes Grado Superior C
Publicado por: LeGNa29A en 5 Abril 2010, 23:12 pm
Tal como se ve en el ejemplo del enunciado, los 10 primeros multiplos no deja de ser la tabla de multiplicar típica :P
del 1 al 10 por el número q no sea primo.
Y si, es un examen fácil... ya me podría tocar uno así a mi. ;)