Informática Industrial

Industriales. Función. Código. Consumo: control

  • Enviado por: Robe
  • Idioma: castellano
  • País: España España
  • 10 páginas
publicidad
publicidad

Cuestiones

Dada la siguiente declaración:

struct t {

int a;

float b;

char c[30];

} d;

Escribe la cabecera de una función f1 que recibe como parámetro por referencia una estructura del tipo anterior y devuelve como valor de retorno un número real. (0.5 puntos)

Escribe una llamada a la función cuya cabecera has declarado en la cuestión anterior, pasándole como parámetro la variable d. (0.25 puntos)

Dado el siguiente trozo de código,

int a, b = 25;

int *p, *q;

p = &a;

a = b * 2;

b = *p + 5;

q = &b;

printf(“%d\n, *q);

¿qué saldría por pantalla? Justifica la respuesta. (0.75 puntos)

Dada el siguiente trozo de código:

char b[50];

int *p;

scanf(“%s”, b);

Escribe las instrucciones necesarias para reservar memoria para un vector dinámico al que debe apuntar p y que debe almacenar tantos enteros como la longitud de la cadena guardada en b. (0.75 puntos)

Indica qué habría que poner en lugar de las líneas negras para que el siguiente programa acabase cuando el usuario introduzca la palabra “Password” por teclado. Justifica tu respuesta: (0.75 puntos)

#include <stdio.h>

#include <string.h>

void main(){

char nombre[] = “Password”;

char nombre2[100];

int i = 0;

do {

printf(“Introduce la clave: ”);

gets( nombre2 );

if ( )

printf(“ERROR\n”);

else printf(“\n”);

} while ( );

printf( “Acceso autorizado\n” );

}

Problema 1 (3 puntos)

Se pretende llevar el control del consumo eléctrico en una fábrica. Para ello se desea mantener la información del consumo, guardando para cada día del mes el consumo eléctrico acumulado en cada hora del día.

Hacer un programa que ofrezca un menú con las siguientes opciones:

  • Introducción de los datos del consumo, teniendo en cuenta que cada día es independiente del anterior y que el consumo acumulado en una hora del día no puede ser inferior al consumo acumulado en la hora anterior. (1.25 ptos)

  • Obtención del consumo medio por hora, del día del mes con consumo máximo. (1.25 ptos)

  • Listado de toda la información. (0.5 ptos)

Problema 2 (4 puntos)

Se desea llevar un control sobre las atracciones de un parque temático con un máximo de 15 atracciones. Para cada atracción se debe conocer su nombre, número máximo de personas que pueden estar en ella simultáneamente, precio de un ticket, el dinero recaudado en un día y el total de dinero recaudado desde su inauguración.

Se pide un programa que realice las siguientes operaciones (mediante funciones):

  • Inicialice los datos (nombre, precio de los tickets y capacidades) poniendo a cero las recaudaciones. (0.25 ptos)

  • Presente un menú con una serie de opciones. Este menú debe volver a aparecer hasta que la opción elegida sea la de terminar. (0.25 ptos)

Opciones:

  • Entradas. Solicitará el nombre de una atracción y una cantidad de entradas, con lo que se incrementarán los distintos totales. (0.5 ptos)

  • Ordenación de los datos por nombre de atracción. (1.5 ptos)

  • Salvar datos en un fichero. (1.5 ptos)

Problema 1 (3 punts)

Es preten dur el control de consum elèctric en una fàbrica. Per això, es desitja mantindre la informació del consum, guardant per cada dia del mes el consum elèctric acumulat en cada hora del dia.

Fer un programa que ofreresca un menú amb les següents opcions:

  • Introducció de les dades de consum, tenint en compte que cada dia es independent del dia anterior i que el consum acumulat en una hora del dia mai no pot ser inferior al consum acumulat en l'hora anterior. (1.25 punts)

  • Obtenció del consum mig per hora, del dia amb consum màxim. (1.25 punts)

  • Llistat de tota la informació. (0.5 punts)

Problema 2 (4 punts)

Es desitja dur un control de les atraccions d'un parc temàtic amb un màxim de 15 atraccions. Per cada atracció ha de guardar-se el nom, el nombre màxim de persones que pot atendre alhora, preu d'un ticket, diners recaptat en un dia i el total de diners recaptat des de la seua inauguració.

Es demana un programa que realitze les següents operacions (cada operació una funció):

  • Inicialitzar les dades (noms, preus dels tickets y capacitats), posant a zero les recaptacions. (0.25 punts)

  • Presentar un menú amb una sèrie de opcions. Este menú ha de tornar a apareixer fins que l'opció siga eixir. (0.25 punts)

