ESTRUCTURES DE CONTROL I VARIABLES

1. Introducció.

Segons Turing “si vols que un computador faci A basta que li diguis que faci A” i l’objectiu que sigui senzill, clar, finit i ben definit.

Crear un algoritme és un procediment d’abstracció, que a partir d’unes premises es volen treure uns resultats.

Es necessari saber dibuixar i descriure el recorregut de un algoritme que implementa un requeriments previs. Un algoritme es descriu usant estructures de dades i sentències seqüencials, iteratives i condicionals.

Durant la unitat farem exercicis de disseny i implementació d’algoritmes usant el llenguatge javascript.

La implementació la farem mitjançant codepen.io i de manual bàsic usam w3schools.

2. Què és un algoritme?

  1. Un algoritme és una seqüència d’intruccions, variables i condicionals lògics que resolen un problema.
  2. A programació s’anomena funció, i té un nom, pot tenir valors d’entrada que s’anomenen paràmetres i retorna un valor de sortida.
  3. Una funció s’ha d’invocar o cridar desde un punt del “programa”.
  4. Una funció o algoritme pot cridar altres funcions. També es pot cridar a ella mateixa, és el que s’anomena funció recursiva.
  5. La implementació de un algoritme és pasar la idea del disseny a un llenguatge de programació.
Algoritme de com fregir un ou. Cavall Fort

3.
Elements d’un algoritme

Per aconseguir dissenyar i implementar un algoritme s’usen els següents elements:

  1. Variables: permeten guardar valors que es podran modificar. Les variables tenen un nom, tenen un abast d’accesibilitat i poden ser del tipus:
    • Boleà: un bit que pot tenir el valor vertader o fals.
    • Numèric
    • Cadena de caràcters. String
    • Llistes: conjunts de variables amb una estructura i accesibilitat concreta.
  2. Condicionals: Permeten controlar el recorregut de l’algorisme. Decideixen, mitjançant una premisa condicional quin camí ha d’agafar l’algoritme. Pot ser un condicional que s’executa una sola vegada (if) o un condicionals que fa un bucle (while, for, …).
  3. Comentaris: Els comentaris són elements que ajuden a explicar el funcionament de l’algoritme. Quan s’implementa són parts del codi que no s’executen.

Condicional if

El condicional d’una execució triar camins diferents alhora de seguir un algoritme. S’expresa mitjançat una o varies condicions que resolen el camí.

La construcció d’aquestes condions s’ha de controlar per tal de no tenir resultats desfavorables. Imagina que alhora d’entrar un usuari i password la decisió sempre és entra al programa, això seria un mal algoritme.

La forma per expresar aquesta condició és dins un rombe d’on hi surten els camins per les condicions vertader o fals.

Exercicis i pràctiques.

Per entendre la teoria ho feim amb els següents exercicis de disseny i implementació d’algoritmes o funcions

Exercici 1.

Dissenya i implementa la funció retornaMaxim(x,y) i ens ha de retornar el nombre més alt dos que s’han passat per paràmetre. Es suposa que les dues entrades són enters.

ex: retornaMaxim(4,8)->8 , retornaMaxim(4,4)->4

Disseny de l’exercici 1

Implementació de l’exercici

https://www.youtube.com/embed/rRlmFusBu9M https://codepen.io/pereantoni/embed/ExKGJqR?height=265&theme-id=light&default-tab=js%2Cresult&user=pereantoni&slug-hash=ExKGJqR&pen-title=Exercici%201.&name=cp_embed_1

Queden per vosaltres els següents exercicis.

Exercici 2. S’ha de dissenyar i implementar la funció retornaMaxim(x,y,z) que ens ha de retornar el nombre més alt dels tres. Es suposa que tots els paràmetres són numèrics.

Exercici 3. S’ha de dissenyar i implementar l’algoritme esbyte(x) que:
-si la x està entre 0 i 255 retorna true
-sino retorna false.

Exercici 4. Cerca la funció de javascript que ens mostri si un nombre és parell o senar. Dissenya i implementa una funció esSenar(x) que ens retorni true si és senar.

Entrada de dades i variables.

Per poder entrar dades es pot fer mitjantçant una finestra de prompt(). És una simle finestra on l’usuari pot introduïr una cadena de caràcters, també pot introduir un número. L’algoritme pot enregistrar l’entrada dins d’una variable.

Existeix moltes formes diferents de que l’usuari es pugui comunicar amb el programa (conjunt algorimes ordenats). Com per exemple l’entrada dins un input, pitjar un botó, pitjar una tecla, etc.

Més endavant veurem com s’implementen aquestes altres formes i com es tracten les dades que es produeixen.

Dit això ens centram amb la funció prompt(). Aquesta funció obri una finestra amb un input on l’usuari pot entrar caràcters i després els envia al programa. Aquestes dades es poden guardar dins una variable, així es poden mantenir, variar i usar.

Les variables tenen un nom i contenen un valor o conjunt de valors.

var x, y, z; // Statement 1
x = 5; // Statement 2
y = 6; // Statement 3
z = x + y; // Statement 4

//La variable z valdrà x + y, o sigui 5 + 6 que és 11.
mira el link w3schools statements.

Mirau el video per veure el procés:
https://www.youtube.com/embed/K-seBrFKlnc

CONDICIONAL ITERATIU

El condicional iteratiu proposa una condició de control i repeteix l’acció mentres aquesta condició és vertadera.

Pot ser un while o un for. En principi empram els while ja que ens permeten tenir més control sobre les iteracions.

Mirau el video següent que ens mostra com fer una iteració usant while.

PROBLEMA RESOLT.

Volem saber si un nombre és primer. Per això pensam l’algorisme i l’implementam. També podem observar que alguns algoritmes són més ràpids que altres simplement girant la forma en que s’implementen. Mira el següent video.

I aquí baix teniu la implementació on podeu fer les comprovacions.

EXERCICI PER IMPLEMENTAR:

demanar quatre nombres i passarlos a una funció esIP(a,b,c,d) que retorni true si a,b,c,d estan entre 0 i 255.

PROBLEMA EXTRA:

Pensau una solució d’algoritme. Pensau abans quina estratègia s’ha de seguir, quines condicions té la solució del problema.

Ens donen 4 numeros i volem crear l’hora més alta possible.

ex: horaAlta(3,2,1,2)->23:21
ex: horaAlta(3,2,6,6)->error
ex: horaAlta(5,2,2,6)->23:56 https://codepen.io/pereantoni/embed/poyGVKy?height=265&theme-id=light&default-tab=js%2Cresult&user=pereantoni&slug-hash=poyGVKy&pen-title=exercici%208.%20%C3%89s%20primer.&name=cp_embed_2 http://aula.gimnesia.net/2020/01/10/unitat-7-programacio-javascript/http://aula.gimnesia.net/wp-content/uploads/2020/01/C0247871-F549-4242-88C6-3B84386EB172-1024×768.pnghttp://aula.gimnesia.net/wp-content/uploads/2020/01/C0247871-F549-4242-88C6-3B84386EB172-150×150.png2020-01-10T16:44:00+00:00admin2on batxillerat’Which programming language should you learn first?ʇdıɹɔsɐʌɐɾ :ɹǝʍsuɐ.’— Quincy Larson 1.Introducció. Segons Turing “si vols que un computador faci A basta que li diguis que faci A” i l’objectiu que sigui senzill, clar, finit i ben definit. Crear un algoritme és un procediment d’abstracció, que a partir d’unes premises es volen…admin pereantonibennassar@gmail.comAdministratorAula de InformàticaBlog Aula Informàtica Gimnèsia

Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>