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

divendres, 21 de maig del 2010

Estructures repetitives (iteratives)

Ahir van veure com en un determinat moment del programa potser necessitem que davant una certa condició el programa faci una cosa o una altra, ho vam veure amb l'exemple més comú. Tot i que tenim més possibilitats per fer el mateix.

Amb les estructures iteratives ens passa el mateix. Explicarem el concepte amb un tipus d'estructura, malgrat que tenim més maneres de fer el mateix. Doncs bé aquest tipus d'estructures es fan servir quan necessitem que el programa repeteixi unes instruccions un nombre determinat de vegades o mentre es compleixi una condició. Dit d'una altra manera, les instruccions són línies de codi, si unes determinades línies de codi s'han de repetir fins que alguna cosa canviï necessitarem una estructura repetitiva que ens generi un bucle del qual no sortirem fins que la condició canviï. És molt més "econòmic" que escriure mil cops determinades instruccions i és especialment útil quan depèn d'algun tipus d'interacció que la condició canviï.

Aprofitant el trillat exemple del programa dels amics, farem que, un cop el programa ens diu la frase en funció del % d'amics sense fills que tinguem, ens demani l'edat de cadascun d'aquests amics i després ens calculi la mitjana d'edat que tenen els nostres amics sense fills. Atenció! Com que encara no hem avançat gaire, traurem la possibilitat d'introduir les dades des del teclat i les dades del nombre d'amics del grup i el nombre d'amics sense fills aniran introduïdes al codi. Agafarem l'exemple del primer exercici: 6 amics al grup i només 1 amb fills, per tant 5 sense fills.

Clica la imatge per a una correcta visualització

Crearem 4 variables noves:

edat>> encarregada d'emmagatzemar l'edat de l'amic dins el bucle
suma_edat>> acumularà el sumatori de les edats introduïdes
mitja>> contindrà l'operació per calcular la mitja d'edat dels sense fills
i>> serveix per recórrer pel bucle

El bucle.
En el nostre exemple el bucle és aquest:

for(i=0;i<5;i++){
printf("Introdueix la edat del amic %d: ", i+1);
scanf("%f", &edat);
suma_edat=suma_edat+edat;
}

Quin embolic, no? Doncs el for és una de les estructures repetitives. Està recomanat utilitzar-lo quan sabem exactament el nombre de cops que s'haurà de repetir el bucle. Nosaltres tenim 5 amics sense fills, per tant haurà de preguntar 5 cops l'edat de l'amic.

El que hi ha entre parèntesi indica l'inici, la condició i que passa a cada repetició:

  • i=0; recorda que la variable i serveix per recórrer el bucle, s'inicia a 0 però canvia de valor
  • i<5;>
  • i++; vol dir que cada cop que es repeteixi el bucle, la variable 1 suma 1

Així dons i comença a 0 però quan el bucle es fa un cop, en sortir, valdrà 1, es torna a fer, en sortir valdrà 2, es torna a fer, en sortir valdrà 3... i així fins a 5 cops!

Les instruccions que són a l'interior del bucle:

for(i=0;i<5;i++){
printf("Introdueix la edat del amic %d: ", i+1);
scanf("%f", &edat);
suma_edat=suma_edat+edat;
}

La primera línia de codi treu per pantalla la frase introdueix l'edat del amic %d i aquest %d en sortir per pantalla s'imprimirà per valor que tingui i en aquells moments més 1. O sigui el primer cop que veiem la frase, com que i val 0, si a 0 sumem 1 ens imprimirà:

Introdueix l'edat de l'amic 1

Com que i, en acabar les instruccions i tornar a entrar al bucle suma 1 per la instrucció i++ quan hagi d'imprimir la frase per segon cop i ja valdrà 1, però com que sumarà 1 en imprimir-la ens mostrarà:

Introdueix l'edat de l'amic 2

...i així successivament!

La segona línia de codi (scanf("%f", &edat);) llegeix l'edat que introduïm al teclat i l'emmagatzema temporalment a la variable edat.

