Está en la página 1de 5

Práctica obligatoria de la asignatura

INTRODUCCIÓN A LA PROGRAMACIÓN
Curso 2023-2024

CONTEXTO

En el III Plan Estratégico para la Igualdad Efectiva de Mujeres y Hombres (PEIEMH) 2022-2025 establece
una serie de líneas de actuación y objetivos en esta línea. Entre ellos, el EV.4.3: "Promover un entorno
urbano, rural, relacional y ambiental sostenible para la vida" estudia el actual modelo de movilidad en
la vida de mujeres y hombres, y cómo facilita el bienestar general y cuida la vida de las personas a lo
largo de su ciclo vital; y el BG.1.1.: "Integrar la variable sexo en la vida de las personas": "Integrar la
variable sexo y la perspectiva de género en las estadísticas y los estudios".

Si nos centramos en la movilidad, los datos existentes determinan que la movilidad de las mujeres se
realiza principalmente a pie y utilizando el transporte público. Y es en estas formas de movilidad donde
las mujeres sufren más acoso y violencia sexual, tanto verbal como física, limitando así su libertad.
También los hombres pueden sufrir violencia física a determinadas horas y en determinados espacios
públicos. Por lo tanto, mejorar la iluminación, aumentar el número de interfonos en los vestíbulos de
los transportes públicos, instalar cámaras de vigilancia en la calle, etc., son elementos que se han
identificado como capaces de mejorar la vida de las personas.

Esto nos lleva a incorporar la tecnología para la mejora de la seguridad y dar visibilidad a la situación
actual de la movilidad en el transporte y espacio público.

ENUNCIADO

La práctica obligatoria de la asignatura se enmarca en el contexto de la videovigilancia en Madrid, con el objetivo


de aumentar la seguridad, donde los datos que se manejarán tienen que ver con la ubicación de cámaras de
videovigilancia a lo largo de Madrid capital. El software que programaremos se denominará VIASEGURA.
>Deberéis crear un proyecto denominado VIASEGURA.

Toda la información con la que vamos a trabajar está disponible en un FICHERO DE TEXTO, denominado
videovigilancia.txt (disponible en el enlace de la práctica).

>Deberéis situar el fichero videovigilancia.txt en el directorio cmake-build-


debug del proyecto creado con anterioridad.

La descripción del fichero videovigilancia.txt la encontraréis en este mismo documento más adelante
en el ANEXO A. Pero os adelantamos en este punto que la primera fila del fichero contiene los campos (separados
por ;) siguientes:
ID_Cartel;Ubicación;Año;Zona;Latitud;Longitud;Dirección

VIASEGURA mostrará un menú de opciones numéricas y su descripción al usuario. Y se ejecutará continuamente


mientras el usuario no indique la opción de terminar (que será la opción 0). El menú debe tener un aspecto
similar al siguiente:

_________________________VIASEGURA_____________________________

1 – Determinar la distancia entre dos cámaras de videovigilancia.


2 – Mostrar estadísticas de cámaras de videovigilancia por zonas.
3 – Generar un fichero con cámaras de videovigilancia en la misma ubicación.
4 – Determinar el acceso de metro accesible más cercano a una ubicación
0 – Terminar
____________________________________________________________

A continuación, se describe en detalle el funcionamiento asociado a cada una de las opciones del menú.

1
Práctica obligatoria de la asignatura
INTRODUCCIÓN A LA PROGRAMACIÓN
Curso 2023-2024

OPCIÓN 1

Esta opción pedirá por teclado el ID_Cartel de dos cámaras. El programa accederá al fichero y si existen,
extraerá las coordenadas geográficas de cada ID_Cartel. Con esos datos se calculará la distancia geográfica
entre ambas cámaras. Para finalizar, se mostrará por pantalla dicha información. Un ejemplo de pantalla para
esta opción podría ser la siguiente:

Para calcular la distancia geográfica, se utilizará la función distanciaGeografica (lat_A, long_A, lat_B,
long_B) de la librería geo.h. Los ficheros de esta librería están disponibles en el mismo enlace de la práctica.

>Deberéis situar el fichero geo.h y geo.c en el mismo directorio en el que se encuentra


el main.c del proyecto VIASEGURA.

>En el código del main.c, deberéis incluir la línea siguiente: #include “geo.h” y también
la línea #include “geo.c”

OPCIÓN 2

En esta opción hay dos posibilidades, por lo que habrá que pedir por pantalla la opción elegida:

