Professional Documents
Culture Documents
Informàtica Tuples PDF
Informàtica Tuples PDF
Les tuples sn estructures de dades que consten de diversos camps que poden contenir dades
de tipus diferents. Laccs al contingut dels camps en les estructures o tuples es fa emprant el
nom dels camps en comptes de la seva posici.
Emprem estructures o tuples per introduir dades dun usuari (DNI, NIF, tipus string).
tipus1 main1;
tipus 2 main2;
tipusn mainn;
} nomnoutipus;
int main()
{
nomnoutipus nom;
Exemple 1:
typedef struct
{
} persona;
int main() // Definim el nombre de persones que volem que tinguin struct persona.
{
// Les funcions no poden retornar taules per poden retornar tuples de tipus taula.
// En lexemple, podrem tenir un vector en la variable treball. Podem fer una funci que
// llegeix la tupla i la retorna.
Exemple 1:
typedef struct
{
} persona;
persona LlegirPersona();
int main() // Definim el nombre de persones que volem que tinguin struct persona.
{
persona treballador1, treballador2;
treballador1 = LlegirPersona();
treballador2 = LlegirPersona();
persona LlegirPersona()
{
persona p;
return p;
Exemple 1:
// Programa que escriu dades de lusuari (amb funcions de tuples).
typedef int data[3]; // s ms eficient per menys clar. Ho definim amb tuples:
typedef struct { int dia,mes,any} data;
typedef struct
{
} persona;
persona LlegirPersona();
int main() // Definim el nombre de persones que volem que tinguin struct persona.
{
treballador1 = LlegirPersona();
treballador2 = LlegirPersona();
persona LlegirPersona()
{
persona p;
return p;
Exemple 2:
// Un nombre complex es representa com una tupla amb dos camps: part real i part
// imaginria.
#include <iostream>
using namespace std;
int main()
{
cout << Introdueix una seqncia de complexos acabada en 0.0: << endl;
cin >> num.real >> num.im;
while(num.real != 0.0 || num.im != 0.0)
{
suma.real = suma.real + num.real;
suma.im = suma.im + num.im;
Exemple 3:
// Programa que llegeixi la informaci dun estudiant i retorni la seva nota mitjana.
typedef struct
{
// No podem fer una funci perqu cont una taula. Les funcions no poden retornar tuples que
continguin taules.
} estudiant;
int main()
{
estudiant e;
double suma = 0; // Ha de ser del mateix tipus que la variable notes.
int i;
LlegirEstudiant(e);
for (i=0;i<5;i++)
{
suma = suma + e.notes[i];
cout << La mitjana de notes de << e.nom << << e.cognom << s: << suma / 5.0;
} // Fi main.
} // Fi for.
} // Fi acci.
Exemple 4:
typedef struct
{
} estudiant;
// No podem fer una funci perqu cont una taula. Les funcions no poden retornar tuples que
continguin taules.
void LlegirEstudiant (estudiant &e);
int main()
{
estudiant classe[40];
int i;
for (i=0;i<40;i++)
{
LlegirEstudiant (classe[i]);
// No cal que li passi tota la classe, sin que li he de passar la posici de la classe on ha de
// guardar tota la informaci del nou estudiant. Per aix poso classe [i].
} // Fi for.
} // Fi main.
} // Fi for.
} // Fi acci.
Exemple 4:
// Programa que llegeix les dades i les notes de N = 40 estudiants i retorna quin
// estudiant t millors notes.
// No podem fer una funci perqu cont una taula. Les funcions no poden retornar tuples que
continguin taules.
int main()
{
estudiant classe[40];
int i, imax = 0;
double max = 0, mitja;
for (i=0;i<40;i++)
{
LlegirEstudiant (classe[i]);
// No cal que li passi tota la classe, sin que li he de passar la posici de la classe on ha de
// guardar tota la informaci del nou estudiant. Per aix poso classe [i].
} // Fi for.
cout << Mitjana mxima: << max << de lestudiant << classe[imax].nom;
} // Fi main.
} // Fi for.
} // Fi acci.
double suma = 0;
int i;
for (i=0;i<5;i++)
{
} // Fi for.
return suma / 5;
} // Fi funci.