La tercera línia va sumant les edats introduïdes i acumulant el sumatori dins la variable suma_edat. Recorda posar & davant la variable per a una correcta execució del programa.

Finalment:

mitja=suma_edat/5;
printf("La mitja de edat dels teus amics sense fills es de %.2f", mitja);

Calculem la mitja i imprimim el resultat per pantalla. Demà un resum amb els principals tipus d'estructures condicionals i iteratives!

dijous, 20 de maig del 2010

Estructures Condicionals

Fins ara hem vist que els programes funcionen de manera seqüencial, o sigui, fan el que indica el codi escrit de dalt a baix. Però potser en un determinat moment volem que el programa faci una cosa si, i només si, es compleix certa condició. A aquest tipus d'estructures les anomenem condicionals i la més senzilla és if/else.

Tornem a imaginar el problema del dia anterior, el dels fills. Volem que un cop hagi calculat el % d'amics sense fills el programa ens mostri per pantalla un missatgel. Per exemple si el nombre d'amics del nostre grup que encara no tenen fills és igual o més gran del 75% mostrarà un missatge i en qualsevol altre cas un altre. Escriuré només la part del codi, el codi comú el podeu posar igual en qualsevol programa. La part nova corresponent al que expliquem avui està en negreta:

int grup=0;
int sense_fills=0;
int resultat=0;
printf("Quants amics sou al teu grup? ");
scanf("%d", &grup);
printf("Quants amics del grup no tenen fills? ");
scanf("%d", &sense_fills);
resultat=(sense_fills*100)/grup;
printf("El percentatge dels que no tenen fills es del %d", resultat);
if(resultat>=75){
printf("El món quedarà despoblat gràcies a vosaltres");

}

else {

printf("Esteu superpoblant el planeta");

}


Mira el codi complert.

Clica la imatge per a una correcta visualització

if(resultat>=75) vol dir que si el valor de la variable resultat és igual o més gran que 75 imprimirà la frase "El món quedarà despoblat gràcies a vosaltres", mentre que en qualsevol altre condició -else- s'imprimirà "Esteu superpoblant el planeta". És important entendre que només s'imprimirà una de les dues en funció del valor de la variable resultat. Les claus indiquen les instruccions que s'hauran de dur a terme en funció de quina condició es compleixi. Si només hi ha una instrucció al else de fet no caldrien les claus, tot i que si hi són, tampoc passa res. Una altra cosa important és que el if pot anar sol, sense l'else. De vegades potser que volem que passi una cosa si és compleix una condició i ja està!

dimecres, 19 de maig del 2010

Entrada de dades pel teclat

Ahir vam veure com solucionar el primer problema plantejat! Però en executar el programa ja se'ns donava la solució. No hi havia cap tipus d'interacció amb l'usuari. Imagina que volguéssim fer exactament el mateix programa però introduint les dades des del teclat. Així tots podríem saber el percentatge dels nostres amics que no tenim fills. És útil, oi? Serviria per diferents casos. El programa, en executar-se, ens demanaria primer:

"Quants amics tens?"

I nosaltres introduiríem la xifra.

"Quants d'aquests amics no tenen fills?"

I introduiríem la xifra d'amics sense fills.

Per aconseguir això necessitem fer alguns canvis. Observa el codi modificat (en negreta):

#include

