dilluns, 31 de maig del 2010

Jeanne Weis: Teixits africans

*imatge de barcelona.unlike.net
Al carrer Raurich, 8 hi ha una botiga que es dedica a la venda de teixits amb estampats africans. Es pot comprar la tela per metres o bé comprar alguna de les peces que confeccionen ells mateixos , es poden trobar diferents models de bruses, faldilles, camises i vestits. També disposen de botiga on-line.

dijous, 27 de maig del 2010

Estructures

Ens permeten emmagatzemar dades de diferents tipus, com per exemple, el nom d'una persona i l'edat. El que farem serà modificar el programa amb el que estàvem treballant perquè ens demani els noms dels amics del nostre grup i després l'edat i, per últim, ens imprimeixi el contingut de l'estructura per pantalla.

Visualitzem el codi:

Clica sobre la imatge per a una correcta visualització

Per definir la estructura fem servir les línies de codi:

struct _amics{
char nom[NOM];
int edat;
}amics[MAX];

a on tindrem una "filera" amb caselles per anar ficant els noms i una segona "filera" per anar ficant les edats! Entre [ ] tenim NOM i MAX. El primer està declarat a les constants i indica la llargada de la cadena, 30 en l'exemple. MAX fa referència a la llargada d'amics, en el nostre exemple el grup sempre és de 6 amics.

Per omplir l'estructura (demanar les dades pel teclat) i per després imprimir-les (mostrar les dades introduïdes per pantalla) utilitzem el bucle for que ens serveix per iterar (repetir) quan sabem prèviament el nombre de vegades que haurem de fer el bucle.

Bé fins aquí el resum per preparar la prova de dissabte! Demà descans.

dimecres, 26 de maig del 2010

Taules

Clica la imatge per a una correcta visualització

Avui farem servir una taula per guardar un conjunt de dades del mateix tipus. Volem fer un programa que ens permeti emmagatzemar les edats dels amics del nostre grup d'amics que està format per 6 persones. Per no definir les variables per separat, crearem una variable taula, que ens permetrà guardar totes les edats. I per fer alguna cosa més calcularem la mitjana d'edat del grup.

Mirem el codi:

/*
/*Data: 26/05/10
Nom fitxer: edats_amics.c
Autor: AJF
Descripció: Programa que ens permetra guardar les edats dels nostres amics i
fer la mitjana d'edat del grup*/

#include

int main(void){

float edats_amics[6];//aquí definim la taula de 6 posicions
float total_edats_amics=0;
float mitjana_amics=0;
int i;

for(i=0;i<6;i++){
printf("Edat del amic %d: ", i+1);
scanf("%f", &edats_amics[i]); total_edats_amics=total_edats_amics+edats_amics[i];
}

mitjana_amics=total_edats_amics/6;
printf("La mitjana de edat del teu grup es de %.2f", mitjana_amics);

getchar();
getchar();
return(0);
}
*/


Per declarar la taula fem:

float edats_amics[6];

que ens permet declarar una variable amb decimals (float) que és diu edats_amics i que contindrà 6 edats.

Una cosa molt important, de cara a l'ús d'estructures repetitives, és que per recórrer una taula, partim de la casella 0 fins la última que és el total de caselles menys 1.

En el nostre cas, la taula emmagatzema 6 edats, per tant comença a la casella 0 i arriba fins la 5. Això es veu al bucle for que comença en i=0 i és manté actiu mentre i és més petit que 6, o sigui fins que arriba a 5 i surt!

dimarts, 25 de maig del 2010

Cadenes

Comencem explicant les cadenes, ahir explicàvem, que ens permeten guardar més d'una lletra o caràcter. Ens hem d'imaginar una filera amb caselles i com a cada casella guardarà un caràcter.

Farem un programa que et demani el nom dels teus dos millors amics i després te'ls mostri per pantalla:

/*Data: 25/05/10
Nom fitxer: millors_amics.c
Autor: AJF
Descripció: Programa que ens permetra guardar el nom dels nostres dos millors
amics*/

#include

int main(void){

char amic1[20];//cadena que permetrà guardar noms de màxim 20 caràcters
char amic2[20];//exactament igual que a la línia superior

printf("Nom del teu millor amic: ");
scanf("%s", amic1);//recull el que introduïm i emmagatzema a amic1
printf("Nom del teu segon millor amic: ", amic2);
scanf("%s", amic2);//recull el que introduïm i emmagatzema a amic2

printf("Els teus millors amics són %s i %s", amic1, amic2);//%s fa referència a string

getchar();
getchar();
return(0);
}

Si els nostres millors amics es diuen Joan Francesc o Maria Elena, el fet que hi hagi un espai en blanc entre els noms, a l'hora de recollir les dades introduïdes pel teclat l'scanf ens pot donar problemes, així que potser és més recomanable utilitzar gets, així:

Clica la imatge per a una correcta visualització

dilluns, 24 de maig del 2010

Guardar més d'una dada en C++

Fins ara hem vist com declarar variables que ens permeten emmagatzemar dades de diferents tipus. En el senzill exemple que hem vist hem treballat amb dades numèriques, però també podríem, per exemple, emmagatzemar caràcters com lletres, i també números però tractats com a lletres. Bé, necessitem començara conèixer com guardar més d'una dada:

Taules

Ens permeten emmagatzemar dades del mateix tipus. Edats, anys, preus...

Cadenes

Serveixen per emmagatzemar més d'una lletra o caràcter. Ens va bé per títols, noms, cognoms, adreces...

Estructures

Permeten guardar dades de diferents tipus. Imagina les dades d'una persona: nom, cognoms, edat...

Demà veurem com s'implementen en C++. Ja només queden 4 dies per l'examen de dissabte!

dissabte, 22 de maig del 2010

Resum estructures condicionals i repetitives

Aprofitant el gran ban de recursos que és Internet, deixo un enllaç que anirà bé per veure en profunditat el que he explicat molt per sobre fins ara.

Programació en C++: Estructures condicionals i repetitives