Conceptes
1. Els llenguatges de programació.
2. Algorísmia i codificació.
3. Les estructures de control.
4. Les estructures de dades.
5. Les funcions i els procediments.
Procediments
1. Definir l’algorisme d’un enunciat amb les estructures de dades i de control adequades.
2. Codificar en un llenguatge d’alt nivell l’algorisme prèviament definit.
3. Depurar i executar el programa codificat.
Programa
Un programa és el conjunt d'instruccions que entén un ordinador per realitzar una activitat. Tot programa té un objectiu ben definit: un processador de text és un programa que permet carregar, modificar i imprimir textos, un programa d'escacs permet jugar als escacs contra l'ordinador o un altre contrincant humà.
Algorisme
Un algorisme són els passos a seguir per resoldre un problema. Per a resoldre un problema i prèviament a la codificació en un programa amb un llenguatge específic, cal plantejar el seu algorisme.
Llenguatge de programació
Un llenguatge de programació és un llenguatge informàtic utilitzat per controlar el comportament d'una màquina, normalment un ordinador. Cada llenguatge té una sèrie de regles sintàctiques i semàntiques estrictes que cal seguir per escriure un programa informàtic, i que en descriuen l'estructura i el significat respectivament. Aquestes regles permeten especificar tant la classe de dades amb què treballarà el programa com les accions que realitzarà. Mentre que alguns llenguatges es defineixen per una especificació formal (un document), altres són definits oficiosament per una implementació concreta (un compilador).
Actualment existeixen milers de llenguatges de programació, i se'n creen de nous contínuament. Alguns dels més extensos són ASM, C, C++, C# i Java, tot i que els llenguatges de programació relacionats amb la web, com ara PHP i Javascript estan esdevenint més i més populars.
Classificació dels llenguatges de programació: alt i baix nivell
Els llenguatges se solen classificar principalment en llenguatges de baix nivell, que són molt propers al codi binari utilitzat internament per un tipus d'ordinador determinat, i llenguatges d'alt nivell, que són més propers al llenguatge humà i més independents del tipus d'ordinador.
La diferència entre llenguatges de baix i alt nivell es fa evident comparant dos programes que escriuen "Hola" en pantalla, el primer usant llenguatge assemblador per màquines x86 (baix nivell),
MODEL SMALL
IDEAL
STACK 100H
DATASEG
HW DB 'Hola!$'
CODESEG
MOV AX, @data
MOV DS, AX
MOV DX, OFFSET HW
MOV AH, 09H
INT 21H
MOV AX, 4C00H
INT 21H
END
i el segon utilitzant un llenguatge d'alt nivell (Python),
print "Hola!"
Els llenguatges d'alt nivell es poden classificar també segons el tipus de model de programació que utilitzen (procedimentals, funcionals, orientats a objectes, etc.). També hi ha llenguatges de marcatge, que no són llenguatges de programació, sinó que s'utilitzen per estructurar o donar forma a un text. Avui en dia existeixen gran quantitat de llenguatges, més o menys especialitzats en diferents tasques.
Un diagrama de flux és una representació gràfica d'un algorisme. S'utilitza en disciplines com la programació informàtica, l'economia, els processos industrials i la psicologia cognitiva. Aquests diagrames utilitzen símbols amb significats ben definits que representen els passos de l'algorisme, i representen el flux d'execució mitjançant fletxes que connecten els punts d'inici i de finalització.La pràctica de creació de diagrames de flux, especialment en l'àmbit de les enginyeries, ha fet que es desenvolupés un llenguatge gràfic en què les formes geomètriques que representen cada part tenen de per si un significat establert per convenció. En la taula del costat es mostren les formes més utilitzades i el seu significat.Els seus símbols són:
Òval o El·lipse: Inici i Final (Obre i/o tanca el diagrama).
Rectangle: Activitat (Representa l'execució d'una o més activitats o procediments).
Rombe: Decisió (Formula una pregunta o qüestió).
Cercle: Connector (Representa l'enllaç d'activitats amb una altra dins d'un procediment).
Triangle cap per avall: fitxer definitiu (Guarda un document de forma permanent).
Triangle cap per amunt: fitxer temporal (Proporciona un temps per a l'emmagatzematge del document).
A la imatge de davall veim un diagrama que mostra el flux de preguntes i respostes que es pot utilitzar per a classificar un organisme en funció del lloc del qual obté els recursos per a viure. © Colin M. L. Burnett (2006). GNU Free Documentation License 1.2 (GFDL 1.2). Publicat originàriament a http://commons.wikimedia.org.
Feis click sobre la imatge per ampliar-la
Plantejar diagrames de flux
Per plantejar un diagrama de flux hem de tenir molt en clar el problema a resoldre .
Exemple: Calcular el sou mensual d'un operari coneixent la quantitat d'hores treballades i el pagament per hora .
De l'enunciat anterior podem identificar:
Hores treballades al mes.
Sou per hora.
procés: Què farà el meu programa
Calcular el sou multiplicant la quantitat d'hores pel sou per hora.
Informació resultant:
Sou mensual.
Si fem una anàlisi tot problema/programa està constituït per:
Dades conegudes: Dades amb què es compta en plantejar el problema.
Procés: Operacions a realitzar amb les dades conegudes.
Informació resultant: És la informació que resol el problema. La sortida del nostre programa.
Aquesta forma d'expressar un problema identificant els seus dades conegudes, processos i informació resultant pot arribar a ser molesta per a problemes complexos on hi ha moltes dades conegudes i processos. És per això que resulta molt més efectiu representar els passos per a la resolució del problema mitjançant un diagrama de flux.
Activitat proposada. Dibuixa el teu diagrama de flux.
Resulta molt més fàcil entendre un gràfic que un text. El diagrama de flux ens identifica clarament les dades d'entrada, les operacions i les dades de sortida.
En l'exemple tenim dues dades d'entrada: hores_treballades i cost_Hora , a les entrades les representem amb un paral·lelogram i feim un paral·lelogram per cada dada d'entrada.
L'operació es representa amb un rectangle. Hem de fer un rectangle per cada operació.
A la sortida la representem amb el full trencat.
El diagrama de flux ens dóna una idea de l'ordre d'execució de les activitats en el temps . Primer carreguem les dades d'entrada , després fem les operacions necessàries i finalment mostrem els resultats.
Què és un diagrama de flux (castellà)
El llenguatge de programació C. (Libre de Kernighan, Ritchie)
Curso de C (Teoria + ejercicios) (2n batx)
Tutorial de programació en C (tutorialspoint anglès)
Aprende ANSI C como si estuvieras en primero
Esquema com programar
AMPLIACIÓ. Exercicis d'iniciació a la programació en C (Acadèmia cartagena)
Programació C++ (1r batx)
Curs de C++ "Con Clase"
Curs de programació en C++ (tutorialspoint anglès)
Aprenda C como si estuviera en primero.
Llenguatge Vala (alternativa a C# de Microsoft)
Curs d'iniciació a la programació en C# (sharp)
CSharp ya (per a usuaris sense coneixements de programació - castellà)
Curs de programació en C# (tutorialspoint anglès)
Projecte Mono. Basat en .Net Framework de Microsoft.
Curs d'Android (Nivell bàsic).
Presentació de la placa Arduino
Un parells de cursos per aprofundir una mica més
Cursos d'Arduino (anglès)
Braç robòtic amb servomor controlat per entrades i sortides analògiques.
Braç robòtic amb control de motors pas a pas.
Braç robòtic amb servomotors.
Controlant dos servomotors.
Qué es Arduino.
Connecta Arduino a Internet (Ethernet Shield).
Arduino en Windows.
Arduino en Linux.
Feis l'activitat plantejada a l'apartat Diagrames de Flux.
Quina diferència hi trobes entre algorisme i programa?
Què és un llenguatge de programació?
Quina diferència hi ha entre un llenguatge d'alt i baix nivell?
Compilador en línia
Compilador GNU C / C++
Les pràctiques a lliurar les tens a la següent pàgina.
Pràctiques amb Arduino.
Enllaç de descàrrega directa.
Coses que es poden fer amb l'Arduino.
Domòtica amb Arduino i Rasperri
Controla l'Arduino amb el mòbil
Simulació d'ordinador de borda amb Arduino
http://www.josematm.com/controla-tu-arduino-desde-el-movil/
Enviant SMS amb Arduino
Matlab Arduino tutorials
Arduino quad-copter
Per què aprendre C? Viquillibre incomplet sobre C.
Introducció als llenguatges de programació (Presentació).