int main(void){

int grup=0;
int sense_fills=0;

int resultat=0;

printf("Quants amics sou al teu grup? ");

scanf("%d", &grup);/*recull valor enter a la variable grup*/
printf("Quants amics del grup no tenen fills? ");

scanf("%d", &sense_fills);
/*recull valor enter a la variable sense_fills*/
resultat=(sense_fills*100)/grup;

printf("El percentatge dels que no tenen fills es del %d", resultat);

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

1. Les variables es declaren i s'inicialitzen amb valor 0.
2. Els printf imprimeixen per pantalla el que hi ha dins les "..."
3. scanf el que fa és llegir el que introduïm pel teclat i ho emmagatzema dins la variable de després la coma.
4. La operació es realitza un cop tenir la lectura de les variables grup i sense_fills.

Clica la imatge per a una millor visualització

Ara ja podríem jugar a introduir diferents xifres i observar com realitza el càlcul. A continuació les variables més utilitzades i com s'utilitzen tant per la sortida (printf) com per l'entrada (scanf) de dades.

%d - serveix per a enters (ex. 845)
%f - serveix per a amb decimals (ex. 4,7)
%c - serveix per a caràcters (ex. s)

És imprescindible posar & davant la variable que emmagatzemarà el valor quan fem la lectura (scanf).

dimarts, 18 de maig del 2010

Problema 1 en C++

Recuperem el problema exemple plantejat alguns posts enrere:

El teu grup d'amics de tota la vida és de sis persones, però, de moment, només una ha tingut fills. Quin percentatge del grup encara no té fills?

Jo el que faria seria una regla de tres: si 6 és el 100%, les 5 persones que no han tingut fills (6-1=5) quin percentatge representen.?

Solució=(5x100)/6= 83.3% seria el resultat.

Ja tenim la part A resolta. Hem pensat com arribar a la solució. Ara ens falta transportar això al llenguatge de programació concret amb el que estem treballant: C++.

Primer de tot necessitem definir variables i constants. I què és això? Doncs bé son com una mena de calaixos de memòria que ens permetran emmagatzemar dades de diferent tipus.

Constants

>>Les constants estan pensades per dades que es repeteixen al llarg del codi sense variació. Imagina que fem un programa per un país a on la majoria d'edat és als 18, i aquesta dada es va repetint per tot el codi, si la tenim definida com a constant i després hem d'aprofitar el mateix programa per un país a on la majoria d'edat és als 21 només canviant 1 cop la xifra funcionarà igualment. Ens estalvia feina.

Variables

>>Estan pensades per emmagatzemar dades que aniran canviant durant l'execució del programa.Com que el codi d'aquest programa concret és curt definirem tot com a variable i així simplifiquem.

El codi resultant seria aquest: en negreta el codi del programa en sí i en text normal el codi comú a tots els programes.

/*Data: 18/05/10
Nom fitxer: fills.c
Autor: AJF
Descripció: Programa que donat un nombre d'un grup d'amics i el nombre dels que no tenen fills ens calcula el percentatge dels que no són pares*/

#include

int main(void){

int grup=6;
int sense_fills=5;
int resultat=(sense_fills*100)/grup;
printf("El percentatge dels que no tenen fills es del %d", resultat);

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

Veiem com quedaria el codi escrit amb el Dev-C++:

Clica la imatge per una bona visualització

Un cop escrit el codi amb el programa Dev-C++, l'hauries de guardar des de:
>>Menú Fitxer /Anomena i Desa posar un nom i guardar amb extensió .c.

Un cop guardat ja el pots Compilar i Executar des de:
>>Menú Execució / Compila o clicant F9

Sortirà una pantalla negra a on et mostrarà la frase:

El percentatge dels que no tenen fills es del 83

*No fiquem el % darrere el 83 perquè directament no sortiria per la consola (pantalla negra que mostra l'execució del programa).

Però perquè ens surt el 83 i no el 83.33.?

Doncs bé repassem i intentem entendre el codi:

int grup=6; -- definim la variable grup que és de tipus enter i per tant no pot tenir decimals
int sense_fills=5;-- el mateix però per la variable sense fills
int resultat=(sense_fills*100)/grup;-- el mateix per resultat

Com a resum podem dir que per definir variables fem:
tipus nom=valor; (que és l'estructura que tenen les tres variables anteriors)

Hem definit 3 variables de tipus enter, dues emmagatzemen dades: el total d'amics i el total dels que no tenen fills i la tercera emmagatzema el resultat de l'operació descrita en la resolució del problema i que utilitza les dades de les 2 variables anteriors.

Si volem obtenir decimals hauríem de canviar int per float: el tipus de variable que permet emmagatzemar decimals. Pots provar de fer els dos exercicis i comprovar els canvis amb una i l'altra. És evident que en aquest cas ens aniria millor un float ja que és més precís.

El codi:

printf("El percentatge dels que no tenen fills es del %d", resultat);

El printf vol dir imprimir, però aquest imprimir vol dir que surti per la consola (i no per la impressora!). El que es visualitza a la consola és el que hi ha dins les " ". Dins les cometes tenim %d que vol dir que és un enter i que la variable que haurà de mostrar és resultat. Si vols veure com funciona pots canviar resultat pel nom de les altres variables i veure com t'imprimirà 6 o 5 en funció de quina triïs.

dilluns, 17 de maig del 2010

Codi comú pels primers programes

*Tornem a sintetitzar al màxim i recordem que això no té cap pretensió de ser un manual oficial de C++. És un repàs als continguts del PEM de l'IOC, però fet/explicat/reelaborat d'una manera completament diferent als continguts de l'IOC, basant-me en els meus coneixements i experiència pròpia, i, en com m'agradaria a mi que m'ho haguessin explicat.


Doncs bé, ja hem instal·lat el Dev-C++, l'hem obert, hem clicat per fer un nou fitxer font, abans de començar a "picar"(escriure) el codi per resoldre el problema plantejat uns posts endarrere, m'agradaria que veiéssim dues parts que tenen tots els programes i que hauran de sortir sempre.

a.) comentaris
b.) codi bàsic perquè funcioni

Els comentaris es poden al principi de tot i que proporcionen la informació bàsica sobre el programa. Estaria bé posar: Nom, Fitxer (nom amb que guardarem el fitxer), Data i Descripció. Quan avancem una mica ja veurem que també esta bé posar Jocs de proves, però això més endavant. Els comentaris sempre han d'estar entre /* i */ perquè no afectin al codi.

El codi bàsic perquè funcioni és d'aquelles coses que s'han d'aprendre via fe, no cal fer-se mala sang perquè no s'entén. Ha d'anar així i prou, almenys en l'experiència que he tingut jo per seguir l'assignatura. Molt per sobre (enllacen amb la Viquipèdia a on es pot trobar més informació tot i que, per començar, repeteixo, jo no recomano entendre que fa i sí recomano acceptar que això és així sense més càbales)

#define
és una llibreria estàndard de C
int main(void){} funció que ha de tenir tot programa
getchar(); el repeteixo dos cops perquè és l'única manera que he trobat que no es tanquin la finestra on s'executa el programa (almenys per la majòria de programes que hem fet al curs)
return=0; segons tinc entès és un valor de retorn del int del main (veieu com és millor acceptar-ho i punt!)

Potser fent clic a la imatge per veure-la en gran s'entén millor el que intento explicar. Tot i això aquest fitxer font captura conté cap instrucció referent al problema que s'havia de solucionar. El bloc de codi corresponent a la solució el desenvoluparem demà!

diumenge, 16 de maig del 2010

Programa per escriure el codi: Dev-C++

Ja sabem com trobar la solució al problema plantejat. Hem enllestit la primera part de la feina.

Ara ens queda la segona, escriure el codi en C++ i que l'ordinador faci el càlcul.

Per realitzar aquesta part necessitem un programa informàtic que ens permeti escriure el codi i després s'encarregui de compilar (passar el codi font a codi màquina) i executar el programa. No importa si no entens exactament que és compilar i que és executar. Ja ho veuràs.

Farem servir Dev-C++. S'ha de descarregar i instal·lar en el teu equip. Un cop ho tinguem fet. Comencem la segona part: escriure el programa en llenguatge de programació C++. El programa és com es mostra a la imatge. Per començar a escriure podem fer:

a.) Menú Fitxer / Nou /Fitxer font
b.) Control + N
c.) O bé clicar el botó assenyalat en vermell

