Traducció de tuples a C

 
Llenguatge Algorísmic Llenguatge C
tipus
    nou_tipus = tupla
       camp1, camp2 : tipus1 
       camp3 : tipus2 
       ... 
    ftupla
ftipus
typedef struct  { 
   tipus1 camp1, camp2; 
   tipus2 camp3; 
    ... 
} nou_tipus;
Exemple  
tipus
     paraula = taula [0..19] de caràcter
     persona = tupla
        nom : paraula 
        altura, pes : real
        dni : enter
    ftupla
ftipus
typedef char paraula[20]; 

typedef struct { 
    paraula nom; 
    float altura, pes; 
    int dni; 
} persona;

Accés als camps: com en llenguatge algorísmic. 

Pas de paràmetres: com els tipus elementals (no taula). 

Atenció! :  Quan es passa un paràmetre de sortida o entrada/sortida de tipus tupla, cal anar en compte amb l'accés als seus camps en el cos de l'acció, perquè cal tenir present la prioritat de l'operador '*' respecte a l'operador '.'. Una alternativa és utilitzar l'operador '->'. 

Exemple:
 

acció canviaPes(ent/sort jfk:persona) 
    jfk.pes := (jfk.altura-100.0) 
facció
void canviaPes(persona * const jfk) {
    (*jfk).pes = (*jfk).altura-100.0;
}

O equivalentment:

void canviaPes(persona * const jfk) {
     jfk->pes = jfk->altura-100.0;
}