Opcions:

  • Entrades. Solicitarà el nom d'una atracció i una cantitat d'entrades, amb eixes dades s'actuatitzaràn els distintos totals. (0.5 punts)

  • Ordenació de les dades per nom d'atracció. (1.5 punts)

  • Salvar les dades en un fitxer. . (1.5 punts)

Cuestiones

1.- Dada la siguiente cabecera de función

void f (int *v)

¿Sería correcta la llamada "f(A);" siendo A un vector estático de 6 elementos enteros?, ¿por qué? En caso negativo reescribir la llamada. (0.5 puntos)

Pepe quiere informatizar el almacén de su quiosco, para lo cual establece las siguientes estructuras de datos y variables después de un análisis de necesidades:

typedef struct {

char tipo[10]; /*** revistas, pipas, ... ***/

int precio_ptas;

float precio_euros;

int nUnidades; /*** unidades disponibles ***/

} producto;

producto *vStock;

producto chicles, caramelos;

int n;

FILE *fInventario;

2.- Escribe las instrucciones necesarias para reservar un vector dinámico de "producto" apuntado por la variable "vStock" con tantos elementos como indique el usuario. (0.25 puntos)

3.- Teniendo en cuenta que en el quiosco trabajan 3 personas distintas, y que Pepe quiere guardar la información relativa a la caja que han hecho cada una de esas tres personas en cada día de una semana, declarar las variables necesarias para representar dicha información de la mejor forma posible. (0.75 puntos)

4.- Escribe las instrucciones necesarias para abrir un fichero (cuyo nombre indica el usuario) al que apuntará la variable "fInventario". Valida la apertura de tal manera que si, por alguna razón, no es posible abrirlo, se le vuelva a preguntar al usuario el nombre del fichero y se trate de abrir otra vez. (0.5 puntos).

5.- Definir la cabecera de una función "buscar" a la que se le pasarán como parámetros:

- Por referencia:

- Un vector de estructuras de tipo "producto".

- Un entero.

- Por valor:

  • Una estructura del tipo "producto".

Dicha función devuelve, además, una estructura de tipo "producto". (0.5 puntos).

6.- Realizar una llamada a la función anterior con el vector dinámico apuntado por "vStock", la

variable n, la variable "chicles", y devuelve el valor sobre la variable "caramelos". (0.5 puntos).

Nota: Declara alguna variable adicional sólo si es estrictamente necesario.

Problema 1 (3.5 puntos)

Una empresa suministradora de agua potable dispone de una série de abonados (un total de 500), disponiendo de los siguientes datos de cada abonado: número de contador, m3 totales de agua consumida, nombre del abonado, balance (una cantidad positiva indica que el abonado posee una cantidad de dinero “a cuenta” por agua no consumida, una cantidad negativa indica que el abonado debe dinero por agua consumida) y dirección. Los datos de los abonados estan almacenados en un fichero de nombre “consumo.dat”. El precio por m3 es variable, siendo en un principio de 23 ptas/ m3.

Suponiendo que la función de lectura de datos, que rellena un vector con la información contenida en el fichero, se encuentra ya implementada con la cabecera siguiente:

void fleer (struct datos *vector)

{ ..... }

se desea realizar un programa con las siguientes funciones:

  • Actualización del consumo de un abonado: introduciendo el nombre del abonado, se pedirá el incremento de consumo desde la última lectura, con este dato y los disponibles para el abonado, se actualizará el balance y el consumo total. (1 pto)

  • Actualización del balance: introduciendo el nombre del socio se le informará de su situación (si este debe dinero o si ya dispone de dinero a cuenta) y se pedirá la cantidad de dinero que aporta. (0.75 ptos)

  • Aviso: la función buscará los clientes que deban mas de 100 m3 de agua mostrando los datos de los que se encuentren. (0.5 ptos)

  • Salvar los datos: los datos se guardarán en el mismo fichero. Esta función se ejecutará cuando:

  • se escoja la opción de salir en el menú.

  • se invoque voluntariamente por el usuario a traves del menú.

  • automáticamente cada vez que el incremento de consumo total de todos los abonados supere los 250 m3 desde la última vez que se salvaron los datos. (0.75 ptos)

El programa dispondrá de un menú con las opciones: carga de los datos, actualización del consumo, actualización del balance, listado de aviso de moroso, salvado de los datos, actualización del precio del agua (implementando las instrucciones necesarias para llevalo a cabo) y salir. (0.5 ptos).

Problema 2 (3.5 puntos)