Qualsevol d'aquestes accions obrirà una "pàgina en blanc" (nou fitxer font) a on podrem començar a escriure.

dissabte, 15 de maig del 2010

Seqüència lògica per fer un programa

Imatge desarrolloweb.com
De manera molt abreujada podem dir que fer un programa, al nostre nivell d'alumnes novells, té dues parts:

a.) resolució mental o sobre paper
b.) traducció a un llenguatge de programació

Per la primera part l'IOC proposa utilitzar el pseudocodi. El pseudocodi és una manera estandaritzada d'escriure la resolució d'un problema sense utilitzar cap llenguatge de programació específic, en un llenguatge que s'assembla més al llenguatge natural. La meva recomanació és IGNORAR tota la part de pseudocodi. Al cap i a la fi és un llenguatge més amb les seves pròpies regles i implica memoritzar una normativa. El que sí és molt recomanable és que abans de començar a escriure en un llenguatge determinat, en el nostre cas C++, tinguem clar com es soluciona el problema, sobre paper o al nostre cap.

La segona part, traduir aquella resolució a un llenguatge de programació determinat, és molt més fàcil del que sembla. La veritable dificultat de programar, no ho oblidem mai, és resoldre els problemes que se'ns plantejaran.

Problema exemple: El teu grup d'amics de tota la vida és de sis persones, però, de moment, només una ha tingut fills. Quin percentatge del grup encara no té fills? Si saps trobar el resultat que es demana i ets capaç d'entendre la seqüència d'operacions que estàs seguint et resultarà senzill fer un programa en C++ que calculi això.

