Академический Документы
Профессиональный Документы
Культура Документы
CURSO 2005/2006
PRIMER CONTROL- I.I. 1/12/2005
TEORÍA
Los conjuntos de números naturales se pueden implementar como una tabla de valores lógicos, con un valor cierto (C) en
la posición i si i está en el conjunto. De esta forma si A = {1,4,8,9} su representación como tabla sería
{C,F,F,C,F,F.F,C,C,F, ... ,F}.
Un algoritmo para encontrar los números primos menores de una constante dada N es conocido como la criba de
Eratóstenes y consiste en tachar repetidas veces de una lista, a partir del primer número sin tachar (pues p.e. los múltiplos
de 4 ya lo son de 2), todos los múltiplos de él. Los números que queden sin tachar son primos.
Paso 1. Múltiplos de 2: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Paso 2. Múltiplos de 3: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Paso 3. Múltiplos de 5: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
Y así sucesivamente.
Se pide implementar el procedimiento de Eratóstenes utilizando el tipo Tconjunto definido al principio para que devuelva
los números primos entre 2 y N. Supongamos N constante ya definida.
APELLIDOS NOMBRE GRUPO
mero
TEORÍA
cons
N : ....
tipos
Tconjunto : Tabla [N] de lógico
proc inicializa_conjunto(______________________)
var
_______________
prin
desde __________________________
______________________________
fdesde
fin
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=6;
y=0;
if(x%3)
y=10/x;
else
y=50/x;
printf("y vale: %d\n",y);
}
Salida: ___________________________________________________________
#include <stdio.h>
void main (void)
{
int count = 10, sum = 0;
int *temp;
temp = &count;
*temp = 20;
temp = ∑
*temp = count;
printf("count = %d, *temp = %d, sum = %d\n", count, *temp, sum );
}
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;
Dada la invocación
hacer (*pr,&x, tr, tr[0]);
Cuestión 5 (1 punto)
Considérese el siguiente trozo de programa
int i=1;
while (i<=n)
{
if ((i%n)==0)
i++;
}
printf(“%d\n”,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 primera fila hasta la diagonal
principal inclusive. 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 secundaria inclusive
hasta la última columna. Es decir, para la matriz anterior el programa debe imprimir
for _______________________________________
{
____________________________________
for________________________________________
__________________________________________
printf("________________________________________________
}