ejercicios.pdf

20
FUNDAMENTOS DE PROGRAMACION GRADO DE TELECOMUNICACION EXAMEN DE PRACTICAS ENERO 2013 Normas generales ¡Importante! No se corregirá ninguna práctica que no cumpla escrupulosamente las normas que aparecen a continuación: 1. La práctica consiste en la realización de un programa que resuelva el pro- blema que se describe en las siguientes páginas. La resolución del problema se implementará en C. Se requiere el uso de vectores, matrices o estructu- ras. Para su resolución se podrán utilizar los conocimientos adquiridos en los temas 1,2,3,4 y 5. 2. En todos los programas supondremos que el tamaño máximo que puede tener cada uno de los vectores empleados es de 1000. Para las matrices de dimensión 2, supondremos que como máximo tienen 100 filas y 100 columnas. Para el caso de problemas donde se usan matrices es necesario definir una constante global NCOLUMNAS con el valor de 100. 3. En el programa además de la función main() debemos implementar al menos dos funciones más: Una se encargará de leer los datos de entrada al programa tales como vectores o matrices de entrada y otra función se encargará de resolver el problema planteado. Aparte de estas dos funciones, se pueden (y deben) realizar las funciones auxiliares que se necesiten. 4. Se creará un fichero fuente con la solución del problema nombrándolo exac- tamente problema.c 5. Se proporcionan ficheros que contienen datos para validar nuestros progra- mas (ficheros de validación). Su uso nos permite que en lugar de introdu- cir los datos de entrada (vectores o matrices desde el teclado) se carguen de un fichero, con lo que la prueba de los programas es más rápida. Recor- demos que para leer los datos de un fichero hay que ejecutar el programa desde una consola de sistema y redirigir la entrada de datos en la forma: problema.exe < validacion.txt, donde validacion.txt es el nombre del fichero de validación. 6. Las funciones que se necesiten deben documentarse en lenguaje natural an- tes de la cabecera, según se estudió en el tema 3. También, se debe describir de forma concisa y esquemática el algoritmo principal que resuelve el pro- blema.

Upload: victor-burgos-gonzalez

Post on 30-Oct-2014

27 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Ejercicios.pdf

FUNDAMENTOS DE PROGRAMACIONGRADO DE TELECOMUNICACION

EXAMEN DE PRACTICASENERO 2013

Normas generales¡Importante! No se corregirá ninguna práctica que no cumpla escrupulosamentelas normas que aparecen a continuación:

1. La práctica consiste en la realización de un programa que resuelva el pro-blema que se describe en las siguientes páginas. La resolución del problemase implementará en C. Se requiere el uso de vectores, matrices o estructu-ras. Para su resolución se podrán utilizar los conocimientos adquiridos enlos temas 1,2,3,4 y 5.

2. En todos los programas supondremos que el tamaño máximo que puedetener cada uno de los vectores empleados es de 1000. Para las matricesde dimensión 2, supondremos que como máximo tienen 100 filas y 100columnas. Para el caso de problemas donde se usan matrices es necesariodefinir una constante global NCOLUMNAS con el valor de 100.

3. En el programa además de la función main() debemos implementar almenos dos funciones más: Una se encargará de leer los datos de entradaal programa tales como vectores o matrices de entrada y otra función seencargará de resolver el problema planteado. Aparte de estas dos funciones,se pueden (y deben) realizar las funciones auxiliares que se necesiten.

4. Se creará un fichero fuente con la solución del problema nombrándolo exac-tamente problema.c

5. Se proporcionan ficheros que contienen datos para validar nuestros progra-mas (ficheros de validación). Su uso nos permite que en lugar de introdu-cir los datos de entrada (vectores o matrices desde el teclado) se carguende un fichero, con lo que la prueba de los programas es más rápida. Recor-demos que para leer los datos de un fichero hay que ejecutar el programadesde una consola de sistema y redirigir la entrada de datos en la forma:problema.exe < validacion.txt, donde validacion.txt esel nombre del fichero de validación.

