Pràctica 1. Conversor i validador de nombres romans en C

Programació I · 1r curs · Grau en Enginyeria Informàtica · Universitat de Lleida (UDL). Pràctica de Programació I amb l'enunciat de cada problema i el seu…

Programació I · Universitat de Lleida · Grau en Enginyeria Informàtica · 1r curs

1 problema · Bucles i disseny iteratiu

Exercici 1. Dissenyeu i programeu en C una aplicació de consola que demani a l'usuari un nombre romà i el tradueixi al…

Bucles i disseny iteratiu

Exercici 1. Conversió i validació de nombres romans a decimals

Dissenyeu i programeu en C una aplicació de consola que demani a l'usuari un nombre romà i el tradueixi al seu valor decimal aràbic corresponent, sotmetent l'entrada a comprovacions exhaustives de validesa sintàctica.

El programa ha de complir les següents especificacions:

Taula d'equivalències: establiu els valors de les xifres bàsiques mitjançant constants o directives del preprocessador: I = 1, V = 5, X = 10, L = 50, C = 100, D = 500 i M = 1000.

Entrada de dades: llegiu la seqüència símbol a símbol fins a trobar el salt de línia ('\n'), convertint automàticament cada lletra a majúscula per acceptar indistintament entrades en minúscules.

Validació gramatical estricta:

No es permet la presència de 4 símbols idèntics consecutius (per exemple, IIII o XXXX són incorrectes).

No s'admeten seqüències alternades invàlides del tipus dígit-subtracció-dígit repetit (com IXI).

Els símbols de base 5 (V, L, D) no poden aparèixer repetits consecutivament (com VV, LL, DD) ni ser utilitzats com a elements sostractius davant de valors superiors.

Les úniques combinacions sostractives vàlides són: IV, IX, XL, XC, CD i CM.

L'element que resta no pot aparèixer duplicat prèviament (és a dir, construccions com IIV, IIX, XXL, XXC, CCD o CCM s'han de rebutjar).

Qualsevol altre caràcter que no formi part de la numeració romana clàssica ha de ser considerat erroni.

Tractament d'errors i sortida: davant de qualsevol violació de la sintaxi, el programa ha d'emetre un avís informatiu pel canal d'errors estàndard (stderr) i finalitzar immediatament retornant el codi -1. Si la xifra és correcta, mostrarà per pantalla el resultat final en base deu.

Enunciado: Exercici 1

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

Més apunts de Programació I

Exàmens, temes i apunts de Programació I