divendres, 14 de maig del 2010

Preparació psicològica per començar a programar

Aprendre a programar és, abans que tot, saber resoldre problemes, sovint de caràcter matemàtic. Cal doncs ser un geni de les matemàtiques? Doncs no aniria malament. Però tranquil la amb base de secundària te'n pots sortir. Almenys pel que s'explicarà aquí.

I com puc aprendre? La manera d'aprendre a programar és programant. O el que és el mateix, fent molts exercicis. Els inicis, pels no iniciats, poden ser complicats. Un té la sensació que no està aprenent res, que hi ha moltes coses que no entén i que no se'n sortirà mai. Però no es pot llençar la tovallola. Hem de continuar fent problemes!

A l'IOC disposem de Fòrums a on alumnes i professors participem compartint solucions d'exercicis. Es pot arribar a aprendre més dels companys que no dels materials d'estudi. Si ets estudiant on-line et recomano estar al dia en la lectura de Fòrums i si un vol aprendre de manera autodidacta hauria de buscar fòrums públics i exposar els seus dubtes.

D'altra banda, com que tot ens pot resultar nou, hi haurà una voluntat d'entendre absolutament tot el que estem fent, i, tot que seria ideal entendre tot, tot i tot (igual que ser un geni en matemàtiques) penso que hi ha coses que senzillament s'han d'aprendre via fe, sense donar-hi més voltes. Això farà que dediquem tots els nostres recursos, que necessitarem molts, als aspectes que realment s'han d'entendre.

Personalment opino que és difícil d'assolir, però no per una qüestió de dificultat de l'objecte d'estudi en sí mateix. Més aviat per les qüestions abans exposades: recuperació de les "mates" si fa temps que les vam deixar aparcades, desànim en el procés d'aprenentatge per manca de resultats de manera ràpida, grans volums d'informació (parlo sempre des de la perspectiva de l'IOC) que com a "novato" és difícil jerarquitzar i intents d'aprendre els manuals deixant de banda altres recursos d'aprenentatge que poden ser molt més útils que els propis materials (els citats fòrums).

dijous, 13 de maig del 2010

C++ a la meva manera

Com que haig de preparar l'examen de PEM (Programació Estructurada i Modular) que és el dia 29 de maig intentaré, fins el dia 28, explicar el que he aprés, o el que crec que he aprés (que possiblement és ben diferent), però utilitzant el mètode Jarel, o sigui, un mètode ultra-sintètic, amb l'objectiu principal d'estudiar per l'examen però amb la voluntat d'intentar refer d'alguna manera els materials d'estudi de l'IOC, creant una mini-guia d'aprenentatge per a la gent que parteix de zero.