6. Las funciones que se necesiten deben documentarse en lenguaje natural an-tes de la cabecera, según se estudió en el tema 3. También, se debe describirde forma concisa y esquemática el algoritmo principal que resuelve el pro-blema.

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 2: Ejercicios.pdf

7. En la evaluación de la práctica se tendrá en cuenta, además de la correcciónde la solución propuesta, el estilo de programación y la claridad del código.

8. La entrega de la práctica se hará exclusivamente durante los 50 minutos quedura el examen. Para ello, se usará el sistema de gestión automática de prác-ticas (GAP). Se accederá con el usuario y clave que ya tiene en el acceso alDepartamento. Cuando accedamos a él pinchará sobre

Prácticas -> Entregar -> Examinar

Se abrirá un cuadro de diálogo en el que buscará el fichero problema.c.Una vez seleccionado, debe pulsar sobre

Entregar práctica

La opción de entregar la práctica no estará disponible una vez se termine elexamen.

Importante: El único fichero que debe subirse al GAP es el fichero

problema.c

No debe subirse ningún otro fichero.

9. La práctica se puede entregar tantas veces como se quiera durante el exa-men. El sistema GAP guarda la última entrega. De hecho, se recomiendaque se entregue varias veces a lo largo del examen, ya que si el ordenadorse queda colgado, habrá que reiniciarlo y se perderá toda la información.

10. Se informa a los alumnos que el sistema GAP contiene un módulo de controlde copias que será empleado durante la evaluación de las prácticas y que, encaso de advertirse plagio, se actuará tanto contra quien haya copiado comocontra quien no haya velado por la privacidad de sus soluciones.

11. Se le entregará un fichero problema.c con una cabecera como la siguien-te:

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 3: Ejercicios.pdf

/************************************************** Examen Práctico de Fundamentos Programación.

* Grado de Telecomunicación Curso 2012/2013.

* !POR FAVOR, RELLENAD LOS SIGUIENTES DATOS!

** Apellidos:

** Nombre:

** Fecha:

** Ordenador:

** Problema:

**************************************************/

que deberá estar rellena y al principio de su fichero problema.c. Loscampos Apellidos, Nombre y Fecha se rellenarán con su nombre, apellidosy la fecha de realización del examen. En el campo Ordenador deberá copiarel nombre del ordenador en el que esté sentado cuando realice el ejercicio(por ejemplo ei14080) que deberá copiar de la etiqueta del ordenador. Porúltimo y más importante el campo Problema se deberá rellenar con el nom-bre del problema que el profesor le diga que tiene que resolver. La omisiónde alguno de estos datos en la cabecera dará lugar a la no corrección delexamen.

12. Las entradas y salidas del programa deben ser exactamente las que se dicenen los enunciados de cada problema sin ningún otro mensaje de formato.Para destacar estas entradas y salidas en los enunciados se meten en cajascuadradas.

Tiempo de examen: 50 minutos

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 4: Ejercicios.pdf

Programa ejemplo para el examen práctico

[ejemplo] En un vector de números enteros queremos eliminar los elementos re-petidos guardando el resultado en el mismo vector y donde los elementos no re-petidos guarden el orden relativo original. Para ello no se puede utilizar ningúnvector auxiliar. Construir un programa para resolver este problema. Los datos deentrada al programa se deben dar en el siguiente orden:

1. Número de elementos usados del vector original.

2. Los elementos del vector original: una secuencia de números enteros (tantoscomo elementos usados tenga el vector).

Ejemplo de fichero de validación:

72 6 4 5 2 7 6

La salida del programa debe ser el vector escrito en una línea separando lascomponentes por espacios:

2 6 4 5 7

El problema resuelto y entregado en el fichero problema.c sería como si-gue:

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 5: Ejercicios.pdf

