C12. Machine de Turing - Vecteurs - Programmation PASCAL Corrigé
Exercice 1 : vérification syntaxique des déclarations FORTRANSoit un ensemble de N lignes oł chacune renferme une déclaration FORTRAN. Ecrire un algorithme commenté qui imprime pour chaque déclaration la valeur VRAI si elle est correcte, un message d'erreur si elle est fausse.
Une déclaration FORTRAN a la forme suivante :
Colonne 1 à 6 : des blancs
Colone 7 à 72 : texte de la déclaration
Le texte de la déclaration a la forme suivante :
TYPE Idf1, Idf2, ,Idfn
avec type dans { INTEGER, REAL, LOGICAL}
Idf1, Idf2, .....et Idf3 sont des identificateurs.
a)Entre TYPE et l'identificateur il y a au moins un blanc. Les identificateurs sont séparés par des virgules. Des blancs peuvent exister entre les identificateurs et les virgules.
b) Idfi : suite de caractères alphanumériques dont le premier est alphabétique. La longueur est au maximum égale à 8.
On suppose qu'il existe une relation d'ordre dans l'ensemble des caractères. On a ainsi par définition :
autres caractères <'1'<'2'<... <'9'<'A'<'B'.. < 'Z'
Chaque ligne renfermant une déclaration est lue caractère par caractère. On utilisera la fonction Sauter-ligne qui permet le positionnement en colonne 1 de la ligne suivante.
Exercice 2 : Course de ski
Pendant une course de ski, on a relevé après un essai les temps mis par N concurrents. On désire, après avoir mis les informations sur fichier, obtenir d'abord le tableau d'affichage des temps mis par les N concurrents, puis le tableau d'affichage concernant uniquement les trois premiers.
Les données sur fichier ont la forme suivante :
Première ligne : nombre de concurrents sur 3 positions.
Dans les N lignes suivantes, on a recensé les informations concernant les concurrents. Chaque ligne est organisée comme suit :
Colonne 1 à 4 : Numéro du concurrent
Colonne 12 à 19 : Nom du concurrent
Colonne 30 à 31 : Minutes
Colonne 32 à 33 : Secondes
Colonne 34 à 35 : Centièmes de seconde
Le tableau d'affichage aura la forme suivante :
<---10---> <-----15------> <-----14----->
*----------*---------------*--------------*
* * * *
* NUMERO * NOM * TEMPS *
* * *----*----*----*
* * * MM * SS * CC *
*----------*---------------*----*----*----*
* * * * * *
* numéro 1 * nom 1 * mm * ss * cc *
* * * * * *
*----------*---------------*----*----*----*
* * * * * *
etc ..
Ecrire l'algorithme et le programme PASCAL correspondant.