*Avís! estic en procés d'aprenentatge i és molt probable que els materials resultants tinguin errades. Demà el primer post: Preparació psicològica per començar a programar!

dimecres, 12 de maig del 2010

La nit dels museus: itinerari previst

El proper dissabte 15 de maig de 19.00h a 1.00h tindrà lloc la Nit dels Museus, amb entrada lliure a 38 museus i centres d'exposició.

Itinerari previst, ambiciós però no impossible:

>>19.00h Tecla Sala (L1 Torrassa) A veure l'exposició del Joan Furriols i si hi ha temps una ullada als Projectes artístics de Postgraduats de la Facultat de Belles Arts

>>20.30h MUHBA Plaça del Rei (L1 Catalunya) Una mica d'urbanisme amb Cerdà i Barcelona.

>>21.30h Sopar ràpid i barat pel centre. Caminaré a pas lleuger fins a Aragó per baixar el shawarma.

>>22.30h Fundació Antoni Tàpies M'agradaria veure les tres: Eva Hesse, Bracha L. Ettinger i Ria Verhaeghe i, ja que estem, la col·lecció Tàpies. Caminant a pas lleuger fins a carrer Montcada.

>>00.00h Disseny HUB Barcelona Moda: Outumuro

>>1.00h Metro a Jaume I i a dormir!


I si no hi ha temps aniré reduint en ordre invers!

dimarts, 11 de maig del 2010

Zero en conducta: l’educació a debat

Ahir vaig anar a una de les taules rodones del cicle sobre l'Educació que va inaugurar la Filmoteca de Catalunya el 19 d'abril i que ha organitzat en col·laboració amb el Departament d’Ensenyament, l’Escola Projecte, Drac Màgic, Cinema en Curs, Cinema escola i A Bao A Qu. Un total de 21 films i 4 taules rodones.

Sobre "El desig d’aprendre" van parlar l'Eulàlia Bosch, la Montserrat Castanys, tot i que encara no té entrada a la Viquipèdia és Premi Catalunya d'Educació l'any 2004, i el Lluc Pejó, cap de l'àrea educativa del Museu Agbar i que en buscar pel seu nom a Google el primer resultat és el seu Facebook, en una taula moderada per la Laia Colell. No tinc el costum de prendre notes i ho hauria de corregir ben aviat perquè, a més de la transmissió d'idees, sempre hi ha noms, llibres, obres i referències que s'acaben oblidant, en el cas de la ponència de l'Eulàlia, s'esvaeix el magistral resum sobre en què consisteix l'ofici de mestre a càrrec de la Montserrat Castanys (molt millor que el CAP) i no puc acabar d'entendre, perquè no puc repassar, les 12 instantànies que va generar el Lluc articulant la seva ponència entorn al "Desig d'aprendre", basades en principis científics.

El millor va arribar durant el torn de preguntes del públic quan una jove va preguntar què s'havia de fer quan tens un "profe" insuportable que imparteix una assignatura -matemàtiques- que t'agrada molt i per l'efecte "profe" l'assignatura et comença a fastiguejar. Les respostes dels ponents van ser curioses: l'Eulàlia no es va mullar, en el sentit que, havent sentit només una perspectiva és difícil saber si el realment el professor era dolent, per tant, va suggerir la possibilitat que el que per a ella era dolent per a un altre podia ser realment bo (i recordo el Ramon Ferrer a Tècniques d'Ergonomia amat i odiat a parts iguals per la seva acceleració incontrolada al parlar) . La Montserrat va cometre l'error de dictar sentència donant per bo l'únic testimoni, una llàstima quan podria haver fet una anàlisi més constructiva, tot i que no exempta de raó en el cas que la noia no s'equivoqués titllant la seva professora d'incompetent. El Lluc va proporcionar, al meu parer, la millor resposta: dividida en dos parts. La primera: si no m'equivoco, quan feia COU, va tenir un professor de Química, que els va dir que no faria classe. I llavors va descobrir la utilitat del llibre de text. La segona: va recomanar la noia que, a més d'espavilar-se amb el llibre, podia calcular la probabilitat de tenir un altre professor com aquest durant la vida.