/************************************************** Examen Práctico de Fundamentos Programación.

* Grado de Telecomunicación Curso 2012/2013.

* !POR FAVOR, RELLENAD LOS SIGUIENTES DATOS!

** Apellidos: Cano Ocaña

** Nombre: José Enrique

** Fecha: 10/01/2012

** Ordenador: ei14098

** Problema: ejemplo

**************************************************//*************************************************//* Programa para eliminar los elementos repetidos*//* en un vector de números enteros sin utilizar *//* un vector auxiliar. *//*************************************************/

#include <stdio.h>

#define DIM_V 1000

void LecturaVectorInt(int v[], int util_v);void ImprimeVector(int v[], int util_v);int Busca(const int v[], int util_v, int buscado);void EliminaRepetidos(int v[], int *util_v);void Borra(int pos, int v[], int *util_v);

int main(){int v[DIM_V];int util_vector=0;

do{/* printf("Introduzca número de componentes: "); */

scanf("%d", &util_vector);}while (util_vector>DIM_V || util_vector<0);

LecturaVectorInt(v, util_vector);

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 6: Ejercicios.pdf

if (util_vector > 1)EliminaRepetidos(v, &util_vector);

ImprimeVector(v, util_vector);

return(0);}

/*************************************************//* EliminaRepetidos(int v[], int *util_v) Funcion*//* que recibe un vector de enteros v y su util *//* util_v por referencia. Elimina los elementos *//* repetidos del vector decrementando el util y *//* manteniendo la posición de los elementos. Sin *//* utilizar vectores auxiliares. Se recorre v *//* desde i=1 hasta el util haciendo subvector *//* igual a la parte del vector todavía sin anali-*//* zar. *//*************************************************/

void EliminaRepetidos(int v[], int *util_v){int i, pos;int *subvector;int util_subvector;

i=1while(i < (*util_v))

{subvector=&v[i];util_subvector=(*util_v)-i;

pos=Busca(subvector, util_subvector, v[i-1]);if (pos != -1)

{Borra(pos, subvector, &util_subvector);(*util_v)=i+util_subvector;

}else

i++;}

}

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 7: Ejercicios.pdf

/*************************************************//* Función Borra(int pos, int v[], int *util_v). *//* que recibe un vector de enteros v y su útil *//* util_v. Además recibe una posición dentro del *//* vector y elimina esta posición dentro del *//* vector desplazando todo el vector una posi- *//* ción hacia adelante sobre la posición pos. *//* Recibe el util_v por referencia para dejarlo *//* decrementado en una unidad. *//*************************************************/

void Borra(int pos, int v[], int *util_v){int i;

for(i=pos; i < (*util_v) -1; i++)v[i]=v[i+1];

(*util_v)--;}

/*************************************************//* int Busca(int v[], int util_v, int buscado) *//* Función que dado un vector de enteros v y su *//* útil util_v busca la posición en la que esta *//* el elemento buscado. Devuelve la posición en *//* la que el elemento esta o -1 si no esta. Se *//* recorre el vector v hasta su util util_v *//* buscando el elemento buscado. *//*************************************************/

int Busca(const int v[], int util_v, int buscado){int i;int pos=-1;int encontrado = 0;

for (i=0; i<util_v && !encontrado; i++)if (v[i] == buscado)

{encontrado = 1;pos = i;

}return pos;}

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 8: Ejercicios.pdf

/*************************************************//* LecturaVectorInt(int v[], int util_v). Función*//* que lee un vector v de util_v componentes del *//* dispositivo de entrada. Recorre el vector v y *//* va haciendo scanf. *//*************************************************/

void LecturaVectorInt (int v[], int util_v){int i;

/* printf("\nIntroduzca valores enteros:\n"); */for (i=0 ; i<util_v ; i++){/* printf("Posición %d: ", i); */

scanf("%d", &v[i]);}}

/*************************************************//* ImprimeVector(int v[], int util_v). Función *//* que imprime en el dispositivo de salida una *//* línea con las util_v componentes del vector de*//* enteros v separadas por espacio. Recorre el *//* vector v y va haciendo printf. *//*************************************************/