(i) cuando se selecciona una zona, se mostrará una lista de las zonas existentes (cada zona sólo debe mostrarse
una vez). Se pedirá por teclado el nombre de una de las zonas. A partir de dicho dato, se buscarán todos los
registros asociados a esa zona para mostrar por pantalla al usuario el número total de cámaras en dicha zona.
Un ejemplo de pantalla podría ser el siguiente:

Correspondiente a la selección de opciones Parte final del listado con número total de cámaras

2
Práctica obligatoria de la asignatura
INTRODUCCIÓN A LA PROGRAMACIÓN
Curso 2023-2024

(ii) cuando se selecciona TODAS, se mostrará por pantalla al usuario el número total de cámaras por zonas. Un
ejemplo de pantalla podría ser el siguiente:

OPCIÓN 3

En esta opción, VIASEGURA generará un fichero (denominado camaras.txt) que incluye solamente aquellos
registros que comparten exactamente la misma ubicación.

Un ejemplo de fichero camaras.txt podría ser el siguiente:

REALIZACIÓN DE LA PRÁCTICA

• La práctica se realizará en grupos de 3 ó 4 personas.


• Una vez tengáis decidido el grupo, uno, y SÓLO UNO DE LOS COMPONENTES DEL GRUPO dará de alta el
mismo en la actividad disponible para ello en Aula Virtual.
• Crear un proyecto en C denominado VIASEGURA. Para la realización de la práctica es necesario situar el
fichero videovigilancia.txt en el directorio cmake-build-debug del proyecto VIASEGURA. Ahí
mismo se generará el fichero camaras.txt asociado a la OPCIÓN 3.

ENTREGA Y FORMATO DE LA ENTREGA

• La entrega de la práctica se realizará a través del enlace Entrega de la práctica grupal. ORDINARIA. en la
pestaña Evaluación. La realizará UN SOLO COMPONENTE DEL GRUPO. La fecha límite de entrega es el 22 de
diciembre del 2023 a las 12:00 AM.

3
Práctica obligatoria de la asignatura
INTRODUCCIÓN A LA PROGRAMACIÓN
Curso 2023-2024

• El formato de entrega debe cumplirse OBLIGATORIAMENTE. Se entregarán dos ficheros cuyo nombre, en
ambos casos, será GRUPOxx, donde xx es el número que se os haya asignado al dar de alta el grupo en Aula
Virtual.
o Un fichero será de texto, creado y guardado con la herramienta NOTEPAD++, y contendrá todo
el código que consta en vuestro main.c (debe ser copiado desde CLion e íntegramente copiado
en dicho fichero de texto creado y posteriormente guardado con NOTEPAD++).
o El otro fichero será un ZIP, fichero comprimido de vuestro proyecto que, además debe
contener un fichero leeme.txt con el mismo número de líneas que de estudiantes tenga el
grupo de prácticas. En cada línea aparecerán los “apellidos, nombre” de un único estudiante.
Ordenar las líneas alfabéticamente por apellidos.

SUGERENCIAS

1. Definir una estructura (typedef struct {char ID Campo [LG_CAMPO];…} tRegistro;) que
contenga todos los campos del fichero videovigilancia.txt.
2. Programar una función void almacenarDatosFichero(…) que abra el fichero anterior, lo cargue en
un array de tipo tRegistro y cierre el fichero. El resto del programa trabajará con el array de tipo
tRegistro.
3. Uso de las funciones de la librería <string.h>, comentadas en las transparencias de arrays y uso de sus
funciones asociadas.
4. Uso de atof (cadena_de_caracteres) que devuelve un float. Dado que el fichero vigilancia es
un fichero de texto, todos son datos serán cadenas de caracteres. Cuando necesite que una de ellas sea
un float (para latitud y longitud) deberé convertir la cadena a float y eso lo realiza la función atof.
5.
Función Descripción
strcspn Busca una subcadena (2) dentro de una cadena (1) y devuelve la posición.
ejemplo Busca la primera “,” dentro del registro o línea
longitud=strcspn(registro,",");
strncpy Desde una cadena (2), extrae una subcadena (1) de longitud determinada (3)
ejemplo Del registro, extrae la palabra de tamaño longitud
strncpy(palabra,registro,longitud);
strcmp Compara dos cadenas de texto
ejemplo Compara si location_type es una estación
strcmp(vecFile[i].location_type,TIPO_ESTACION) == ENCONTRADO

4
Práctica obligatoria de la asignatura
INTRODUCCIÓN A LA PROGRAMACIÓN
Curso 2023-2024

ANEXO A
El fichero es un fichero de texto, denominado videovigilancia.txt, en formato csv. El contenido
aproximado es:

También podría gustarte