Parcial_1-ingenieria

  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Parcial_1-ingenieria as PDF for free.

More details

  • Words: 924
  • Pages: 5
INTRODUCCIÓN A LA PROGRAMACIÓN 1. 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. Ejemplo (para N=20): Paso 1. Múltiplos de 2: Paso 2. Múltiplos de 3: Paso 3. Múltiplos de 5: Y así sucesivamente.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

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 mero

NOMBRE

GRUPO

TEORÍA

cons N : .... tipos Tconjunto : Tabla [N] de lógico proc Eratostenes(sal tabprimos : Tconjunto) var /*defina las variables enteras que estime conveniente ________________ prin ___________________________ desde ______________________ si _______________ __________________________ otras: _____________ fsi findesde fin proc inicializa_conjunto(______________________) var _______________ prin desde __________________________ ______________________________ fdesde fin proc elimina_múltiplos (_____________________________) var _____________________________ prin ______________________ mientras ________________ _____________________ _____________________ fmientras fin

*/

INTRODUCCIÓN A LA PROGRAMACIÓN 1. CURSO 2005/2006

PRIMER CONTROL – I.I. 1/12/2005 APELLIDOS mero

NOMBRE

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: ___________________________________________________________

Cuestión 2 (1,5 puntos) Escriba qué mostraría por la salida estándar el siguiente programa: #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]; typedef enum {uno, dos, tres} R2 ; typedef R1 TR2[20];

R2 r, *pr; TR2 tr; float x;

Dada la invocación hacer (*pr,&x, tr, tr[0]); indique cuáles de los siguientes prototipos son o no correctos, justificando la respuesta.

GRUPO

a) void hacer (R2, float *, TR2, R1); b) void hacer (R2 *, float *, R1 *, R1); c) void hacer (R2 , float *, R1 *, R1);

Cuestión 4 (1,5 puntos) 1. 2. 3.

Defina un tipo Ts para una tabla que permita almacenar 9x9 elementos de tipo entero. Declare una tabla s de tipo Ts Escriba un bucle for que sume los elementos positivos de la columna i-ésima de la matriz s Escriba una posible declaración de una función f que cuente el número de veces que se repite un valor dado en una columna de una matriz de tipo Ts

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); a) ¿Cuál es la salida si n es 0? _______________ b) ¿Cuál es la salida si n es 1? _______________ c) ¿Cuál es la salida si n es 3? _______________

Cuestión 6 (1,5 puntos) Tres segmentos pueden formar un triángulo isósceles si dos de ellos tienen la misma longitud y la suma de ambos es mayor que el tercero. Escriba una expresión lógica en C que devuelva cierto si tres segmentos de longitudes a, b y c pueden formar un triángulo isósceles siguiendo el razonamiento anterior.

APELLIDOS mero

NOMBRE

GRUPO

Cuestión 7 (2,5 puntos) En matemáticas dada una matriz cuadrada 4 X 4 se define la diagonal principal como los valores de la matriz que ocupan la misma fila y la misma columna. Y la diagonal secundaria se define por los elementos cuyo índice fila y columna suman la dimensión + 1, en este caso 5. (En C la suma sería la dimensión – 1) Por ejemplo dada la matriz 1 5 1 5

2 6 2 6

3 7 3 7

4 8 4 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 la la la la

media media media media

de de de de

la la la la

columna columna columna columna

0 1 2 3

es: es: es: es:

1.000000 4.000000 4.333333 6.000000

1/1 (2+6)/2 (3+7+3)/3 (4+8+4+8)/4

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 la la la la

media media media media

de de de de

la la la la

fila fila fila fila

0 1 2 3

es: es: es: es:

4.000000 7.500000 3.000000 6.500000

4/1 (7+8)/2 (2+3+4)/3 (5+6+7+8)/4

for _______________________________________ { ____________________________________ for________________________________________ __________________________________________ printf("________________________________________________ }