Beruflich Dokumente
Kultur Dokumente
CURSO 2005/2006
PRIMER CONTROL – I.T.I.G. 1/12/2005
TEORÍA
Se desea construir un procedimiento para descomponer un número en sus factores primos. Para ello se le pasará el
número a descomponer y el procedimiento deberá devolver los factores primos y los exponentes correspondientes en una
tabla[2, MAX ] de enteros ( 1ª fila el factor y 2ª fila el exponente) y el número de factores primos distintos
Por ejemplo:
Si el número es 144, la descomposición deberá ser 2^4*3^2
Si el número es 1024, la descomposición deberá ser 2^10
Si el número es 97, la descomposición deberá ser 97 180 2
Si el número es 180, la descomposición será 2^2*3^2*5 90 2
Si el número es 54, la descomposición será 2*3^3 45 3
15 3
En el caso de 180 la matriz a devolver será:
5 5
• 2 • 3 • 5 • • 1
• 2 • 2 • 1 • •
Notas:
• Para resolver el problema no hace falta calcular cuando un número es primo.
• El número de factores primos se supone menor o igual que MAX
APELLIDOS NOMBRE GRUPO
mero
TEORÍA
cons MAX : …
tipos Tt : tabla [2,MAX]
proc examen ( ent nro : entero; sal t : Tt, n:entero
var
base, exp: entero
principio
____________
____________
____________
mientras _________________
si ______________
_____________________________
_____________________________
| otras:
si ________________
guardar (_________________)
otras :
nula
fsi
_______________
_______________
fsi
fmientras
guardar (__________________)
fin
proc guardar (________________________________________)
prin
______________________
______________________
______________________
fin
INTRODUCCIÓN A LA PROGRAMACIÓN 1. CURSO 2005/2006
PRIMER CONTROL – I.T.I.G. 1/12/2005
PRÁCTICAS
Cuestión 1 (1 punto)
Dado el siguiente programa en C, indique cuál es la salida por pantalla:
#include <stdio.h>
void main(void)
{
int x,y;
x=5;
y=3;
if(x%2)
y=x*2;
if(y>5)
y++;
else
y=x*3;
printf("y vale: %d\n",y);
}
Salida: ___________________________________________________________
#include <stdio.h>
void main (void)
{
int a = 9, b=3, c=1;
int *p1, *p2, *p3;
p1=&a;
p2=&b;
p3=&c;
*p2=*p1;
*p3=c-1;
a=a+1;
printf (“a=%d b=%d c=%d *p1=%d *p2=%d *p3=%d\n”,
a, b, c, *p1, *p2, *p3);
}
Salida: ___________________________________________________________
Cuestión 3 (1 punto)
Sean las siguientes definiciones y declaraciones:
typedef int R1[20]; R2 r, *pr;
typedef enum {uno, dos, tres} R2 ; TR2 tr;
typedef R1 TR2[20]; float x;
Cuestión 5 (1 punto)
Escriba el siguiente bucle for utilizando la instrucción while. Suponga la variable i ya declarada (int i;)
1 2 3 4
5 6 7 8
1 2 3 4
5 6 7 8
La diagonal principal está formada por los elementos {1,6,3,8} y la diagonal secundaria por {4,7,2,5}.
a) Completa el código que se da para imprimir la media de los valores por columna desde la diagonal secundaria inclusive
hacia abajo. Es decir, para la matriz anterior el programa debe imprimir
for _______________________________________
{
____________________________________
for________________________________________
__________________________________________
printf("________________________________________________
}
b) Completa el código que se da para imprimir la media de los valores por fila desde la diagonal principal inclusive hasta
la última columna. Es decir, para la matriz anterior el programa debe imprimir
for _______________________________________
{
____________________________________
for________________________________________
__________________________________________
printf("________________________________________________
}