I quan va acabar la taula rodona vam gaudir de Ser y Tener.

dilluns, 10 de maig del 2010


Rusc
Niu d'abelles. De manera natural formats en troncs d'arbres buits, l'home va idear maneres de retenir els eixams: troncs d'arbre, escorça de suro, cistells de palla, etc. Actualment els apicultors utilitzen ruscos en forma de caixes amb quadres mòbils de diferents tipologies, com per exemple: Layens, Langsthroth o Dadant.

diumenge, 9 de maig del 2010

Restaurant Nimbin

*web *ubicació
pos servei megaràpid a preu raonable, la tapa de "Delícia Gallega" i les postres
neg sense cafetera!
preu x: 18 €

dissabte, 8 de maig del 2010

L'amor segons Smart

La volia llegir perquè vaig sentir a la ràdio que Morrisey s'havia inspirat en ella per escriure algunes de les lletres dels Smiths. Vaig agafar el llibre dijous i aquesta tarda de dissabte l'he llegit en un sospir. Una flipada total... de l'autora!

La lectura és complicada. "Paloma mía, mi amor, que ellos no han conseguido profanar, ve a la cabina de teléfono con Diógenes y marca un número que alguien entienda. El impuesto sobre la renta fue lo que acabó con Al Capone. ¿De qué se trata ahora?"

Pàgina rere pàgina l'autora intenta submergir el lector en el seu univers arrogant, a on només ella sembla qualificada per parlar sobre el vertader significat de l'AMOR. Però potser es fa menys embafadora, i més humana, quan parla de la culpa, de la incomprensió, del fet de prendre decisions que no agradaran les altres persones que estima, del dolor, la desesperació de no aconseguir/perdre allò desitjat...

Una postura embogida però valenta: "El amor es mi única carta: lo apuesto todo a ella."

I no és estranya la tria ja que pot generar-li sensacions, gairebé al·lucinògenes..."Puedo comprimir el desierto de Mojave entero en una palabra inspirada, o someter a toda América a mi capricho, como si América fuese un camarero que espera, de pie, a que yo me decida. Estoy en pleno delirio de poder, de invulnerabilidad."

Em preocupa que les línies que em susciten més empatia siguin: "¿No será que estás un poquitín obsesionada con todo éste asunto?" pronunciades per papa Smart.

La millor part del volum comença a la pàgina 145 a on trobem les notes sobre la traducció, de Laura Freixas, i a on trobem desglossades totes les referències literàries que conté En Grand Central Station me senté y lloré (ideal pels ignorants com jo). I em "teletransporto" a COU recordant com La Colmena es gaudia més estudiant-la que llegint-la. Malgrat tot em reconforta pensar, com apunta el Manuel Pulido, "el texto trata de transmitir una pasión extraodinaria por la propia poesía".

divendres, 7 de maig del 2010

Desarrollo Web

Pensada per aprendre a dissenyar pàgines web des de zero amb articles, tutorials, recursos, secció de recerca de feina i molt més. Les seccions més interessants per començar: Introducció, HTML, CSS, Javascript, Disseny web, ASP, PHP i Ajax.

dijous, 6 de maig del 2010

Coneixent Fernando Krahn

Magazine digital La Vanguardia
La programació d'activitats de les Biblioteques de Barcelona inclou regularment Vine a fer un cafè amb... a on es convida a un escriptor per parlar del seu llibre. Avui dijous hi havia programada una tarda de tertúlia per conèixer el Bichografías de Fernando Krahn, i malgrat que el dibuixant ens va deixar al febrer, els seus fills i companys de feina han volgut acompanyar els assistents a l'activitat rebatejada com a Homenatge a Krahn. La trobada/xerrada ha tingut lloc a la Biblioteca Jaume Fuster i ha estat una oportunitat única per apropar-nos a aquest artista des de la mirada d'aquells que el van conèixer. El Toni Batllori ens ha apropat a l'obra de Krahn des de la seva experiència: va arribar a l'obra de Krahn, l'any 1990, en una exposició conjunta d'aquest amb el poeta David Jou, també hem pogut veure les il·lustracions per Firmin de Sam Savage i per últim fragments de Bichografías, que segons la opinió del Toni Batllori és una obra autobiogràfica (l'afirmació es recolza en un llarg viatge de tren que va compartir amb Krahn i al qual ens ha sabut transportar, compartint amb nosaltres, amb quina facilitat sabia transmetre tota una vida, en ocasions, marcada per la fatalitat i l'atzar). Els fills ens han mostrat un Krahn molt pencaire, amb mil projectes al cap, fins l'últim moment i també la seva incursió en el món de l'animació treballant de manera conjunta amb un dels seus fills. Fins i tot, alguna assistent del públic, treballadora del suplement de Ciència i Tecnologia de La Vanguardia ens explicava com els experts que signaven els articles que Krahn il·lustrava quedaven meravellats davant la facilitat amb que podia transmetre complicats conceptes científics! I com que m'he quedat amb ganes de més...

dimecres, 5 de maig del 2010

Creació de videotutorials

Vaig descobrir Wink gràcies als companys de feina, és un molt bon recurs per realitzar videotutorials i a més és programari gratuït. Permet editar els vídeos i afegir explicacions que ajuden a assimilar les imatges. CamStudio és una altra opció gratuïta amb molt poques opcions, comparat amb el programa de pagament Camtasia Studio, però a considerar si volem fer alguna captura de pantalla en format .avi.


Captura amb CamStudio a pantalla complerta


Captura d'una regió de la pantalla amb CamStudio

Descàrrega des de ↓ana.cat

dimarts, 4 de maig del 2010

Sunrise: A Song of Two Humans

Fotografía de Rosher i Struss
Un altre regal pendent, de fa més d'un any. La veritat és que la idea de veure una "peli" sense diàlegs, només amb música no m'atreia gens... i haig de confessar que he necessitat dues sessions per acabar-la (diumenge, durant el primer visionat, vaig caure en una espiral de son infinita i finalment ahir dilluns vaig acabar els minuts que em quedaven...). Em costa horrors posar-me en la mentalitat de la època i intentar fer un visionat més just, però que hi farem, vaig néixer 50 anys després de l'estrena i els ulls que tinc són aquests... així que l'argument em sembla quasi-medieval (pagès casat i amb fill s'embolica amb tia bona de la ciutat que està de vacances, pacta amb tia bona matar la dona però finalment se'n penedeix "re-enamorant-se" de la seva dona) tot i que si en algun moment m'he sentit realment allà ha estat en l'escena del ball amb l'anècdota del "senyor dels tirants".





Murnau jugant amb les possibilitats de la imatge

dilluns, 3 de maig del 2010


Sachar

(Del lat. sarculāre) Escardar la tierra sembrada para quitar las malas hierbas, a fin de que prosperen más las plantas útiles. En català birbar o eixarcolar.

diumenge, 2 de maig del 2010

Exercici Indesign: Creació d'estils

Treballar amb documents de text i imatge llargs ens obliga a utilitzar un programa de maquetació. Actualment Indesign s'ha imposat per sobre d'altres solucions de programari i en aquest exercici intentarem practicar amb les diferents opcions disponibles, especialment les que ens poden ser més útils a l'hora d'estalviar feina amb textos llargs: les pàgines mestres, els estils de paràgraf i la generació de taules de contingut. Descàrrega des de ↓BOX o ↓ana.cat

dissabte, 1 de maig del 2010

Lasse Marhaug

Descobriment a la Presentació del 12è. Voll-Damm Festival de Jazz de Vic, acompanyant Paal Nilssen-Love i Ken Vandermark amb Fire Room: Lasse Marhaug. Mentre sentiu el podcast podeu anar fent una ullada a la web de Lasse, que, pel que sembla també dissenya i fa fotos.