1974 – Buste paghe

Sia dato un file sequenziale di nome PAGA, il cui record logico è strutturato su due campi, ANAGRAFICO e SOMMA.

Il campo ANAGRAFICO contiene una stringa di 23 caratteri a scopo identificatorio, mentre il campo SOMMA contiene una stringa di 9 caratteri, ristretti alle sole cifre decimali più il punto e lo spazio bianco.

Il campo SOMMA esprime un numero intero nel formato X.XXX.XXX allineato a destra e con gli zeri non significativi (e gli eventuali punti tra essi) sostituiti con spazi bianchi.
Tale valore è un multiplo di 5 e rappresenta un importo da liquidare in contanti in lire italiane.

Occorre produrre un tabulato di stampa di nome NUMERARIO, dal quale si deduca la composizione di ciascuna busta paga, in termini di banconote e pezzature metalliche, che renda minimo il numero di elementi (banconote più monete).

Nel NUMERARIO vi sono 2 tipi di record:

ORDINARIO

Vi sarà un record ORDINARIO avente la struttura ANAGRAFICO, TAGLIO1, ..., TAGLIO13, SOMMA per ciascun record di PAGA.

TOTALI

L’unico record di tipo TOTALI avrà struttura analoga a quello di tipo ORDINARIO, salvo per il campo ANAGRAFICO privo di significato.

I tredici campi di dettaglio conterranno i totali delle rispettive colonne e saranno allineati con esse; è in facoltà del candidato prevedere la stampa di un totale per la colonna SOMMA.

Formulare le ipotesi necessarie a rendere ben posto il problema e documentare l’algoritmo scelto per la risoluzione.