Un palacio de conciertos desea informatizar la gestión de reservas. Dispone de dos salas una con 50 filas de 25 butacas cada una, y la otra con 20 filas con 25 butacas en cada una. De los clientes que reservan se desea guardar: el nombre y el numero de tarjeta VISA.

El programa ha de presentar un menú para poder escoger entre las siguientes funciones:

  • Listado de la información de una sala en particular: indicando para cada fila, el numero de asientos libres y el nombre de los clientes que han reservado. (0.5 ptos)

  • Reserva de una butaca: se le pedirá al cliente los datos necesarios así como la sala, la fila y la butaca que desea. Si la plaza esta ocupada, se le pedirá de nuevo la fila y la butaca (únicamente) hasta que se le pueda asignar una butaca libre. (1 pto)

  • Reserva de un grupo de butacas: El programa podrá reservar bonos de 5 entradas. Para ello, pedirá al cliente la sala y la fila que desea, y buscará en esa fila si existe un grupo de 5 butacas consecutivas. En caso de no poder hacerse la reserva, la función no debe volver a intentarlo, pudiendose repetir desde el menú principal. En caso de poder hacerse la reserva, todas las butacas estarán reservadas por la misma persona y la misma tarjeta VISA. (2 ptos)

Problema 1 (3.5 punts)

Una empresa d'aigües potables disposa d'una sèrie de clients (un total de 500), interessant-li les següents dades de cada u: número de contador, total d'aigua consumida, nom del client, balanç (una quantitat positiva indica que el client té una quantitat de diners “a compte” per aigua no consumida, una quantitat negativa indica que el client déu diners per aigua consumida) i adreça. Les dades dels clients estan emmagatzemades en un fitxer de nom “consum.dat”. El preu de l'aigua és variable, sent en principi de 23 pts/ m3.

Suposant que la funció de lectura de dades, que ompli un vector amb la informació que hi ha al fitxer, es troba ja implementat amb la capçalera següent:

void fleer (struct datos *vector)

{ ..... }

es desitja realitzar un programa amb les següents funcions:

  • Actualització del consum d'un client: introduint el nom del client, es demanarà l'increment de consum des de l'última lectura, amb esta dada i les disponibles pel client, s'actualitzarà el balanç i el consum total. (1 punt)

  • Actualització del balanç: introduint el nom del client, se li informarà de la seua situació (si déu diners o si disposa de diners a compte) i es demanarà la quantitat de diners que aporta. (0.75 punts)

  • Avís: la funció buscarà els clients que deguen més de 100 m3 d'aigua, mostrant les dades dels que es troben.

  • Salvar les dades: les dades es guardaran en el mateix fitxer. Esta funció s'executarà quan:

  • s'invoque voluntariament per l'usuari al menú.

  • just abans d'eixir del programa.

  • automàticament cada volta que el increment de consum total de tots els clients supere els 250 m3 des de l'última volta que es guardaren les dades. (0.75 punts)

El programa disposarà d'un menú amb les opcions: actualització del consum, actualització del balanç, llistat d'avís de morosos, guardar les dades, actualització del preu de l'aigua (implementant les instruccions necessaries per a dur-ho a terme), i eixir. (0.5 punts)

Problema 2 (3.5 punts)

Un palau de concerts desitja informatizar la gestió de reserves. Disposa de dues sales una amb 50 files de 25 butaques cadascuna, i l'altra amb 20 files amb 25 butaques cada fila. Dels clients que reserven es desitja guardar: el nom i el número de targeta VISA.

El programa ha de presentar un menú per a poder escollir entre les següents funcions:

  • Llistat de la informació d'una sala en particular: indicant per cada fila, el nombre de seients lliures i el nom dels clients que han reservat. (0.5 punts)

  • Reserva d'una butaca: se li demanaran al client les dades necessàries així com la sala, la fila i la butaca que desitja. Si la plaça està ocupada, se li demanarà de nou la fila i la butaca (únicament) fins que se li puga assignar una butaca lliure. (1 punt)

  • Reserva d'un grup de butaques: El programa podrà reservar abonaments de 5 entrades. Per això, demanarà al client la sala i la fila que desitja, i buscarà en eixa fila si existeix un grup de 5 butaques consecutives. En cas de no poder fer-se la reserva, la funció no ha de tornar a intentar-ho, podent repetir-se des del menú principal. En cas de poder fer-se la reserva, totes les butaques estaran reservades per la mateixa persona i la mateixa targeta VISA. (2 punts)

Fonaments de Informàtica 2 Juny 1999

Nom i cognoms:

Fundamentos de Informática 2 Junio 1999

Nombre y Apellidos: