Ara que tenim clar què són els algoritmes, continuem aprenent altres elements bàsics que podem trobar a la majoria de llenguatges de programació. Recordem que un algoritme és un procediment de resolució de problemes que està format per una seqüència d’instruccions o passos ben definits, ordenats i finits. Per executar totes aquestes instruccions en l’ordre que volem, existeixen diferents estructures de control, com els condicionals o els bucles.
Condicionals i bucles
Els condicionals són estructures que permeten escollir entre l’execució d’una acció o una altra. Com indica el seu nom, són una condició, així que podem pensar-hi com al “si” condicional que utilitzem dins d’una frase. Per això, fent servir la paraula en anglès, podem expressar-lo dins del codi com a IF. A la plataforma de Codelearn, l’aventura de Karel ens ajuda a entendre-ho fàcilment. En aquesta aventura hem de guiar un robot a través d’un laberint i podem fer que aquest robot pugui “escollir” què ha de fer gràcies als condicionals; per exemple, podem dir-li en el seu idioma (programació) la frase: “si et trobes una paret, gira cap a la dreta”. Però, què ha de fer el Karel si no hi ha una paret? En aquest cas, podríem utilitzar també un ELSE per donar-li una altra instrucció i indicar-li, per exemple: “en cas contrari (si no trobes una paret), tira endavant”.
Cal tenir en compte que hi ha tres tipus de condicional: simple, alternatiu i encadenat. El primer és el més simple, el primer que hem vist: si succeeix la condició, fem allò que s’associa al condicional (altrament, no fem res). L’alternatiu és quan si succeeix la condició cal fer alguna cosa, però quan no succeeix també cal fer quelcom. Per últim, l’encadenat és el condicional que s’utilitza quan hi ha diverses possibilitats i, per cadascuna d’elles, cal fer alguna acció.
Existeixen diferents instruccions per incloure condicionals al nostre codi. També podem fer-ho, per exemple, amb estructures iteratives com el WHILE, un dels bucles més utilitzats en programació. Els bucles són seqüències d’instruccions cícliques que ens permeten repetir una acció mentre s’està complint una condició determinada i no s’aturen fins que aquesta condició no es compleix. Tot i que presenten certa complexitat quan anem més enllà de la seva definició bàsica, la veritat és que els bucles ens estalvien temps i línies de codi, facilitant-nos així tenir un codi estructurat de manera clara que sigui més fàcil de modificar.
Variables i funcions
Un altre element bàsic que hem de conèixer són les variables, un dels mecanismes més potents que tenim a la nostra disposició quan programem. Una variable és la capacitat que té un programa d’emmagatzemar una informació a la memòria de l’ordinador amb la intenció de tornar-la a fer servir més endavant. Dit de manera formal, una variable és un nom que fa referència a un valor.
Hi ha un exemple que ens pot ajudar a entendre aquest concepte: la memòria d’un ordinador és semblant a una calaixera per als nostres mitjons (una calaixera amb milers de milions de calaixos!). Per tal d’organitzar el millor possible aquesta calaixera, hem decidit que, a cada calaix, hi haurà només un parell de mitjons i que, per localitzar-los ràpidament, posarem una etiqueta amb un nom identificatiu a la part exterior del calaix. Així, quan vulguem recuperar els mitjons, haurem de cercar a la calaixera (memòria) aquella etiqueta que identifiqui els mitjons que ens interessen. En el cas d’una variable, el procés que hem descrit ara el duríem a terme a través de l’operació d’assignació que relaciona un nom de variable (l’etiqueta del calaix) i un valor (els mitjons). Durant el transcurs d’un programa, cada cop que vulguem utilitzar el valor referenciat per la variable, simplement haurem d’escriure el nom de la variable.
Finalment, si parlem d’estructurar el codi, hem de parlar també de les funcions. Si ho recordeu, sempre que hem definit què és el pensament computacional hem esmentat la descomposició, que ens permet transformar un problema gran en diferents problemes més petits. Els programadors utilitzen aquesta tècnica per estructurar els programes i evitar escriure codis massa llargs; escriuen trossos de codi separadament i cadascun d’aquests trossos realitza unes tasques o uns càlculs concrets.
Aquestes parts o instruccions generals que contenen altres instruccions més concretes s’anomenen funcions i es defineixen de maneres diferents segons el llenguatge de programació utilitzat. Hi ha diferents tipus de funcions i no entrarem en detall, però sí que podem concloure que són un recurs molt útil per ordenar instruccions, poder repetir-les de manera àgil i facilitar la modificació del codi quan s’hi detectin errors o sigui necessari aplicar-hi qualsevol canvi.
Sobre el seu funcionament, les funcions estan formades per dues parts, la definició i la crida. La definició és la part on li expliquem al llenguatge com dur a terme una operació, mentre que la crida és quan li diem al llenguatge que volem executar l’operació que li hem ensenyat: quan aprenem a sumar, ens ensenyen com dur a terme una operació (la suma) i aquest procés queda emmagatzemat al nostre cervell associat a una paraula clau: SUMA (el nom de la funció). Tanmateix, no ens passem el dia sumant; només ho fem quan algú ens diu “SUMA dos nombres”. L’emmagatzematge al nostre cervell és la definició i la crida és quan algú ens demana que sumem.
A Codelearn treballem tots aquests conceptes amb els més petits de manera progressiva i a través de diferents llenguatges de programació, de manera que ens puguem assegurar que els alumnes interioritzen les bases de la programació i assoleixen uns coneixements imprescindibles que els permeten aprendre nous llenguatges i no quedar-se estancats en un únic llenguatge o programa. Informa’t sobre el mètode, busca el teu centre més proper o contacta amb nosaltres si necessites més informació sobre l’extraescolar.