Enrere Mòdul 7
Fonaments de programació. Llenguatge C/C++---
Exercicis

 

1. Base de dades de pel·lícules

Seguint el mateix esquema del programa de la pràctica 1, feu una base de dades de pel·lícules. 

Definiu una estructura anònima i un vector associat a aquesta estructura amb el nom entrada. Els camps seran:

struct {
    char titol[50];
    char director[50];
    char protagonista[50];
    int duracio;
} entrada[MAX];

El programa ha de permetre fer noves entrades, esborrar-les, mostrar-les i fer cerques per títol, director i protagonista.

Anomeneu l'arxiu font m7e1.cpp.

 

2. Suma de dates

Amb l'ajuda de la funció mktime(), tractada a la pràctica 5, feu un programa que utilitzi una funció que sumi a una data i hora determinada un nombre de segons. El protocol de la funció haurà de ser:

void suma_temps( tm *data, long segons);

És a dir, la funció ha de tenir dos arguments: un punter a una variable d'estructura tm i una variable entera. La funció modifica el valor de la variable apuntada per data de manera que la nova variable correspongui a sumar aquests segons a la data. Per exemple, si data apunta a:

18:01:20 1 de gener de 2001, i sumen 100.000 segons, tindreu la nova data i hora:

21:48:00 2 de gener de 2001

Tingueu en compte que podeu sumar els segons directament al camp tm_sec i, encara que se superi el valor màxim de 59, la crida a la funció mktime() reajustarà el contingut dels camps per mostrar la data i hora correctes.

Anomeneu l'arxiu font m7e2.cpp.

 

 
3. Horari escolar

L’horari escolar d’un grup de batxillerat és de 6 hores diàries de dilluns a divendres. Voleu crear una aplicació que permeti introduir les dades d’aquest horari.

 

Per cada hora s’haurà de definir:

-          nom de l’assignatura

-          nom del professor/a

-          número d’aula

 

L’horari s’emmagatzema en una estructura de dades anomenada horari. Trieu l’estructura de dades més adient per emmagatzemar aquesta informació i que tingui les funcionalitats següents:

        a)        OmplenarHorari(). Ha de permetre introduir totes les hores.

        b)       OmplenarHora(). Permet introduir les dades d’una determinada hora d’un dia.

        c)        LlistarHorari(). Treu per pantalla l’horari.

        d)       ModificarHora(). Permet canviar les dades d’una determinada hora d’un dia.

 Anomeneu l'arxiu font m7e3.cpp.

 

4. Arguments en la funció main()

Fent servir les idees de la pràctica 9, construïu una aplicació que es pugui cridar des de l'indicador d'ordres de l'MS-DOS amb tres paràmetres: un número, un caràcter
(+ - * /) i un altre número. L'aplicació també ha de fer l'operació entre el segon i el quart argument. L'operació que s'ha de fer ve donada pel tercer argument, que el programa controlarà que sigui un dels següents operadors (+ , - , * , /).

Per exemple:

c:\>m7e4 10 +  5

La suma és 15

Anomeneu l'arxiu font m7e4.cpp.

 

Problemes complementaris

Aquests exercicis serveixen per completar aquest mòdul, però suposen una ampliació voluntària. No és necessari entregar-los. No obstant això, és convenient fer-los i lliurar-los.

 

5. Arguments en la funció main()

Fent servir les idees de la pràctica 9, construïu una aplicació que es pugui cridar des de l'indicador d'ordres de l'MS-DOS amb dos paràmetres: un caràcter i un enter. L'aplicació ha d'escriure el caràcter indicat pel primer argument el nombre de vegades que indiqui el segon argument. Per exemple:

c:\>m7e4 x 10

xxxxxxxxxx

Anomeneu l'arxiu font m7e5.cpp.

6. Assignació dinàmica

Seguint les idees de la pràctica d'ampliació 2, feu un programa que calculi la mitjana d'un nombre indeterminat de números introduïts per teclat.

La introducció de dades (del tipus double) s'acabarà en el moment de prémer la tecla d'escapada (codi ASCII 27).

Anomeneu l'arxiu font m7e6.cpp.

7. Divisio de nombres complexos

Completeu el programa de la pràctica 6 per incloure la divisió de nombres complexos. El quocient és possible sempre que la part real i la part imaginària del divisor no siguin simultàniament 0. Aquesta circumstància s'ha de comprovar.

Si hi ha dos nombres complexos z1 = a + bi i z2 = c + di, es defineix la divisió com:

Anomeneu l'arxiu font m7e7.cpp.