void ImprimeVector (int v[], int util_v){

int i;

printf("\n");for (i=0; i<util_v; i++)

printf("%d ", v[i]);printf("\n");

}

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 9: Ejercicios.pdf

1. [productoreales] Un número real positivo puede representarse mediante unvector de enteros, V, que contiene los dígitos que definen el número (alinea-dos a la derecha) junto con una variable entera, posDec, que representa laposición donde se encuentra el punto decimal. Por ejemplo, asumiendo untamaño de 20 posiciones para V, entonces, el valor 3.141592 se almacenaríade la siguiente forma en V:

0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 4 1 5 9 2

Donde posDec sería 14.

Construir un programa que a partir de dos reales positivos, representadossiguiendo el esquema anterior (considerar un tamaño de 20 posiciones paralos vectores de entrada), determine el real resultante de multiplicar estosreales. En concreto, a partir de las entradas, se generarán dos reales, loscuales se multiplicarán para obtener el resultado. Por ejemplo, si el primerreal es:

V1=(00000000000003141592) y posDec1 = 14 (es decir, 3.141592)

y el segundo es:

V2=(00000000000000000020) y posDec2 = 19 (es decir, 2.0)

entonces el resultado sería: 6.283184

Los datos de entrada al programa se deben dar en el siguiente orden:

a) Los elementos del vector V1.

b) El valor de posDec1.

c) Los elementos del vector V2.

d) El valor de posDec2.

Ejemplo de fichero de validación:0 0 0 0 0 0 0 0 0 0 0 0 0 3 1 4 1 5 9 2140 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 019

La salida será:

6.283184

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 10: Ejercicios.pdf

2. [cercana] Realizar un programa que acepte un vector de enteros, V , detamaño m, una matriz de enteros, M , de tamaño n x m y un vector V filasque contiene índices de filas de M . El programa debe encontrar el índice dela fila más cercana al vector V (con distancia euclídea menor) entre las filascuyos índices están contenidos en V filas. Se supone que los índices de lasfilas contenidos en V filas son válidos (es decir, son valores entre 0 y n - 1).La definición de la distancia Euclídea es:

dist[(x1 . . . xp), (y1 . . . yp)] =√(x1 − y1)2 + . . .+ (xp − yp)2

Por ejemplo, dada la matriz M (7 x 4),

→ 3 1 0 84 5 1 5

→ 5 7 1 77 9 6 1

→ 4 9 5 5→ 2 8 2 2

7 3 2 5

y los vectores V = (2,8,1,1) y V filas = (0,2,4,5), el programa deberá encon-trar 5 como fila más cercana al vector V . En M hemos marcado las filas quese consideran a la hora de buscar la más cercana a V . Los datos de entradaal programa se leerán en el siguiente orden:

a) Número de elementos usados en el vector V (que coincide con el nú-mero de columnas de la matriz M).

b) Elementos del vector V : Una secuencia de números enteros (tantoscomo elementos usados tenga el vector).

c) Número de elementos usados del vector V filas.

d) Elementos del vector V filas. Una secuencia de números enteros (tan-tos como elementos usados tenga el vector).

e) Número de filas usadas de la matriz M .

f ) Los elementos de la matriz (primero se da la fila 0, luego la fila 1, yasí sucesivamente).

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 11: Ejercicios.pdf

Ejemplo de fichero de validación:42 8 1 140 2 4 573 1 0 84 5 1 55 7 1 77 9 6 14 9 5 52 8 2 27 3 2 5

La salida será:

5

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 12: Ejercicios.pdf

3. [frecuencias] Realizar un programa que acepte un vector de enteros V , don-de los enteros pueden repetirse y obtener dos vectores. El primero, un vectorordenador con los enteros aparecidos en V (sin repetición) Vord. El segun-do, Vf contendrá las frecuencias de aparición de los enteros en Vord. Porejemplo, supongamos el vector:

V = (1,25,1,1,100,25,2,2,100,100,2,2,100),

entonces el programa debe generar:

Vord = (1,2,25,100) y Vf = (3,4,2,4).

Los datos de entrada al programa se deben dar en el siguiente orden:

a) El número de elementos de V .

b) Los elementos de V , una secuencia de números enteros.

Ejemplo de fichero de validación:131 25 1 1 100 25 2 2 100 100 2 2 100

La salida será:VORDENADO1 2 25 100VFRECUENCIAS3 4 2 4

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 13: Ejercicios.pdf

4. [libreria] Se desea gestionar una librería. Para cada libro, se quiere mante-ner un identificador numérico (único) y el año de publicación. Para ello, sepropone usar la siguiente estructura:

struct libro{int id;int a_pub;

};

Realizar un programa que acepte un vector de libros y lo ordene por año depublicación de forma ascendente. Los libros con igual año de publicacióndeberán estar ordenados por sus identificadores de forma descendente. Porejemplo, si el vector es:

V = ([5,2006], [8,2000], [30,2001], [25,2000], [11,2005], [21,2005], [7,2005],[63,2006], [27,2006]),

después de la ordenación, el vector debería quedar:

V = ([25,2000], [8,2000], [31,2001], [21,2005], [11,2005], [7,2005], [63,2006],[27,2006], [5,2006]).

Los datos de entrada al programa se deben dar en el siguiente orden:

a) Número de libros.

b) Una secuencia de pares conteniendo identificadores y año de publica-ción de los libros.

Ejemplo de fichero de validación:95 20068 200030 200125 200011 200521 20057 200563 200627 2006

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 14: Ejercicios.pdf

La salida será:25 20008 200030 200121 200511 20057 200563 200627 20065 2006

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 15: Ejercicios.pdf

5. [cabalistico] Se dice que el máximo multiplicador cabalístico de un númeron es m, MMC(n)=m, cuando al multiplicar n por los enteros comprendidosentre uno y m se obtienen números que tienen los mismos dígitos que npero en distinto orden (con m + 1 ya no se verifica esta propiedad). Porejemplo, MMC(142857)=6, ya que:

142857 * 1 = 142857, 142857 * 2 = 285714, 142857 * 3 = 428571,

142857 * 4 = 571428, 142857 * 5 = 714285, 142857 * 6 = 857142.

Realizar un programa para calcular el máximo multiplicador cabalístico deun número n leido desde la entrada estándar:

Los datos de entrada al programa se deben dar en el siguiente orden:

a) Un entero n.

Ejemplo de fichero de validación:142857

La salida será:

6

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 16: Ejercicios.pdf

6. [ciclica] Escribir un programa para determinar si todos los caracteres de unacadena de caracteres (string) C1 se encuentran dentro de otra cadena C2 enel mismo orden (no tienen que estar consecutivos) y de forma cíclica. Semuestran algunos ejemplos en los que la cadena C1 se encuentra en C2:

C1 = abcd y C2 = xzayobnmcpwqdfg.

C1 = abcd y C2 = ftkcpxqdhjzaxqoblki.

C1 = abcd y C2 = tzsbluyclpygdmngrafvc.

Hay que destacar que la primera letra de C1 a buscar en C2 podría estar encualquier sitio. Por ejemplo:

C1 = abcd y C2 = bghcjadxak.

podemos ver que a partir de la primera ’a’ de C2 no podemos encontrarC1 de forma cíclica, aunque lo podemos hacer a partir de la segunda ’a’de C2.

También puede darse el caso de que C2 no contenga a C1 de forma cíclicaaunque incluya todas sus letras, como muestra el siguiente ejemplo:

C1 = abcd y C2 = tzsbluyclpcaygdmxngrfvc.

Los datos de entrada al programa se deben de dar en el siguiente orden:

a) Cadena de caracteres C1.

b) Cadena de caracteres C2.

Ejemplo de fichero de validación:abcdftkcpxqdhjzaxqoblki

La salida será SI o NO dependiendo de que esté o no:

SI

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 17: Ejercicios.pdf

7. [ordenar] Escribir un programa para ordenar las columnas de una matrizM de enteros positivos de forma ascendente (de izquierda a derecha), deacuerdo a la media de los elementos de cada columna. Por ejemplo, dada lasiguiente matriz:

1 3 5 1 165 22 0 20 11

32 8 10 17 05 4 9 8 2

Las medias de las columnas (de izquierda a derecha) son 10.75, 9.25, 6,11.5, 7.25. Entonces, la matriz ordenada debería quedar:

5 16 3 1 10 11 22 5 20

10 0 8 32 179 2 4 5 8

Los datos de entrada al programa se deben dar en el siguiente orden:

a) Número de filas de la matriz.

b) Número de columnas de la matriz.

c) Datos de la matriz (primero se da la fila 0, luego la fila 1, y así sucesi-vamente).

Ejemplo de fichero de validación:451 3 5 1 165 22 0 20 11

32 8 10 17 05 4 9 8 2

La salida será como sigue:

5 16 3 1 10 11 22 5 20

10 0 8 32 179 2 4 5 8

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 18: Ejercicios.pdf

8. [mediana] Escribir un programa para obtener la mediana de un vector deenteros V de tamaño n. La mediana es el valor que deja el mismo númerode datos antes y después de él, una vez ordenados éstos, es decir:

Si n es impar, la mediana es el valor que ocupa la posición central delvector una vez que los datos han sido ordenados ( en orden crecienteo decreciente).

Si n es par, la mediana es la media aritmética de los dos datos queestán en el centro del vector ordenado.

Por ejemplo, supongamos los vectores V1 y V2 siguientes:

V1 = (3, 8, 9, 6, 7) y V2 = (8, 7, 6, 10, 9, 3),

entonces, la mediana es 7 y 7.5, respectivamente.

Los datos de entrada al programa se deben dar en el siguiente orden:

a) El número de elementos de V .

b) Los elementos de V : una secuencia de números enteros.

Ejemplo de fichero de validación:68 7 6 10 9 3

La salida será:

7.5

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 19: Ejercicios.pdf

9. [circulos] Se definen los siguientes tipos de datos:

struct Punto {int x;int y;

};

struct Circulo {struct Punto centro;int radio;

};

El tipo struct Punto sirve para almacenar las coordenadas de un puntoen un plano, mientras que struct Circulo se usa para definir un círcu-lo a través de su punto central (el campo centro) y el radio. Por otra parte,sabemos que un círculo con centro en (x0, y0) y radio r, contiene en su inte-rior a un punto cualquiera (x1, y1) si se verifica que (x1−xo)

2+(y1−y0)2 ≤r2.

Realizar un programa cuya entrada sea un vector de círculos V y un puntocualquiera, y genere un vector con aquellos círculos que contienen el puntoVdentro y otro diferente con los círculos que no lo contienen Vfuera.

Un ejemplo de vector de círculos podría ser el siguiente (el campo centrocorresponde a los dos primeros números y el campo radio al tercero):

V = ([4, 1, 1], [0, 1, 2], [15, 5, 2], [1, 0, 2]).

Si el punto de entrada es (0,0), los vectores generados serían:

Vdentro = ( [0, 1, 2], [1, 0, 2]).Vfuera = ([4, 1, 1], [15, 5, 2]).

Los datos de entrada al programa se deben dar en el siguiente orden:

a) Número de círculos en V .

b) Coordenadas x e y y radio de cada círculo.

c) coordenadas x e y de un punto.

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317

Page 20: Ejercicios.pdf

Ejemplo de fichero de validación:44 1 10 1 2

15 5 21 0 20 0

La salida será:DENTRO0 1 21 0 2FUERA4 1 115 5 2

C/ Periodista Daniel Saucedo Aranda s/n, ETSI Informática, 18071 Granada, Tlf.: +34.958.244019, Fax: +34.958.243317