<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>https://www.binefa.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.18.0.2</id>
	<title>binefa.com - Contribucions de l'usuari [ca]</title>
	<link rel="self" type="application/atom+xml" href="https://www.binefa.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=172.18.0.2"/>
	<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php/Especial:Contribucions/172.18.0.2"/>
	<updated>2026-09-23T14:13:21Z</updated>
	<subtitle>Contribucions de l'usuari</subtitle>
	<generator>MediaWiki 1.33.0</generator>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5859</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5859"/>
		<updated>2022-10-25T23:12:53Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Pàgina blanquejada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5814</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5814"/>
		<updated>2022-10-25T15:07:15Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main (){&lt;br /&gt;
  printf(&amp;quot;Abracadabra pata de cabra&amp;quot;);&lt;br /&gt;
return;&lt;br /&gt;
} =====&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5813</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5813"/>
		<updated>2022-10-25T15:06:26Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
int main (){&lt;br /&gt;
  printf(&amp;quot;Abracadabra pata de cabra&amp;quot;);&lt;br /&gt;
return;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAW_2022-2023&amp;diff=5812</id>
		<title>DAW 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAW_2022-2023&amp;diff=5812"/>
		<updated>2022-10-25T15:03:58Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2223-DAW-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2223-DAW-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r de DAW. Curs 2022-2023]]&lt;br /&gt;
&lt;br /&gt;
Estructura de les carpetes:&lt;br /&gt;
 M01 ''(depenent del subgrup)''&lt;br /&gt;
 M03&lt;br /&gt;
   examens&lt;br /&gt;
   exercicis&lt;br /&gt;
     C&lt;br /&gt;
     Python&lt;br /&gt;
   perDies&lt;br /&gt;
 M14&lt;br /&gt;
   Arduino&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1473ONxhjoLkQMlCbswTK61gk7emMzDFUVhaOqcsRFKE Llista de 1r de DAW]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&amp;lt;!-- https://docs.python.org/3/library/csv.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 20221025 (2h) ==&lt;br /&gt;
Exercici del '''continue''' en Python&lt;br /&gt;
&lt;br /&gt;
== 20221021 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221020/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221020 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221020/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221018 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221018/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
Introducció a les '''funcions''' en Python i en C.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221014 (2h) '''Funcions''' ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221014/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
Introducció a les '''funcions''' en Python i en C.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
A segona hora feu l'examen d'avaluació inicial.&lt;br /&gt;
&lt;br /&gt;
* '''Primer enunciat''':&lt;br /&gt;
&lt;br /&gt;
Partint de la pràctica del tutorial D97 anjuta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p2.htm m1p02.c], demaneu, a més: ''Quin cotxe teniu?'' i ''Quina matrícula?''&lt;br /&gt;
&lt;br /&gt;
* '''Segon enunciat''':&lt;br /&gt;
&lt;br /&gt;
Partint de la pràctica del tutorial D97 anjuta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p5.htm m1p05], implementeu la [https://nineplanets.org/kids/temperature-conversion/ conversió de graus Kelvin a Fahrenheit].&lt;br /&gt;
&lt;br /&gt;
* '''Tercer enunciat''':&lt;br /&gt;
&lt;br /&gt;
Feu un programa que llegeixi un codi d'accés i ho compari amb el codi 3421 que tindreu emmagatzemat al programa, després de la comparació heu de dir si és correcte o no.&lt;br /&gt;
&lt;br /&gt;
== 20221013 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221013/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221011 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221011/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221007 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221007/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20221006 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221006/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Condicionals en C]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis emprant condicionals en C i Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
=== ''' Llei de Morgan''' ===&lt;br /&gt;
* En Python:&lt;br /&gt;
 not ( a and b ) = not a or not b&lt;br /&gt;
 not ( a or b )  = not a and not b&lt;br /&gt;
* En C:&lt;br /&gt;
 !( a &amp;amp;&amp;amp; b ) = !a || !b&lt;br /&gt;
 !( a || b ) = !a &amp;amp;&amp;amp; !b&lt;br /&gt;
&lt;br /&gt;
== 20221004 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221004/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
 a = 30&lt;br /&gt;
 if not (a == 30) : # if a != 30 :&lt;br /&gt;
    print(&amp;quot;Línia 3&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;Línia 5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int a = 30;&lt;br /&gt;
    &lt;br /&gt;
    if(!(a == 30)){  // if(a != 30){&lt;br /&gt;
        printf(&amp;quot;Línia 7\n&amp;quot;);&lt;br /&gt;
    }else{&lt;br /&gt;
        printf(&amp;quot;Línia 9\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int nEdat;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;,&amp;amp;nEdat);&lt;br /&gt;
    if( (nEdat &amp;gt;= 16) &amp;amp;&amp;amp; (nEdat &amp;lt;= 65) ){&lt;br /&gt;
        printf(&amp;quot;Pots passar\n&amp;quot;);&lt;br /&gt;
    }else{&lt;br /&gt;
        printf(&amp;quot;No pots passar\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 nEdat = int(input(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;))&lt;br /&gt;
 if nEdat &amp;gt;= 16 and nEdat &amp;lt;= 65:&lt;br /&gt;
    print(&amp;quot;Pots passar&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;No pots passar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 # Lleis de Morgan&lt;br /&gt;
 # not ( a and b ) = not a or not b&lt;br /&gt;
 # not ( a or b )  = not a and not b&lt;br /&gt;
 &lt;br /&gt;
 nEdat = int(input(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;))&lt;br /&gt;
 if not (nEdat &amp;gt;= 16) or not(nEdat &amp;lt;= 65): # if not (nEdat &amp;gt;= 16 and nEdat &amp;lt;= 65):&lt;br /&gt;
    print(&amp;quot;No pots passar&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;Pots passar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== 20220930 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220930/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220929 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220929/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220927 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220927/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.com/index.php/DAW_2022-2023#Instal.C2.B7laci.C3.B3_del_Jupyter_Lab Instal·lació del Jupyter Lab]&lt;br /&gt;
&lt;br /&gt;
[[Comparativa de programes bàsics en C i en python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm Exercicis bàsics (m1e*)] (excepte el 2)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Condicionals en C]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis emprant condicionals en C i Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20220923 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220923/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
Repàs de [[Introducció a C - 2a part | tipus de variables]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p6.htm Biblioteca matemàtica en C]&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
[https://www.tutorialspoint.com/c_standard_library/c_function_pow.htm Funció '''pow()''' en C]&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/ref_func_pow.asp Funció '''pow()''' en Python]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm Exercicis] (excepte el 2)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char cA = 'A', cB = 103 /* g */, cC = 0x6B /* k */;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cA,cA,cA);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cB,cB,cB);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X 0x%x\n&amp;quot;,cC,cC,cC,cC);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220922 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220922/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2te.htm Taula amb la mida d'alguns tipus de variable en C] (Segona taula de colors)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char cA = 'A', cB = 103 /* g */, cC = 0x6B /* k */;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cA,cA,cA);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cB,cB,cB);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X 0x%x\n&amp;quot;,cC,cC,cC,cC);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220920 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220920/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
 szCognom = &amp;quot;Varón&amp;quot;&lt;br /&gt;
 szNom = 'Toni'&lt;br /&gt;
 szNomComplet = szNom + &amp;quot; &amp;quot; + szCognom&lt;br /&gt;
 print(&amp;quot;1) &amp;quot; + szNomComplet)&lt;br /&gt;
 szNomTotal = &amp;quot;%d) %s %s&amp;quot;%(2,szNom,szCognom)&lt;br /&gt;
 print(szNomTotal)&lt;br /&gt;
 szNomTotal2 = &amp;quot;%d) %s %s&amp;quot;&lt;br /&gt;
 print(szNomTotal2%(3,szNom,szCognom))&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char szCognom[20] = &amp;quot;Varón&amp;quot;,szNom[20] = &amp;quot;Toni&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%s %s\n&amp;quot;,szNom,szCognom);&lt;br /&gt;
    printf(&amp;quot;%d) %s %s\n&amp;quot;,2,szNom,szCognom);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 szNom = input(&amp;quot;Com et dius?: &amp;quot;)&lt;br /&gt;
 print('Hola, ' + szNom)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char szNom[20];&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Nom: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%s&amp;quot;,&amp;amp;szNom[0]); // Que és el mateix que scanf(&amp;quot;%s&amp;quot;,szNom);&lt;br /&gt;
    printf(&amp;quot;Hola, %s\n&amp;quot;,szNom);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220916 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220916/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220915 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220915/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
=== Snap! ===&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!]&lt;br /&gt;
=== Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
=== C ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
== 20220913 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220913/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ Instal·lador de C per a Windows]&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r de DAW] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/asix2122/m03_m16/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del Jupyter Lab ===&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''asix'' / ''asix2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ MinGW - Compilador de C per a Windows]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5811</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5811"/>
		<updated>2022-10-25T15:03:55Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar 🫥&lt;br /&gt;
 HOLA&lt;br /&gt;
&lt;br /&gt;
heyyy&lt;br /&gt;
&lt;br /&gt;
LIGHT WEIGHY BABYYYYYY&lt;br /&gt;
eyç&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5810</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5810"/>
		<updated>2022-10-25T15:03:16Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar 🫥&lt;br /&gt;
 HOLA&lt;br /&gt;
&lt;br /&gt;
heyyy&lt;br /&gt;
eyç&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5809</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5809"/>
		<updated>2022-10-25T15:03:03Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar fdsfds&lt;br /&gt;
 HOLA&lt;br /&gt;
&lt;br /&gt;
heyyy&lt;br /&gt;
eyç&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5808</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5808"/>
		<updated>2022-10-25T15:02:54Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar fdsfds&lt;br /&gt;
 HOLA&lt;br /&gt;
&lt;br /&gt;
heyyy&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5807</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5807"/>
		<updated>2022-10-25T15:02:29Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar fdsfds&lt;br /&gt;
 HOLA&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAW_2022-2023&amp;diff=5806</id>
		<title>DAW 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAW_2022-2023&amp;diff=5806"/>
		<updated>2022-10-25T15:02:16Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;HOla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2223-DAW-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2223-DAW-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r de DAW. Curs 2022-2023]]&lt;br /&gt;
&lt;br /&gt;
Estructura de les carpetes:&lt;br /&gt;
 M01 ''(depenent del subgrup)''&lt;br /&gt;
 M03&lt;br /&gt;
   examens&lt;br /&gt;
   exercicis&lt;br /&gt;
     C&lt;br /&gt;
     Python&lt;br /&gt;
   perDies&lt;br /&gt;
 M14&lt;br /&gt;
   Arduino&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1473ONxhjoLkQMlCbswTK61gk7emMzDFUVhaOqcsRFKE Llista de 1r de DAW]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&amp;lt;!-- https://docs.python.org/3/library/csv.html --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 20221025 (2h) ==&lt;br /&gt;
Exercici del '''continue''' en Python&lt;br /&gt;
&lt;br /&gt;
== 20221021 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221020/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221020 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221020/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221018 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221018/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223''&lt;br /&gt;
&lt;br /&gt;
Introducció a les '''funcions''' en Python i en C.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221014 (2h) '''Funcions''' ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221014/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
Introducció a les '''funcions''' en Python i en C.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
A segona hora feu l'examen d'avaluació inicial.&lt;br /&gt;
&lt;br /&gt;
* '''Primer enunciat''':&lt;br /&gt;
&lt;br /&gt;
Partint de la pràctica del tutorial D97 anjuta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p2.htm m1p02.c], demaneu, a més: ''Quin cotxe teniu?'' i ''Quina matrícula?''&lt;br /&gt;
&lt;br /&gt;
* '''Segon enunciat''':&lt;br /&gt;
&lt;br /&gt;
Partint de la pràctica del tutorial D97 anjuta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p5.htm m1p05], implementeu la [https://nineplanets.org/kids/temperature-conversion/ conversió de graus Kelvin a Fahrenheit].&lt;br /&gt;
&lt;br /&gt;
* '''Tercer enunciat''':&lt;br /&gt;
&lt;br /&gt;
Feu un programa que llegeixi un codi d'accés i ho compari amb el codi 3421 que tindreu emmagatzemat al programa, després de la comparació heu de dir si és correcte o no.&lt;br /&gt;
&lt;br /&gt;
== 20221013 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221013/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221011 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221011/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20221007 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221007/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20221006 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221006/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Condicionals en C]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis emprant condicionals en C i Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
=== ''' Llei de Morgan''' ===&lt;br /&gt;
* En Python:&lt;br /&gt;
 not ( a and b ) = not a or not b&lt;br /&gt;
 not ( a or b )  = not a and not b&lt;br /&gt;
* En C:&lt;br /&gt;
 !( a &amp;amp;&amp;amp; b ) = !a || !b&lt;br /&gt;
 !( a || b ) = !a &amp;amp;&amp;amp; !b&lt;br /&gt;
&lt;br /&gt;
== 20221004 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20221004/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
 a = 30&lt;br /&gt;
 if not (a == 30) : # if a != 30 :&lt;br /&gt;
    print(&amp;quot;Línia 3&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;Línia 5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int a = 30;&lt;br /&gt;
    &lt;br /&gt;
    if(!(a == 30)){  // if(a != 30){&lt;br /&gt;
        printf(&amp;quot;Línia 7\n&amp;quot;);&lt;br /&gt;
    }else{&lt;br /&gt;
        printf(&amp;quot;Línia 9\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int nEdat;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;,&amp;amp;nEdat);&lt;br /&gt;
    if( (nEdat &amp;gt;= 16) &amp;amp;&amp;amp; (nEdat &amp;lt;= 65) ){&lt;br /&gt;
        printf(&amp;quot;Pots passar\n&amp;quot;);&lt;br /&gt;
    }else{&lt;br /&gt;
        printf(&amp;quot;No pots passar\n&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 nEdat = int(input(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;))&lt;br /&gt;
 if nEdat &amp;gt;= 16 and nEdat &amp;lt;= 65:&lt;br /&gt;
    print(&amp;quot;Pots passar&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;No pots passar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
 # Lleis de Morgan&lt;br /&gt;
 # not ( a and b ) = not a or not b&lt;br /&gt;
 # not ( a or b )  = not a and not b&lt;br /&gt;
 &lt;br /&gt;
 nEdat = int(input(&amp;quot;Edat (pots passar en edat laboral): &amp;quot;))&lt;br /&gt;
 if not (nEdat &amp;gt;= 16) or not(nEdat &amp;lt;= 65): # if not (nEdat &amp;gt;= 16 and nEdat &amp;lt;= 65):&lt;br /&gt;
    print(&amp;quot;No pots passar&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
    print(&amp;quot;Pots passar&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== 20220930 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220930/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220929 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220929/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220927 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220927/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.com/index.php/DAW_2022-2023#Instal.C2.B7laci.C3.B3_del_Jupyter_Lab Instal·lació del Jupyter Lab]&lt;br /&gt;
&lt;br /&gt;
[[Comparativa de programes bàsics en C i en python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm Exercicis bàsics (m1e*)] (excepte el 2)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals en Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Condicionals en C]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis emprant condicionals en C i Python]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)]&lt;br /&gt;
&lt;br /&gt;
== 20220923 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220923/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
Repàs de [[Introducció a C - 2a part | tipus de variables]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1p6.htm Biblioteca matemàtica en C]&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
[https://www.tutorialspoint.com/c_standard_library/c_function_pow.htm Funció '''pow()''' en C]&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/ref_func_pow.asp Funció '''pow()''' en Python]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm Exercicis] (excepte el 2)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char cA = 'A', cB = 103 /* g */, cC = 0x6B /* k */;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cA,cA,cA);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cB,cB,cB);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X 0x%x\n&amp;quot;,cC,cC,cC,cC);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220922 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220922/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2te.htm Taula amb la mida d'alguns tipus de variable en C] (Segona taula de colors)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char cA = 'A', cB = 103 /* g */, cC = 0x6B /* k */;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cA,cA,cA);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X\n&amp;quot;,cB,cB,cB);&lt;br /&gt;
    printf(&amp;quot;%c %d 0x%X 0x%x\n&amp;quot;,cC,cC,cC,cC);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220920 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220920/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
 szCognom = &amp;quot;Varón&amp;quot;&lt;br /&gt;
 szNom = 'Toni'&lt;br /&gt;
 szNomComplet = szNom + &amp;quot; &amp;quot; + szCognom&lt;br /&gt;
 print(&amp;quot;1) &amp;quot; + szNomComplet)&lt;br /&gt;
 szNomTotal = &amp;quot;%d) %s %s&amp;quot;%(2,szNom,szCognom)&lt;br /&gt;
 print(szNomTotal)&lt;br /&gt;
 szNomTotal2 = &amp;quot;%d) %s %s&amp;quot;&lt;br /&gt;
 print(szNomTotal2%(3,szNom,szCognom))&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char szCognom[20] = &amp;quot;Varón&amp;quot;,szNom[20] = &amp;quot;Toni&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;%s %s\n&amp;quot;,szNom,szCognom);&lt;br /&gt;
    printf(&amp;quot;%d) %s %s\n&amp;quot;,2,szNom,szCognom);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
 szNom = input(&amp;quot;Com et dius?: &amp;quot;)&lt;br /&gt;
 print('Hola, ' + szNom)&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    char szNom[20];&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Nom: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%s&amp;quot;,&amp;amp;szNom[0]); // Que és el mateix que scanf(&amp;quot;%s&amp;quot;,szNom);&lt;br /&gt;
    printf(&amp;quot;Hola, %s\n&amp;quot;,szNom);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220916 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220916/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== 20220915 (1h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220915/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
=== Snap! ===&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!]&lt;br /&gt;
=== Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
=== C ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
== 20220913 (2h) ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220913/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ Instal·lador de C per a Windows]&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r de DAW] usuari: ''daw'' / contrasenya: ''daw2223''&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/asix2122/m03_m16/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació del Jupyter Lab ===&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''asix'' / ''asix2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ MinGW - Compilador de C per a Windows]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5805</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5805"/>
		<updated>2022-10-25T15:01:48Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar fdsfds&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Binefa.com_Discussi%C3%B3:Quant_al&amp;diff=5804</id>
		<title>Binefa.com Discussió:Quant al</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Binefa.com_Discussi%C3%B3:Quant_al&amp;diff=5804"/>
		<updated>2022-10-25T15:01:46Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hola&lt;br /&gt;
ilhoih&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5803</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5803"/>
		<updated>2022-10-25T15:00:55Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc vull aprobar&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5802</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5802"/>
		<updated>2022-10-25T15:00:13Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola em dic Marc&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Binefa.com_Discussi%C3%B3:Quant_al&amp;diff=5800</id>
		<title>Binefa.com Discussió:Quant al</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Binefa.com_Discussi%C3%B3:Quant_al&amp;diff=5800"/>
		<updated>2022-10-25T15:00:02Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «hola».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;hola&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5799</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5799"/>
		<updated>2022-10-25T14:59:16Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hola&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5792</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5792"/>
		<updated>2022-10-24T13:26:34Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Pàgina blanquejada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Slot88:_Daftar_Situs_Judi_Slot_Online_Terbaru_Game_Slot_Online_Pragmatic_Play_Gacor_Terbaik_Indonesia&amp;diff=5778</id>
		<title>Slot88: Daftar Situs Judi Slot Online Terbaru Game Slot Online Pragmatic Play Gacor Terbaik Indonesia</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Slot88:_Daftar_Situs_Judi_Slot_Online_Terbaru_Game_Slot_Online_Pragmatic_Play_Gacor_Terbaik_Indonesia&amp;diff=5778"/>
		<updated>2022-10-24T09:21:06Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Slot88 adalah salah satu situs judi slot online terbaru yang mempunyai banyak variasi game slot online gacor seperti pragmatic play yang pastinya menyuguhkan jackp...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Slot88 adalah salah satu situs judi slot online terbaru yang mempunyai banyak variasi game slot online gacor seperti pragmatic play yang pastinya menyuguhkan jackpot terbesar di setiap permainannya, selain itu lisensi resmi juga menjadikan Slot88 sebagai situs judi on-line nomor 1. Selain itu, sebagai salah satu situs judi slot online tebaik Slot88 juga menyuguhkan game slot online dari banyak provider slot online resmi terkenal yang pastinya memberikan kesan memainkan yang seru serta nyaman di pada setiap waktu terutama dengan support dukungan 24 jam daripada customer service yang responsif serta informatif pastinya.&amp;lt;br&amp;gt;Situs Slot Deposit Pulsa&amp;lt;br&amp;gt;Sebab di saat ini banyak website judi slot online yang menawakan setoran via [https://periodicos.ifpr.edu.br/files/journals/5/articles/2242/submission/original/2242-9369-1-SM.html slot Deposit shopeepay] Bank BRI 24jam tanpa terserang jenjang atau bagian lumayan besar. Dikurangi besar akan membikin rugi sebagai penjudi slot karena modal bossku buat main bakalan turun cukup besar. Dan jam online slotBRI On line ialah 24jam.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Cukup banyak bukan? Tak hanya itu saja, Roketslot juga menawarkan setoran via pulsa tanpa dikurangi, menjadi anggota tidak perlu repot pada ketika ingin melakukan deposit sebab telah di sediakan bervariasi cara depositnya. Jika bossque ada pertanyaan seputar BO slot online terbaik dan terpercaya ini, maka bossku sanggup pakai fitur live chat yang sudah di sediakan untuk bertanya, segala pertanyaan bakalan di layani oleh Costumer Service yang sudah berpengalaman dan pastinya ramah.&amp;lt;br&amp;gt;Pola Slot Gacor&amp;lt;br&amp;gt;Sweet Bonanza merupakan game judi slot online dengan tema permen manis ini jelas banyak mengambil perhatian penjudi di Indonesia. Game slot dengan system video 6x5 ditambah lagi dengan adanya feature tambahan freespin pasti pada setiap pemain memiliki kemungkinan buat meraih jackpot daripada fitur tersebut. Bahkan kalau anda cukup beruntung mendapatkan 4 simbol permen bulat manis pasti bossku memperoleh 8 putaran bebas secara gratis.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Tombol atau link mesin jp di atas dapat kalian klick buat pilih jenis demo. Jadi bossku dapat lebih gampang memahami seluk beluk game tersebut. Slot gacor mahjong ways 2 pgsoft adalah mesin jp terbaik akhir-akhir ini yang selalu di puja para pemain. Selain termasuk dalam kategori slot gacor pg soft, mahjong ways 2 terbaik juga merupakan mesin jackpot terbaru.&amp;lt;br&amp;gt;Slot Deposit Pulsa 10 Ribu Tanpa Potongan&amp;lt;br&amp;gt;Permainan betting judi slot gacor terbaru 2022 tampil daripada provider Slot88 yang menarik buat dipilih memungkinkan bossque untuk sanggup memainkan dengan meraih keunggulan gampang. Bahkan selain itu juga penting untuk Anda dapat menelisik modal uang asli Rp10.000 mulai bermain permainan tersebut. Kami sajikan bervariasi opsi game bet judi Store dengan tampilan display permainan yang mudah sekali untuk dimengerti dan menyuguhkan sensasi main yang seru serta memanjakan.&amp;lt;br&amp;gt;Rtp Slot Gacor&amp;lt;br&amp;gt;Lantas, keberadaan daripada permainan slot itu sendiri dapat jadi opsi terbaik buat masyarakat yang ingin bertaruh pada game slot online dengan lebih leluasa. Untuk bisa bertaruh slot online ini maka terlebih dulu, agan butuh membuka akun game judi online. Buat membuka account ID permainan itu bisa terlaksana dengan gampang.&amp;lt;br&amp;gt;Slot Gacor Terbaru&amp;lt;br&amp;gt;Bonus perkalian terbesar dibanding game slot online lainnya hingga berdaya mencapai X100.000 untuk 1 permainan. Bonus hadiah perkalian yang diberikan dapat langsung dicairkan menjadi uang asli juga tanpa ada sedikitpun masalah permainan. Bonus daripada game Slot PG Soft sendiri memang disebut tidak pelit dalam bonus perkaliannya.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Sheersparkketoboost mempunyai Return-to-player tertinggi dalam produsen spadegaming slot, sehingga dijuluki juga sebagai penyedia slot online spadegaming mudah menang. Platform baru bernama RTG Slots berkomitmen untuk memberikan kenyamanan serta jackpot terbesar untuk para pecinta slot online dengan judi slot yang terbaru yang akan diluncurkan di tiap bulannya.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Situs_Judi_Slot_Online_Terbaru&amp;diff=5775</id>
		<title>Situs Judi Slot Online Terbaru</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Situs_Judi_Slot_Online_Terbaru&amp;diff=5775"/>
		<updated>2022-10-24T08:59:49Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Pasti alasan ketiga harus memainkan [https://new.c.mi.com/ph/post/86995/ slot Deposit Shopeepay tanpa potongan] bersama kami website slot resmi Slot88 sudah berday...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Pasti alasan ketiga harus memainkan [https://new.c.mi.com/ph/post/86995/ slot Deposit Shopeepay tanpa potongan] bersama kami website slot resmi Slot88 sudah berdaya dipahami oleh kebanyakan pemain awam. Buat alasannya berupa alur game cepat. Dimana nantinya setiap member yang bermain slot nanti cukup memerlukan jangka waktu kurang lebih 40 detik per putaran. Pasti nantinya member selama main slot tidak perlu membutuhkan jangka waktu yang lama.&amp;lt;br&amp;gt;Slot Gacor Mudah Menang&amp;lt;br&amp;gt;Kemudian apa yang menjadikan slot Play Pragmatic ini menjadi populer dan banyak dicari oleh para penjudi? Yang paling terpenting tentunya ialah kepercayan daripada para slotter yang sudah bergabung serta menikmati permainan slot online ini. Daripada keyakinan tersebutlah nama Pragmatic ini pun semakin naik dan berkembang hingga menjadi amat terkenal seperti saat ini.&amp;lt;br&amp;gt;[https://periodicos.ifpr.edu.br/files/journals/5/articles/2242/submission/original/2242-9369-1-SM.html shopeepay slot] Gacor Hari Ini Bonanza&amp;lt;br&amp;gt;Para pemain mampu meraih 10x putaran bebas apabila sukses memperoleh 4 scatter pada spin yang dimainkan. Banyak player pastinya berbuah memenangkan slot gacor Wild West Gold ini dengan bayaran kemenangan besar. Karena terdapat simbol Wild yang dapat keluar lebih sering dengan adanya perkalian odds x2, x3, dan x5 yang bakal meningkatkan penghasilan para bettor.&amp;lt;br&amp;gt;Link Slot Deposit Pulsa Tanpa Potongan&amp;lt;br&amp;gt;Para penggemar betting yang berniat mencoba memainkan games bet judi on line apapun itu mulai daripada bet slot online, poker Online, sportsbook, judi Kasino On line, judi tembak ikan, sabung ayam serta lainnya dengan amat gampang. Pastinya kamu memiliki kebebasan buat dapat memilah games bet judi slot terbaik apa saja yang memang disukai.&amp;lt;br&amp;gt;Judi Slot Online&amp;lt;br&amp;gt;Saat bossku telah dibawa oleh website resmi slot gacor ke halaman pendaftaran, isilah info kalian dengan betul ke dalam lembar register. Penting untuk pakai kata sandi yang unik dengan minimum 8 karakter agar akun kamu akan lebih aman tanpa dipahami oleh orang lain. Setelah bossque mengisi data dengan tepat ke dalam formulir anda, tekanlah tombol lanjut dibawah daftar account slot kalian.&amp;lt;br&amp;gt;Slot Gacor Princess Hari Ini&amp;lt;br&amp;gt;Slot88 memiliki beragam permainan judi online terlengkap mulai dari [https://dadosabertos.ba.gov.br/uploads/user/2022-10-13-050922.722550-slot-deposit-shopeepay.html slot deposit shopeepay] Online, Casino dan Live Kasino, Sportbook, Toto hingga permainan ketangkasan seperti Tembak Ikan. Informasikan segala kebutuhan &amp;amp; kendala yang kamu alami. Servis bantuan Admin Slot88 yang responsif siap menyuguhkan bantuan terbaik buat kamu 24 jam non stop.&amp;lt;br&amp;gt;Slot Gacor Maxwin&amp;lt;br&amp;gt;Provider satu ini berbasiskan di Asia serta meningkatkan permainan-permainan slot online yang ambil topik Asia. Graphic yang menarik dan dampak suara yang memicu adrenalin player menjadi daya magnet khusus daripada games yang dibikin oleh Spadegaming. Playtech Gaming merupakan perusahaan games paling tua serta telah dinominasikan buat daftar slot terbaik dan banyak mempunyai fans di penjuru dunia.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Tidak hanya pada permainan judi slot uang asli aja, melainkan pada slot casino juga menggunakan formasi RNG dan Return to Player. Slot online adalah betting atau judi (julukan di Indonesia) memakai media internet dalam sistem sebuah bot slot yang sudah dikonversikan kedalam format tampilan website html5. Sedangkan slot sendiri dapat dikatakan sebagai robot slot yang dijumpai pada tempat kasino.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Info_Dan_Bocoran_Slot_Gacor_Hari_Ini&amp;diff=5774</id>
		<title>Info Dan Bocoran Slot Gacor Hari Ini</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Info_Dan_Bocoran_Slot_Gacor_Hari_Ini&amp;diff=5774"/>
		<updated>2022-10-24T08:47:35Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Biasanya Penyedia yang terlengkap dalam buat sebuah mesin slot punya licensi daripada MGA serta Gambling Commission. Pragmaticplay merupakan Provider slot online p...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Biasanya Penyedia yang terlengkap dalam buat sebuah mesin slot punya licensi daripada MGA serta Gambling Commission. Pragmaticplay merupakan Provider slot online paling populer yang banyak digandrungi para slotter Judi Slot di Indonesia karena memiliki RTP Slot gacor hari ini. Game yang komplet dengan tingkat keuntungan tinggi berdaya kamu dapatkan pada provider ini.&amp;lt;br&amp;gt;Slot Online Hari Ini&amp;lt;br&amp;gt;Beragam provider situs slot online sangatlah terkenal serta selalu menyajikan permainan-game slot paling gacor dengan Return-to-player tertinggi. Daripada daftar diatas, penyedia slot online manakah yang bossku gemari? Di tahun 2022 tampil beragam jenis permainan slot terkini gacor yang amat gampang buat dimenangkan serta terus bermunculan.&amp;lt;br&amp;gt;Slot Online Terpercaya 2022&amp;lt;br&amp;gt;7). Selama waktu ini, Flow Gaming permainan tidak akan tersedia. Kami memohon maaf atas ketidaknyamanan yang mungkin ditimbulkan. Apa itu slot online? Apa itu permainan slot online? Apakah ada slot online yang mudah menang? Apa saja pilihan game situs judi on-line? Berapa minimal deposit serta tarik dana di web Slot88?&amp;lt;br&amp;gt;Slot Online Lapak Pusat&amp;lt;br&amp;gt;Slot88 disebut sebagai web Raja Poker yang menawarkan layanan deposit lewat pulsa sudah tidak asing lagi terdengar di kancah perjudian on-line di Indonesia. Jika kalian berniat mewujudkan lebih banyak uang dan jadi raja cuan di tahun 2022, main di [https://new.c.mi.com/ph/post/84693/ Situs Slot Deposit Pulsa 10Rb] slot online terpercaya Slot88 merupakan alternatif untuk kalian para penghobi judi slot.&amp;lt;br&amp;gt;Slot Deposit Pulsa Tanpa Potongan&amp;lt;br&amp;gt;Cuma dengan melakukan depo minimum 20 rb maka para player sanggup memainkan semua game yang tersedia dalam web kita. Banyak cashback-cashback menarik yang berdaya agan dapatkan diwaktu jadi seorang new member dalam situs slot online ini. Serta tentunya agan berkesempatan buat memperoleh kemenangan slot pulsa sampai ratusan juta rupiah.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Dengan game yang banyak dengan jp yang melimpah. Slot88 dari microgaming bakal membikin bossku memainkan tanpa memikirkan waktu sama sekali. BO judi slot online live22 termasuk dalam kategori gampang jp. Dimana bossku sebagai slotter dapat menikmati hujan jackpot akan tetapi bukan jp progressive yang biasanya di miliki oleh permainan robot sloto modern.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Website judi on-line paling murah yang ada di Slot88 ini sering dikatakan sebagai link slot gacor online, karena telah bekerja sama dengan banyak penyedia terbaik yang selalu memberikan keuntungan kepada semua para bettor. Situs judi on-line ini juga menyediakan berbagai jenis opsi game, mulai dari slot online seperti (Gates Of Olympus, Sweet Bonanza, Pyramid Bonanza, serta yang lainnya), judi bola on-line (seperti:SABA Sports, SBO Sports, serta lain sebagainnya), Live Kasino Online, Idn Play Poker On-line (Seperti:Texas Poker, Poker Dealer, serta yang lainnya), Lotre (Seperti: Togel, dan yang lainnya), Judi Tembak Ikan, dan juga judi sabung ayam online Slot88.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Kesuksesan main Slot88 on line di web kita merupakan tersedianya beragam opsi serta fitur menarik ekslusif sehingga anggota bisa menjangkau game online lebih menyenangkan. Nama joker gaming tidak asing lagi, sebab permainan joker123 slot deposit pulsa 20 rb tanpa potongan telah tersedia di web Slot88 dengan permainan terfavorit slot roma.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Slot88_Slot_Gacor_Terlengkap_Daftar_Web_Judi_Bola_Resmi&amp;diff=5773</id>
		<title>Slot88 Slot Gacor Terlengkap Daftar Web Judi Bola Resmi</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Slot88_Slot_Gacor_Terlengkap_Daftar_Web_Judi_Bola_Resmi&amp;diff=5773"/>
		<updated>2022-10-24T08:40:54Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Sungguh amat tidak berdaya kami ragukan lagi dengan situs judi slot online uang asli ini, web yang telah punya jutaan member yang tersebar di seluruh indonesia. Aw...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Sungguh amat tidak berdaya kami ragukan lagi dengan situs judi slot online uang asli ini, web yang telah punya jutaan member yang tersebar di seluruh indonesia. Awalnya sungguh banyak yang meragukan situs judi slot online uang asli ini tapi sesuai dengan berjalannya waktu, situs judi slot online ini menjadi target di indonesia buat memperoleh maslahat besar di saat bermain judi slot online terpercaya ini.&amp;lt;br&amp;gt;Slot Deposit Pulsa Smartfren&amp;lt;br&amp;gt;Semua kumpulan info slot gacor hari ini atau bocoran slot gacor hari ini dapat bossku dapatkan cuman di Slot88. Slot88 juga memberikan iklan menarik buat bossku yang baru mendaftar sebagai player newbie, yakni reklame [http://uji.jdihn.go.id/ildis/app/ situs gacor slot hari ini] judi slot online gampang menang bonus new player 100. Menjadi bukan hanya kesuksesan mudah yang ditawarkan oleh situs slot gacor Slot88 saja, tambahan bonus 100 slot mudah menang juga jelas dapat bossque nikmati.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Buat itu, Slot88 hadir sebagai agen slot gacor terbaru 2022 dengan menawarkan bervariasi kelebihan dan kemudahan. Sebagai website slot yang gacor yang menyodorkan berbagai game slot gacor terbaru, situs slot gacor 2022 ini juga ialah situs judi slot online terpercaya 2022 setoran pulsa tanpa potongan.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Taukah bossku mengapa disebut sebagai slot gacor hari ini? Bocoran slot gacor hari ini juga bakalan diberi untuk pihak BO slot gacor jikalau agan bertanya pada CS. Butuh Agan ketahui tidak sedikit para pemain Slot gacor Uang Absah yang baru saja terjun bermain Laman Judi Slot Online Terbaik serta Terlengkap No 1 Indonesia dirugikan oleh pihak yang tidak bertanggung jawab, imbas salah memilih Judi Slot Online Jackpot Terbesar.&amp;lt;br&amp;gt;Slot Gacor Deposit Pulsa&amp;lt;br&amp;gt;Dalam beberapa tahun yang kemudian judi slot gacor terlengkap aman memang harus kalian mainkan dengan bot. Tetapi saat ini itu tidak perlu lagi. Adanya teknologi memunculkan judi slot online gacor gampang akses. Bossque bisa main dengan cukup daripada situs slot online terpercaya 2022 aja. Daftar Slot88 Situs Judi Slot Online Indonesia nomor 1 bisa anda lakukan daripada situs slot gacor gampang akses buat berdaya mulai bermain secara on-line.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Selamat muncul para pemain Link Web Judi Slot Gacor Gampang Menang Terbaru serta Terlengkap 2022 yang menyajikan bervariasi fasilitas komplit untuk memenuhi keinginan para anggota Situs Judi Slot Online Sering Kasih Menang yang selalu menyuguhkan hadiah bonus jp slot online terbesar yang di berikan oleh Situs Slot Gacor Jp Terbesar. Kami menawarkan berbagai permainan bocoran slot gacor malam ini yang gampang untuk menang seperti bola on-line Slot88, live kasino on-line, situs judi slot online 2022, poker on-line, arcade online yang bakal sanggup kalian mainkan selama 24jam non stop.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Slot88 selagi ini adalah situs slot deposit pulsa tanpa potongan yang selagi ini terhitung sudah menawarkan ribuan tipe game slot deposit pulsa tanpa potongan terlengkap. Slot88 selagi ini terhitung adalah situs slot deposit pulsa tanpa potongan yang ada sebagai bandar slot deposit pulsa tanpa potongan terjujur serta baik di Indonesia sebab menganut proses permainan slot deposit pulsa tanpa potongan adil play.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Alasannya di karenakan web Sloterindo membawa banyak keunggulan fantastis yang tidak ada daripada situs lainnya. Situs judi slot online terbaik Slot Gacor menawarkan slot gacor mudah menang serta terhitung informasi slot gacor hari ini untuk anda seluruh. Kumpulan situs judi slot online terbaik dan nomor 1 no 1 yang di rekomendasikan oleh slot online serta slot88 on-line.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Website judi slot pulsa Slot88 merupakan situs slot deposit pulsa 10 rb tanpa potongan menjadi primadona para bettor slot online di indonesia. Banyak daripada player slot online indonesia tidak sanggup menemukan situs judi slot deposit pulsa tanpa potongan terbaik. Kami Slot88 sebagai situs slot online deposit pulsa tanpa dipangkas telah tampil buat memberikan layanan terbaik buat para player slot online yang sudah jadi anggota kami.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Slot88_Situs_Slot_Online_Mudah_Menang_Di_Indonesia&amp;diff=5772</id>
		<title>Slot88 Situs Slot Online Mudah Menang Di Indonesia</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Slot88_Situs_Slot_Online_Mudah_Menang_Di_Indonesia&amp;diff=5772"/>
		<updated>2022-10-24T08:19:59Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Kans menang dan Return to Player yang besar diberikan oleh BO permainan judi paling terpercaya buat sanggup menyuguhkan kamu kesan bermain yang terbaik serta juga...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Kans menang dan Return to Player yang besar diberikan oleh BO permainan judi paling terpercaya buat sanggup menyuguhkan kamu kesan bermain yang terbaik serta juga kehidupan yang lebih baik lagi, serta tentunya dengan bocoran slot online gacor yang tersedia lewat admin Slot88 pasti meningkatkan peluang kemenangan Anda disaat memainkan game slot online sehingga Agan bisa memperoleh keuntungan sensational dan meraih penghasilan sampingan hanya dengan bermain judi slot online pakai uang asli di Slot88.&amp;lt;br&amp;gt;Slot Deposit Pulsa Gacor&amp;lt;br&amp;gt;Memiliki Slot Setoran gopay pengalaman bertahun - tahun dalam industri on-line gaming, tentunya aja provider Microgaming menyuguhkan penawaran bayaran profit via beberapa pilihan slot terbaik berupa Zeus, Mega Money Multi, Dragaon Dance, Lucky Koi. Bergabung dalam penyedia Boongo Slot Deposit Link Aja pastinya bisa memberikan kesuksesan yang efektif, karena para player sanggup menikmati sejumlah jenis slot terbaik seperti Tiger Jungle, Black Wolf, Hit the Gold, Candy Boom.&amp;lt;br&amp;gt;Judi Slot Deposit Pulsa&amp;lt;br&amp;gt;Dimana permainan sweet bonanza ini memakai video slot mengambil latar buah dan gem ini selalu menjadi yang terbaik daripada tahun ke tahun. Walaupun tidak memberikan bonus jp, slot ini tetap memberikan kemenangan yang besar lewat feature andalan nya yang dapat di beli yakni fitur free spins dan fitur Ante / bet ganda.&amp;lt;br&amp;gt;Link Slot Deposit Pulsa Tanpa Potongan&amp;lt;br&amp;gt;Jenis kartu yang bisa dipakai buat melakukan kegiatan pembayaran ini antara lain adalah XL ataupun Telkomsel. Yang lebih memuaskan adalah tidak bakal ada bagian yang harus dialami oleh player bahwa berniat mendapat deposit. Berapa saja jumlah pulsa yang ingin mereka gunakan maka mereka dapat langsung melakukan kegiatan ini dengan baik.&amp;lt;br&amp;gt;Cara Main Slot Biar Menang Terus Gimana?&amp;lt;br&amp;gt;Pastinya betting tidah hanya untuk sepakbola saja masih ada banyak olahraga lainnya yang bisa di jadikan bet. Poker Online Raja Judi yang dikenal dalam game Texas Poker dan Domino Qiu Qiu yang tidak bisa menghilang begitu aja. Raja Judi ini merupakan salah satu yang dapat memberikan daya tarik untuk semua player Judi On line.&amp;lt;br&amp;gt;Slot Online Gampang Jackpot&amp;lt;br&amp;gt;Kalaupun tersebut ada di halaman teratas, tetapi tidak semuanya berdaya dipercaya. Kadang beberapa diantaranya ialah web palsu dan penipu yang pastinya amat disarankan untuk dihindari. Opsi web yang palsu serta penipu tidak layak untuk dipilih melainkan harus bossku hilangkan karena mempunyai banyak kekurangan serta kerugian.&amp;lt;br&amp;gt;Slot Deposit Pulsa Axis&amp;lt;br&amp;gt;Selain itu, minimum setoran dana slot juga terjangkau mulai daripada 20 rb hingga 20 rb plus diskon yang dihasilkan dinobatkan sebagai [https://new.c.mi.com/ph/post/84693/ Situs Slot Deposit Pulsa 10Rb] slot dana on line terpopuler dengan bunga yang sangat tinggi, sehingga banyak orang yang mendaftarkan account dana buat main judi on-line. Deposit via bank saat ini sudah usang, sebab bank punya jadwal off-line buat itu dengan aplikasi dana sendiri, Bossku tidak perlu khawatir, kapan pun Bossque berniat memainkan aplikasi ini bisa diandalkan selama 24 jam tanpa jadwal offline dan juga amat jarang mengalami masalah teknis.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Games dasarnya peluang bukan yang amat menarik, tapi games ini sediakan bonus games yang dapat bikin psikis. Tidak perlu waktu yang lama buat studio buat manfaatkan ketertarikan yang pertama dengan melaunching sekuel yang melompat-lompat buat raih Return to Player slot hari ini. Money Train 2 telah mengulas beberapa kritikan yang pertama dihimpun di saat mengangkat nyaris tiap faktor lain dalam prosesnya.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Rekomendasi_Situs_Slot_Gacor_Terbaru_2022_Slot88&amp;diff=5759</id>
		<title>Rekomendasi Situs Slot Gacor Terbaru 2022 Slot88</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Rekomendasi_Situs_Slot_Gacor_Terbaru_2022_Slot88&amp;diff=5759"/>
		<updated>2022-10-24T06:16:21Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Peraturan buat main raja judi slot deposit pulsa tanpa potongan yang ada di Slot88 website judi slot pulsa resmi ini merupakan dengan mulai daftar sebagai member b...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Peraturan buat main raja judi slot deposit pulsa tanpa potongan yang ada di Slot88 website judi slot pulsa resmi ini merupakan dengan mulai daftar sebagai member baru. Proses registrasi player newbie bisa dilaksanakan dengan pakai detail keterangan individual yang bossku miliki serta di isi ke lembar pendaftaran yang sudah di sediakan Slot88 Web judi slot pulsa.&amp;lt;br&amp;gt;Nama Nama Situs Judi Slot Online&amp;lt;br&amp;gt;Berikut ialah bocoran slot gacor hari ini. Web Slot88 ialah slot gacor hingga akhir ini juga didukung dengan penampilan web dinamis dan responsif serta layanan admin 24jam yang buat nyaman di waktu main bet Slot Online Joker123, Sabung Ayam Slot88, Pasang Angka Togel dan Main di Meja Live Kasino.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Banyak petaruh bisa melaksanakan beragam jenis game Jam 777 situs judi slot deposit pulsa tanpa potongan menarik yang dapat diandalkan secara bebas, sehingga anda bakalan mampu amat mudah serta memanjakan disaat main jam slot online terpercaya. Untuk dapat melaksanakan permainan slot jam 138 gacor ini pun amat praktis dapat dilakukan dimana aja serta kapan saja hanya dengan modal android.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;RTG Slot Online, provider satu ini menghadirkan game judi live slot online tanpa mesin sehingga kamu dapat bermain secara adil. Dengan bermodal sedikit kalian sudah dapat memainkan permainan daripada provider game slot online ini. Skywind disebut juga sebagai penyedia game slot online depo Uang elektronik / QRPay yang lebih memudahkan para anggotanya dalam melakukan transaksi selain itu game yang disediakan juga rata-rata mempunyai nilai RTP yang tinggi.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Jika Anda ingin mencoba game slot online daripada provider lain, silakan pilih mesin slot Mahjong Ways. Ini merupakan game slot online besutan PG Soft yang mempromosikan RTP di nomer 96,00% sehingga gampang memicu hadiah kemenangan secara konsisten. Sesuai dengan namanya, game slot online Mahjong Ways mengambil latar dari salah satu permainan masyarakat Tiongkok kuno yang amat dikenal sampai belakangan ini.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Teknik dalam memainkan slot online dapat mendapatkan hasil kemenangan. Teknik judi on-line banyak tepat di judi slot online hendak melahirkan agan mampu menciptakan uang tambahan. Sehingga kalian hendak kian acap mengangkat slot online bergerak menerus karna menebak memafhumi cara arketipe goresan ala judi slot online pemain mainkan.&amp;lt;br&amp;gt;Situs Judi Slot Online Gampang Menang&amp;lt;br&amp;gt;Itulah daftar produsen game slot online terbaik di Indonesia tahun 2022 dengan game robot slot paling gacor. XXXX merupakan situs slot online terbaik dan terbaik tapi tidak cuma menawarkan game [https://new.c.mi.com/ph/post/84693/ link slot deposit pulsa 10Rb] aja, disini ada juga permainan judi on line terlengkap seperti casino, poker online, arcade, Slot88.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Semua jenis game daftar situs judi slot online terpercaya yang kami sediakan tentu mudah buat dimenangkan, kenapakah kita berani bilang seperti itu sebab situs slot gacor on line terbaik ini menerapkan game yang sportif serta peluang kemenangan tertinggi dibandingkan yang ada pada website lainnya. Selain itu ada bonus dan jackpot yang mampu Bossku menangkan di setiap harinya.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Slot88_:_Situs_Slot_Gacor_Pulsa_Tanpa_Dikurangi_Rate_100&amp;diff=5753</id>
		<title>Slot88 : Situs Slot Gacor Pulsa Tanpa Dikurangi Rate 100</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Slot88_:_Situs_Slot_Gacor_Pulsa_Tanpa_Dikurangi_Rate_100&amp;diff=5753"/>
		<updated>2022-10-24T04:33:00Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «&amp;lt;br&amp;gt;Anda berniat memainkan game game slot setoran 20 rb yang dapat kamu mainkan di 24 provider terlengkap yang bisa dapat kamu mainkan selalu membuat fakta dalam main...».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;br&amp;gt;Anda berniat memainkan game game slot setoran 20 rb yang dapat kamu mainkan di 24 provider terlengkap yang bisa dapat kamu mainkan selalu membuat fakta dalam main serta tergantung pola slot gacor hari ini yang kamu mainkan. 20 rb ini kamu bisa memainkannya di Situs judi Slot88 yang akan membayar seluruh kesuksesan bossku berapapun itu jumlahnya.&amp;lt;br&amp;gt;Bocoran Slot Gacor&amp;lt;br&amp;gt;Agar kamu dapat dengan gampang main dalam permainan judi slot bet 200 rupiah, jelas aja kalian harus untuk mencoba mengenali game yang ada pada situs judi slot online lebih dulu, karena bakal terdapat beberapa kemenangan yang bakal kamu dapat pada setiap di waktu memainkan slot pragmatic, ingat semakin besar modal kamu maka semakin besar juga kesuksesan kamu.Bila kamu mau memenangi permainan pada suatu permainan judi on line dengan tercapai serta berdaya meraih banyak jackpot, tentunya betul-betul kami anjurkan supaya bossku terlebih dahulu.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;JOKER123 adalah platrom judi slot online yang paling banyak diminati oleh para penjudi di Indonesia, selain karena jackpot yang sering tampil serta tampilan yang lebih menyenangkan mata , JOKER123 juga menyandang gelar sebagai platform slot online tertua di Indonesia, jadi jangan heran bila slot JOKER123 memiliki banyak peminat di seluruh Indonesia.&amp;lt;br&amp;gt;Situs [https://new.c.mi.com/ph/post/92070 Slot Deposit Pulsa Tanpa Potongan]&amp;lt;br&amp;gt;Selain itu, bossque bisa main slot dengan deposit pulsa tanpa dikenakan bagian. Apa aja keunggulan permainan slot online dibanding game judi lain? Sebenarnya, setiap jenis permainan judi online apapun menunjukkan bermacam-macam kelebihan serta keunggulannya masing-masing yang buat siapa saja akan tertarik untuk memainkannya. Hal itu pula berlaku pada permainan judi slot online yang mempunyai berbagai kelebihan dan kesuksesan yang mungkin jarang bossque jumpai di beberapa jenis permainan judi lain.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Anda akan amat beruntung bisa memainkan game taruhan judi slot bersama produsen tersebut. Diwaktu kami bakal memilah serta bergabung di salah satu pilihan dan situs judi slot online yang gacor serta gampang menang, pastinya harus mempertimbangkan beberapa hal terlebih dulu. Ada banyak memang pilihan web BO judi slot yang akhir-akhir ini menawarkan permainan bet judi on-line semuanya menawan serta mampu dipercaya.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Slot88 adalah penyedia teranyar bekerja sama dengan Nexusengine untuk mendominasi dunia slot online di Indonesia dengan menawarkan probabilitas kemenangan terbesar dan permainan yang di luncurkan merupakan Frenzy Shot, Light Star, Arctic King. Flow Gaming yang berdiri di tahun 2017 yang terkenal sebagai slot online terbaru, tetapi flow gaming punya puluhan permainan yang menarik sehingga sering di populerkan dan di review banyak youtuber.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Tentunya saja hal ini telah tentu sebab Slot88 adalah situs slot online anti rungkat dan anti kalah bosku, dengan modal uang sebesar 20ribu agan berhak bermain bersama kami dan rasakan jackpot sensasional pada pada setiap putaran bebas yang akan anda dapatkan dengan mudah bersama kami. Rekomendasi Bandar Slot Online Tentu Menang Anti Kalah Garansi Mutu !&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;Serta juga akan menyuguhkan kepada anda jackpot judi slot online terbesar. Bahkan Slot88 menyuguhkan kepada bossku bermacam provider slot online lengkap dan mulai daripada pasaran sampai dengan jenis taruhan aja. Tapi situs Slot88 juga menyediakan jenis game judi on-line lain. Contohnya saja seperti game poker, live kasino, hot games, arcade dan sebagainya dapat bossque mainkan di website ini.&amp;lt;br&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5491</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5491"/>
		<updated>2022-10-15T12:24:50Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Escola del Clot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster Industria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5490</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5490"/>
		<updated>2022-10-15T12:23:48Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Escola deI Clot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster Industria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Escola_del_Clot&amp;diff=5484</id>
		<title>Escola del Clot</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Escola_del_Clot&amp;diff=5484"/>
		<updated>2022-10-14T17:40:23Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Curs 2022-2023]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
[[Curs 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
[[Curs 2019-2020]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Curs_2018-2019 Curs_2018-2019]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=41CMObnPeSQ Pàgina oficial de l'Escola del Clot]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Propostes de projecte 2021]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Escola_del_Clot&amp;diff=5483</id>
		<title>Escola del Clot</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Escola_del_Clot&amp;diff=5483"/>
		<updated>2022-10-14T17:39:54Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Curs 2022-2023]]&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
[[Curs 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
[[Curs 2019-2020]]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Curs_2018-2019 Curs_2018-2019]&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/ Pàgina oficial de l'Escola del Clot]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
[[Propostes de projecte 2021]]&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5482</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5482"/>
		<updated>2022-10-14T17:39:22Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Escola del Clot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster Industria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5481</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5481"/>
		<updated>2022-10-14T17:37:56Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[EscoIa del CIot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster lndustria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5480</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5480"/>
		<updated>2022-10-14T17:36:44Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Escola del Clot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster Industria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Binefa.com&amp;diff=5479</id>
		<title>Binefa.com</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Binefa.com&amp;diff=5479"/>
		<updated>2022-10-14T17:36:32Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «binefa».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;binefa&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5478</id>
		<title>Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=P%C3%A0gina_principal&amp;diff=5478"/>
		<updated>2022-10-14T17:36:07Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Escola del Clot]]&lt;br /&gt;
&lt;br /&gt;
[[Máster Industria 4.0 | UPC School]]&lt;br /&gt;
&lt;br /&gt;
[[binefa.com]]&lt;br /&gt;
&lt;br /&gt;
[[Robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[[Formació]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--foo&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;MediaWiki s'ha instal·lat.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Consulteu la [https://meta.wikimedia.org/wiki/Help:Contents Guia d'Usuari] per a més informació sobre com utilitzar aquest programari wiki.&lt;br /&gt;
&lt;br /&gt;
== Primers passos ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Configuration_settings Llista de paràmetres configurables]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:FAQ PMF del MediaWiki]&lt;br /&gt;
* [https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce Llista de correu per a anuncis del MediaWiki]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Localisation#Translation_resources Traducció de MediaWiki en la vostra llengua]&lt;br /&gt;
* [https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Combating_spam Aprengueu com combatre la brossa que pot atacar el vostre wiki]&lt;br /&gt;
&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=404_issue&amp;diff=5441</id>
		<title>404 issue</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=404_issue&amp;diff=5441"/>
		<updated>2022-10-11T16:54:17Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Error 404&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Error 404&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Carpetes_compartides_del_M03_de_1r_de_DAW._Curs_2022-2023&amp;diff=5212</id>
		<title>Carpetes compartides del M03 de 1r de DAW. Curs 2022-2023</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Carpetes_compartides_del_M03_de_1r_de_DAW._Curs_2022-2023&amp;diff=5212"/>
		<updated>2022-09-20T03:23:17Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://drive.google.com/drive/folders/1b3MY-eyThA6vObkU4SWKSCWwRDlAwqo9 Antonio Acosta Gata]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1I_8P8VvytsCJvHDmxE7BZoarFzAu6UQz Eric Alvarez Cuerva]&lt;br /&gt;
&lt;br /&gt;
Pol Arenas Grau&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1o3TikAgM1I1MTvnhc7ftcxHrPQAreUKf Pol Aroca Isart]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1gHpA2qYkdMUDhV0shQ0W1-G6Uvh31CK3 Bru Carreras Hernàndez]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1L_gOGPJ5byRJ93x-hb_OubzaAWNDbI44 Valentín Dueso Sánchez]&lt;br /&gt;
&lt;br /&gt;
Ayoub El Aaydy&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1BGu3RZvvwCFoJAAUSyMhNU8BFiXKdAAF Juan David Fernández Schmucker]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [https://drive.google.com/drive/folders/1W_PJ8ia21zv87m_6_iY-NHZ8AzJCyHBI Dídac Garcia Dumé] * Correu família --&amp;gt;&lt;br /&gt;
[https://drive.google.com/drive/folders/1NaePU5DhM0_j3VmFhUK7Q5qrWiARwYKV Dídac Garcia Dumé]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1PxMuHbGh04Mv1lQz__WVtA8xka8qWtqY Ferran Garola Bonilla]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1hC-w2AhhvDCm-3ed_F-_fI4cDGbxn4Ai Leonardo Herrera Sánchez]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1ZFisZReKK5lCKfbn7zZtjzy3G2lo9l72 David Huguet Martín] * Estructura de carpetes&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1KxgTRNv92vTxEm1JAvacfPzWO9YGcLK7 Marc Jiménez Izquierdo]&lt;br /&gt;
&lt;br /&gt;
Daniel Lozano Durany&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/11DT0Vx4-qlWCXYPZBygZs0ux4GCHNDt6 Àlex Maench Ollé]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/12T4QGMI3bjgJs5mZ-zjb2wQm-1-ScrSd André Mafuta Cánovas] Buida&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1GtOLhxVVYAn9Tnp_0axdUVvX0TaybOgC Evrard Minu Massengo]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1F26Ewl0IE-Wdd_ihpbsP3yPcs2P2L3d2 Daniel Moreno Lao]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1fHJKPB5E81lhbxRU546a379bX9rjCtoI Jose Javier Pérez Rodríguez]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/0AGRcdu_BKkWtUk9PVA Miguel Angel Pires Marmol]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1GLl1vDySF0aeXiD7RJlNBYPP1DjggVgl Anna Prats Pérez]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1bS_kp9KcruD1dyTbiyXO4xyV0Bo9NO_a Raul Quesada Saiz]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1BVdFUMCtNW0grtMxHDHrOjYtv_retf2u Cesc Riera Amatriain]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1UloEwpods7b5pGJhobluvuQyC43bWsqB Pablo Romera Diaz]&lt;br /&gt;
&lt;br /&gt;
Marc Rosell Miguel&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1-QGhXxaqrQQl5b6R09GZRg8cEeMRnjMu José Daniel Sánchez Cordero]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/14010H3T8EJ-MEDcSLKczAkE7P2gKVwt5 Romà Sardá Casellas]&lt;br /&gt;
&lt;br /&gt;
Fabio Siddi&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1ogxk_N3cbpNl8ucZinoiM7IsJQLoC9tG Victor Manuel Toro Arias]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1PDSh7jK6k2RGLYcz1lhgN02dyToLzLAf Alejandro Torrente Martín]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/1-g1DvtDUgMUVNOAkP4r30-wON3UE92Me Bruno Valverde Aguilar]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/17vnCWboKQu3n1qTXLXk69XjnUF6jBhmm Toni Varón i Martínez]&lt;br /&gt;
&lt;br /&gt;
[https://drive.google.com/drive/folders/0AAaWCBJRZh5VUk9PVA Iván Vázquez Díaz]&lt;br /&gt;
&lt;br /&gt;
Miguel Villegas Bertolin&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=4941</id>
		<title>DAW 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=4941"/>
		<updated>2022-06-04T15:45:12Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Exercicis d'estructures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2122-DAW-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2122-DAW-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r de DAW. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
Estructura de les carpetes:&lt;br /&gt;
 M01 ''(depenent del subgrup)''&lt;br /&gt;
 M03&lt;br /&gt;
   examens&lt;br /&gt;
   exercicis&lt;br /&gt;
     C&lt;br /&gt;
     Python&lt;br /&gt;
   perDies&lt;br /&gt;
 M14&lt;br /&gt;
   Arduino&lt;br /&gt;
   Robot&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1FhkkzZmQA3-mpiuKGv7Onhtcr8sdLyFAcTg3GBwhLgw/ Llista de 1r de DAW]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&amp;lt;!-- https://docs.python.org/3/library/csv.html --&amp;gt;&lt;br /&gt;
== 20220524 '''Examen M03UF3''' ==&lt;br /&gt;
[http://formacio.things.cat/20220524_m03uf3/20220524exM03Uf3.pdf Examen d'avaluació ordinària del M03UF3 en format pdf]&lt;br /&gt;
&lt;br /&gt;
[http://formacio.things.cat/20220524_m03uf3/20220524exM03Uf3_material.zip Material per a l'examen d'avaluació ordinària del M03UF3]&lt;br /&gt;
&lt;br /&gt;
== 20220524 ==&lt;br /&gt;
'''Darrer classe abans de l'examen'''&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220524/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220520 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220520/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220519 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220519/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220517 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220517/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220512 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220512/ Recull d'avui]&lt;br /&gt;
== 20220513 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220513/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220512 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220512/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220510 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220510/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220506 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220506/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220505 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220505/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* [http://ceipturodeguiera.xtec.cat/formacio/dvd2006/materials/td97/d97m7/d97m7te.htm Gestió dinàmica de la memòria: ''malloc()'' i ''calloc()'']&lt;br /&gt;
&lt;br /&gt;
* Diccionaris i llistes de diccionaris a Python&lt;br /&gt;
&lt;br /&gt;
* Lectura i escriptura d'arxius ''csv'' en Python&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV. Quan s'executa haurà de llegir totes les dades dins d''''agenda.csv''' i carregar-les a un vector d'estructures. Apareixerà un menú amb aquestes opcions: 1) Lectura de tota l'agenda, 2) Introducció de nou registre a RAM (introducció a estructura, però no a arxiu), 3) Escriptura a arxiu, 4) Modificació de registre per índex 5) Eliminació d'un registre per índex&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''Python''': Mateix enunciat que el fet prèviament en C. Feu ús de la gestió d'arxius ''csv'' en Python.&lt;br /&gt;
&lt;br /&gt;
== 20220503 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220503/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Anàlisi d'''exFitxers03.c'' i ''exFitxers04.c'' del recull d'avui, desenvolupats el darrer dia.&lt;br /&gt;
&lt;br /&gt;
* [http://ceipturodeguiera.xtec.cat/formacio/dvd2006/materials/td97/d97m7/d97m7te.htm Gestió dinàmica de la memòria: ''malloc()'' i ''calloc()'']&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV. Quan s'executa haurà de llegir totes les dades dins d''''agenda.csv''' i carregar-les a un vector d'estructures. Apareixerà un menú amb aquestes opcions: 1) Lectura de tota l'agenda, 2) Introducció de nou registre a RAM (introducció a estructura, però no a arxiu), 3) Escriptura a arxiu, 4) Modificació de registre per índex 5) Eliminació d'un registre per índex&lt;br /&gt;
&lt;br /&gt;
== 20220429 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220429/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220428 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220428/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220426 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220426/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Escriptura d'arxius en Python&lt;br /&gt;
[https://www.w3schools.com/python/python_file_write.asp Diferència entre afegir i escriure arxius en Python]&lt;br /&gt;
&lt;br /&gt;
[https://www.pythontutorial.net/python-basics/python-write-text-file/ Un altre exemple d'escriptura d'arxius en Python]&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220421 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220421/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Exercici del dia anterior:&lt;br /&gt;
&lt;br /&gt;
A partir de ''m8p03.c'', present al [https://recull.binefa.cat/files/20220419/ recull del dia anterior], desenvolupeu '''m8p03_b.c''' que fa servir una estructura per a contenir les dades (''codi'', ''nom'', ''cognom'' i ''nota'').&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Diferència de tracatament de cadenes en C i en Python&lt;br /&gt;
&lt;br /&gt;
* Lectura d'arxius en Python&lt;br /&gt;
&lt;br /&gt;
== 20220419 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220419/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
Exercici:&lt;br /&gt;
&lt;br /&gt;
A partir de ''m8p03.c'', present al [https://recull.binefa.cat/files/20220419/ recull d'avui], desenvolupeu '''m8p03_b.c''' que fa servir una estructura per a contenir les dades (''codi'', ''nom'', ''cognom'' i ''nota'').&lt;br /&gt;
&lt;br /&gt;
== 20220408 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220408/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220407 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220407/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/ Estructures, unions i gestió dinàmica de la memòria]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m8/index.htm Fitxers]&lt;br /&gt;
&lt;br /&gt;
== 20220405 - '''M03UF3''' ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220405/ Recull del dia d'avui]&lt;br /&gt;
&lt;br /&gt;
* Comentaris dels exàmens del M03UF1 i M03UF2&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/d97m7p9.htm Arguments de la funció ''main()'']&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/ Estructures, unions i gestió dinàmica de la memòria]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m8/index.htm Fitxers]&lt;br /&gt;
&lt;br /&gt;
=== Exercicis d'estructures ===&lt;br /&gt;
* Feu el programa '''protoAgenda00.c'''. Ha de demanar quants elements s'han d'assignar a una agenda (màxim de 100. Per tant, '''N_ELEMENTS''' valdrà 100). Ha de preguntar tres camps: ''nom'', ''edat'' i ''codi postal''. A l'acabar d'introduir tots els elements demanats els mostrarà per pantalla.&lt;br /&gt;
&lt;br /&gt;
== 20220401 '''Exàmens M03UF1 i M03Uf2''' ==&lt;br /&gt;
=== Examen M03UF1 ===&lt;br /&gt;
'''Temps d'examen''': entre '''16.50 i 17.40''' (entre 17.40 i 17.45 heu de trametre l'examen per correu. A les 17.45 no ha de quedar ningú a classe)&lt;br /&gt;
&lt;br /&gt;
Feu captures de pantalla per a documentar l'examen. Heu de capturar els trossos clau i comentar-los. A l’acabar-ho, trameteu-ho als '''dos''' professors, '''adjuntant un arxiu en pdf''' demostrant els punts claus de les respostes i un '''arxiu .zip''' (o .tar.gz, No s’accepten .7z o .rar) amb els '''vostres codis''' i '''sense els arxius executables'''. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser '''asix_Cognom1_Cognom2_Nom_m03uf1_ord''' per a ASIX i '''daw_Cognom1_Cognom2_Nom_m03uf1_ord''' per a DAW.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220401_exM03Uf1Uf2/20220401_m03uf1_ord/ Examen d'ordinària del M03Uf1]&lt;br /&gt;
&lt;br /&gt;
=== Examen M03UF2 ===&lt;br /&gt;
'''Temps d'examen''': entre '''18.15 i 19.05''' (entre 19.05 i 19.10 heu de trametre l'examen per correu. A les 19.10 començarà la següent classe)&lt;br /&gt;
&lt;br /&gt;
Feu captures de pantalla per a documentar l'examen. A l’acabar-ho, trameteu-ho al correu electrònic dels '''dos''' professors, '''adjuntant un arxiu en pdf''' demostrant els punts claus de les respostes i un '''arxiu .zip''' (o .tar.gz, No s’accepten .7z o .rar) amb els '''vostres codis''' i '''sense els arxius executables'''. Aquest examen té més de 10 punts (''14 possibles''), '''escolliu les preguntes que considereu més adients'''. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser '''asix_Cognom1_Cognom2_Nom_m03uf2_ord''' per a ASIX i '''daw_Cognom1_Cognom2_Nom_m03uf2_ord''' per a DAW.&lt;br /&gt;
&lt;br /&gt;
* Depuració en C (''2 punts'')&lt;br /&gt;
&lt;br /&gt;
* Separació d'arxius (''3 punts''. 1,5 en C i 1,5 en Python)&lt;br /&gt;
&lt;br /&gt;
* Recursivitat (''3 punts''. 1,5 en C i 1,5 en Python)&lt;br /&gt;
&lt;br /&gt;
* Vectors, cadenes i llistes (''6 punts''. 3,5 en C i 2,5 en Python)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220401_exM03Uf1Uf2/20220401_m03uf2_ord/ Examen d'ordinària del M03Uf2]&lt;br /&gt;
&lt;br /&gt;
== 20220331 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220331/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== '''Arguments''' ===&lt;br /&gt;
* En Python:&lt;br /&gt;
 # arguments_00.py&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 nArg = len(sys.argv)&lt;br /&gt;
 print(&amp;quot;Heu escrit %d arguments&amp;quot;%nArg)&lt;br /&gt;
 i = 0&lt;br /&gt;
 for arg in sys.argv:&lt;br /&gt;
    print(&amp;quot;argv[%d]: %s&amp;quot;%(i,arg))&lt;br /&gt;
    i += 1&lt;br /&gt;
* En C:&lt;br /&gt;
 // arguments_00.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[]){&lt;br /&gt;
    int i;&lt;br /&gt;
 &lt;br /&gt;
    printf(&amp;quot;Heu escrit %d arguments.\n&amp;quot;,argc);&lt;br /&gt;
    for(i = 0; i &amp;lt; argc; i++){&lt;br /&gt;
        printf(&amp;quot;argv[%d]: %s\n&amp;quot;,i,argv[i]);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220326 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220326/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
== 20220325 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220325/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220324 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220324/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Paraula clau '''yield''' a Python. '''Funcions generadores''' ===&lt;br /&gt;
* Primer exemple. A cada crida retorna un dels '''yield'''. Com a màxim es pot cridar tres cops a aquest exemple:&lt;br /&gt;
 def generator():&lt;br /&gt;
    yield &amp;quot;Benvinguts&amp;quot;&lt;br /&gt;
    yield &amp;quot; a l'&amp;quot;&lt;br /&gt;
    yield &amp;quot;Escola del Clot&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 gen_object = generator()&lt;br /&gt;
 print(type(gen_object)) # type(): Indica el tipus d'objecte&lt;br /&gt;
 for i in gen_object:&lt;br /&gt;
    print(i)&lt;br /&gt;
&lt;br /&gt;
* Segon exemple. Nombres senars amb '''yield'''&lt;br /&gt;
 def filtra_senars(nombres):&lt;br /&gt;
    for numero in range(nombres):&lt;br /&gt;
        if numero%2:&lt;br /&gt;
            yield numero&lt;br /&gt;
 &lt;br /&gt;
 numeros_senars = filtra_senars(25)&lt;br /&gt;
 print(list(numeros_senars))&lt;br /&gt;
&lt;br /&gt;
* Tercer exemple. Ús de '''next'''&lt;br /&gt;
 def filtra_senars(nombres):&lt;br /&gt;
    for numero in range(nombres):&lt;br /&gt;
        if numero%2:&lt;br /&gt;
            yield numero&lt;br /&gt;
 &lt;br /&gt;
 numeros_senars = filtra_senars(8)&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
&lt;br /&gt;
* Quart exemple:&lt;br /&gt;
 def alCub(num):&lt;br /&gt;
    return num*num*num&lt;br /&gt;
 &lt;br /&gt;
 def obteCubs(ventall):&lt;br /&gt;
    for i in range(ventall):&lt;br /&gt;
        yield alCub(i)&lt;br /&gt;
 &lt;br /&gt;
 objecteCubs = obteCubs(5)&lt;br /&gt;
 print(list(objecteCubs))&lt;br /&gt;
&lt;br /&gt;
* Cinquè exemple:&lt;br /&gt;
 def ''ventall_caracters''(c1,c2):&lt;br /&gt;
    for c in range('''ord'''(c1),'''ord'''(c2)+1):&lt;br /&gt;
        yield '''chr'''(c)&lt;br /&gt;
 &lt;br /&gt;
 for c in ''ventall_caracters''('c','g'):&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
* Sisè exemple:&lt;br /&gt;
 print(ord('L'))&lt;br /&gt;
 print(chr(77))&lt;br /&gt;
 x = 'A'&lt;br /&gt;
 y = 97&lt;br /&gt;
 print(&amp;quot;%s és %d a la taula ASCII&amp;quot;%(x,ord(x)))&lt;br /&gt;
 print(&amp;quot;%s és %d a la taula ASCII&amp;quot;%(chr(y),y))&lt;br /&gt;
 nom = ['J','o','a','n']&lt;br /&gt;
 cognom = &amp;quot;Sanahuja&amp;quot;&lt;br /&gt;
 print(&amp;quot;Nom: &amp;quot;,end = &amp;quot;&amp;quot;)&lt;br /&gt;
 for n in nom:&lt;br /&gt;
    print(&amp;quot;%s&amp;quot;%n,end=&amp;quot; &amp;quot;)&lt;br /&gt;
 print()&lt;br /&gt;
 print(&amp;quot;Cognom: &amp;quot;,end = '')&lt;br /&gt;
 for c in cognom:&lt;br /&gt;
    print(&amp;quot;%s&amp;quot;%c,end=' ')&lt;br /&gt;
 print()&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220322 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220322/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Un cop s'ha entès la implementació, en C i en Python, del mètode d'ordenació per selecció, feu la '''implementació, en C i en Python, del mètode d'ordenació de la bombolla'''.&lt;br /&gt;
&lt;br /&gt;
== 20220318 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220318/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220317 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220317/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Un cop s'ha entès la implementació, en C i en Python, del mètode d'ordenació per selecció, feu la '''implementació, en C i en Python, del mètode d'ordenació de la bombolla'''.&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220315 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220315/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== '''Mètodes d'ordenació''' ===&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3a2.htm Alguns '''mètodes d'Ordenació''']. Entenem el mètode de la '''bombolla''' i el mètode de '''selecció''' (avui no analitzarem el mètode d'ordenació recursiva '''quicksort''') i dissenyem una implementació alternativa en C i en Python.&lt;br /&gt;
&lt;br /&gt;
* Per saber-ne més: [https://www.studocu.com/ca-es/document/universitat-oberta-de-catalunya/practicas-de-programacion/metodes-dordenacio-cat-tema-12/8211052 Documentació extra sobre mètodes d'ordenació. Fet per en Josep Jorba Jorba de la UOC].&lt;br /&gt;
&lt;br /&gt;
== 20220311 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220311/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220308 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220308/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes del dia anterior.&lt;br /&gt;
&lt;br /&gt;
* Seguim resolent l'examen present al [https://recull.binefa.cat/files/20220301/ recull del dia anterior]&lt;br /&gt;
&lt;br /&gt;
=== '''Separació d'arxius en Python''' ===&lt;br /&gt;
&lt;br /&gt;
'''crida01.py''':&lt;br /&gt;
 # crida01.py&lt;br /&gt;
 &lt;br /&gt;
 def nLaTevaEdat():&lt;br /&gt;
    return int(input(&amp;quot;La teva edat: &amp;quot;))&lt;br /&gt;
 &lt;br /&gt;
 '''if __name__ == &amp;quot;__main__&amp;quot;:'''&lt;br /&gt;
    print(&amp;quot;Dius tenir %d anys&amp;quot;%nLaTevaEdat())&lt;br /&gt;
&lt;br /&gt;
'''principal.py''':&lt;br /&gt;
 # principal.py&lt;br /&gt;
 '''import''' ''crida01''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''crida01''.nLaTevaEdat()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
'''principal02.py''':&lt;br /&gt;
 # principal02.py&lt;br /&gt;
 '''from''' crida01 '''import''' ''nLaTevaEdat''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''nLaTevaEdat''()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
'''principal03.py''':&lt;br /&gt;
 # principal03.py&lt;br /&gt;
 '''from''' crida01 '''import''' nLaTevaEdat '''as''' ''nIntroEdat''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''nIntroEdat''()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
== 20220304 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220304/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220303 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220303/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes del dia anterior.&lt;br /&gt;
&lt;br /&gt;
* Seguim a resolent l'examen present al recull d'avui&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220301 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220301/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220224 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220224/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220222 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220222/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220218 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220218/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220217 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220217/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Seguim solucionant l'examen ''20210426_exOrd_M03UF2''&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220215 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220215/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Comencem a solucionar l'examen ''20210426_exOrd_M03UF2''&lt;br /&gt;
&lt;br /&gt;
== 20220211 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220211/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220210 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220210/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Crides a sistema en Python''' ===&lt;br /&gt;
 # cridaSistema00.py&lt;br /&gt;
 import os&lt;br /&gt;
 os.system (&amp;quot;clear&amp;quot;)&lt;br /&gt;
 print(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.&amp;quot;)&lt;br /&gt;
 os.system(&amp;quot;./ra1-2&amp;quot;)&lt;br /&gt;
=== '''Crides a sistema en C''' ===&lt;br /&gt;
 // cridaSistema00.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt; // Pel system()&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    system(&amp;quot;clear&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.\n&amp;quot;);&lt;br /&gt;
    system(&amp;quot;python3 ra2-1.py&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220208 ==&lt;br /&gt;
Acabem els exercicis de l'examen anterior (RA1-6-1, RA1-6-2 i RA-1-7 -aquest darrer no és ''ex09.c'' sinó ''ex11.c''-).&lt;br /&gt;
&lt;br /&gt;
Si hi ha prou temps començarem a resoldre un altre examen.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220208/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220204 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220204/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Robot''' ===&lt;br /&gt;
Deseu a la carpeta ''libraries'' que penja de la carpeta ''Arduino'' (a Linux la carpeta ''Arduino'' penja de ''/home/'''user''''' i a Finestrots penja de la carpeta ''Els meus Documents'') les [https://recull.binefa.cat/files/arduino/robot/libraries/ biblioteques del robot]: '''RobotController.zip''' i '''PCF8574.zip'''.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/arduino/robot/codis/prova_boto.ino Prova del botó d'inici del robot]&lt;br /&gt;
&lt;br /&gt;
== 20220203 ==&lt;br /&gt;
Seguim resolent l'examen penjat al [https://recull.binefa.cat/files/20220203/ recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220203/s4a/cincSegons/ '''Ajuda per la pràctica 6''']&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220201 ==&lt;br /&gt;
Seguim resolent l'examen penjat al [https://recull.binefa.cat/files/20220201/ recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220128 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220128/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220127 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220127/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Arduino''' ===&lt;br /&gt;
[[Introducció a Arduino]]&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220125 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220125/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
Repàs d'apuntadors.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5p2.htm Explicació de l'intercanvi de dos valors '''per referència''']&lt;br /&gt;
&lt;br /&gt;
== 20220120 (Baixa professor) ==&lt;br /&gt;
Tasques a fer:&lt;br /&gt;
&lt;br /&gt;
Al [https://recull.binefa.cat/files/doc/examensPrevis/ recull d'exàmens previs] hi ha '''20190411_daw_m03uf1_ord.pdf''' i '''20190411_daw_m03uf2_ord.pdf''' (amb l'arxiu 20190411_daw_m03uf2_ord.zip amb material per a resoldre l'examen). '''Proveu de fer''' tots '''els exercicis que podeu resoldre''', tenint en compte el que hem explicat a classe.&lt;br /&gt;
&lt;br /&gt;
== 20220118 (Baixa professor) ==&lt;br /&gt;
Tasques a fer:&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5ex.htm Exercici 1]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6ex.htm Exercicis 9 i 1]&lt;br /&gt;
&lt;br /&gt;
Més informació: &lt;br /&gt;
&lt;br /&gt;
Introducció als apuntadors ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors])&lt;br /&gt;
&lt;br /&gt;
== 20220113 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220111/ recull] de fa dos dies els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''. També, al [https://recull.binefa.cat/files/20220113/ recull del dia d'avui], us he passat un exemple de conversió de llista de caràcters a llista de nombres enters.&lt;br /&gt;
&lt;br /&gt;
'''Pugeu els codis ''targetaCredit_02_05.py'' i ''cc_03.py'' a una subcarpeta anomenada ''llistes'' de la carpeta ''Python''''' de la vostra carpeta compartida amb mi. Feu-me arribar un correu electrònic quan els hàgiu pujat.&lt;br /&gt;
&lt;br /&gt;
== 20220111 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220111/ recull] d'avui els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''&lt;br /&gt;
&lt;br /&gt;
== 20211221 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211221/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació d'un codi de barres present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors]&lt;br /&gt;
&lt;br /&gt;
== 20211217 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211217/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC06_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Feu un programa, que us demani un número corresponent a un mes i us digui quin mes és.&lt;br /&gt;
&lt;br /&gt;
Us ha de dir també quants dies té (el mes de febrer es considera de 28 dies).&lt;br /&gt;
&lt;br /&gt;
Heu de filtrar que no sigui inferior a 1 ni superior a 12, cas en què contestarem &amp;quot;número de mes incorrecte&amp;quot; i ho haurà de tornar a preguntar.&lt;br /&gt;
&lt;br /&gt;
Exemple:&lt;br /&gt;
&lt;br /&gt;
Mes 1------&amp;gt; Correspon al mes de gener i té 31 dies.&lt;br /&gt;
&lt;br /&gt;
== 20211216 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211216/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
Tornem a repassar '''llistes i tuples''':&lt;br /&gt;
&lt;br /&gt;
[https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf Teoria de llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
* Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el [https://ca.wikipedia.org/wiki/Producte_escalar producte escalar]), 24, 25 i 26 del document [https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
Els codis tindran el nom ''llista14.py'', ''llista17.py'' fins a arribar a ''llista26.py'' (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en ''html'' a la carpeta compartida). Feu un document '''llistaPython.pdf''' a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada '''llistes''' dins de la subcarpeta '''Python''' a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació de les targetes de crèdit present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
== 20211210 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211210/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Seguim amb la implementació del dígit de verificació de les targetes de crèdit, fent servir vectors (''arrays'') d'enters, present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]. Al recull del codi d'avui hi ha '''targetaCredit_01_00.c''' amb el codi comentat a les parts clau.&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis de M2 i M3''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/DAW_2021-2022#20211111 classe de l'11 de novembre] hi havia aquests enunciats: &lt;br /&gt;
&lt;br /&gt;
Feu els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.c'', ''m2e6.c'', ''m3e1.c'', ''m3e3.c'' i ''m3e8.c''   (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.c'', ''m2e5_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.py'', ''m2e6.py'', ''m3e1.py'', ''m3e3.py'' i ''m3e8.py'' (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.py'', ''m2e5_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. Si feu servir el Jupyter Lab, no pujareu els arxius .py sinó l'arxiu ''.ipynb'' i l'exportació a ''html''. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis del M4''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/DAW_2021-2022#20211123 classe del 23 de novembre] hi havia aquest enunciats: &lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent *: .py , .c)&lt;br /&gt;
&lt;br /&gt;
Seguint la manera de pujar els arxius al M2 i M3, fareu les supcarpetes '''M03/exercicis/C/m4''' i '''M03/exercicis/Python/m4'''. Poseu-hi allà les vostres propostes de solució. A la part de C tindreu l'arxiu '''m4_c.pdf''' i a la de Python '''m4_py.pdf'''. A ambdós documents hi haurà les captures de codi més importants i les diverses execucions possibles que il·lustrin les diferents possibilitats dels programes que heu desenvolupat. A la part de C també hi haurà els codis amb extensió ''.c'' i a les de Python amb extensió ''.py'' si feu servir un editor com el VSCode o l'arxiu ''.ipynb'' i l'exportació a ''html'' en cas de fer servir Jupyter Lab. Cal afegir l'enunciat. '''En aquesta part no cal que feu servir Snap!'''.&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC05_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Realitzeu un programa que demani una lletra minúscula de l'abecedari i la transformi a majúscula , una majúscula a minúscula, qualsevol caràcter que no sigui una lletra avisarem dient NO ÉS UNA LLETRA i vagi ensenyant les lletres següents una a una en línies diferents, a intervals d'un segon, fins a arribar a la 'Z' on el programa pararà.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'a', ens mostrarà 'A',si la lletra és la 'A', ens mostrarà 'a' i totes les lletres línia a línia fins a la 'z' o la 'Z'.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'z' o 'Z' la transformarà i pararà immediatament.&lt;br /&gt;
&lt;br /&gt;
Verbigràcia:&lt;br /&gt;
&lt;br /&gt;
Introdueix una lletra de l'abecedari: x&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
Y&lt;br /&gt;
&lt;br /&gt;
Z&lt;br /&gt;
&lt;br /&gt;
== 20211209 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211209/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Python (llistes i tuples) ===&lt;br /&gt;
[https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf Teoria de llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
* Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el [https://ca.wikipedia.org/wiki/Producte_escalar producte escalar]), 24, 25 i 26 del document [https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
Els codis tindran el nom ''llista14.py'', ''llista17.py'' fins a arribar a ''llista26.py'' (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en ''html'' a la carpeta compartida). Feu un document '''llistaPython.pdf''' a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada '''llistes''' dins de la subcarpeta '''Python''' a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
=== C (vectors) ===&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació de les targetes de crèdit present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
== 20211203 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* Passar de majúscules a minúscules i a l'inrevès.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211203/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC04_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Realitzeu un programa que demani una lletra minúscula de l'abecedari i la transformi a majúscula, vagi ensenyant les lletres següents una a una en línies diferents, '''a intervals d'un segon''', fins a arribar a la 'Z' on el programa pararà.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'a', ens mostrarà 'A' i totes les lletres línia a línia fins a la 'Z'.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'z' la transformarà a majúscula i pararà immediatament.&lt;br /&gt;
&lt;br /&gt;
Verbigràcia:&lt;br /&gt;
&lt;br /&gt;
Introdueix una lletra de l'abecedari: x&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
Y&lt;br /&gt;
&lt;br /&gt;
Z&lt;br /&gt;
&lt;br /&gt;
== 20211202 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
* Concepte de vectors (''array''). Vector de nombres reals.&lt;br /&gt;
&lt;br /&gt;
* Exercici en C que pregunta el nombre de dies (màxim de 7) per a fer la mitjana de les temperatures del nombre de dies entrat (al recull hi ha els tres codis fet a classe).&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211202/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211130 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i '''m4e12.*''' dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211130/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211126 ==&lt;br /&gt;
Dubtes pendents.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/annex.htm La depuració]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211126/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC04_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
Feu un programa que faci la pregunta a sota indicada i tingui cinc possibles respostes i només una de correcta.&lt;br /&gt;
&lt;br /&gt;
 Quina és la velocitat de llum?, escriu una opció, de la 1 a la 5:&lt;br /&gt;
 &lt;br /&gt;
 1-La velocitat de la llum és 300.000 quilòmetres/segon.&lt;br /&gt;
 2-La velocitat de la llum és 343,2 metres/segons.&lt;br /&gt;
 3-La velocitat de la llum és de 300.000 quilòmetres/hora.&lt;br /&gt;
 4-Cap dels anteriors.&lt;br /&gt;
 5-Totes les anteriors són correctes.&lt;br /&gt;
 &lt;br /&gt;
Quan contesteu una resposta incorrecta,hem de contestar------&amp;gt; T'has equivocat... i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Si la persona s'ha equivocat més de tres cops,hem de contestar------&amp;gt; Hauries d'estudiar més... i acabem.&lt;br /&gt;
&lt;br /&gt;
Si ens posa un número inferior a 1 o superior a 5,hem de contestar-----&amp;gt; Opció no disposada, tria de la 1 a la 5 i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Recorda utilitzar '''while(1)''' o '''for(;;)''' i '''break''' per sortir.&lt;br /&gt;
&lt;br /&gt;
EAC04_nom_cognom_DAW1.c&lt;br /&gt;
&lt;br /&gt;
== 20211125 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211125/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat a C ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;time.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void vLlavorAleatorietat(){&lt;br /&gt;
    '''srand'''( (unsigned)time( NULL ) );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int nNumAleat(int nMin,int nMax){&lt;br /&gt;
    return nMin+ '''rand()'''% ((nMax-nMin)+1);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20211123 ==&lt;br /&gt;
* Dubtes del dia anterior i repàs de [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4te.htm la recursivitat].&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211123/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211119 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211119/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211118 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211118/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211116 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211116/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211112 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211112/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC03_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Es tracta de fer un programa que calculi la mitjana aritmètica de 8 notes aconseguides en programació.&lt;br /&gt;
&lt;br /&gt;
Demanarem primer el nom de l'alumne.&lt;br /&gt;
&lt;br /&gt;
Segon preguntarem el curs que fa.&lt;br /&gt;
&lt;br /&gt;
Tercer preguntarem les 8 notes obtingudes seguides d'un Enter.&lt;br /&gt;
&lt;br /&gt;
Quart calcularem la mitjana aritmètica.&lt;br /&gt;
&lt;br /&gt;
Cinquè i darrer contestarem:&lt;br /&gt;
&lt;br /&gt;
Bé &amp;lt;nom de l'alumne&amp;gt; de &amp;lt;curs que fa&amp;gt; la teva mitja aritmètica de les teves 8 notes és:_______&lt;br /&gt;
 &lt;br /&gt;
Realitzarem la captura i suma de les notes mitjançant un For.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC03_''nom''_''cognom''_DAW1.c''' i el document '''EAC03_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211111 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211111/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
== 20211109 ==&lt;br /&gt;
Seguim fent eles exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211109/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211105 ==&lt;br /&gt;
Les funcions a [https://snap.berkeley.edu/snap/snap.html Snap!] es diuen '''blocs'''. Baixeu-vos els codis ''blocsSnap_01.xml'' i ''blocsSnap_02.xml'' del recull de codis comentats avui, i analitzem llurs blocs.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211105/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
'''Seguim fent els exercicis''' del darrer dia:&lt;br /&gt;
&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC02_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 14822)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després ho tornarà a preguntar, fent servir un bucle '''while''', '''do-while''' o '''for''', fins que s'encerti. Després posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Per fi ho has aconseguit! Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC02_''nom''_''cognom''_DAW1.c''' i el document '''EAC02_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211104 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211104/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
'''#ifdef''', '''#ifndef''', '''#else''' i '''#endif'''&lt;br /&gt;
&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Com esperar ===&lt;br /&gt;
'''Des del sistema operatiu:'''&lt;br /&gt;
&lt;br /&gt;
En Linux:&lt;br /&gt;
 sleep ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
En Windows:&lt;br /&gt;
 timeout ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
Funcions d'espera de temps multiplataforma:&lt;br /&gt;
&lt;br /&gt;
'''En C:'''&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #define LINUX&lt;br /&gt;
 &lt;br /&gt;
 #ifdef LINUX&lt;br /&gt;
    #include &amp;lt;'''unistd.h'''&amp;gt;&lt;br /&gt;
 #else&lt;br /&gt;
    #include &amp;lt;'''Windows.h'''&amp;gt;&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int nS;&lt;br /&gt;
    char szOrdre[99];&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Nombre de segons a esperar: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;,&amp;amp;nS);&lt;br /&gt;
    '''sleep('''nS''')'''; // '''A Linux són segons i a Windows són milisegons'''&lt;br /&gt;
    printf(&amp;quot;S'ha acabat l'espera de %d segons\n&amp;quot;,nS);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''En Python:'''&lt;br /&gt;
 '''import time''' # Per a fer servir sleep()&lt;br /&gt;
 &lt;br /&gt;
 nS = int(input(&amp;quot;Nombre de segons a esperar: &amp;quot;))&lt;br /&gt;
 '''time.sleep('''nS''')'''&lt;br /&gt;
 print(&amp;quot;S'ha acabat l'espera de %d segons&amp;quot;%nS)&lt;br /&gt;
&lt;br /&gt;
== 20211102 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
'''Funcions'''&lt;br /&gt;
&lt;br /&gt;
== 20211029 ==&lt;br /&gt;
Lleis de Morgan:&lt;br /&gt;
 !(a&amp;amp;b) = !a | !b&lt;br /&gt;
 !(a|b) = !a &amp;amp; !b&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211029/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC01_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 12346)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC01_''nom''_''cognom''_DAW1.c''' i el document '''EAC01_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211028 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211028/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
'''switch''' i '''operador ternari'''.&lt;br /&gt;
&lt;br /&gt;
Exercicis de condicionals en C. ('''comentem ''cond06.c''''')&lt;br /&gt;
&lt;br /&gt;
''cond01.c'') Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.&lt;br /&gt;
&lt;br /&gt;
''cond02.c'') Escriviu un programa que llegeixi un número i us digui si és parell o senar.&lt;br /&gt;
&lt;br /&gt;
''cond03.c'') Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.&lt;br /&gt;
&lt;br /&gt;
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)&lt;br /&gt;
&lt;br /&gt;
''cond05.c'') Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)&lt;br /&gt;
&lt;br /&gt;
'''''cond06.c'') Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''cond01.c'', ''cond02.c'', ''cond03.c'', ''cond05.c'' i ''cond06.c'' (si hi pugeu versions diferents, les podeu anomenar ''cond02_00.c'', ''cond02_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat a Python ===&lt;br /&gt;
[https://docs.python.org/3/library/random.html Números aleatoris en Python]&lt;br /&gt;
 '''import random'''&lt;br /&gt;
 nN = '''random.randint(a, b)'''&lt;br /&gt;
Retorna un enter aleatori ''nN'', tal que ''a &amp;lt;= nN &amp;lt;= b''. Àlies de '''''randrange(a, b+1)'''''.&lt;br /&gt;
&lt;br /&gt;
== 20211026 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211026/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211022 ==&lt;br /&gt;
Més exercicis de condicionals en C.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
Estructures repetitives en C&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211022/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211021 ==&lt;br /&gt;
Actualització de l'estructura de carpetes a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]. Revisem el '''not''' (l'equivalent en C eś el signe d'admiració '''!''').&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
''cond01.c'') Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.&lt;br /&gt;
&lt;br /&gt;
''cond02.c'') Escriviu un programa que llegeixi un número i us digui si és parell o senar.&lt;br /&gt;
&lt;br /&gt;
''cond03.c'') Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.&lt;br /&gt;
&lt;br /&gt;
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)&lt;br /&gt;
&lt;br /&gt;
''cond05.c'') Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)&lt;br /&gt;
&lt;br /&gt;
''cond06.c'') Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''cond01.c'', ''cond02.c'', ''cond03.c'', ''cond05.py'' i ''cond06.py'' (si hi pugeu versions diferents, les podeu anomenar ''cond02_00.c'', ''cond02_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
* [[Exercicis de condicions en Python]]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Teniu dues opcions per a penjar el codi: &lt;br /&gt;
&lt;br /&gt;
** 1) Els noms dels arxius seran ''cond01.py'', ''cond02.py'', ''cond03.py'', ''cond04.py'', ''cond05.py'' i ''cond06.py'' (si hi pugeu versions diferents, les podeu anomenar ''cond04_00.py'', ''cond04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
** 2) Pugeu els arxius ''condicionals_py.ipynb'' (arxiu del jupyter-lab) i ''condicionals_py.htm'' (arxiu exportat del jupyter-lab). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211021/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211019 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211019/ Codis fets avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211015 ==&lt;br /&gt;
Operadors relacionals: [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p6.htm m2p06.c]&lt;br /&gt;
&lt;br /&gt;
Comencem per la pràctica [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p5.htm m2p05.c]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Exercici 4 del mòdul 2 del d97]&lt;br /&gt;
&lt;br /&gt;
== 20211014 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211014/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en C''' es fa servir la funció '''pow()''' (que li cal l'arxiu de capçalera ''math.h'' i, per tant, requereix afegir a la compilació el paràmetre '''-lm'''):&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow('''lfBase''','''lfExponent''')'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en Python''' es fa servir l'operador '''**''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; lfBase'''**'''lfExponent&lt;br /&gt;
&lt;br /&gt;
En '''Python''':&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.py'', ''m1e4.py'', ''m1e5.py'', ''m1e6.py'' i ''m1e7.py'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.py'', ''m1e7_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7_py.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
En '''C''':&lt;br /&gt;
&lt;br /&gt;
[[Introducció a C - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20211008 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211008/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Compilació amb l'arxiu de capçalera ''math.h'':&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una potència en '''C''' es fa servir la funció '''pow()''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow(lfBase,lfExponent)'''&lt;br /&gt;
&lt;br /&gt;
En C:&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211007 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211007/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:&lt;br /&gt;
 jupyter-lab&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html Accés directe a 20211007_py.html] i [https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py_02.html accés directe a 20211007_py_02.html]&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
* Implementació en C dels dos darrers exercicis d'[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html aquest enllaç]&lt;br /&gt;
&lt;br /&gt;
* Implementació en C de l'exercici 5 de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis de pseudocodi]&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211005 ==&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
Codis '''00_py_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/python/doc/00_py_intro.ipynb 00_py_intro.ipynb]([https://www.binefa.cat/training/codes/python/doc/00_py_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
Codis '''00_C_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/C/doc/00_C_intro.ipynb 00_C_intro.ipynb]([https://www.binefa.cat/training/codes/C/doc/00_C_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguim amb la [[Introducció bàsica a Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211001 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20211001]&lt;br /&gt;
&lt;br /&gt;
== 20210930 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210930]&lt;br /&gt;
&lt;br /&gt;
== 20210928 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210928]&lt;br /&gt;
&lt;br /&gt;
== 20210923 ==&lt;br /&gt;
[https://meet.google.com/bsu-fmpg-dve Adreça de la teleconferència per al dia d'avui]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210923/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20210921 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210921/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r de DAW] usuari: daw | contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''daw'' / ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=4940</id>
		<title>DAW 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=4940"/>
		<updated>2022-06-04T15:44:33Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Exercicis d'estructures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2122-DAW-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2122-DAW-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r de DAW. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
Estructura de les carpetes:&lt;br /&gt;
 M01 ''(depenent del subgrup)''&lt;br /&gt;
 M03&lt;br /&gt;
   examens&lt;br /&gt;
   exercicis&lt;br /&gt;
     C&lt;br /&gt;
     Python&lt;br /&gt;
   perDies&lt;br /&gt;
 M14&lt;br /&gt;
   Arduino&lt;br /&gt;
   Robot&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1FhkkzZmQA3-mpiuKGv7Onhtcr8sdLyFAcTg3GBwhLgw/ Llista de 1r de DAW]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&amp;lt;!-- https://docs.python.org/3/library/csv.html --&amp;gt;&lt;br /&gt;
== 20220524 '''Examen M03UF3''' ==&lt;br /&gt;
[http://formacio.things.cat/20220524_m03uf3/20220524exM03Uf3.pdf Examen d'avaluació ordinària del M03UF3 en format pdf]&lt;br /&gt;
&lt;br /&gt;
[http://formacio.things.cat/20220524_m03uf3/20220524exM03Uf3_material.zip Material per a l'examen d'avaluació ordinària del M03UF3]&lt;br /&gt;
&lt;br /&gt;
== 20220524 ==&lt;br /&gt;
'''Darrer classe abans de l'examen'''&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220524/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220520 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220520/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220519 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220519/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220517 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220517/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220512 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220512/ Recull d'avui]&lt;br /&gt;
== 20220513 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220513/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220512 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220512/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
== 20220510 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220510/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220506 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220506/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
== 20220505 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220505/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* [http://ceipturodeguiera.xtec.cat/formacio/dvd2006/materials/td97/d97m7/d97m7te.htm Gestió dinàmica de la memòria: ''malloc()'' i ''calloc()'']&lt;br /&gt;
&lt;br /&gt;
* Diccionaris i llistes de diccionaris a Python&lt;br /&gt;
&lt;br /&gt;
* Lectura i escriptura d'arxius ''csv'' en Python&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV. Quan s'executa haurà de llegir totes les dades dins d''''agenda.csv''' i carregar-les a un vector d'estructures. Apareixerà un menú amb aquestes opcions: 1) Lectura de tota l'agenda, 2) Introducció de nou registre a RAM (introducció a estructura, però no a arxiu), 3) Escriptura a arxiu, 4) Modificació de registre per índex 5) Eliminació d'un registre per índex&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''Python''': Mateix enunciat que el fet prèviament en C. Feu ús de la gestió d'arxius ''csv'' en Python.&lt;br /&gt;
&lt;br /&gt;
== 20220503 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220503/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Anàlisi d'''exFitxers03.c'' i ''exFitxers04.c'' del recull d'avui, desenvolupats el darrer dia.&lt;br /&gt;
&lt;br /&gt;
* [http://ceipturodeguiera.xtec.cat/formacio/dvd2006/materials/td97/d97m7/d97m7te.htm Gestió dinàmica de la memòria: ''malloc()'' i ''calloc()'']&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV. Quan s'executa haurà de llegir totes les dades dins d''''agenda.csv''' i carregar-les a un vector d'estructures. Apareixerà un menú amb aquestes opcions: 1) Lectura de tota l'agenda, 2) Introducció de nou registre a RAM (introducció a estructura, però no a arxiu), 3) Escriptura a arxiu, 4) Modificació de registre per índex 5) Eliminació d'un registre per índex&lt;br /&gt;
&lt;br /&gt;
== 20220429 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220429/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220428 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220428/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220426 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220426/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Escriptura d'arxius en Python&lt;br /&gt;
[https://www.w3schools.com/python/python_file_write.asp Diferència entre afegir i escriure arxius en Python]&lt;br /&gt;
&lt;br /&gt;
[https://www.pythontutorial.net/python-basics/python-write-text-file/ Un altre exemple d'escriptura d'arxius en Python]&lt;br /&gt;
&lt;br /&gt;
* Exercici en '''C''': Feu un programa que us demani nom, cognom i telèfon. També ha d'haver l'índex de l'ordre d'introducció de les dades. El nom de l'arxiu serà '''agenda.csv''' i respectarà el format dels arxius CSV.&lt;br /&gt;
&lt;br /&gt;
== 20220421 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220421/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Exercici del dia anterior:&lt;br /&gt;
&lt;br /&gt;
A partir de ''m8p03.c'', present al [https://recull.binefa.cat/files/20220419/ recull del dia anterior], desenvolupeu '''m8p03_b.c''' que fa servir una estructura per a contenir les dades (''codi'', ''nom'', ''cognom'' i ''nota'').&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Diferència de tracatament de cadenes en C i en Python&lt;br /&gt;
&lt;br /&gt;
* Lectura d'arxius en Python&lt;br /&gt;
&lt;br /&gt;
== 20220419 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220419/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
Exercici:&lt;br /&gt;
&lt;br /&gt;
A partir de ''m8p03.c'', present al [https://recull.binefa.cat/files/20220419/ recull d'avui], desenvolupeu '''m8p03_b.c''' que fa servir una estructura per a contenir les dades (''codi'', ''nom'', ''cognom'' i ''nota'').&lt;br /&gt;
&lt;br /&gt;
== 20220408 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220408/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220407 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220407/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/ Estructures, unions i gestió dinàmica de la memòria]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m8/index.htm Fitxers]&lt;br /&gt;
&lt;br /&gt;
== 20220405 - '''M03UF3''' ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220405/ Recull del dia d'avui]&lt;br /&gt;
&lt;br /&gt;
* Comentaris dels exàmens del M03UF1 i M03UF2&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/d97m7p9.htm Arguments de la funció ''main()'']&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m7/ Estructures, unions i gestió dinàmica de la memòria]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m8/index.htm Fitxers]&lt;br /&gt;
&lt;br /&gt;
=== Exercicis d'estructures ===&lt;br /&gt;
* Feu el programa '''protoAgenda00.c'''. Ha de demanar quants elements s'han d'assignar a una agenda (màxim de 100. Per tant, '''N_ELEMENTS''' valdrà 100). Ha de preguntar tres camps: ''nom'', ''edat'' i ''codi postal''. A l'acabar d'introduir tots els elements demanats els mostrarà per pantalla&lt;br /&gt;
&lt;br /&gt;
== 20220401 '''Exàmens M03UF1 i M03Uf2''' ==&lt;br /&gt;
=== Examen M03UF1 ===&lt;br /&gt;
'''Temps d'examen''': entre '''16.50 i 17.40''' (entre 17.40 i 17.45 heu de trametre l'examen per correu. A les 17.45 no ha de quedar ningú a classe)&lt;br /&gt;
&lt;br /&gt;
Feu captures de pantalla per a documentar l'examen. Heu de capturar els trossos clau i comentar-los. A l’acabar-ho, trameteu-ho als '''dos''' professors, '''adjuntant un arxiu en pdf''' demostrant els punts claus de les respostes i un '''arxiu .zip''' (o .tar.gz, No s’accepten .7z o .rar) amb els '''vostres codis''' i '''sense els arxius executables'''. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser '''asix_Cognom1_Cognom2_Nom_m03uf1_ord''' per a ASIX i '''daw_Cognom1_Cognom2_Nom_m03uf1_ord''' per a DAW.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220401_exM03Uf1Uf2/20220401_m03uf1_ord/ Examen d'ordinària del M03Uf1]&lt;br /&gt;
&lt;br /&gt;
=== Examen M03UF2 ===&lt;br /&gt;
'''Temps d'examen''': entre '''18.15 i 19.05''' (entre 19.05 i 19.10 heu de trametre l'examen per correu. A les 19.10 començarà la següent classe)&lt;br /&gt;
&lt;br /&gt;
Feu captures de pantalla per a documentar l'examen. A l’acabar-ho, trameteu-ho al correu electrònic dels '''dos''' professors, '''adjuntant un arxiu en pdf''' demostrant els punts claus de les respostes i un '''arxiu .zip''' (o .tar.gz, No s’accepten .7z o .rar) amb els '''vostres codis''' i '''sense els arxius executables'''. Aquest examen té més de 10 punts (''14 possibles''), '''escolliu les preguntes que considereu més adients'''. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser '''asix_Cognom1_Cognom2_Nom_m03uf2_ord''' per a ASIX i '''daw_Cognom1_Cognom2_Nom_m03uf2_ord''' per a DAW.&lt;br /&gt;
&lt;br /&gt;
* Depuració en C (''2 punts'')&lt;br /&gt;
&lt;br /&gt;
* Separació d'arxius (''3 punts''. 1,5 en C i 1,5 en Python)&lt;br /&gt;
&lt;br /&gt;
* Recursivitat (''3 punts''. 1,5 en C i 1,5 en Python)&lt;br /&gt;
&lt;br /&gt;
* Vectors, cadenes i llistes (''6 punts''. 3,5 en C i 2,5 en Python)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220401_exM03Uf1Uf2/20220401_m03uf2_ord/ Examen d'ordinària del M03Uf2]&lt;br /&gt;
&lt;br /&gt;
== 20220331 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220331/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== '''Arguments''' ===&lt;br /&gt;
* En Python:&lt;br /&gt;
 # arguments_00.py&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 nArg = len(sys.argv)&lt;br /&gt;
 print(&amp;quot;Heu escrit %d arguments&amp;quot;%nArg)&lt;br /&gt;
 i = 0&lt;br /&gt;
 for arg in sys.argv:&lt;br /&gt;
    print(&amp;quot;argv[%d]: %s&amp;quot;%(i,arg))&lt;br /&gt;
    i += 1&lt;br /&gt;
* En C:&lt;br /&gt;
 // arguments_00.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 int main(int argc, char* argv[]){&lt;br /&gt;
    int i;&lt;br /&gt;
 &lt;br /&gt;
    printf(&amp;quot;Heu escrit %d arguments.\n&amp;quot;,argc);&lt;br /&gt;
    for(i = 0; i &amp;lt; argc; i++){&lt;br /&gt;
        printf(&amp;quot;argv[%d]: %s\n&amp;quot;,i,argv[i]);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220326 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220326/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
== 20220325 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220325/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220324 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220324/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Paraula clau '''yield''' a Python. '''Funcions generadores''' ===&lt;br /&gt;
* Primer exemple. A cada crida retorna un dels '''yield'''. Com a màxim es pot cridar tres cops a aquest exemple:&lt;br /&gt;
 def generator():&lt;br /&gt;
    yield &amp;quot;Benvinguts&amp;quot;&lt;br /&gt;
    yield &amp;quot; a l'&amp;quot;&lt;br /&gt;
    yield &amp;quot;Escola del Clot&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 gen_object = generator()&lt;br /&gt;
 print(type(gen_object)) # type(): Indica el tipus d'objecte&lt;br /&gt;
 for i in gen_object:&lt;br /&gt;
    print(i)&lt;br /&gt;
&lt;br /&gt;
* Segon exemple. Nombres senars amb '''yield'''&lt;br /&gt;
 def filtra_senars(nombres):&lt;br /&gt;
    for numero in range(nombres):&lt;br /&gt;
        if numero%2:&lt;br /&gt;
            yield numero&lt;br /&gt;
 &lt;br /&gt;
 numeros_senars = filtra_senars(25)&lt;br /&gt;
 print(list(numeros_senars))&lt;br /&gt;
&lt;br /&gt;
* Tercer exemple. Ús de '''next'''&lt;br /&gt;
 def filtra_senars(nombres):&lt;br /&gt;
    for numero in range(nombres):&lt;br /&gt;
        if numero%2:&lt;br /&gt;
            yield numero&lt;br /&gt;
 &lt;br /&gt;
 numeros_senars = filtra_senars(8)&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
 print(next(numeros_senars))&lt;br /&gt;
&lt;br /&gt;
* Quart exemple:&lt;br /&gt;
 def alCub(num):&lt;br /&gt;
    return num*num*num&lt;br /&gt;
 &lt;br /&gt;
 def obteCubs(ventall):&lt;br /&gt;
    for i in range(ventall):&lt;br /&gt;
        yield alCub(i)&lt;br /&gt;
 &lt;br /&gt;
 objecteCubs = obteCubs(5)&lt;br /&gt;
 print(list(objecteCubs))&lt;br /&gt;
&lt;br /&gt;
* Cinquè exemple:&lt;br /&gt;
 def ''ventall_caracters''(c1,c2):&lt;br /&gt;
    for c in range('''ord'''(c1),'''ord'''(c2)+1):&lt;br /&gt;
        yield '''chr'''(c)&lt;br /&gt;
 &lt;br /&gt;
 for c in ''ventall_caracters''('c','g'):&lt;br /&gt;
    print(c)&lt;br /&gt;
&lt;br /&gt;
* Sisè exemple:&lt;br /&gt;
 print(ord('L'))&lt;br /&gt;
 print(chr(77))&lt;br /&gt;
 x = 'A'&lt;br /&gt;
 y = 97&lt;br /&gt;
 print(&amp;quot;%s és %d a la taula ASCII&amp;quot;%(x,ord(x)))&lt;br /&gt;
 print(&amp;quot;%s és %d a la taula ASCII&amp;quot;%(chr(y),y))&lt;br /&gt;
 nom = ['J','o','a','n']&lt;br /&gt;
 cognom = &amp;quot;Sanahuja&amp;quot;&lt;br /&gt;
 print(&amp;quot;Nom: &amp;quot;,end = &amp;quot;&amp;quot;)&lt;br /&gt;
 for n in nom:&lt;br /&gt;
    print(&amp;quot;%s&amp;quot;%n,end=&amp;quot; &amp;quot;)&lt;br /&gt;
 print()&lt;br /&gt;
 print(&amp;quot;Cognom: &amp;quot;,end = '')&lt;br /&gt;
 for c in cognom:&lt;br /&gt;
    print(&amp;quot;%s&amp;quot;%c,end=' ')&lt;br /&gt;
 print()&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220322 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220322/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Un cop s'ha entès la implementació, en C i en Python, del mètode d'ordenació per selecció, feu la '''implementació, en C i en Python, del mètode d'ordenació de la bombolla'''.&lt;br /&gt;
&lt;br /&gt;
== 20220318 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220318/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220317 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220317/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Un cop s'ha entès la implementació, en C i en Python, del mètode d'ordenació per selecció, feu la '''implementació, en C i en Python, del mètode d'ordenació de la bombolla'''.&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220315 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220315/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== '''Mètodes d'ordenació''' ===&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3a2.htm Alguns '''mètodes d'Ordenació''']. Entenem el mètode de la '''bombolla''' i el mètode de '''selecció''' (avui no analitzarem el mètode d'ordenació recursiva '''quicksort''') i dissenyem una implementació alternativa en C i en Python.&lt;br /&gt;
&lt;br /&gt;
* Per saber-ne més: [https://www.studocu.com/ca-es/document/universitat-oberta-de-catalunya/practicas-de-programacion/metodes-dordenacio-cat-tema-12/8211052 Documentació extra sobre mètodes d'ordenació. Fet per en Josep Jorba Jorba de la UOC].&lt;br /&gt;
&lt;br /&gt;
== 20220311 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220311/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220308 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220308/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes del dia anterior.&lt;br /&gt;
&lt;br /&gt;
* Seguim resolent l'examen present al [https://recull.binefa.cat/files/20220301/ recull del dia anterior]&lt;br /&gt;
&lt;br /&gt;
=== '''Separació d'arxius en Python''' ===&lt;br /&gt;
&lt;br /&gt;
'''crida01.py''':&lt;br /&gt;
 # crida01.py&lt;br /&gt;
 &lt;br /&gt;
 def nLaTevaEdat():&lt;br /&gt;
    return int(input(&amp;quot;La teva edat: &amp;quot;))&lt;br /&gt;
 &lt;br /&gt;
 '''if __name__ == &amp;quot;__main__&amp;quot;:'''&lt;br /&gt;
    print(&amp;quot;Dius tenir %d anys&amp;quot;%nLaTevaEdat())&lt;br /&gt;
&lt;br /&gt;
'''principal.py''':&lt;br /&gt;
 # principal.py&lt;br /&gt;
 '''import''' ''crida01''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''crida01''.nLaTevaEdat()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
'''principal02.py''':&lt;br /&gt;
 # principal02.py&lt;br /&gt;
 '''from''' crida01 '''import''' ''nLaTevaEdat''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''nLaTevaEdat''()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
'''principal03.py''':&lt;br /&gt;
 # principal03.py&lt;br /&gt;
 '''from''' crida01 '''import''' nLaTevaEdat '''as''' ''nIntroEdat''&lt;br /&gt;
 &lt;br /&gt;
 nEdat = ''nIntroEdat''()&lt;br /&gt;
 print(&amp;quot;Heu dit que teniu %d anys&amp;quot;%nEdat)&lt;br /&gt;
&lt;br /&gt;
== 20220304 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220304/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220303 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220303/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes del dia anterior.&lt;br /&gt;
&lt;br /&gt;
* Seguim a resolent l'examen present al recull d'avui&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220301 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220301/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220224 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220224/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220222 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220222/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220218 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220218/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
Seguim amb les [[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220217 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220217/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Seguim solucionant l'examen ''20210426_exOrd_M03UF2''&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220215 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220215/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes&lt;br /&gt;
&lt;br /&gt;
* Comencem a solucionar l'examen ''20210426_exOrd_M03UF2''&lt;br /&gt;
&lt;br /&gt;
== 20220211 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220211/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220210 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220210/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Crides a sistema en Python''' ===&lt;br /&gt;
 # cridaSistema00.py&lt;br /&gt;
 import os&lt;br /&gt;
 os.system (&amp;quot;clear&amp;quot;)&lt;br /&gt;
 print(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.&amp;quot;)&lt;br /&gt;
 os.system(&amp;quot;./ra1-2&amp;quot;)&lt;br /&gt;
=== '''Crides a sistema en C''' ===&lt;br /&gt;
 // cridaSistema00.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt; // Pel system()&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    system(&amp;quot;clear&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.\n&amp;quot;);&lt;br /&gt;
    system(&amp;quot;python3 ra2-1.py&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220208 ==&lt;br /&gt;
Acabem els exercicis de l'examen anterior (RA1-6-1, RA1-6-2 i RA-1-7 -aquest darrer no és ''ex09.c'' sinó ''ex11.c''-).&lt;br /&gt;
&lt;br /&gt;
Si hi ha prou temps començarem a resoldre un altre examen.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220208/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220204 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220204/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Robot''' ===&lt;br /&gt;
Deseu a la carpeta ''libraries'' que penja de la carpeta ''Arduino'' (a Linux la carpeta ''Arduino'' penja de ''/home/'''user''''' i a Finestrots penja de la carpeta ''Els meus Documents'') les [https://recull.binefa.cat/files/arduino/robot/libraries/ biblioteques del robot]: '''RobotController.zip''' i '''PCF8574.zip'''.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/arduino/robot/codis/prova_boto.ino Prova del botó d'inici del robot]&lt;br /&gt;
&lt;br /&gt;
== 20220203 ==&lt;br /&gt;
Seguim resolent l'examen penjat al [https://recull.binefa.cat/files/20220203/ recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20220203/s4a/cincSegons/ '''Ajuda per la pràctica 6''']&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220201 ==&lt;br /&gt;
Seguim resolent l'examen penjat al [https://recull.binefa.cat/files/20220201/ recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220128 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220128/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220127 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220127/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== '''Arduino''' ===&lt;br /&gt;
[[Introducció a Arduino]]&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220125 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220125/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
Repàs d'apuntadors.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5p2.htm Explicació de l'intercanvi de dos valors '''per referència''']&lt;br /&gt;
&lt;br /&gt;
== 20220120 (Baixa professor) ==&lt;br /&gt;
Tasques a fer:&lt;br /&gt;
&lt;br /&gt;
Al [https://recull.binefa.cat/files/doc/examensPrevis/ recull d'exàmens previs] hi ha '''20190411_daw_m03uf1_ord.pdf''' i '''20190411_daw_m03uf2_ord.pdf''' (amb l'arxiu 20190411_daw_m03uf2_ord.zip amb material per a resoldre l'examen). '''Proveu de fer''' tots '''els exercicis que podeu resoldre''', tenint en compte el que hem explicat a classe.&lt;br /&gt;
&lt;br /&gt;
== 20220118 (Baixa professor) ==&lt;br /&gt;
Tasques a fer:&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5ex.htm Exercici 1]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6ex.htm Exercicis 9 i 1]&lt;br /&gt;
&lt;br /&gt;
Més informació: &lt;br /&gt;
&lt;br /&gt;
Introducció als apuntadors ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors])&lt;br /&gt;
&lt;br /&gt;
== 20220113 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220111/ recull] de fa dos dies els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''. També, al [https://recull.binefa.cat/files/20220113/ recull del dia d'avui], us he passat un exemple de conversió de llista de caràcters a llista de nombres enters.&lt;br /&gt;
&lt;br /&gt;
'''Pugeu els codis ''targetaCredit_02_05.py'' i ''cc_03.py'' a una subcarpeta anomenada ''llistes'' de la carpeta ''Python''''' de la vostra carpeta compartida amb mi. Feu-me arribar un correu electrònic quan els hàgiu pujat.&lt;br /&gt;
&lt;br /&gt;
== 20220111 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220111/ recull] d'avui els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''&lt;br /&gt;
&lt;br /&gt;
== 20211221 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211221/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació d'un codi de barres present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors]&lt;br /&gt;
&lt;br /&gt;
== 20211217 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211217/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC06_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Feu un programa, que us demani un número corresponent a un mes i us digui quin mes és.&lt;br /&gt;
&lt;br /&gt;
Us ha de dir també quants dies té (el mes de febrer es considera de 28 dies).&lt;br /&gt;
&lt;br /&gt;
Heu de filtrar que no sigui inferior a 1 ni superior a 12, cas en què contestarem &amp;quot;número de mes incorrecte&amp;quot; i ho haurà de tornar a preguntar.&lt;br /&gt;
&lt;br /&gt;
Exemple:&lt;br /&gt;
&lt;br /&gt;
Mes 1------&amp;gt; Correspon al mes de gener i té 31 dies.&lt;br /&gt;
&lt;br /&gt;
== 20211216 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211216/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
Tornem a repassar '''llistes i tuples''':&lt;br /&gt;
&lt;br /&gt;
[https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf Teoria de llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
* Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el [https://ca.wikipedia.org/wiki/Producte_escalar producte escalar]), 24, 25 i 26 del document [https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
Els codis tindran el nom ''llista14.py'', ''llista17.py'' fins a arribar a ''llista26.py'' (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en ''html'' a la carpeta compartida). Feu un document '''llistaPython.pdf''' a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada '''llistes''' dins de la subcarpeta '''Python''' a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació de les targetes de crèdit present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
== 20211210 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211210/ Recull de codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Seguim amb la implementació del dígit de verificació de les targetes de crèdit, fent servir vectors (''arrays'') d'enters, present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]. Al recull del codi d'avui hi ha '''targetaCredit_01_00.c''' amb el codi comentat a les parts clau.&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis de M2 i M3''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/DAW_2021-2022#20211111 classe de l'11 de novembre] hi havia aquests enunciats: &lt;br /&gt;
&lt;br /&gt;
Feu els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.c'', ''m2e6.c'', ''m3e1.c'', ''m3e3.c'' i ''m3e8.c''   (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.c'', ''m2e5_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.py'', ''m2e6.py'', ''m3e1.py'', ''m3e3.py'' i ''m3e8.py'' (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.py'', ''m2e5_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. Si feu servir el Jupyter Lab, no pujareu els arxius .py sinó l'arxiu ''.ipynb'' i l'exportació a ''html''. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis del M4''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/DAW_2021-2022#20211123 classe del 23 de novembre] hi havia aquest enunciats: &lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent *: .py , .c)&lt;br /&gt;
&lt;br /&gt;
Seguint la manera de pujar els arxius al M2 i M3, fareu les supcarpetes '''M03/exercicis/C/m4''' i '''M03/exercicis/Python/m4'''. Poseu-hi allà les vostres propostes de solució. A la part de C tindreu l'arxiu '''m4_c.pdf''' i a la de Python '''m4_py.pdf'''. A ambdós documents hi haurà les captures de codi més importants i les diverses execucions possibles que il·lustrin les diferents possibilitats dels programes que heu desenvolupat. A la part de C també hi haurà els codis amb extensió ''.c'' i a les de Python amb extensió ''.py'' si feu servir un editor com el VSCode o l'arxiu ''.ipynb'' i l'exportació a ''html'' en cas de fer servir Jupyter Lab. Cal afegir l'enunciat. '''En aquesta part no cal que feu servir Snap!'''.&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC05_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Realitzeu un programa que demani una lletra minúscula de l'abecedari i la transformi a majúscula , una majúscula a minúscula, qualsevol caràcter que no sigui una lletra avisarem dient NO ÉS UNA LLETRA i vagi ensenyant les lletres següents una a una en línies diferents, a intervals d'un segon, fins a arribar a la 'Z' on el programa pararà.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'a', ens mostrarà 'A',si la lletra és la 'A', ens mostrarà 'a' i totes les lletres línia a línia fins a la 'z' o la 'Z'.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'z' o 'Z' la transformarà i pararà immediatament.&lt;br /&gt;
&lt;br /&gt;
Verbigràcia:&lt;br /&gt;
&lt;br /&gt;
Introdueix una lletra de l'abecedari: x&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
Y&lt;br /&gt;
&lt;br /&gt;
Z&lt;br /&gt;
&lt;br /&gt;
== 20211209 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211209/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Python (llistes i tuples) ===&lt;br /&gt;
[https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf Teoria de llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
* Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el [https://ca.wikipedia.org/wiki/Producte_escalar producte escalar]), 24, 25 i 26 del document [https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
Els codis tindran el nom ''llista14.py'', ''llista17.py'' fins a arribar a ''llista26.py'' (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en ''html'' a la carpeta compartida). Feu un document '''llistaPython.pdf''' a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada '''llistes''' dins de la subcarpeta '''Python''' a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
=== C (vectors) ===&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació de les targetes de crèdit present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
== 20211203 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* Passar de majúscules a minúscules i a l'inrevès.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211203/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC04_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Realitzeu un programa que demani una lletra minúscula de l'abecedari i la transformi a majúscula, vagi ensenyant les lletres següents una a una en línies diferents, '''a intervals d'un segon''', fins a arribar a la 'Z' on el programa pararà.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'a', ens mostrarà 'A' i totes les lletres línia a línia fins a la 'Z'.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'z' la transformarà a majúscula i pararà immediatament.&lt;br /&gt;
&lt;br /&gt;
Verbigràcia:&lt;br /&gt;
&lt;br /&gt;
Introdueix una lletra de l'abecedari: x&lt;br /&gt;
&lt;br /&gt;
X&lt;br /&gt;
&lt;br /&gt;
Y&lt;br /&gt;
&lt;br /&gt;
Z&lt;br /&gt;
&lt;br /&gt;
== 20211202 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
* Concepte de vectors (''array''). Vector de nombres reals.&lt;br /&gt;
&lt;br /&gt;
* Exercici en C que pregunta el nombre de dies (màxim de 7) per a fer la mitjana de les temperatures del nombre de dies entrat (al recull hi ha els tres codis fet a classe).&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211202/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211130 ==&lt;br /&gt;
* Dubtes pendents i repàs.&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i '''m4e12.*''' dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211130/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211126 ==&lt;br /&gt;
Dubtes pendents.&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/annex.htm La depuració]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211126/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC04_''nom''_''cognom''_DAW1.c''' ===&lt;br /&gt;
Feu un programa que faci la pregunta a sota indicada i tingui cinc possibles respostes i només una de correcta.&lt;br /&gt;
&lt;br /&gt;
 Quina és la velocitat de llum?, escriu una opció, de la 1 a la 5:&lt;br /&gt;
 &lt;br /&gt;
 1-La velocitat de la llum és 300.000 quilòmetres/segon.&lt;br /&gt;
 2-La velocitat de la llum és 343,2 metres/segons.&lt;br /&gt;
 3-La velocitat de la llum és de 300.000 quilòmetres/hora.&lt;br /&gt;
 4-Cap dels anteriors.&lt;br /&gt;
 5-Totes les anteriors són correctes.&lt;br /&gt;
 &lt;br /&gt;
Quan contesteu una resposta incorrecta,hem de contestar------&amp;gt; T'has equivocat... i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Si la persona s'ha equivocat més de tres cops,hem de contestar------&amp;gt; Hauries d'estudiar més... i acabem.&lt;br /&gt;
&lt;br /&gt;
Si ens posa un número inferior a 1 o superior a 5,hem de contestar-----&amp;gt; Opció no disposada, tria de la 1 a la 5 i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Recorda utilitzar '''while(1)''' o '''for(;;)''' i '''break''' per sortir.&lt;br /&gt;
&lt;br /&gt;
EAC04_nom_cognom_DAW1.c&lt;br /&gt;
&lt;br /&gt;
== 20211125 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211125/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat a C ===&lt;br /&gt;
&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;time.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void vLlavorAleatorietat(){&lt;br /&gt;
    '''srand'''( (unsigned)time( NULL ) );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int nNumAleat(int nMin,int nMax){&lt;br /&gt;
    return nMin+ '''rand()'''% ((nMax-nMin)+1);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20211123 ==&lt;br /&gt;
* Dubtes del dia anterior i repàs de [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4te.htm la recursivitat].&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap! i .py i .c)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211123/ Codis comentats avui] usuari: daw / contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
== 20211119 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211119/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211118 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211118/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211116 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211116/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211112 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211112/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC03_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Es tracta de fer un programa que calculi la mitjana aritmètica de 8 notes aconseguides en programació.&lt;br /&gt;
&lt;br /&gt;
Demanarem primer el nom de l'alumne.&lt;br /&gt;
&lt;br /&gt;
Segon preguntarem el curs que fa.&lt;br /&gt;
&lt;br /&gt;
Tercer preguntarem les 8 notes obtingudes seguides d'un Enter.&lt;br /&gt;
&lt;br /&gt;
Quart calcularem la mitjana aritmètica.&lt;br /&gt;
&lt;br /&gt;
Cinquè i darrer contestarem:&lt;br /&gt;
&lt;br /&gt;
Bé &amp;lt;nom de l'alumne&amp;gt; de &amp;lt;curs que fa&amp;gt; la teva mitja aritmètica de les teves 8 notes és:_______&lt;br /&gt;
 &lt;br /&gt;
Realitzarem la captura i suma de les notes mitjançant un For.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC03_''nom''_''cognom''_DAW1.c''' i el document '''EAC03_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211111 ==&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211111/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
== 20211109 ==&lt;br /&gt;
Seguim fent eles exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211109/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211105 ==&lt;br /&gt;
Les funcions a [https://snap.berkeley.edu/snap/snap.html Snap!] es diuen '''blocs'''. Baixeu-vos els codis ''blocsSnap_01.xml'' i ''blocsSnap_02.xml'' del recull de codis comentats avui, i analitzem llurs blocs.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211105/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
'''Seguim fent els exercicis''' del darrer dia:&lt;br /&gt;
&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC02_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 14822)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després ho tornarà a preguntar, fent servir un bucle '''while''', '''do-while''' o '''for''', fins que s'encerti. Després posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Per fi ho has aconseguit! Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC02_''nom''_''cognom''_DAW1.c''' i el document '''EAC02_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211104 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211104/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
'''#ifdef''', '''#ifndef''', '''#else''' i '''#endif'''&lt;br /&gt;
&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Com esperar ===&lt;br /&gt;
'''Des del sistema operatiu:'''&lt;br /&gt;
&lt;br /&gt;
En Linux:&lt;br /&gt;
 sleep ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
En Windows:&lt;br /&gt;
 timeout ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
Funcions d'espera de temps multiplataforma:&lt;br /&gt;
&lt;br /&gt;
'''En C:'''&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #define LINUX&lt;br /&gt;
 &lt;br /&gt;
 #ifdef LINUX&lt;br /&gt;
    #include &amp;lt;'''unistd.h'''&amp;gt;&lt;br /&gt;
 #else&lt;br /&gt;
    #include &amp;lt;'''Windows.h'''&amp;gt;&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int nS;&lt;br /&gt;
    char szOrdre[99];&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Nombre de segons a esperar: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;,&amp;amp;nS);&lt;br /&gt;
    '''sleep('''nS''')'''; // '''A Linux són segons i a Windows són milisegons'''&lt;br /&gt;
    printf(&amp;quot;S'ha acabat l'espera de %d segons\n&amp;quot;,nS);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''En Python:'''&lt;br /&gt;
 '''import time''' # Per a fer servir sleep()&lt;br /&gt;
 &lt;br /&gt;
 nS = int(input(&amp;quot;Nombre de segons a esperar: &amp;quot;))&lt;br /&gt;
 '''time.sleep('''nS''')'''&lt;br /&gt;
 print(&amp;quot;S'ha acabat l'espera de %d segons&amp;quot;%nS)&lt;br /&gt;
&lt;br /&gt;
== 20211102 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
'''Funcions'''&lt;br /&gt;
&lt;br /&gt;
== 20211029 ==&lt;br /&gt;
Lleis de Morgan:&lt;br /&gt;
 !(a&amp;amp;b) = !a | !b&lt;br /&gt;
 !(a|b) = !a &amp;amp; !b&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211029/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC01_''nom''_''cognom''_DAW1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 12346)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC01_''nom''_''cognom''_DAW1.c''' i el document '''EAC01_''nom''_''cognom''_DAW1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211028 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211028/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
'''switch''' i '''operador ternari'''.&lt;br /&gt;
&lt;br /&gt;
Exercicis de condicionals en C. ('''comentem ''cond06.c''''')&lt;br /&gt;
&lt;br /&gt;
''cond01.c'') Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.&lt;br /&gt;
&lt;br /&gt;
''cond02.c'') Escriviu un programa que llegeixi un número i us digui si és parell o senar.&lt;br /&gt;
&lt;br /&gt;
''cond03.c'') Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.&lt;br /&gt;
&lt;br /&gt;
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)&lt;br /&gt;
&lt;br /&gt;
''cond05.c'') Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)&lt;br /&gt;
&lt;br /&gt;
'''''cond06.c'') Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''cond01.c'', ''cond02.c'', ''cond03.c'', ''cond05.c'' i ''cond06.c'' (si hi pugeu versions diferents, les podeu anomenar ''cond02_00.c'', ''cond02_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat a Python ===&lt;br /&gt;
[https://docs.python.org/3/library/random.html Números aleatoris en Python]&lt;br /&gt;
 '''import random'''&lt;br /&gt;
 nN = '''random.randint(a, b)'''&lt;br /&gt;
Retorna un enter aleatori ''nN'', tal que ''a &amp;lt;= nN &amp;lt;= b''. Àlies de '''''randrange(a, b+1)'''''.&lt;br /&gt;
&lt;br /&gt;
== 20211026 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211026/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211022 ==&lt;br /&gt;
Més exercicis de condicionals en C.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives]] en Python&lt;br /&gt;
&lt;br /&gt;
Estructures repetitives en C&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211022/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211021 ==&lt;br /&gt;
Actualització de l'estructura de carpetes a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]. Revisem el '''not''' (l'equivalent en C eś el signe d'admiració '''!''').&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
''cond01.c'') Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.&lt;br /&gt;
&lt;br /&gt;
''cond02.c'') Escriviu un programa que llegeixi un número i us digui si és parell o senar.&lt;br /&gt;
&lt;br /&gt;
''cond03.c'') Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.&lt;br /&gt;
&lt;br /&gt;
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)&lt;br /&gt;
&lt;br /&gt;
''cond05.c'') Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)&lt;br /&gt;
&lt;br /&gt;
''cond06.c'') Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''cond01.c'', ''cond02.c'', ''cond03.c'', ''cond05.py'' i ''cond06.py'' (si hi pugeu versions diferents, les podeu anomenar ''cond02_00.c'', ''cond02_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
* [[Exercicis de condicions en Python]]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Teniu dues opcions per a penjar el codi: &lt;br /&gt;
&lt;br /&gt;
** 1) Els noms dels arxius seran ''cond01.py'', ''cond02.py'', ''cond03.py'', ''cond04.py'', ''cond05.py'' i ''cond06.py'' (si hi pugeu versions diferents, les podeu anomenar ''cond04_00.py'', ''cond04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
** 2) Pugeu els arxius ''condicionals_py.ipynb'' (arxiu del jupyter-lab) i ''condicionals_py.htm'' (arxiu exportat del jupyter-lab). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211021/ Codis comentats avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20211019 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211019/ Codis fets avui] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211015 ==&lt;br /&gt;
Operadors relacionals: [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p6.htm m2p06.c]&lt;br /&gt;
&lt;br /&gt;
Comencem per la pràctica [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p5.htm m2p05.c]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Exercici 4 del mòdul 2 del d97]&lt;br /&gt;
&lt;br /&gt;
== 20211014 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211014/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en C''' es fa servir la funció '''pow()''' (que li cal l'arxiu de capçalera ''math.h'' i, per tant, requereix afegir a la compilació el paràmetre '''-lm'''):&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow('''lfBase''','''lfExponent''')'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en Python''' es fa servir l'operador '''**''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; lfBase'''**'''lfExponent&lt;br /&gt;
&lt;br /&gt;
En '''Python''':&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.py'', ''m1e4.py'', ''m1e5.py'', ''m1e6.py'' i ''m1e7.py'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.py'', ''m1e7_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7_py.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
En '''C''':&lt;br /&gt;
&lt;br /&gt;
[[Introducció a C - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20211008 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211008/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Compilació amb l'arxiu de capçalera ''math.h'':&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una potència en '''C''' es fa servir la funció '''pow()''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow(lfBase,lfExponent)'''&lt;br /&gt;
&lt;br /&gt;
En C:&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211007 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211007/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:&lt;br /&gt;
 jupyter-lab&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html Accés directe a 20211007_py.html] i [https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py_02.html accés directe a 20211007_py_02.html]&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
* Implementació en C dels dos darrers exercicis d'[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html aquest enllaç]&lt;br /&gt;
&lt;br /&gt;
* Implementació en C de l'exercici 5 de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis de pseudocodi]&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211005 ==&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
Codis '''00_py_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/python/doc/00_py_intro.ipynb 00_py_intro.ipynb]([https://www.binefa.cat/training/codes/python/doc/00_py_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
Codis '''00_C_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/C/doc/00_C_intro.ipynb 00_C_intro.ipynb]([https://www.binefa.cat/training/codes/C/doc/00_C_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguim amb la [[Introducció bàsica a Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211001 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20211001]&lt;br /&gt;
&lt;br /&gt;
== 20210930 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210930]&lt;br /&gt;
&lt;br /&gt;
== 20210928 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210928]&lt;br /&gt;
&lt;br /&gt;
== 20210923 ==&lt;br /&gt;
[https://meet.google.com/bsu-fmpg-dve Adreça de la teleconferència per al dia d'avui]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210923/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20210921 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210921/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r de DAW] usuari: daw | contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''daw'' / ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_d%27introducci%C3%B3_a_Python_._Part_2_-_SMX&amp;diff=4783</id>
		<title>Pràctiques d'introducció a Python . Part 2 - SMX</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_d%27introducci%C3%B3_a_Python_._Part_2_-_SMX&amp;diff=4783"/>
		<updated>2022-04-21T15:37:37Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Imbricació */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Condicionals =&lt;br /&gt;
== Teoria ==&lt;br /&gt;
=== Condicions lògiques matemàtiques ===&lt;br /&gt;
 '''a''' igual que '''b''': a '''==''' b&lt;br /&gt;
 '''a''' no igual que '''b''': a '''!=''' b&lt;br /&gt;
 '''a''' menor que '''b''': a '''&amp;lt;''' b&lt;br /&gt;
 '''a''' menor o igual que '''b''': a '''&amp;lt;=''' b&lt;br /&gt;
 '''a''' més gran que '''b''': a &amp;gt; b&lt;br /&gt;
 '''a''' més gran o igual que '''b''': a '''&amp;gt;=''' b&lt;br /&gt;
&lt;br /&gt;
=== Imbricació ===&lt;br /&gt;
Es fa una sagnia per a determinar la imbricació (niament, com a una [https://ca.wikipedia.org/wiki/Matrioixca matrioixca]).&lt;br /&gt;
&lt;br /&gt;
Ús del ''if'' (si) sense imbricació (dóna error):&lt;br /&gt;
 a = 33&lt;br /&gt;
 b = 200&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
 print(&amp;quot;b és més gran que a&amp;quot;) # sortirà un error per manca d'imbricació &lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_error Ho podeu provar aquí] &lt;br /&gt;
&lt;br /&gt;
Ús del ''if'' amb imbricació (com ha de ser):&lt;br /&gt;
 a = 33&lt;br /&gt;
 b = 200&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
   print(&amp;quot;b és més gran que a&amp;quot;) # imbricat amb la sagnia correcta&lt;br /&gt;
&lt;br /&gt;
=== elif ===&lt;br /&gt;
Ús d'''elif'' (sinó si):&lt;br /&gt;
 a = 33&lt;br /&gt;
 b = 33&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
   print(&amp;quot;b és més gran que a&amp;quot;)&lt;br /&gt;
 elif a == b:&lt;br /&gt;
   print(&amp;quot;a i b són iguals&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_elif Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== else ===&lt;br /&gt;
Ús d'''elif'' (sinó si) i ''else'' (sinó):&lt;br /&gt;
 a = 200&lt;br /&gt;
 b = 33&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
   print(&amp;quot;b és més gran que a&amp;quot;)&lt;br /&gt;
 elif a == b:&lt;br /&gt;
   print(&amp;quot;a i b són iguals&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
   print(&amp;quot;a és més gran que b&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_else Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
Ús d'''else'' (sinó) sense ''elif'' (sinó si):&lt;br /&gt;
 a = 200&lt;br /&gt;
 b = 33&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
   print(&amp;quot;b és més gran que a&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
   print(&amp;quot;b no és més gran a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_else2 Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== if a una sola línia ===&lt;br /&gt;
&lt;br /&gt;
 a = 200&lt;br /&gt;
 b = 33&lt;br /&gt;
 if a &amp;gt; b: print(&amp;quot;a és més gran que b&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_short Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== if i else a una sola línia ===&lt;br /&gt;
&lt;br /&gt;
 a = 2&lt;br /&gt;
 b = 330&lt;br /&gt;
 print(&amp;quot;A&amp;quot;) if a &amp;gt; b else print(&amp;quot;B&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_else_short Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== Operador ternari ===&lt;br /&gt;
&lt;br /&gt;
 a = 330&lt;br /&gt;
 b = 330&lt;br /&gt;
 print(&amp;quot;A&amp;quot;) if a &amp;gt; b else print(&amp;quot;=&amp;quot;) if a == b else print(&amp;quot;B&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_else_short2 Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== and ===&lt;br /&gt;
&lt;br /&gt;
 a = 200&lt;br /&gt;
 b = 33&lt;br /&gt;
 c = 500&lt;br /&gt;
 if a &amp;gt; b and c &amp;gt; a:&lt;br /&gt;
   print(&amp;quot;Les dues condicions són certes -'''True'''-&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_and Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== or === &lt;br /&gt;
&lt;br /&gt;
 a = 200&lt;br /&gt;
 b = 33&lt;br /&gt;
 c = 500&lt;br /&gt;
 if a &amp;gt; b or a &amp;gt; c:&lt;br /&gt;
   print(&amp;quot;Com a mínim una de les dues condicions és certa -'''True'''-&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_or Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== not === &lt;br /&gt;
&lt;br /&gt;
 a = 20&lt;br /&gt;
 b = 33&lt;br /&gt;
 c = 500&lt;br /&gt;
 if not a &amp;gt; b:&lt;br /&gt;
   print(&amp;quot;No es compleix que a &amp;gt; b&amp;quot;)&lt;br /&gt;
 else:&lt;br /&gt;
   print(&amp;quot;a &amp;gt; b&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
=== if imbricat ===&lt;br /&gt;
&lt;br /&gt;
 x = 41&lt;br /&gt;
 if x &amp;gt; 10:&lt;br /&gt;
   print(&amp;quot;Per sobre de 10,&amp;quot;)&lt;br /&gt;
   if x &amp;gt; 20:&lt;br /&gt;
     print(&amp;quot;i també per sobre de 20!&amp;quot;)&lt;br /&gt;
   else:&lt;br /&gt;
     print(&amp;quot;però no per sobre de 20.&amp;quot;) &lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_nested Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
=== pass ===&lt;br /&gt;
&lt;br /&gt;
 a = 33&lt;br /&gt;
 b = 200&lt;br /&gt;
 if b &amp;gt; a:&lt;br /&gt;
   pass&lt;br /&gt;
&lt;br /&gt;
[https://www.w3schools.com/python/trypython.asp?filename=demo_if_pass Ho podeu provar aquí]&lt;br /&gt;
&lt;br /&gt;
== Exemple ==&lt;br /&gt;
=== P11_Python ===&lt;br /&gt;
Escriviu el següent programa i executeu-lo.&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/python3&lt;br /&gt;
 # py0011.py&lt;br /&gt;
 nX = int(input(&amp;quot;Si us plau, entreu un número enter: &amp;quot;))&lt;br /&gt;
 if nX &amp;lt; 0:&lt;br /&gt;
   nX = 0&lt;br /&gt;
   print('Negatiu canviat a zero')&lt;br /&gt;
 elif nX == 0:&lt;br /&gt;
   print('Zero')&lt;br /&gt;
 elif nX == 1:&lt;br /&gt;
   print('Un')&lt;br /&gt;
 else:&lt;br /&gt;
   print('Més')&lt;br /&gt;
 print(&amp;quot;nX: %d&amp;quot; % nX)&lt;br /&gt;
&lt;br /&gt;
Repetiu l'execució per a comprovar totes les opcions.&lt;br /&gt;
&lt;br /&gt;
== Exercicis de condicionals ==&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
= Bibliografia =&lt;br /&gt;
[https://www.w3schools.com/python/ Python Tutorial]&lt;br /&gt;
&lt;br /&gt;
[http://moiatgit.github.io/byte_of_python_120.cat/ Una mica de Python]&lt;br /&gt;
&lt;br /&gt;
[http://docs.python.org.ar/tutorial/pdfs/TutorialPython3.pdf El tutorial de Python] Traducció de la comunitat de Python d'Argentina&lt;br /&gt;
&lt;br /&gt;
[https://docs.python.org/3.8/ Python 3.8.2 documentation]&lt;br /&gt;
&lt;br /&gt;
= Eines de programació en línia =&lt;br /&gt;
[https://trinket.io/ trinket.io]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ onlinegdb.com]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=IoT_amb_Arduino_i_Raspberry_Pi._Microcontroladors_d%27%C3%BAs_professional._Curs_Presencial._Edici%C3%B3_de_mar%C3%A7_de_2022&amp;diff=4452</id>
		<title>IoT amb Arduino i Raspberry Pi. Microcontroladors d'ús professional. Curs Presencial. Edició de març de 2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=IoT_amb_Arduino_i_Raspberry_Pi._Microcontroladors_d%27%C3%BAs_professional._Curs_Presencial._Edici%C3%B3_de_mar%C3%A7_de_2022&amp;diff=4452"/>
		<updated>2022-03-23T12:07:01Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «[https://formacio.eic.cat/cursos/1123577 IoT amb Arduino i Raspberry Pi. Microcontroladors d'ús professional. Curs Presencial] (30 de març de 2022)».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://formacio.eic.cat/cursos/1123577 IoT amb Arduino i Raspberry Pi. Microcontroladors d'ús professional. Curs Presencial] (30 de març de 2022)&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=ASIX_2021-2022&amp;diff=4335</id>
		<title>ASIX 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=ASIX_2021-2022&amp;diff=4335"/>
		<updated>2022-03-01T17:19:38Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* 20220131 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2122-ASIX-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2122-ASIX-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r d'ASIX. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
Estructura de les carpetes:&lt;br /&gt;
 M01 ''(depenent del subgrup)''&lt;br /&gt;
 M03&lt;br /&gt;
   examens&lt;br /&gt;
   exercicis&lt;br /&gt;
     C&lt;br /&gt;
     Python&lt;br /&gt;
   perDies&lt;br /&gt;
 M16&lt;br /&gt;
   Arduino&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1OaVWPBvm94H__Xp7-_x_8beipIzMrJR3STHX-fpCxAs Llista de 1r d'ASIX]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&lt;br /&gt;
== 20220301 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220301/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220223 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220223/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220222 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220222/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220221 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220221/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Seguim fent l'examen del darrer dia (present al recull d'avui).&lt;br /&gt;
&lt;br /&gt;
* Fem la depuració del primer exercici de l'examen ''20210427_daw_m03uf2_ord.pdf''&lt;br /&gt;
&lt;br /&gt;
== 20220216 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220216/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220215 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220215/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220214 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220214/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Seguim fent l'examen ''20210304_m03uf1_ord'' del recull.&lt;br /&gt;
&lt;br /&gt;
=== Crides a sistema en Python ===&lt;br /&gt;
 # cridaSistema00.py&lt;br /&gt;
 import os&lt;br /&gt;
 os.system (&amp;quot;clear&amp;quot;)&lt;br /&gt;
 print(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.&amp;quot;)&lt;br /&gt;
 os.system(&amp;quot;./ra1-2&amp;quot;)&lt;br /&gt;
=== Crides a sistema en C ===&lt;br /&gt;
 // cridaSistema00.c&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt; // Pel system()&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    system(&amp;quot;clear&amp;quot;);&lt;br /&gt;
    printf(&amp;quot;Un cop esborrada la pantalla fem la crida al programa.\n&amp;quot;);&lt;br /&gt;
    system(&amp;quot;python3 ra2-1.py&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220209 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220209/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220208 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220208/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
=== Robot ===&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
== 20220207 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220207/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220202 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220202/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220201 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220201/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Placa S4A ===&lt;br /&gt;
Seguim fent les pràctiques d'Arduino:&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
=== '''Robot''' ===&lt;br /&gt;
Deseu a la carpeta ''libraries'' que penja de la carpeta ''Arduino'' (a Linux la carpeta ''Arduino'' penja de ''/home/'''user''''' i a Finestrots penja de la carpeta ''Els meus Documents'') les [https://recull.binefa.cat/files/arduino/robot/libraries/ biblioteques del robot]: '''RobotController.zip''' i '''PCF8574.zip'''.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques amb el robot versió 6]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/arduino/robot/codis/prova_boto.ino Prova del botó d'inici del robot]&lt;br /&gt;
&lt;br /&gt;
==== '''Màquina d'estats'''. Possibles estats del robot ====&lt;br /&gt;
Com canviar d'estat quan passen més de 5 segons:&lt;br /&gt;
 #include &amp;lt;RobotController.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #define STATE_STOP  0&lt;br /&gt;
 #define STATE_FAST_FORWARD 1&lt;br /&gt;
 #define STATE_FORWARD 2&lt;br /&gt;
 #define STATE_FAST_BACKWARDS 3&lt;br /&gt;
 #define STATE_BACKWARDS  4&lt;br /&gt;
 #define STATE_RIGHT 5&lt;br /&gt;
 #define STATE_LEFT 6&lt;br /&gt;
 #define STATE_BORDER 7&lt;br /&gt;
 #define STATE_SEARCH 8&lt;br /&gt;
 #define DIST_MAX 50&lt;br /&gt;
 &lt;br /&gt;
 '''#define CINC_SEGONS 5000'''&lt;br /&gt;
 ...&lt;br /&gt;
 int nPensaEstat(int nEstatActual, bool bL, bool bR) {&lt;br /&gt;
  '''static unsigned long  ulStartMillis = millis();'''&lt;br /&gt;
  bL = !bL;&lt;br /&gt;
  bR = !bR;&lt;br /&gt;
  switch (nEstatActual) {&lt;br /&gt;
 &lt;br /&gt;
    case STATE_STOP:&lt;br /&gt;
      ...&lt;br /&gt;
 &lt;br /&gt;
    case STATE_FORWARD:&lt;br /&gt;
      if ((bL || bR)) {&lt;br /&gt;
        '''ulStartMillis = millis();'''&lt;br /&gt;
        return STATE_BORDER;&lt;br /&gt;
      }&lt;br /&gt;
      '''if (millis() - ulStartMillis &amp;gt; CINC_SEGONS) {'''&lt;br /&gt;
        '''ulStartMillis = millis();'''&lt;br /&gt;
        '''return STATE_BUSCAR;''' // Canvi d'estat per passar-se de 5 segons al mateix estat&lt;br /&gt;
      '''}'''&lt;br /&gt;
      break;&lt;br /&gt;
 &lt;br /&gt;
    case STATE_BORDER:&lt;br /&gt;
      ...&lt;br /&gt;
 &lt;br /&gt;
    case STATE_SEARCH:&lt;br /&gt;
      ...&lt;br /&gt;
 &lt;br /&gt;
    case STATE_FAST_FORWARD:&lt;br /&gt;
      ...&lt;br /&gt;
  }&lt;br /&gt;
  return nEstatActual;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20220131 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220131/ Recull d'avui] zp&lt;br /&gt;
&lt;br /&gt;
== 20220126 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220126/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20220125 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220125/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
=== '''Arduino''' ===&lt;br /&gt;
[[Introducció a Arduino]]&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] (Excepte les pràctiques 8, 10 i 12)&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20220124 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220124/ Recull d'avui]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5p2.htm Explicació de l'intercanvi de dos valors '''per referència''']&lt;br /&gt;
&lt;br /&gt;
== 20220119 (Baixa professor) ==&lt;br /&gt;
Tasques a fer:&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5ex.htm Exercici 1]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6ex.htm Exercicis 9 i 1]&lt;br /&gt;
&lt;br /&gt;
Més informació: &lt;br /&gt;
&lt;br /&gt;
Introducció als apuntadors ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors])&lt;br /&gt;
&lt;br /&gt;
== 20220117 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20220117/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Comentem el codi ''for_incr_00.c''&lt;br /&gt;
&lt;br /&gt;
* Introducció als apuntadors ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors])&lt;br /&gt;
&lt;br /&gt;
== 20220112 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220110/ recull] de fa dos dies els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''. També, al [https://recull.binefa.cat/files/20220112/ recull del dia d'avui], us he passat un exemple de conversió de llista de caràcters a llista de nombres enters.&lt;br /&gt;
&lt;br /&gt;
'''Pugeu els codis ''targetaCredit_02_05.py'' i ''cc_03.py'' a una subcarpeta anomenada ''llistes'' de la carpeta ''Python''''' de la vostra carpeta compartida amb mi. Feu-me arribar un correu electrònic quan els hàgiu pujat.&lt;br /&gt;
&lt;br /&gt;
== 20220110 (Baixa professor) ==&lt;br /&gt;
Us he penjat al [https://recull.binefa.cat/files/20220110/ recull] d'avui els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.&lt;br /&gt;
&lt;br /&gt;
Proveu d'implementar en Python, emprant llistes, els codis: ''codiBarres00.c'', ''targetaCredit_02_05.c'' i ''cc_03.c''&lt;br /&gt;
&lt;br /&gt;
Com a exemple, us he resolt ''codiBarres00.py'' com a implementació en Python de ''codiBarres00.c''&lt;br /&gt;
&lt;br /&gt;
== 20211222 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211222/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Acabem l'exercici que valida el número de targeta de crèdit&lt;br /&gt;
&lt;br /&gt;
* Comentem com trobar els dos dígits de control d'un compte corrent&lt;br /&gt;
&lt;br /&gt;
* Plantegem l'exercici que verifica un número llegit d'un codi de barres&lt;br /&gt;
&lt;br /&gt;
* Comentem el codi ''for_incr_00.c''&lt;br /&gt;
&lt;br /&gt;
* Introducció als apuntadors ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m5/d97m5te.htm Teoria d'apuntadors])&lt;br /&gt;
&lt;br /&gt;
* [https://www.binefa.com/index.php/ASIX_2021-2022#Python_.28llistes_i_tuples.29 Exercicis pendents de llistes en Python]&lt;br /&gt;
&lt;br /&gt;
== 20211213 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211213/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* Ús de la funció ''strlen()'' de l'arxiu de capçalera ''string.h'' . Analitzem l'arxiu ''usStrlen_00.c'' del recull d'avui.&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis de M2 i M3''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/ASIX_2021-2022#20211116 classe del 16 de novembre] hi havia aquests enunciats: &lt;br /&gt;
&lt;br /&gt;
Feu els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.c'', ''m2e6.c'', ''m3e1.c'', ''m3e3.c'' i ''m3e8.c''   (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.c'', ''m2e5_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python/m2_m3'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m2e5.py'', ''m2e6.py'', ''m3e1.py'', ''m3e3.py'' i ''m3e8.py'' (si hi pugeu versions diferents, les podeu anomenar ''m2e5_00.py'', ''m2e5_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''m2_m3_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. Si feu servir el Jupyter Lab, no pujareu els arxius .py sinó l'arxiu ''.ipynb'' i l'exportació a ''html''. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* '''Feina pendent de pujar dels exercicis del M4''' de la col·lecció d'exercicis del [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/index.htm d97]&lt;br /&gt;
&lt;br /&gt;
De la [https://www.binefa.com/index.php/ASIX_2021-2022#20211123 classe del 23 de novembre] hi havia aquest enunciats: &lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent *: .py , .c)&lt;br /&gt;
&lt;br /&gt;
Seguint la manera de pujar els arxius al M2 i M3, fareu les supcarpetes '''M03/exercicis/C/m4''' i '''M03/exercicis/Python/m4'''. Poseu-hi allà les vostres propostes de solució. A la part de C tindreu l'arxiu '''m4_c.pdf''' i a la de Python '''m4_py.pdf'''. A ambdós documents hi haurà les captures de codi més importants i les diverses execucions possibles que il·lustrin les diferents possibilitats dels programes que heu desenvolupat. A la part de C també hi haurà els codis amb extensió ''.c'' i a les de Python amb extensió ''.py'' si feu servir un editor com el VSCode o l'arxiu ''.ipynb'' i l'exportació a ''html'' en cas de fer servir Jupyter Lab. Cal afegir l'enunciat. '''En aquesta part no cal que feu servir Snap!'''.&lt;br /&gt;
&lt;br /&gt;
=== Python (llistes i tuples) ===&lt;br /&gt;
[https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf Teoria de llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
* Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el [https://ca.wikipedia.org/wiki/Producte_escalar producte escalar]), 24, 25 i 26 del document [https://www.cs.upc.edu/~robert/teaching/EEBE/sessions/sessio06/llistesT.pdf llistes i tuples]&lt;br /&gt;
&lt;br /&gt;
Els codis tindran el nom ''llista14.py'', ''llista17.py'' fins a arribar a ''llista26.py'' (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en ''html'' a la carpeta compartida). Feu un document '''llistaPython.pdf''' a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada '''llistes''' dins de la subcarpeta '''Python''' a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
=== C (vectors) ===&lt;br /&gt;
&lt;br /&gt;
* Fem la implementació del dígit de verificació de les targetes de crèdit present a [https://recull.binefa.cat/files/doc/digits_de_control.pdf algorismes de dígits de control]&lt;br /&gt;
&lt;br /&gt;
== 20211201 ==&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211201/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211130 ==&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211130/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
Exercici en C:&lt;br /&gt;
&lt;br /&gt;
Feu un codi en C que demani el vostre nom i cognoms que presenti el nom amb el número, en base 10, de la taula ASCII.&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC05_''nom''_''cognom''_ASIX1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Realitza un programa que demani una lletra minúscula de l'abecedari i vagi ensenyant les lletres següents una a una en línies diferents, fins a arribar a la 'z' on el programa pararà. Entre lletra i lletra hi haurà un temps d'un segon (o mig segon).&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'a' ens mostrarà totes les lletres línia a línia fins a la 'z'.&lt;br /&gt;
&lt;br /&gt;
Si la lletra és la 'z' pararà immediatament.&lt;br /&gt;
&lt;br /&gt;
Verbigràcia:&lt;br /&gt;
&lt;br /&gt;
Introdueix una lletra de l'abecedari: x&lt;br /&gt;
&lt;br /&gt;
x&lt;br /&gt;
&lt;br /&gt;
y&lt;br /&gt;
&lt;br /&gt;
z&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
EAC05_nom_cognom_ASIX1.c&lt;br /&gt;
&lt;br /&gt;
== 20211129 ==&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211129/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211124 ==&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211124/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211123 ==&lt;br /&gt;
* Dubtes pendents&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/annex.htm La depuració]&lt;br /&gt;
&lt;br /&gt;
* m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis de recursivitat i aleatorietat] (Essent * .png i .xml d'Snap!  i .py i .c)&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211123/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC04_''nom''_''cognom''_ASIX1.c''' ===&lt;br /&gt;
Feu un programa que faci la pregunta a sota indicada i tingui cinc possibles respostes i només una de correcta.&lt;br /&gt;
&lt;br /&gt;
 Quina és la velocitat de llum?, escriu una opció, de la 1 a la 5:&lt;br /&gt;
 &lt;br /&gt;
 1-La velocitat de la llum és 300.000 quilòmetres/segon.&lt;br /&gt;
 2-La velocitat de la llum és 343,2 metres/segons.&lt;br /&gt;
 3-La velocitat de la llum és de 300.000 quilòmetres/hora.&lt;br /&gt;
 4-Cap dels anteriors.&lt;br /&gt;
 5-Totes les anteriors són correctes.&lt;br /&gt;
 &lt;br /&gt;
Quan contesteu una resposta incorrecta,hem de contestar------&amp;gt; T'has equivocat... i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Si la persona s'ha equivocat més de tres cops,hem de contestar------&amp;gt; Hauries d'estudiar més... i acabem.&lt;br /&gt;
&lt;br /&gt;
Si ens posa un número inferior a 1 o superior a 5,hem de contestar-----&amp;gt; Opció no disposada, tria de la 1 a la 5 i tornes a preguntar.&lt;br /&gt;
&lt;br /&gt;
Recorda utilitzar '''while(1)''' o '''for(;;)''' i '''break''' per sortir.&lt;br /&gt;
&lt;br /&gt;
EAC04_nom_cognom_ASIX1.c&lt;br /&gt;
&lt;br /&gt;
== 20211122 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211122/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211117 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211117/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
Comencem implementant en Python els codis desenvolupats en Snap! i ahir implementats en C. Després, seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
== 20211116 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211116/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
Seguim fent els exercicis plantejats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 5 i 6 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm col·lecció d'exercicis] (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)&lt;br /&gt;
&lt;br /&gt;
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm col·lecció d'exercicis] (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)&lt;br /&gt;
&lt;br /&gt;
== 20211115 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211115/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Entrada de contrasenya oculta en Python ===&lt;br /&gt;
[https://www.codegrepper.com/code-examples/python/python+hide+password+input Font de codi]&lt;br /&gt;
 import getpass&lt;br /&gt;
 szPwd = getpass.getpass(&amp;quot;Enter Password&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
== 20211110 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211110/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
* [https://www.binefa.com/index.php/ASIX_2021-2022#Aleatorietat_en_Python Aleatorietat en Python] i acabem [[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
* Seguim fent els exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08)&lt;br /&gt;
&lt;br /&gt;
=== Exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08) ===&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat en Python ===&lt;br /&gt;
[https://docs.python.org/3/library/random.html Números aleatoris en Python]&lt;br /&gt;
 '''import random'''&lt;br /&gt;
 nN = '''random.randint(a, b)'''&lt;br /&gt;
Retorna un enter aleatori ''nN'', tal que ''a &amp;lt;= nN &amp;lt;= b''. Àlies de '''''randrange(a, b+1)'''''.&lt;br /&gt;
&lt;br /&gt;
=== Aleatorietat en C ===&lt;br /&gt;
 #include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;time.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 void vLlavorAleatorietat(){&lt;br /&gt;
    '''srand'''( (unsigned)time( NULL ) );&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int nNumAleat(int nMin,int nMax){&lt;br /&gt;
    return nMin+ '''rand()'''% ((nMax-nMin)+1);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20211109 ==&lt;br /&gt;
'''Blocs''' amb Snap!&lt;br /&gt;
&lt;br /&gt;
'''Funcions''' en Python&lt;br /&gt;
&lt;br /&gt;
'''Funcions''' en C&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/asix2122/m03_m16/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211109/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08) ===&lt;br /&gt;
Implementeu en [https://snap.berkeley.edu/snap/snap.html Snap!], Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis bàsics de pesudocodi]&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.c'', ''alg06.c'' i ''alg07.c'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.c'', ''alg04_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''alg04.py'', ''alg06.py'', ''alg07.py'' i ''alg08.py'' (si hi pugeu versions diferents, les podeu anomenar ''alg04_00.py'', ''alg04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''alg04_06_07_08_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho. '''També cal afegir l'enunciat i una captura del codi en Snap!'''&lt;br /&gt;
&lt;br /&gt;
=== Com esperar ===&lt;br /&gt;
'''Des del sistema operatiu:'''&lt;br /&gt;
&lt;br /&gt;
En Linux:&lt;br /&gt;
 sleep ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
En Windows:&lt;br /&gt;
 timeout ''5''&lt;br /&gt;
essent ''5'' el nombre de segons que s'espera.&lt;br /&gt;
&lt;br /&gt;
Funcions d'espera de temps multiplataforma:&lt;br /&gt;
&lt;br /&gt;
'''En C:'''&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 #define LINUX&lt;br /&gt;
 &lt;br /&gt;
 #ifdef LINUX&lt;br /&gt;
    #include &amp;lt;'''unistd.h'''&amp;gt;&lt;br /&gt;
 #else&lt;br /&gt;
    #include &amp;lt;'''Windows.h'''&amp;gt;&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
 int main(){&lt;br /&gt;
    int nS;&lt;br /&gt;
    char szOrdre[99];&lt;br /&gt;
    &lt;br /&gt;
    printf(&amp;quot;Nombre de segons a esperar: &amp;quot;);&lt;br /&gt;
    scanf(&amp;quot;%d&amp;quot;,&amp;amp;nS);&lt;br /&gt;
    '''sleep('''nS''')''';&lt;br /&gt;
    printf(&amp;quot;S'ha acabat l'espera de %d segons\n&amp;quot;,nS);&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
'''En Python:'''&lt;br /&gt;
 '''import time''' # Per a fer servir sleep()&lt;br /&gt;
 &lt;br /&gt;
 nS = int(input(&amp;quot;Nombre de segons a esperar: &amp;quot;))&lt;br /&gt;
 '''time.sleep('''nS''')'''&lt;br /&gt;
 print(&amp;quot;S'ha acabat l'espera de %d segons&amp;quot;%nS)&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC03_''nom''_''cognom''_ASIX1.c''' ===&lt;br /&gt;
&lt;br /&gt;
Es tracta de fer un programa que calculi la mitjana aritmètica de 8 notes aconseguides en programació.&lt;br /&gt;
&lt;br /&gt;
* Demanarem primer el nom de l'alumne.&lt;br /&gt;
&lt;br /&gt;
* Segon preguntarem el curs que fa.&lt;br /&gt;
&lt;br /&gt;
* Tercer preguntarem les notes obtingudes seguides d'un Enter.&lt;br /&gt;
&lt;br /&gt;
* Quart i darrer contestarem:&lt;br /&gt;
&lt;br /&gt;
Bé, ''&amp;lt;nom de l'alumne&amp;gt;'' que fas ''&amp;lt;curs de l'alumne&amp;gt;'', la mitjana aritmètica de les teves 8 notes és: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Realitzarem la captura i suma de les notes mitjançant un '''for'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC03_''nom''_''cognom''_ASIX1.c''' i el document '''EAC03_''nom''_''cognom''_ASIX1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211103 ==&lt;br /&gt;
'''Funcions en Python'''&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211103/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211102 ==&lt;br /&gt;
'''Funcions'''&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211102/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC02_''nom''_''cognom''_ASIX1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 12248)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després ho tornarà a preguntar fins que s'encerti. Després posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Per fi ho has aconseguit! Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC02_''nom''_''cognom''_ASIX1.c''' i el document '''EAC02_''nom''_''cognom''_ASIX1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
== 20211027 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211027/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211026 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211026/ Alguns codis comentats a classe] Usuari: ''asix'' i contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
Exercicis de condicionals en C. &lt;br /&gt;
&lt;br /&gt;
''cond01.c'') Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.&lt;br /&gt;
&lt;br /&gt;
''cond02.c'') Escriviu un programa que llegeixi un número i us digui si és parell o senar.&lt;br /&gt;
&lt;br /&gt;
''cond03.c'') Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.&lt;br /&gt;
&lt;br /&gt;
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)&lt;br /&gt;
&lt;br /&gt;
''cond05.c'') Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)&lt;br /&gt;
&lt;br /&gt;
''cond06.c'') Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.&lt;br /&gt;
&lt;br /&gt;
* Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''cond01.c'', ''cond02.c'', ''cond03.c'', ''cond05.c'' i ''cond06.c'' (si hi pugeu versions diferents, les podeu anomenar ''cond02_00.c'', ''cond02_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_c.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
=== Examen '''EAC01_''nom''_''cognom''_ASIX1.c'''===&lt;br /&gt;
Realitzeu un programa que segueixi la seqüència següent:&lt;br /&gt;
&lt;br /&gt;
Introduïu un número que fa de codi d'accés: (Que serà 12345)&lt;br /&gt;
&lt;br /&gt;
en cas d'encertar-lo demanarà:&lt;br /&gt;
&lt;br /&gt;
''Com et dius?'' Posarem el nom i contestarà:&lt;br /&gt;
&lt;br /&gt;
''Molt bé &amp;lt;el nom que hagis posat&amp;gt; , estàs autoritzat.''&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Si en introduir el codi d'accés és erroni, contestarà:&lt;br /&gt;
''Prova-ho una altra vegada''.&lt;br /&gt;
&lt;br /&gt;
Després sortirà del programa.&lt;br /&gt;
&lt;br /&gt;
Deseu a la carpeta compartida l'arxiu '''EAC01_''nom''_''cognom''_ASIX1.c''' i el document '''EAC01_''nom''_''cognom''_ASIX1.pdf''' (canvieu ''nom'' pel vostre nom i ''cognom'' pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles''(punt)''olive''(arrova)''fje''(punt)''edu&lt;br /&gt;
&lt;br /&gt;
=== Operador ternari i ''switch'' ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives ===&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Estructures repetitives en C]&lt;br /&gt;
&lt;br /&gt;
== 20211025 ==&lt;br /&gt;
Actualització de l'estructura de carpetes a la carpeta compartida.&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]. Revisem el '''not'''.&lt;br /&gt;
&lt;br /&gt;
* [[Exercicis de condicions en Python]]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Teniu dues opcions per a penjar el codi: &lt;br /&gt;
&lt;br /&gt;
** 1) Els noms dels arxius seran ''cond01.py'', ''cond02.py'', ''cond03.py'', ''cond04.py'', ''cond05.py'' i ''cond06.py'' (si hi pugeu versions diferents, les podeu anomenar ''cond04_00.py'', ''cond04_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
** 2) Pugeu els arxius ''condicionals_py.ipynb'' (arxiu del jupyter-lab) i ''condicionals_py.htm'' (arxiu exportat del jupyter-lab). També hi pujareu un arxiu en pdf, anomenat '''condicionals_py.pdf''' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211025/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211020 ==&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211020/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211019 ==&lt;br /&gt;
[[Examen d'avaluació inicial de programació a 1r d'ASIX. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211019/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20211018 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211018/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en C''' es fa servir la funció '''pow()''' (que li cal l'arxiu de capçalera ''math.h'' i, per tant, requereix afegir a la compilació el paràmetre '''-lm'''):&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow('''lfBase''','''lfExponent''')'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en Python''' es fa servir l'operador '''**''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; lfBase'''**'''lfExponent&lt;br /&gt;
&lt;br /&gt;
En '''Python''':&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.py'', ''m1e4.py'', ''m1e5.py'', ''m1e6.py'' i ''m1e7.py'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.py'', ''m1e7_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7_py.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
== 20211013 ==&lt;br /&gt;
Continuem fent els exercicis demanats el dia anterior.&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20211011/ Codis comentats avui a classe] usuari: asix / contrasenya: asix2122&lt;br /&gt;
&lt;br /&gt;
== 20211011 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211011/ Codis comentats avui a classe] usuari: asix / contrasenya: asix2122&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
Compilació amb l'arxiu de capçalera ''math.h'':&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
* Implementació en C dels dos darrers exercicis d'[https://www.binefa.cat/asix2122/m03_m16/20211006/20211006_py_02.html aquest enllaç]&lt;br /&gt;
&lt;br /&gt;
* Implementació en C de l'exercici 5 de la [https://www.binefa.cat/asix2122/m03_m16/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis de pseudocodi]&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''M03/exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:&lt;br /&gt;
 jupyter-lab&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/asix2122/m03_m16/20211006/20211006_py_02.html accés directe a 20211006_py_02.html]&lt;br /&gt;
&lt;br /&gt;
== 20211006 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211006/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
=== Exercici 2 d'algorísmica. '''Implementeu-ho en Python''' ===&lt;br /&gt;
Implementeu un algorisme que llegeixi dos números decimals i calculi i escrigui per pantalla el valor de la seva suma, resta, producte i divisió. ''Com a suggeriment, feu servir el tipus '''double''' o '''float'''''.&lt;br /&gt;
&lt;br /&gt;
== 20211005 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211005/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
=== Exercici 2 d'algorísmica ===&lt;br /&gt;
Implementeu un algorisme que llegeixi dos números decimals i calculi i escrigui per pantalla el valor de la seva suma, resta, producte i divisió. ''Com a suggeriment, feu servir el tipus '''double''' o '''float'''''.&lt;br /&gt;
&lt;br /&gt;
== 20211004 ==&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Codis '''00_py_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/python/doc/00_py_intro.ipynb 00_py_intro.ipynb]([https://www.binefa.cat/training/codes/python/doc/00_py_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
Codis '''00_C_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/C/doc/00_C_intro.ipynb 00_C_intro.ipynb]([https://www.binefa.cat/training/codes/C/doc/00_C_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguim amb la [[Introducció bàsica a Python]]&lt;br /&gt;
&lt;br /&gt;
Els codis fets a classe són penjats al [https://recull.binefa.cat/files/20211004/ recull d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20210929 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210929]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210929/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20210928 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210928]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210928/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20210927 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210927/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20210922 ==&lt;br /&gt;
[https://meet.google.com/vwg-shef-xwk Teleconferència puntual per al dia d'avui]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210922/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
== 20210921 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210921/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2122''&lt;br /&gt;
&lt;br /&gt;
[https://meet.google.com/wnf-rhfv-zth Teleconferència puntual pel dia d'avui]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ Instal·lador de C per a Windows]&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r d'ASIX] usuari: asix | contrasenya: asix2122&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/asix2122/m03_m16/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''asix'' / ''asix2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/mingw/ MinGW - Compilador de C per a Windows]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4316</id>
		<title>Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4316"/>
		<updated>2022-02-22T17:46:08Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Pràctiques placa S4A amb IDE d'Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pràctiques placa S4A amb IDE d'Arduino =&lt;br /&gt;
&lt;br /&gt;
'''1''': Encendre el led 10.  &lt;br /&gt;
&lt;br /&gt;
'''2''': Encenleds, un a un per a comprovar que funcionen correctament.&lt;br /&gt;
&lt;br /&gt;
'''3''': Al prémer polsador 2 s'encén led 10, al deixar de prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''4''': Al prémer polsador 2 s'encén led 10, al deixar de prémer es manté encès; quan tornem a prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''5''': Al prémer polsador 2 s'encén led 13; al prémer polsador 3 s'encén led 12; al prémer polsador A5 (19) s'encén led 11; a l prémer polsador A4 (18) s'encén led 10.&lt;br /&gt;
&lt;br /&gt;
'''6''': Al prémer mantingut polsador 2 als 3 segons s'encén el led 10, al deixar anar als 3 segons s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''7''': Al començament tots els leds són encesos, excepte el 10 que estarà apagat. Al prémer polsador 2 s'encén led 10 (i s'apaguen tots els altres), transcorregut un segon s'encén led 11, transcorregut un segon s'encén el led 12, transcorregut un segon s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''8''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''9''': Al prémer el polsador 2 s'encén led 10, transcorregut un segon s'apaga el led 10 i s'encén el led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''10''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''11''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1,i així en bucle infinit.&lt;br /&gt;
&lt;br /&gt;
'''12''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''13''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1, i així en bucle infinit, a l prémer polsador 3 stop el cicle.&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4315</id>
		<title>Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4315"/>
		<updated>2022-02-22T17:45:46Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Pràctiques placa S4A amb IDE d'Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pràctiques placa S4A amb IDE d'Arduino =&lt;br /&gt;
&lt;br /&gt;
'''1''': Encendre el led 10.  Lmao&lt;br /&gt;
 Solapaine&lt;br /&gt;
'''2''': Encenleds, un a un per a comprovar que funcionen correctament.&lt;br /&gt;
&lt;br /&gt;
'''3''': Al prémer polsador 2 s'encén led 10, al deixar de prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''4''': Al prémer polsador 2 s'encén led 10, al deixar de prémer es manté encès; quan tornem a prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''5''': Al prémer polsador 2 s'encén led 13; al prémer polsador 3 s'encén led 12; al prémer polsador A5 (19) s'encén led 11; a l prémer polsador A4 (18) s'encén led 10.&lt;br /&gt;
&lt;br /&gt;
'''6''': Al prémer mantingut polsador 2 als 3 segons s'encén el led 10, al deixar anar als 3 segons s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''7''': Al començament tots els leds són encesos, excepte el 10 que estarà apagat. Al prémer polsador 2 s'encén led 10 (i s'apaguen tots els altres), transcorregut un segon s'encén led 11, transcorregut un segon s'encén el led 12, transcorregut un segon s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''8''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''9''': Al prémer el polsador 2 s'encén led 10, transcorregut un segon s'apaga el led 10 i s'encén el led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''10''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''11''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1,i així en bucle infinit.&lt;br /&gt;
&lt;br /&gt;
'''12''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''13''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1, i així en bucle infinit, a l prémer polsador 3 stop el cicle.&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4314</id>
		<title>Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4314"/>
		<updated>2022-02-22T17:45:26Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Pràctiques placa S4A amb IDE d'Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pràctiques placa S4A amb IDE d'Arduino =&lt;br /&gt;
&lt;br /&gt;
'''1''': Encendre el led 10.  Lmao&lt;br /&gt;
&lt;br /&gt;
'''2''': Encenleds, un a un per a comprovar que funcionen correctament.&lt;br /&gt;
&lt;br /&gt;
'''3''': Al prémer polsador 2 s'encén led 10, al deixar de prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''4''': Al prémer polsador 2 s'encén led 10, al deixar de prémer es manté encès; quan tornem a prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''5''': Al prémer polsador 2 s'encén led 13; al prémer polsador 3 s'encén led 12; al prémer polsador A5 (19) s'encén led 11; a l prémer polsador A4 (18) s'encén led 10.&lt;br /&gt;
&lt;br /&gt;
'''6''': Al prémer mantingut polsador 2 als 3 segons s'encén el led 10, al deixar anar als 3 segons s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''7''': Al començament tots els leds són encesos, excepte el 10 que estarà apagat. Al prémer polsador 2 s'encén led 10 (i s'apaguen tots els altres), transcorregut un segon s'encén led 11, transcorregut un segon s'encén el led 12, transcorregut un segon s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''8''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''9''': Al prémer el polsador 2 s'encén led 10, transcorregut un segon s'apaga el led 10 i s'encén el led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''10''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''11''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1,i així en bucle infinit.&lt;br /&gt;
&lt;br /&gt;
'''12''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''13''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1, i així en bucle infinit, a l prémer polsador 3 stop el cicle.&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4313</id>
		<title>Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Pr%C3%A0ctiques_Arduino_sobre_placa_S4A_i_Snap4Arduino_-_1a_part&amp;diff=4313"/>
		<updated>2022-02-22T17:45:13Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Pràctiques placa S4A amb IDE d'Arduino */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Pràctiques placa S4A amb IDE d'Arduino =&lt;br /&gt;
&lt;br /&gt;
'''1''': Encendre el led 10.&lt;br /&gt;
&lt;br /&gt;
'''2''': Encenleds, un a un per a comprovar que funcionen correctament.&lt;br /&gt;
&lt;br /&gt;
'''3''': Al prémer polsador 2 s'encén led 10, al deixar de prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''4''': Al prémer polsador 2 s'encén led 10, al deixar de prémer es manté encès; quan tornem a prémer s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''5''': Al prémer polsador 2 s'encén led 13; al prémer polsador 3 s'encén led 12; al prémer polsador A5 (19) s'encén led 11; a l prémer polsador A4 (18) s'encén led 10.&lt;br /&gt;
&lt;br /&gt;
'''6''': Al prémer mantingut polsador 2 als 3 segons s'encén el led 10, al deixar anar als 3 segons s'apaga.&lt;br /&gt;
&lt;br /&gt;
'''7''': Al començament tots els leds són encesos, excepte el 10 que estarà apagat. Al prémer polsador 2 s'encén led 10 (i s'apaguen tots els altres), transcorregut un segon s'encén led 11, transcorregut un segon s'encén el led 12, transcorregut un segon s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''8''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''9''': Al prémer el polsador 2 s'encén led 10, transcorregut un segon s'apaga el led 10 i s'encén el led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13.&lt;br /&gt;
&lt;br /&gt;
'''10''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''11''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1,i així en bucle infinit.&lt;br /&gt;
&lt;br /&gt;
'''12''': Ídem anterior amb relés.&lt;br /&gt;
&lt;br /&gt;
'''13''': Al prémer polsador 2 s'encén led 10, transcorregut un segon s'apaga 10 i s'encén led 11, transcorregut un segon s'apaga 11 i s'encén led 12, transcorregut un segon s'apaga 12 i s'encén led 13, transcorregut un segon s'apaga 13 i s'encén led 1, i així en bucle infinit, a l prémer polsador 3 stop el cicle.&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Discussi%C3%B3:P%C3%A0gina_principal&amp;diff=4219</id>
		<title>Discussió:Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Discussi%C3%B3:P%C3%A0gina_principal&amp;diff=4219"/>
		<updated>2022-02-08T16:14:33Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Pàgina blanquejada&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=Discussi%C3%B3:P%C3%A0gina_principal&amp;diff=4218</id>
		<title>Discussió:Pàgina principal</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=Discussi%C3%B3:P%C3%A0gina_principal&amp;diff=4218"/>
		<updated>2022-02-08T16:07:37Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: Es crea la pàgina amb «d».&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;d&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAM_2020-2021&amp;diff=3758</id>
		<title>DAM 2020-2021</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAM_2020-2021&amp;diff=3758"/>
		<updated>2021-11-05T12:48:49Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Exercici */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Horari a partir del 18 de gener =&lt;br /&gt;
[[Image:PPandGener2021_DAM2b.png|center|2n de DAM]]&lt;br /&gt;
&lt;br /&gt;
= Teleconferència del curs 2020-2021 =&lt;br /&gt;
[https://meet.google.com/wum-fjat-cow Adreça de la teleconferència]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1kvyONuw9stK7VuuQS8i45lzwkhquwA_9jmXnNemjZNk/edit#gid=306804274 Llista 2n de DAM 2020-2021]&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides 2n de DAM. Curs 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
= Alguns vídeos d'ajuda =&lt;br /&gt;
== QML ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc Introduction to Qt / QML - all videos so far] by [https://www.kdab.com/ KDAB] ([https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML de la sèrie de vídeos])&lt;br /&gt;
&lt;br /&gt;
[[Vídeos QML]] de connexió entre el rerefons en C++ i el frontal en QML.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=9BRJ1qJkjZM Photoshop to QML exporter]&lt;br /&gt;
&lt;br /&gt;
== Pseudoservidor UDP ==&lt;br /&gt;
[https://youtu.be/lKNdgHVRal0 Pseudoservidor UDP emprant Qt5 (1/2)]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/ElYaaytNb0s Pseudoservidor UDP emprant Qt5 (2/2)]&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
== 20210609 (3h presencial) '''Avaluació extraordinària''' ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210610_xtra/ Enunciats de l'avaluació extraordinària]&lt;br /&gt;
&lt;br /&gt;
== 20210528 (2h en línia) '''Presentació de projectes de 2n de DAM''' ==&lt;br /&gt;
[https://meet.google.com/vkc-uupk-kai Sala Meet de la presentació de projectes]&lt;br /&gt;
&lt;br /&gt;
== 20210527 (3h en línia) '''Presentació de projectes de 2n de DAM''' ==&lt;br /&gt;
[https://meet.google.com/vkc-uupk-kai Sala Meet de la presentació de projectes]&lt;br /&gt;
&lt;br /&gt;
== 20210520 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210517 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210514 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210513 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210510 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210507 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210506 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210503 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210430 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210429 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210426 '''Comença el projecte''' (1h presencial) ==&lt;br /&gt;
Comentem les notes provisionals i comença el temps de projecte.&lt;br /&gt;
&lt;br /&gt;
== 20210423 '''Darrer dia''' (2h síncrona) ==&lt;br /&gt;
Feu alguns exercicis que no vau fer ahir de l'[https://binefa.cat/dam2021/20210423_darrerDia/ examen d'ordinària del curs 2020-2021] amb l'objectiu de pujar nota. He afegit l'arxiu de NodeRED de control de l'ascensor i he corregit alguna errata que vau detectar ahir.&lt;br /&gt;
&lt;br /&gt;
== 20210422 '''Examen''' (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210422_ex/ Examen d'ordinària del curs 2020-2021]&lt;br /&gt;
&lt;br /&gt;
[http://extensions.snap.berkeley.edu/ Snap! per HTTP] per a fer servir sòcols web no segurs.&lt;br /&gt;
&lt;br /&gt;
He afegit [https://binefa.cat/dam2021/20210422_ex/ascensor.nodered.txt flux de NodeRED per a l'ascensor]. Recordeu-vos de canviar la MAC a tot arreu i d'afegir-hi usuari i contrasenya al ''broker''.&lt;br /&gt;
&lt;br /&gt;
''Errata'':&lt;br /&gt;
&lt;br /&gt;
M09UF3.6) Feu un control del led blanc mitjançant el NodeRED emprant el protocol UDP&lt;br /&gt;
&lt;br /&gt;
== 20210419 (1h presencial) ==&lt;br /&gt;
Per a canviar l'Spread Factor ([https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b.ino línia 497 d'aquest codi d'exemple]):&lt;br /&gt;
&lt;br /&gt;
  // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library)&lt;br /&gt;
  LMIC_setDrTxpow('''DR_SF7''', 14);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 20210416 (2h presencial) ==&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210416/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de l'OpenMPI a la màquina (per a molts, virtual) de Linux.&lt;br /&gt;
&lt;br /&gt;
== 20210415 (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210415/funcio4sortides.nodered.txt Exemple de funció amb 4 sortides] (Cal que canvieu a la funció la única sortida per defecte a quatre)&lt;br /&gt;
&lt;br /&gt;
 var amunt = {payload: &amp;quot;amunt&amp;quot;};&lt;br /&gt;
 var mig = {payload: &amp;quot;mig&amp;quot;};&lt;br /&gt;
 var avall = {payload: &amp;quot;avall&amp;quot;};&lt;br /&gt;
 &lt;br /&gt;
 return [amunt,mig,avall,msg];&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210415/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de l'OpenMPI a la màquina (per a molts, virtual) de Linux.&lt;br /&gt;
&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
== 20210412 (1h presencial) ==&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
== 20210409 (2h síncrona) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210408 (3h presencial) ==&lt;br /&gt;
[https://www.things.cat/index.php?title=P%C3%A0gina_principal#Programaci.C3.B3_remota_.28OTA.29 Programació remota (OTA)] (JESUITESFP / IOTcl1220_)&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210408/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
== 20210326 (2h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210326/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210326/cadena4bytes_a_float.nodered.txt Flux de NodeRED que agafa una cadena de text de 4 bytes i ho converteix a un número real (''float'')]&lt;br /&gt;
&lt;br /&gt;
== 20210325 (3h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210325/ Alguns codis comentats avui] per a passar vectors de bytes (''unsigned char'') a nombres enters o reals fent servir les funcions de Javascript per a NodeRED.&lt;br /&gt;
&lt;br /&gt;
== 20210322 (1h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
Comentem l'exercici 3.7&lt;br /&gt;
&lt;br /&gt;
== 20210319 (2h síncrona) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210319/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
[https://techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task/ Explicació d'un codi bàsic en FreeRTOS]&lt;br /&gt;
&lt;br /&gt;
[https://www.freertos.org/Documentation/RTOS_book.html '''Manual de referència per al FreeRTOS''']&lt;br /&gt;
&lt;br /&gt;
== 20210318 (3h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
sudo cat '''/etc/mosquitto/mosquitto.conf''':&lt;br /&gt;
 pid_file /var/run/mosquitto.pid&lt;br /&gt;
 &lt;br /&gt;
 persistence true&lt;br /&gt;
 persistence_location /var/lib/mosquitto/&lt;br /&gt;
 &lt;br /&gt;
 log_dest file /var/log/mosquitto/mosquitto.log&lt;br /&gt;
 &lt;br /&gt;
 include_dir /etc/mosquitto/conf.d&lt;br /&gt;
 &lt;br /&gt;
 '''allow_anonymous false'''&lt;br /&gt;
 '''password_file /etc/mosquitto/certs/contrasenyes.txt'''&lt;br /&gt;
 &lt;br /&gt;
 '''listener 1883'''&lt;br /&gt;
 &lt;br /&gt;
 listener 9001&lt;br /&gt;
 protocol websockets&lt;br /&gt;
&lt;br /&gt;
cat '''/etc/mosquitto/certs/contrasenyes.txt''' (usuaris ''ecat'' i ''ad''):&lt;br /&gt;
 '''ecat''':$6$SdtdpCPcQ4wonN7Y$Dgix123455BRyzvUQxMKX2lmr/4r/K3b9/su9KzMdMZhLxS3cm6a+nCrRahz+r9DFOh0ecsoZVwlG+G9tnA==&lt;br /&gt;
 '''ad''':$6$Nu8O3BxNBORplkSW$LZAqGNiPnX1HnC0ZbI789787867677565eJZAQnWWrWDaFjJz5OIZ8ljJRBbL6GFCKlgoaUFllFGvBhMtnfJQ==&lt;br /&gt;
&lt;br /&gt;
== 20210315 (1h presencial) ==&lt;br /&gt;
Conceptes de [[LoRa 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
== 20210312 (2h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210312_iot/missatgeAscendentTTN.nodered.txt Codi de desxifratge d'un missatge ascendent de The Things Network]&lt;br /&gt;
&lt;br /&gt;
Codi basat en [https://binefa.cat/IoT/nodeRed/nodeRed01.pdf la pàgina 42 d'aquest pdf]:&lt;br /&gt;
 var b = new Buffer(msg.payload.payload_raw,'base64')&lt;br /&gt;
 msg.payload = b.toString()&lt;br /&gt;
 return msg;&lt;br /&gt;
&lt;br /&gt;
== 20210311 (3h presencial) ==&lt;br /&gt;
Avui assistiré les dues primeres hores. La tercera he de ser a una sessió d'avaluació, aneu fent els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]].&lt;br /&gt;
&lt;br /&gt;
La pràctica de LoRaWAN requereix que hi sigueu a un lloc amb cobertura. Per tant, feu tot el possible per a ser-hi presencialment. &lt;br /&gt;
&lt;br /&gt;
=== '''LoRaWAN''' ===&lt;br /&gt;
Doneu-vos d'alta com a usuaris de [https://www.thethingsnetwork.org/ The Things Network]&lt;br /&gt;
&lt;br /&gt;
[[LoRa 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
== 20210308 (1h presencial) ==&lt;br /&gt;
Repassem el funcionament de la vostra placa IoT-02 al vostre ''broker'' MQTT, el vostre NodeRED, el vostre InfluxDB i el vostre Grafana.&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
[https://techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task/ Explicació d'un codi bàsic en FreeRTOS]&lt;br /&gt;
&lt;br /&gt;
[https://www.freertos.org/Documentation/RTOS_book.html '''Manual de referència per al FreeRTOS''']&lt;br /&gt;
&lt;br /&gt;
== 20210305 (2h síncrona) ==&lt;br /&gt;
Continuem amb el temes d'ahir.&lt;br /&gt;
&lt;br /&gt;
=== HTTP a MQTT ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/http_a_mqtt/http_mqtt.nodered.txt Flux de NodeRED per a convertir crides HTTP a MQTT]&lt;br /&gt;
&lt;br /&gt;
==== Exercici d'HTTP a MQTT ====&lt;br /&gt;
Mitjançant ''curl'' o navegador web encén i/o apaga qualsevol led de la placa IoT-02 connectada a un ''broker'' MQTT.&lt;br /&gt;
&lt;br /&gt;
== 20210304 (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
=== Bases de dades temporals i visualització ===&lt;br /&gt;
Seguim amb la instal·lació d'InfluxDB i Grafana.&lt;br /&gt;
&lt;br /&gt;
==== Exercici de bases de dades temporals i visualització ====&lt;br /&gt;
* Visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum.&lt;br /&gt;
&lt;br /&gt;
=== HTTP a MQTT ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/http_a_mqtt/http_mqtt.nodered.txt Flux de NodeRED per a convertir crides HTTP a MQTT]&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
== 20210301 (1h presencial) ==&lt;br /&gt;
Seguim amb la instal·lació d'InfluxDB i Grafana.&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210301/notesProvisionals20210301.png Notes provisionals d'avaluació ordinària del M07UF1]&lt;br /&gt;
&lt;br /&gt;
== 20210226 (IoT: '''InfluxDB''' i '''Grafana''', 2h presencial) ==&lt;br /&gt;
Part pròpia del M15UF1 (Internet de les Coses) i M09UF2 (Processos i fils).&lt;br /&gt;
&lt;br /&gt;
=== InfluxDB v2.0 ===&lt;br /&gt;
* Instal·lació de la base de dades temporal a la [http://binefa.com/index.php?title=DAM_2020-2021#Actualitzaci.C3.B3_de_la_m.C3.A0quina_virtual màquina virtual Linux]&lt;br /&gt;
[https://docs.influxdata.com/influxdb/v2.0/get-started/ Instal·lació d'InfluxDB 2.0] i [https://portal.influxdata.com/downloads/ lloc de descàrregues]&lt;br /&gt;
&lt;br /&gt;
 curl -s https://repos.influxdata.com/influxdb2.key | gpg --import -&lt;br /&gt;
 wget -qO- https://repos.influxdata.com/influxdb2.key | sudo apt-key add -&lt;br /&gt;
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-linux-amd64.tar.gz.asc&lt;br /&gt;
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-amd64.deb&lt;br /&gt;
 sudo dpkg -i influxdb2-2.0.4-amd64.deb&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat ha de sortir:&lt;br /&gt;
 ...&lt;br /&gt;
 Setting up influxdb2 (2.0.4) ...&lt;br /&gt;
 Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service.&lt;br /&gt;
 Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configuració a la nova màquina virtual:&lt;br /&gt;
 InfluxDB : ecat / clotfje1234&lt;br /&gt;
 Organization Name: Clot&lt;br /&gt;
 Bucket Name: api/v2/query&lt;br /&gt;
&lt;br /&gt;
* Escriptura i lectura de dades des del NodeRed a Influx DB v2.0&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/escripturaInfluxDB.nodered.txt Escriptura de dades múltiple des del NodeRed]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/lecturaInfluxDB.nodered.txt Lectura de dades múltiple des del NodeRed]&lt;br /&gt;
&lt;br /&gt;
=== Grafana ===&lt;br /&gt;
* Instal·lació de l'aplicació web de visualització de dades a la [http://binefa.com/index.php?title=DAM_2020-2021#Actualitzaci.C3.B3_de_la_m.C3.A0quina_virtual màquina virtual Linux]&lt;br /&gt;
[https://grafana.com/grafana/download?platform=linux Descàrrega de Grafana]&lt;br /&gt;
&lt;br /&gt;
* Posada en marxa&lt;br /&gt;
Recàrrega dels serveis dimoni:&lt;br /&gt;
 '''sudo systemctl daemon-reload'''&lt;br /&gt;
&lt;br /&gt;
Feu que arrenqui el servei quan poseu en marxa la màquina virtual:&lt;br /&gt;
 '''sudo systemctl enable grafana-server'''&lt;br /&gt;
&lt;br /&gt;
Poseu el servei en marxa:&lt;br /&gt;
 '''sudo systemctl start grafana-server'''&lt;br /&gt;
&lt;br /&gt;
Verifiqueu l'estat del servei:&lt;br /&gt;
 '''systemctl status grafana-server'''&lt;br /&gt;
&lt;br /&gt;
* Primer accés&lt;br /&gt;
 admin / admin&lt;br /&gt;
&lt;br /&gt;
Us demanarà un canvi de la contrasenya d'administració. A la nova màquina virtual és:&lt;br /&gt;
 admin / clotfje1234&lt;br /&gt;
&lt;br /&gt;
* Configuració de Grafana per rebre dades d'InfluxDB mitjançant Flux&lt;br /&gt;
[https://docs.influxdata.com/influxdb/v2.0/tools/grafana/ Configure Grafana to use Flux]&lt;br /&gt;
&lt;br /&gt;
* Ús de les dades d'InfluxDB a Grafana&lt;br /&gt;
[https://grafana.com/docs/grafana/latest/datasources/influxdb/ Using InfluxDB in Grafana]&lt;br /&gt;
&lt;br /&gt;
 from(bucket: &amp;quot;api/v2/query&amp;quot;)&lt;br /&gt;
 |&amp;gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exercici de prova  ===&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/escripturaUnaDadaAleatoriaInfluxDB.nodered.txt Flux NodeRED d'escriptura d'una dada aleatòria a InfluxDB] a l'organització '''Clot''' al ''bucket'' '''aleatori/v1'''&lt;br /&gt;
&lt;br /&gt;
Codi Flux per a la graficació a Grafana:&lt;br /&gt;
 from(bucket: &amp;quot;aleatori/v1&amp;quot;)&lt;br /&gt;
 |&amp;gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)&lt;br /&gt;
&lt;br /&gt;
=== Serveis (Processos) ===&lt;br /&gt;
* Per saber si el servei està en marxa:&lt;br /&gt;
 systemctl status influxd&lt;br /&gt;
&lt;br /&gt;
* Per a engegar un servei&lt;br /&gt;
 sudo systemctl start influxd&lt;br /&gt;
&lt;br /&gt;
* Per a aturar un servei&lt;br /&gt;
 sudo systemctl stop influxd&lt;br /&gt;
&lt;br /&gt;
* Per a fer que el servei s'engegui a l'iniciar el sistema:&lt;br /&gt;
 sudo systemctl enable influxd&lt;br /&gt;
&lt;br /&gt;
* Per a fer que el servei deixi d'engeggar-se a l'iniciar el sistema:&lt;br /&gt;
 sudo systemctl disable influxd&lt;br /&gt;
&lt;br /&gt;
* Llista els serveis que arrenquen (enable) a l'iniciar el sistema:&lt;br /&gt;
 systemctl list-unit-files --type=service | grep influx&lt;br /&gt;
&lt;br /&gt;
* Per a veure els ports TCP / UDP dels serveis:&lt;br /&gt;
 sudo netstat -aputn&lt;br /&gt;
Sense sudo no es veu el nom del procés.&lt;br /&gt;
&lt;br /&gt;
=== Més teoria ===&lt;br /&gt;
[https://www.grafanacon.org/2019/presentations/Grafana_Flux_JTL.pdf Grafana &amp;amp; Flux. New Flux support in Grafana] by Jacob Lisi @JacobLisi&lt;br /&gt;
&lt;br /&gt;
== 20210225 ('''Examen final del M07UF1'''. Part de QML amb IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210225_ex_M07UF1ord/ Accés a l'examen en format pdf, odt i el material comprimit necessari per a desenvolupar-lo]&lt;br /&gt;
&lt;br /&gt;
== 20210222 (QML / IoT, 2h síncrona) ==&lt;br /&gt;
Darrer dia abans de l'examen de final de la UF1 del M07.&lt;br /&gt;
&lt;br /&gt;
Resolució de dubtes.&lt;br /&gt;
&lt;br /&gt;
== 20210219 (QML / IoT, 2h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210219_qml/ Alguns codis comentats avui] fent servir '''comportaments elàstics''' (''easing'').&lt;br /&gt;
&lt;br /&gt;
Comentem la importància del centratge de les imatges. Al codi comentat avui es fan servir [https://freesvg.org/vector-image-of-analog-clock dissenys vectorials lliures i oberts] aconseguits a [https://freesvg.org https://freesvg.org]&lt;br /&gt;
&lt;br /&gt;
Seguim amb els [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210218 (QML / IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210218_qml/ Alguns codis comentats avui] fent servir '''comportaments elàstics''' (''easing'').&lt;br /&gt;
&lt;br /&gt;
Seguim amb els [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210212 (QML, 2h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210212_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/qmlexporter/ QmlExporter]&lt;br /&gt;
&lt;br /&gt;
== 20210211 (QML, 3h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210211_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Recordeu-vos de canviar l''''SSID''' i '''contrasenya''' de la connexió sense fils, per adaptar-la a casa vostra.&lt;br /&gt;
&lt;br /&gt;
Recordeu-vos de personalitzar '''#define MAC_PLACA &amp;quot;'''xxxxxxxxxxx'''&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== 20210208 (QML, 1h presencial) ==&lt;br /&gt;
Microprogramari [https://binefa.cat/dam2021/20210208_qml_iot/IoT-02_mqtts_10_dam.zip IoT-02_mqtts_10_dam.zip] per a la placa IoT-02 per a provar els exercicis 7 i 8 dels [[Exercicis de QML]].&lt;br /&gt;
&lt;br /&gt;
[[Guia per a desenvolupar l'ex07 dels exercicis de QML]] fent servir senyals. Us pot ajudar per a la vostra implementació fent servir '''propietats'''.&lt;br /&gt;
&lt;br /&gt;
== 20210205 (QML, 2h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210205_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
=== Actualització de la màquina virtual ===&lt;br /&gt;
* [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-debian-10 Instal·lació de MQTT amb contrasenya]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/nodesource/distributions/blob/master/README.md Instal·lació de node i npm]&lt;br /&gt;
 ecat@iot-ecat:~$ '''sudo bash'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''curl -sL https://deb.nodesource.com/setup_14.x | bash -'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''apt install -y nodejs'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''exit'''&lt;br /&gt;
 ecat@iot-ecat:~$ '''node --version'''&lt;br /&gt;
 v14.15.4&lt;br /&gt;
 ecat@iot-ecat:~$ '''npm -- version'''&lt;br /&gt;
 6.14.10&lt;br /&gt;
&lt;br /&gt;
* Instal·lació i funcionament del NodeRed autònom:&lt;br /&gt;
 ecat@iot-ecat:~$ '''mkdir bin'''&lt;br /&gt;
 ecat@iot-ecat:~$ '''cd bin'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''sudo apt install unzip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''mkdir nodered-ui'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''cd nodered-ui'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''wget https://binefa.cat/dam2021/20200928/node_red_ui.zip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''unzip node_red_ui.zip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''node node_modules/node-red/red.js --userDir node_modules/node-red/data --settings node_modules/node-red/settings.js -v --port 2222 --title elmeuTitol --safe flows_meuTitol.json'''&lt;br /&gt;
&lt;br /&gt;
== 20210204 (QML, 3h presencial) ==&lt;br /&gt;
Al disc dur que us passaré hi ha dues màquines virtuals (''andro_8.1-r4-VM-32bit.7z'' de 543,8 MB i ''IoT - eCat - Debian 11.x 64-bit _v20210202_00.zip'' de 19,0 GB) al directori ''maquinesVirtuals/Android_i_Qt''&lt;br /&gt;
&lt;br /&gt;
=== Màquina virtual amb emulador per a Android ===&lt;br /&gt;
El darrer dia va haver dos talls de llum. Van assistir a classe 6 alumnes. Els hi vaig passar una màquina virtual amb un emulador d'Android ('''Android-x86 8.1-R4 Oreo'''). Els que no vau assistir el darrer dia, '''porteu instal·lada''' [https://www.osboxes.org/android-x86/ la màquina virtual de l'emulador d'Android].&lt;br /&gt;
&lt;br /&gt;
És important que aquesta màquina virtual estigui configurada amb:&lt;br /&gt;
* Connexió pont (''bridge'' i no ''NAT'')&lt;br /&gt;
* Memòria mínima de 2GB&lt;br /&gt;
&lt;br /&gt;
=== Màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android ===&lt;br /&gt;
[http://popotamo.binefa.cat/iot/maqVirt/IoT%20-%20eCat%20-%20Debian%2011.x%2064-bit%20_v20210202_00.zip Adreça de descàrrega de la màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android]&lt;br /&gt;
&lt;br /&gt;
Avui us passaré, comprimida a 19GB, una màquina virtual basada en Debian 11 (a hores d'ara, Debian 11 és en fase de ''testing'') amb els següents programes ja instal·lats i preparats per a funcionar:&lt;br /&gt;
&lt;br /&gt;
* Android Studio&lt;br /&gt;
* QtCreator amb la darrera Qt5 LTS i les Qt6&lt;br /&gt;
* Biblioteca qtMqtt preparada per a funcionar a l'escriptori i a Android amb les Qt6&lt;br /&gt;
&lt;br /&gt;
Configuració de la màquina virtual:&lt;br /&gt;
* L'usuari per defecte és '''ecat''' (''eCat'')&lt;br /&gt;
* La contrasenya de l'usuari '''ecat''' és '''clotfje''' (''ecat'' és membre del grup d'usuaris ''sudo'' i ''dialout''). Almenys a l'hora de passar-vos la màquina virtual. És aconsellable que canvieu la vostra contrasenya d'accés.&lt;br /&gt;
* És aconsellable tenir la connexió de xarxa en connexió pont (''bridge''). Però no cal per a connectar-ho amb l'emulador d'Android amb màquina virtual. Sí que caldria per a tenir accés extern al ''broker'' MQTT i al NodeRED (no instal·lats en aquesta primera versió).&lt;br /&gt;
* Memòria mínima de 4GB&lt;br /&gt;
&lt;br /&gt;
=== Connectant les dues màquines virtuals ===&lt;br /&gt;
* Trobeu quina IP té la màquina virtual amb l'emulador d'Android (a l'explicació faré servir com a IP de l'emulador '''172.20.''xy''.''xyz''''').&lt;br /&gt;
* Obriu un terminal a la màquina virtual amb Debian 11:&lt;br /&gt;
 ecat@iot-ecat:~$ '''cd Android/Sdk/platform-tools/'''&lt;br /&gt;
 ecat@iot-ecat:~/Android/Sdk/platform-tools$ '''./adb connect 172.20.''xy''.''xyz'':5555'''&lt;br /&gt;
 * daemon not running; starting now at tcp:5037&lt;br /&gt;
 * daemon started successfully&lt;br /&gt;
 connected to 172.20.25.152:5555&lt;br /&gt;
 ecat@iot-ecat:~/Android/Sdk/platform-tools$ '''./adb shell'''&lt;br /&gt;
 x86:/ $&lt;br /&gt;
* Obriu el Qt Creator (premeu la supertecla -aquella amb el símbol d'una finestra propietària- i escriviu-hi Qt). Feu un exemple simple de QML (per exemple el del ''swipe''). Seleccioneu les Qt6 per a escriptori i Android x86 (amb l'opció ''Release'' i sense ''Debug'' ni ''Profile''). Aneu a ''Tools'' / ''Options'' / ''Devices'' i verifiqueu que no hi dóna cap error de configuració (és possible que al principi surtin marques vermelles, però al cap de pocs segons se'n van). Assegureu-vos que compilareu per Android i feu ''Play'' al projecte de les Qt. Seleccioneu el dispositiu compatible ''VMware Virtual Platform''. I premeu al botó ''OK''.&lt;br /&gt;
* Al cap de pocs segons hi apareix el programa bàsic ''swipe'' a l'emulador sobre màquina virtual. El podeu aturar prement el botó quadrat vermell d'''Application Output''.&lt;br /&gt;
&lt;br /&gt;
=== MQTT i MQTTS ===&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=MQTT_i_MQTTS MQTT_i_MQTTS]&lt;br /&gt;
&lt;br /&gt;
== 20210201 (QML, 1h presencial) ==&lt;br /&gt;
&lt;br /&gt;
[https://www.osboxes.org/android-x86/ Emulador d'Android a una màquina virtual]&lt;br /&gt;
&lt;br /&gt;
Aneu amb cura, malgrat és obsolet quelcom es pot fer servir en part: [https://visualgdb.com/tutorials/android/vmware/ Using VMWare to replace the slow Android Emulator]&lt;br /&gt;
&lt;br /&gt;
* Poseu en marxa la màquina virtual (connexió pont -''bridge'' i no ''NAT''-) i cerqueu la IP del dispositiu Android virtualitzat. Connecteu-vos-hi:&lt;br /&gt;
&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''cd Android/Sdk/platform-tools/'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Android/Sdk/platform-tools$ '''./adb connect 172.20.''xy''.''xyz'':5555'''&lt;br /&gt;
 * daemon not running; starting now at tcp:5037&lt;br /&gt;
 * daemon started successfully&lt;br /&gt;
 connected to 172.20.''xy''.''xyz'':5555&lt;br /&gt;
 jordi@ecat-XPS13:~/Android/Sdk/platform-tools$ '''./adb shell'''&lt;br /&gt;
 x86:/ $&lt;br /&gt;
&lt;br /&gt;
* Aneu al QtCreator, compileu i executeu una aplicació per a Android. Us sortirà a la llista de dispositius compatibles la màquina virtual emulant Android.&lt;br /&gt;
&lt;br /&gt;
== 20210129 (QML, 2h presencial) ==&lt;br /&gt;
Comencem per l'exercici '''ex06_07''' dels [[Exercicis de QML]] (Vídeo 7/10 a [[Vídeos QML]])&lt;br /&gt;
&lt;br /&gt;
== 20210128 (QML, 3h síncrona) ==&lt;br /&gt;
'''Avui, abans de començar la classe, s'han d'haver tramès per correu electrònic els exercicis ex01, ex02, ex03, ex04 i ex05 dels [[Exercicis de QML]]''', seguint les indicacions a la capçalera de la pàgina.&lt;br /&gt;
&lt;br /&gt;
'''Acabem l'exercici 6 de la col·lecció''' dels [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
=== Millores de codi ===&lt;br /&gt;
Aquest codi:&lt;br /&gt;
    Connections {&lt;br /&gt;
        target: appCore // Specify the target to connect&lt;br /&gt;
        '''onSendToQml: {'''&lt;br /&gt;
            p1.etiqueta.text = count // Set the counter to the text label&lt;br /&gt;
            // count &amp;lt;-- Mateix nom que al senyal void sendToQml(int count);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
Provoca aquest avís (''warning''):&lt;br /&gt;
 qrc:/main.qml:13:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(&amp;lt;arguments&amp;gt;) { ... }&lt;br /&gt;
&lt;br /&gt;
I aquesta és la solució que s'aconsella actualment:&lt;br /&gt;
    Connections {&lt;br /&gt;
        target: appCore // Specify the target to connect&lt;br /&gt;
        '''function onSendToQml(count){'''&lt;br /&gt;
            p1.etiqueta.text = count // Set the counter to the text label&lt;br /&gt;
            // count &amp;lt;-- Mateix nom que al senyal void sendToQml(int count);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
=== ProgressBar a QML per a Qt6 ===&lt;br /&gt;
La propietat de valor màxim ha desaparegut a les Qt6&lt;br /&gt;
    ProgressBar {&lt;br /&gt;
        id: progressBar&lt;br /&gt;
        y: 189&lt;br /&gt;
        value: ''50''&lt;br /&gt;
        '''//maximumValue: 100'''&lt;br /&gt;
        anchors.right: parent.right&lt;br /&gt;
        anchors.rightMargin: 20&lt;br /&gt;
        anchors.left: parent.left&lt;br /&gt;
        anchors.leftMargin: 20&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
A Qt 6 el valor màxim està a 1.0, per tant:&lt;br /&gt;
    ProgressBar {&lt;br /&gt;
        id: progressBar&lt;br /&gt;
        y: 189&lt;br /&gt;
        '''value: 0.5'''&lt;br /&gt;
        anchors.right: parent.right&lt;br /&gt;
        anchors.rightMargin: 20&lt;br /&gt;
        anchors.left: parent.left&lt;br /&gt;
        anchors.leftMargin: 20&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
i al '''main.qml''' de [https://binefa.cat/training/qml/01_qmlLliscant_10.zip 01_qmlLliscant_10]:&lt;br /&gt;
&lt;br /&gt;
        function actualitzaBarraDeProgres(n){&lt;br /&gt;
            l01.progressBar.value = '''n/100'''; // Originàriament hi havia '''n'''&lt;br /&gt;
            l01.text1.text = n; // canvieu element1 per text1 a l'editor QML&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/qml/01_qmlLliscant_10_qt6.zip '''Codi actualitzat per a Qt6: 01_qmlLliscant_10_qt6''']&lt;br /&gt;
&lt;br /&gt;
A l'arxiu '''main.cpp''' també he afegit un ''#if / #endif'' per a verificar si el codi és previ a les Qt6.0.0:&lt;br /&gt;
 '''#if QT_VERSION &amp;lt; QT_VERSION_CHECK(6, 0, 0)'''&lt;br /&gt;
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);&lt;br /&gt;
 '''#endif'''&lt;br /&gt;
&lt;br /&gt;
== 20210125 (QML, 1h presencial) ==&lt;br /&gt;
=== Connexió entre el frontal QML i el rerefons en C++ ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210121_qml/qmlEd01.zip Exemple de connexió entre el frontal QML i el rerefons en C++] (El codi de connexió és basat en [https://evileg.com/en/post/569/ QML - Tutorial 036. Working with Signals and Slots in QML]).&lt;br /&gt;
&lt;br /&gt;
Aquí teniu alguns [[Vídeos QML]] que guien pas a pas la connexió entre el frontal i el rerefons.&lt;br /&gt;
&lt;br /&gt;
'''Comenceu l'exercici 6 de la col·lecció''' [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210122 (QML, 2h síncrona) ==&lt;br /&gt;
* Ajuda per a fer els '''ex04''' i '''ex05''' dels [[Exercicis de QML]]:&lt;br /&gt;
    MqttClient {&lt;br /&gt;
        id: client&lt;br /&gt;
        hostname: hostnameField.text&lt;br /&gt;
        port: portField.text&lt;br /&gt;
        '''username: userField.text'''&lt;br /&gt;
        '''password: pwdField.text'''&lt;br /&gt;
    }&lt;br /&gt;
Modifiqueu el broker per un que faci servir usuari i contrasenya:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: hostnameField&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;rubi.xoic.coop&amp;quot;'''&lt;br /&gt;
            placeholderText: &amp;quot;&amp;lt;Enter host running MQTT broker&amp;gt;&amp;quot;&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Afegiu l'etiqueta d'usuari:&lt;br /&gt;
        Label {&lt;br /&gt;
            text: '''&amp;quot;Usuari:&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Al camp de text d'usuari, poseu el nom d'usuari per defecte:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: '''userField'''&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;rubi&amp;quot;'''&lt;br /&gt;
            placeholderText: '''&amp;quot;&amp;lt;Usuari&amp;gt;&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Afegiu l'etiqueta de contrasenya:&lt;br /&gt;
        Label {&lt;br /&gt;
            text: '''&amp;quot;Contrasenya:&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Al camp de text de la contrasenya, poseu la contrasenya per defecte:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: '''pwdField'''&lt;br /&gt;
            '''echoMode: TextInput.Password'''&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;iotRubi&amp;quot;'''&lt;br /&gt;
            placeholderText: '''&amp;quot;&amp;lt;Contrasenya&amp;gt;&amp;quot;'''&lt;br /&gt;
            passwordCharacter: '''&amp;quot;x&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Proveu les dues aplicacions a l'escriptori i al dispositiu Android. &lt;br /&gt;
&lt;br /&gt;
Proveu un altre ''broker'' que també faci servir usuari i contrasenya.&lt;br /&gt;
&lt;br /&gt;
Proveu si funciona a un ''broker'' que no faci servir usuari i contrasenya&lt;br /&gt;
&lt;br /&gt;
== 20210121 (QML, 3h presencial) ==&lt;br /&gt;
=== Un tutorial curt de QML ===&lt;br /&gt;
[https://doc.qt.io/qt-5/qml-tutorial1.html Un tutorial amb tres exemples de codi QML] ([https://binefa.cat/dam2021/20210121_qml/qmlTut01_03.zip Els tres codis del tutorial curt]).&lt;br /&gt;
&lt;br /&gt;
Seguint amb el tema dels '''estats''', baixeu-vos i executeu l'[https://binefa.cat/dam2021/20210121_qml/qmlState01.zip exemple qmlState01 d'estats en QML] i l'[https://binefa.cat/dam2021/20210121_qml/qmlState02.zip exemple qmlState02 d'estats en QML] (Basats en la [https://doc.qt.io/qt-5/qml-qtquick-state.html documentació sobre estats de les Qt]).&lt;br /&gt;
&lt;br /&gt;
=== Bucles de vinculació ===&lt;br /&gt;
Què són els [http://binefa.com/index.php?title=DAM_2020-2021#Bucles_de_vinculaci.C3.B3_2 bucles de vinculació] (''binding loops'')?&lt;br /&gt;
&lt;br /&gt;
=== Connexió entre el frontal QML i el rerefons en C++ ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210121_qml/qmlEd01.zip Exemple de connexió entre el frontal QML i el rerefons en C++] (El codi de connexió és basat en [https://evileg.com/en/post/569/ QML - Tutorial 036. Working with Signals and Slots in QML]).&lt;br /&gt;
&lt;br /&gt;
Aquí teniu alguns [[Vídeos QML]] que guien pas a pas la connexió entre el frontal i el rerefons.&lt;br /&gt;
&lt;br /&gt;
'''Comenceu l'exercici 6 de la col·lecció''' [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació de '''QtMqtt per Android''' ===&lt;br /&gt;
Malgrat que ja us funcioni la biblioteca QtMqtt en programes d'escriptori, heu de fer la compilació de la biblioteca QtMqtt per a la versió de Qt/QML que feu servir per a poder executar programes que duguin aquesta biblioteca a Android.&lt;br /&gt;
&lt;br /&gt;
Hi ha diversos suggeriments de com fer-ho. Després de diversos intents, aquest és el sistema que a mi m'ha funcionat:&lt;br /&gt;
&lt;br /&gt;
Cerqueu el directori '''lib''' de la vostra distribució Qt per a '''Android x86''':&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''/home/jordi/Qt/6.0.0/android_x86/bin/qmake -query QT_INSTALL_LIBS'''&lt;br /&gt;
 /home/jordi/Qt/6.0.0/android_x86/lib&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~$ '''/home/ecat/Qt/6.0.0/android_armv7/bin/qmake -query QT_INSTALL_LIBS'''&lt;br /&gt;
 /home/ecat/Qt/6.0.0/android_armv7/lib&lt;br /&gt;
Aneu a la carpeta que ens retorna l'ordre anterior ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''cd /home/jordi/Qt/6.0.0/android_x86/lib'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~$ cd /home/ecat/Qt/6.0.0/android_armv7/lib&lt;br /&gt;
I feu el procés d'instal·lació ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''cd qtmqtt/'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''git checkout 6.0'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''rm -r examples/'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''cd qtmqtt/'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''git checkout 6.0'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ rm -r examples/&lt;br /&gt;
Per a '''Android x86''', mitjançant el '''Qt Creator''' obriu el projecte /home/jordi/Qt/6.0.0/android_x86/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake'''&lt;br /&gt;
&lt;br /&gt;
Per a '''Android ARM''', mitjançant el '''Qt Creator''' obriu el projecte /home/ecat/Qt/6.0.0/android_armv7/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake'''&lt;br /&gt;
&lt;br /&gt;
Torneu al terminal d'abans i feu ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''make'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''sudo make install'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''make'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''sudo make install'''&lt;br /&gt;
Copieu, fora de la ruta de les Qt, els projectes d'exemple [https://binefa.cat/dam2021/20210121_qml/quickpublication.zip '''quickpublication'''] i [https://binefa.cat/dam2021/20210121_qml/quicksubscription.zip '''quicksubscription''']. Obriu els dos projectes per a que puguin ser executats des de l'escriptori i des del mòbil (emulat o no). Per a verificar llur funcionament, podeu executar un projecte al dispositiu mòbil i l'altre a l'escriptori.&lt;br /&gt;
&lt;br /&gt;
=== En cas de no poder actualitzar l'editor de QML ===&lt;br /&gt;
Si us surt el missatge '''Qt Quick emulator layer crash''' i no s'actualitza el visor QML, però podeu editar l'arxiu en mode text, haureu d'anar al menú:&lt;br /&gt;
 &lt;br /&gt;
 Tools / Options... / Qt Quick / Qt Quick Designer&lt;br /&gt;
&lt;br /&gt;
i canvieu la selecció '''Use fallback QML emulation layer''' per '''Use QML emulation layer that is built with the selected Qt''', deixant buit el ''Top level build path:''. Quan torneu a editar des de l'editor QML es farà una recompilació del visor (sigueu pacients i deixeu acabar tot el procés).&lt;br /&gt;
&lt;br /&gt;
== 20210118 (QML, 1h presencial) ==&lt;br /&gt;
=== Seguim amb QML ===&lt;br /&gt;
El darrer dia es va recomanar veure els tres primers capítols dels vídeos de KDAB sobre QML.&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210118_qml/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML] dels [https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc vídeos de KDAB]&lt;br /&gt;
&lt;br /&gt;
=== qml_02_kdab ===&lt;br /&gt;
==== Ancoratge ====&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors.qml anchors.qml:]&lt;br /&gt;
[[Image:00_anchors.png|center|anchors.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors2.qml anchors2.qml:]&lt;br /&gt;
[[Image:01_anchors2.png|center|anchors2.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-centerin-parent-keyword.qml anchors-centerin-parent-keyword.qml:]&lt;br /&gt;
[[Image:02_anchors-centerin-parent-keyword.png|center|anchors-centerin-parent-keyword.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-expanding.qml anchors-expanding.qml:]&lt;br /&gt;
[[Image:03_anchors-expanding.png|center|anchors-expanding.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-fill.qml anchors-fill.qml:]&lt;br /&gt;
[[Image:04_anchors-expanding.png|center|anchors-fill.qml]]&lt;br /&gt;
&lt;br /&gt;
==== Bucles de vinculació ====&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-binding-loop/main.qml Bucles de vinculació (''binding loop'')]&lt;br /&gt;
&lt;br /&gt;
Exemple de bucle de vinculació:&lt;br /&gt;
 import QtQuick 2.0&lt;br /&gt;
 &lt;br /&gt;
 Rectangle {&lt;br /&gt;
    color: &amp;quot;black&amp;quot;&lt;br /&gt;
    '''width: child.width'''&lt;br /&gt;
    '''height: child.width'''&lt;br /&gt;
 &lt;br /&gt;
    Image {&lt;br /&gt;
        '''id: child'''&lt;br /&gt;
        source : &amp;quot;../images/vertical-gradient.png&amp;quot;&lt;br /&gt;
        '''anchors.fill: parent'''&lt;br /&gt;
        anchors.margins: 5&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Una solució per a evitar bucles de vinculació:&lt;br /&gt;
 import QtQuick 2.0&lt;br /&gt;
 &lt;br /&gt;
 Rectangle {&lt;br /&gt;
    color: &amp;quot;black&amp;quot;&lt;br /&gt;
    '''implicitWidth: child.implicitWidth'''&lt;br /&gt;
    '''implicitHeight: child.implicitWidth'''&lt;br /&gt;
 &lt;br /&gt;
    Image {&lt;br /&gt;
        '''id: child'''&lt;br /&gt;
        source : &amp;quot;../images/vertical-gradient.png&amp;quot;&lt;br /&gt;
        '''anchors.fill: parent'''&lt;br /&gt;
        anchors.margins: 5&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20210115 (QML, 1h síncrona) ==&lt;br /&gt;
=== '''Connectem Qt/QML a Android''' ===&lt;br /&gt;
* Obriu l'Android Studio i virtualitzeu un telèfon mòbil d'arquitectura x86 (molt més ràpid que virtualitzar un ARM):&lt;br /&gt;
 jordi@ecat-XPS13:/opt/android-studio/bin$ ./studio.sh&lt;br /&gt;
&lt;br /&gt;
* Feu un nou projecte '''Application (Qt Quick)''' / '''Qt Quick Application - Swipe'''.&lt;br /&gt;
&lt;br /&gt;
* Anomeneu i deseu el projecte. Per exemple amb el nom '''prMobil00'''&lt;br /&gt;
&lt;br /&gt;
* Seleccioneu els kits d'Android i d'escriptori, seleccionant l'opció '''release'''. Per exemple: '''Android Qt 6.0.0 Clang x86''' i '''Desktop Qt 6.0.0 GCC 64bit'''&lt;br /&gt;
&lt;br /&gt;
* Proveu que us funciona amb la versió d'escriptori&lt;br /&gt;
&lt;br /&gt;
* Proveu que us funciona amb la versió d'Android virtualitzat. Quan ho executeu heu de seleccionar a quin dispositiu virtual ho voleu fer córrer.&lt;br /&gt;
&lt;br /&gt;
=== Seguim amb QML ===&lt;br /&gt;
Es recomana veure els tres primers capítols dels vídeos de KDAB sobre QML.&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210115_qml/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML] dels [https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc vídeos de KDAB]&lt;br /&gt;
&lt;br /&gt;
== 20210112 (QML, 3h presencial) ==&lt;br /&gt;
[https://qmlbook.github.io/ Accés al llibre de Qt/QML en línia]&lt;br /&gt;
&lt;br /&gt;
Execució de codis QML des del terminal:&lt;br /&gt;
 /home/jordi/Qt/5.15.2/gcc_64/bin/qmlscene showcase.qml&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210112_qml/ Exemples treballats avui]&lt;br /&gt;
&lt;br /&gt;
'''Exercicis QML''':&lt;br /&gt;
&lt;br /&gt;
* ex1) Feu un programa en QML que al principi hi surti un quadrat vermell centrat. Al prémer la tecla B hi sortirà de color blau, al prémer la tecla G hi sortirà de color verd i al prémer la tecla R torna a ser vermell.&lt;br /&gt;
&lt;br /&gt;
* ex2) Feu un programa en QML a on hi aparegui centrat, horitzontalment i vertical, ben gros i en negreta el nom '''Escola del Clot'''. Al prémer la tecla + la lletra es farà més grossa. I al prémer la tecla - la lletra es farà més petita.&lt;br /&gt;
&lt;br /&gt;
* ex3) Feu un programa que hi surti el text, centrat a la finestra, &amp;quot;Comptador: 0&amp;quot; de color vermell. Al prémer el botó + incrementarà el valor del comptador, i al prémer el botó '-' es decrementarà. Al prémer la tecla N el text serà de color negre i al prémer V tornarà a ser de color vermell.&lt;br /&gt;
&lt;br /&gt;
== 20210111 (QML, 1h síncrona) ==&lt;br /&gt;
A partir dels [http://zetcode.com/gui/qtquick/ exemples en QML d'en Jan Bodnar] fem servir el Qt Creator per a executar-los.&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210111_qml/ Exemples treballats avui]&lt;br /&gt;
&lt;br /&gt;
== 20201221 (IoT, 1h síncrona) ==&lt;br /&gt;
S'acaba el termini de lliurament de pràctiques desenvolupades fins les festes de Nadal.&lt;br /&gt;
&lt;br /&gt;
Les dues darreres:&lt;br /&gt;
* Control de la placa IoT-02 mitjançant Telegram&lt;br /&gt;
&lt;br /&gt;
* Publicació de dades del sensor BM280 de la placa IoT-02 a Mastodon&lt;br /&gt;
&lt;br /&gt;
== 20201218 (IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201218_iot/ Codis d'avui i material d'ajuda per a fer l'exercici]&lt;br /&gt;
&lt;br /&gt;
* Mastodon, una alternativa lliure a Twitter&lt;br /&gt;
&lt;br /&gt;
No totes les instàncies de [https://ca.wikipedia.org/wiki/Mastodon_(xarxa_social) Mastodon] faciliten la instal·lació de ''bots''. Per a fer els primers passos us recomano aquesta [https://botsin.space/ instància pensada per a hostatjar ''bots'' de Mastodon] ('''tal i com es va demanar el dia anterior, heu d'haver demanat les credencials a la instància de Mastodon [https://botsin.space/ botsin.space] amb molta antelació. Si ho sol·liciteu avui mateix no podreu seguir la classe''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://botsin.space/@siarq_sensors Exemple de bot de Mastodon] per a fer lectures de sensors cada hora.&lt;br /&gt;
&lt;br /&gt;
[https://gist.github.com/aparrish/661fca5ce7b4882a8c6823db12d42d26 Getting credentials for the Mastodon API with Mastodon.py, step by step]&lt;br /&gt;
&lt;br /&gt;
* '''Exercici''':&lt;br /&gt;
&lt;br /&gt;
Publiqueu la temperatura, humitat relativa i pressió atmosfèrica llegides per la vostra placa IoT-02 i les publiqueu a Mastodon mitjançant NodeRED.&lt;br /&gt;
&lt;br /&gt;
Feu un informe de com ho heu programat i captures de llur funcionament.&lt;br /&gt;
&lt;br /&gt;
== 20201215 (IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201215_iot/ Alguns codis d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Autenticació d'accés a NodeRED ===&lt;br /&gt;
[https://nodered.org/docs/user-guide/runtime/securing-node-red Securing NodeRED]&lt;br /&gt;
&lt;br /&gt;
Generació de la contrasenya d'accés en mode hash des de la carpeta d'execució del NodeRED:&lt;br /&gt;
 node node_modules/node-red/red.js admin hash-pw&lt;br /&gt;
&lt;br /&gt;
En aquest exemple fem servir aquesta contrasenya en mode hash:&lt;br /&gt;
 '''$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq'''&lt;br /&gt;
&lt;br /&gt;
Edició de '''settings.js''':&lt;br /&gt;
 toni@vps-10d8edcd:~/bin/nodered$ nano ./node_modules/node-red/settings.js&lt;br /&gt;
&lt;br /&gt;
    // Securing Node-RED&lt;br /&gt;
    // -----------------&lt;br /&gt;
    // To password protect the Node-RED editor and admin API, the following&lt;br /&gt;
    // property can be used. See http://nodered.org/docs/security.html for details.&lt;br /&gt;
    adminAuth: {&lt;br /&gt;
        type: &amp;quot;credentials&amp;quot;,&lt;br /&gt;
        users: [{&lt;br /&gt;
            username: &amp;quot;'''toni'''&amp;quot;,&lt;br /&gt;
            password: &amp;quot;'''$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq'''&amp;quot;,&lt;br /&gt;
            permissions: &amp;quot;*&amp;quot;&lt;br /&gt;
        }]&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
Un cop fets el canvis '''cal reiniciar el NodeRED'''.&lt;br /&gt;
&lt;br /&gt;
=== '''Telegram''' ===&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Bot_de_Telegram Bot de Telegram]&lt;br /&gt;
&lt;br /&gt;
* Creació de bots amb BotFather&lt;br /&gt;
&lt;br /&gt;
* Instal·lació de nodes de Telegram a NodeRED (afegiu els nodes '''node-red-contrib-telegrambot''')&lt;br /&gt;
&lt;br /&gt;
* Interacció amb un usuari de Telegram&lt;br /&gt;
&lt;br /&gt;
* Interacció amb un grup de Telegram&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/adtelecom/20201209/ Material per a fer el bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201215_iot/provantBotTelegram.txt Flux de prova per al bot de Telegram]&lt;br /&gt;
&lt;br /&gt;
=== '''Deures pel proper dia''' ===&lt;br /&gt;
&lt;br /&gt;
Feu-vos membres d'aquesta instància de Mastodon: [https://botsin.space/ botsin.space]&lt;br /&gt;
&lt;br /&gt;
'''Feu-ho amb prou antelació''', és possible que trigui més de tres hores a donar-vos accés.&lt;br /&gt;
&lt;br /&gt;
== 20201211 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201211_qt_iot/notes_1rT_v2.png Notes del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
Comentarem dubtes de la darrera pràctica.&lt;br /&gt;
&lt;br /&gt;
Es demana de dur instal·lat Telegram al telèfon mòbil per a la propera classe del 14 de desembre de 2020.&lt;br /&gt;
&lt;br /&gt;
== 20201204 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201204_qt_iot/notes_1rT.png Notes provisionals del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201204_qt_iot/20201201_exQt_IoT_01.pdf Desenvolupem com a pràctica puntuable la resolució dels exercicis 5, 6 i 7] (Trameteu per separat P5, P6 i P7)&lt;br /&gt;
&lt;br /&gt;
== 20201201 '''Examen 1r trimestre''' ==&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201201_qt_iot_Ex1rT/enunciat/ Enunciat de l'examen del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201201_qt_iot_Ex1rT/pr20201201.png Notes provisionals de les pràctiques a 1 de desembre de 2020]&lt;br /&gt;
&lt;br /&gt;
== 20201130 (dubtes i Qt, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201130_qt_iot/ Codis d'avui] (Senyals, osques, agrupacions i connexions)&lt;br /&gt;
&lt;br /&gt;
== 20201127 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
Revisem l'exercici proposat el darrer dia.&lt;br /&gt;
&lt;br /&gt;
== 20201124 (IoT i Qt) (3h, presencial) ==&lt;br /&gt;
[[Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201123_qt_iot/ '''Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT'''].&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201124_qt_iot/controlLeds.nodered.txt Codi de flux de NodeRED per a controlar els leds de la placa IoT-02 mitjançant un JSON]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201124_qt_iot/ledsBotonsBidireccional.nodered.txt Flux de NodeRED emprant MQTT i JSON bidireccional]&lt;br /&gt;
&lt;br /&gt;
=== Exercici amb '''la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT''' ===&lt;br /&gt;
Desenvolupeu el projecte '''15_mqtt_IoT02_03''', basant-vos en el darrer [https://binefa.cat/dam2021/20201123_qt_iot/14_mqtt_IoT02_02.zip codi de control de la placa IoT-02 en C++ per a Qt], que visualitzi en una barra de progrés el nivell de llum rebut per la LDR.&lt;br /&gt;
&lt;br /&gt;
== 20201123 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[[Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201123_qt_iot/ '''Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT'''].&lt;br /&gt;
&lt;br /&gt;
== 20201120 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
Al dia d'avui us he posat el codi per a poder visualitzar el color dels leds.&lt;br /&gt;
&lt;br /&gt;
Fent servir MQTT, feu una aplicació emprant Qt que ensenyi l'estat dels botons i dels leds de la placa IoT-02 &lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201120_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20201117 (Qt i IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201117_qt_iot/Arduino_JSON.zip Biblioteca '''Arduino_JSON''' per l'IDE d'Arduino]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201117_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
Dades encapsulades en JSON al NodeRED i a la placa IoT-02.&lt;br /&gt;
&lt;br /&gt;
=== Exercici ===&lt;br /&gt;
Desenvolupeu una aplicació GUI feta amb Qt que mitjançant el protocol MQTT:&lt;br /&gt;
* Controli els quatre leds mitjançant botons seleccionadors (''check box'')&lt;br /&gt;
&lt;br /&gt;
* Indiqui l'estat dels tres botons mitjançant etiqueta (premut / no premut)&lt;br /&gt;
&lt;br /&gt;
* Indiqui l'estat dels tres botons mitjançant etiqueta gràfica (color viu / color fosc)&lt;br /&gt;
&lt;br /&gt;
* Una barra de progrés indiqui el nivell de llum&lt;br /&gt;
&lt;br /&gt;
* Trameti missatges a la pantalla OLED (tres botons seleccionadors de mida del text)&lt;br /&gt;
&lt;br /&gt;
== 20201116 (Qt, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201116_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Exercici ===&lt;br /&gt;
Modifiqueu el codi de [https://binefa.cat/dam2021/20201116_qt_iot/simpleclient.zip MQTT's simpleclient] per a admetre usuari i contrasenya (podeu fer servir el ''broker'' '''formacio.things.cat''' amb usuari '''ecat''' i contrasenya '''clotClot''').&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/dam2021/20201116_qt_iot/simpleClient_usrPwd.png Captura de l'exercici a fer]&lt;br /&gt;
&lt;br /&gt;
= Documentació =&lt;br /&gt;
== Qt/QML ==&lt;br /&gt;
[http://zetcode.com/gui/qt5/ Qt5] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
[[Vídeos QML]]&lt;br /&gt;
&lt;br /&gt;
[https://qmlbook.github.io/ Qt5 Cadaques!] A Book about Qt5&lt;br /&gt;
&lt;br /&gt;
[http://zetcode.com/gui/qtquick/ Qt Quick tutorial] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
[http://zetcode.com/gui/pyqt5/ PyQt5] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
=== Qt for WebAssembly ===&lt;br /&gt;
[https://wiki.qt.io/Qt_for_WebAssembly Qt for WebAssembly]&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
[http://erickveil.github.io/2016/04/06/How-To-Manipulate-JSON-With-C++-and-Qt.html How To Manipulate JSON With C++ and Qt]&lt;br /&gt;
&lt;br /&gt;
=== QProcess ===&lt;br /&gt;
[https://gist.github.com/ynonp/8148340 QProcess example]&lt;br /&gt;
&lt;br /&gt;
[https://www.bogotobogo.com/Qt/Qt5_QProcess_QFileDialog_QTextEdit_FFmpeg.php Qt5 tutorial FFmpeg converter using QProcess - 2020]&lt;br /&gt;
&lt;br /&gt;
== IoT ==&lt;br /&gt;
[https://binefa.cat/IoT/nodeRed/nodeRed01.pdf Introducció al Node-RED]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/IoT/teoria/ethernetTcpUdp_00.pdf TCP/UDP Capa de transport d'Ethernet]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/IoT/teoria/mqtt_00.pdf Introducció a MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Afegint_la_targeta_ESP8266_a_l%27IDE_d%27Arduino Afegint la targeta ESP8266 a l'IDE d'Arduino] (NodeMCU1.0)&lt;br /&gt;
&lt;br /&gt;
[https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=SCADA_fent_servir_Python_QML_i_Arduino SCADA fent servir Python QML i Arduino]&lt;br /&gt;
&lt;br /&gt;
[http://silanus.fr/sin/?p=1194 MQTT avec Qt]&lt;br /&gt;
&lt;br /&gt;
= Planificació =&lt;br /&gt;
[[Distribució de M07UF1, M09UF2, M09UF3, M15UF1 i M13 al curs 2020-2021 de 2n de DAM]]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAM_2020-2021&amp;diff=3757</id>
		<title>DAM 2020-2021</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAM_2020-2021&amp;diff=3757"/>
		<updated>2021-11-05T12:48:16Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Exercici */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Horari a partir del 18 de gener =&lt;br /&gt;
[[Image:PPandGener2021_DAM2b.png|center|2n de DAM]]&lt;br /&gt;
&lt;br /&gt;
= Teleconferència del curs 2020-2021 =&lt;br /&gt;
[https://meet.google.com/wum-fjat-cow Adreça de la teleconferència]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1kvyONuw9stK7VuuQS8i45lzwkhquwA_9jmXnNemjZNk/edit#gid=306804274 Llista 2n de DAM 2020-2021]&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides 2n de DAM. Curs 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
= Alguns vídeos d'ajuda =&lt;br /&gt;
== QML ==&lt;br /&gt;
[https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc Introduction to Qt / QML - all videos so far] by [https://www.kdab.com/ KDAB] ([https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML de la sèrie de vídeos])&lt;br /&gt;
&lt;br /&gt;
[[Vídeos QML]] de connexió entre el rerefons en C++ i el frontal en QML.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=9BRJ1qJkjZM Photoshop to QML exporter]&lt;br /&gt;
&lt;br /&gt;
== Pseudoservidor UDP ==&lt;br /&gt;
[https://youtu.be/lKNdgHVRal0 Pseudoservidor UDP emprant Qt5 (1/2)]&lt;br /&gt;
&lt;br /&gt;
[https://youtu.be/ElYaaytNb0s Pseudoservidor UDP emprant Qt5 (2/2)]&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
== 20210609 (3h presencial) '''Avaluació extraordinària''' ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210610_xtra/ Enunciats de l'avaluació extraordinària]&lt;br /&gt;
&lt;br /&gt;
== 20210528 (2h en línia) '''Presentació de projectes de 2n de DAM''' ==&lt;br /&gt;
[https://meet.google.com/vkc-uupk-kai Sala Meet de la presentació de projectes]&lt;br /&gt;
&lt;br /&gt;
== 20210527 (3h en línia) '''Presentació de projectes de 2n de DAM''' ==&lt;br /&gt;
[https://meet.google.com/vkc-uupk-kai Sala Meet de la presentació de projectes]&lt;br /&gt;
&lt;br /&gt;
== 20210520 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210517 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210514 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210513 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210510 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210507 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210506 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210503 (1h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210430 (2h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210429 (3h presencial) ==&lt;br /&gt;
Seguim amb el [[Projecte de final de CFGS DAM (2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210426 '''Comença el projecte''' (1h presencial) ==&lt;br /&gt;
Comentem les notes provisionals i comença el temps de projecte.&lt;br /&gt;
&lt;br /&gt;
== 20210423 '''Darrer dia''' (2h síncrona) ==&lt;br /&gt;
Feu alguns exercicis que no vau fer ahir de l'[https://binefa.cat/dam2021/20210423_darrerDia/ examen d'ordinària del curs 2020-2021] amb l'objectiu de pujar nota. He afegit l'arxiu de NodeRED de control de l'ascensor i he corregit alguna errata que vau detectar ahir.&lt;br /&gt;
&lt;br /&gt;
== 20210422 '''Examen''' (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210422_ex/ Examen d'ordinària del curs 2020-2021]&lt;br /&gt;
&lt;br /&gt;
[http://extensions.snap.berkeley.edu/ Snap! per HTTP] per a fer servir sòcols web no segurs.&lt;br /&gt;
&lt;br /&gt;
He afegit [https://binefa.cat/dam2021/20210422_ex/ascensor.nodered.txt flux de NodeRED per a l'ascensor]. Recordeu-vos de canviar la MAC a tot arreu i d'afegir-hi usuari i contrasenya al ''broker''.&lt;br /&gt;
&lt;br /&gt;
''Errata'':&lt;br /&gt;
&lt;br /&gt;
M09UF3.6) Feu un control del led blanc mitjançant el NodeRED emprant el protocol UDP&lt;br /&gt;
&lt;br /&gt;
== 20210419 (1h presencial) ==&lt;br /&gt;
Per a canviar l'Spread Factor ([https://github.com/jordibinefa/arduino-IDE-codes/blob/master/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b/esp32_lorawan_ttnEsp32_ttgo_multichannel_02b.ino línia 497 d'aquest codi d'exemple]):&lt;br /&gt;
&lt;br /&gt;
  // Set data rate and transmit power for uplink (note: txpow seems to be ignored by the library)&lt;br /&gt;
  LMIC_setDrTxpow('''DR_SF7''', 14);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== 20210416 (2h presencial) ==&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210416/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de l'OpenMPI a la màquina (per a molts, virtual) de Linux.&lt;br /&gt;
&lt;br /&gt;
== 20210415 (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210415/funcio4sortides.nodered.txt Exemple de funció amb 4 sortides] (Cal que canvieu a la funció la única sortida per defecte a quatre)&lt;br /&gt;
&lt;br /&gt;
 var amunt = {payload: &amp;quot;amunt&amp;quot;};&lt;br /&gt;
 var mig = {payload: &amp;quot;mig&amp;quot;};&lt;br /&gt;
 var avall = {payload: &amp;quot;avall&amp;quot;};&lt;br /&gt;
 &lt;br /&gt;
 return [amunt,mig,avall,msg];&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210415/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de l'OpenMPI a la màquina (per a molts, virtual) de Linux.&lt;br /&gt;
&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
== 20210412 (1h presencial) ==&lt;br /&gt;
Anem acabant els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]] i comentem algunes propostes de projectes relacionats amb M03UF1, M15UF1, M09UF2 i M09UF3&lt;br /&gt;
&lt;br /&gt;
== 20210409 (2h síncrona) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
== 20210408 (3h presencial) ==&lt;br /&gt;
[https://www.things.cat/index.php?title=P%C3%A0gina_principal#Programaci.C3.B3_remota_.28OTA.29 Programació remota (OTA)] (JESUITESFP / IOTcl1220_)&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210408/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
== 20210326 (2h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210326/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210326/cadena4bytes_a_float.nodered.txt Flux de NodeRED que agafa una cadena de text de 4 bytes i ho converteix a un número real (''float'')]&lt;br /&gt;
&lt;br /&gt;
== 20210325 (3h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210325/ Alguns codis comentats avui] per a passar vectors de bytes (''unsigned char'') a nombres enters o reals fent servir les funcions de Javascript per a NodeRED.&lt;br /&gt;
&lt;br /&gt;
== 20210322 (1h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
Comentem l'exercici 3.7&lt;br /&gt;
&lt;br /&gt;
== 20210319 (2h síncrona) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210319/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
[https://techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task/ Explicació d'un codi bàsic en FreeRTOS]&lt;br /&gt;
&lt;br /&gt;
[https://www.freertos.org/Documentation/RTOS_book.html '''Manual de referència per al FreeRTOS''']&lt;br /&gt;
&lt;br /&gt;
== 20210318 (3h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
sudo cat '''/etc/mosquitto/mosquitto.conf''':&lt;br /&gt;
 pid_file /var/run/mosquitto.pid&lt;br /&gt;
 &lt;br /&gt;
 persistence true&lt;br /&gt;
 persistence_location /var/lib/mosquitto/&lt;br /&gt;
 &lt;br /&gt;
 log_dest file /var/log/mosquitto/mosquitto.log&lt;br /&gt;
 &lt;br /&gt;
 include_dir /etc/mosquitto/conf.d&lt;br /&gt;
 &lt;br /&gt;
 '''allow_anonymous false'''&lt;br /&gt;
 '''password_file /etc/mosquitto/certs/contrasenyes.txt'''&lt;br /&gt;
 &lt;br /&gt;
 '''listener 1883'''&lt;br /&gt;
 &lt;br /&gt;
 listener 9001&lt;br /&gt;
 protocol websockets&lt;br /&gt;
&lt;br /&gt;
cat '''/etc/mosquitto/certs/contrasenyes.txt''' (usuaris ''ecat'' i ''ad''):&lt;br /&gt;
 '''ecat''':$6$SdtdpCPcQ4wonN7Y$Dgix123455BRyzvUQxMKX2lmr/4r/K3b9/su9KzMdMZhLxS3cm6a+nCrRahz+r9DFOh0ecsoZVwlG+G9tnA==&lt;br /&gt;
 '''ad''':$6$Nu8O3BxNBORplkSW$LZAqGNiPnX1HnC0ZbI789787867677565eJZAQnWWrWDaFjJz5OIZ8ljJRBbL6GFCKlgoaUFllFGvBhMtnfJQ==&lt;br /&gt;
&lt;br /&gt;
== 20210315 (1h presencial) ==&lt;br /&gt;
Conceptes de [[LoRa 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
== 20210312 (2h presencial) ==&lt;br /&gt;
[[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210312_iot/missatgeAscendentTTN.nodered.txt Codi de desxifratge d'un missatge ascendent de The Things Network]&lt;br /&gt;
&lt;br /&gt;
Codi basat en [https://binefa.cat/IoT/nodeRed/nodeRed01.pdf la pàgina 42 d'aquest pdf]:&lt;br /&gt;
 var b = new Buffer(msg.payload.payload_raw,'base64')&lt;br /&gt;
 msg.payload = b.toString()&lt;br /&gt;
 return msg;&lt;br /&gt;
&lt;br /&gt;
== 20210311 (3h presencial) ==&lt;br /&gt;
Avui assistiré les dues primeres hores. La tercera he de ser a una sessió d'avaluació, aneu fent els [[Exercicis d'Internet de les Coses (M15UF1, M09UF2 i M09UF3 del curs 2020-2021)]].&lt;br /&gt;
&lt;br /&gt;
La pràctica de LoRaWAN requereix que hi sigueu a un lloc amb cobertura. Per tant, feu tot el possible per a ser-hi presencialment. &lt;br /&gt;
&lt;br /&gt;
=== '''LoRaWAN''' ===&lt;br /&gt;
Doneu-vos d'alta com a usuaris de [https://www.thethingsnetwork.org/ The Things Network]&lt;br /&gt;
&lt;br /&gt;
[[LoRa 2020-2021]]&lt;br /&gt;
&lt;br /&gt;
== 20210308 (1h presencial) ==&lt;br /&gt;
Repassem el funcionament de la vostra placa IoT-02 al vostre ''broker'' MQTT, el vostre NodeRED, el vostre InfluxDB i el vostre Grafana.&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
[https://techtutorialsx.com/2017/05/06/esp32-arduino-creating-a-task/ Explicació d'un codi bàsic en FreeRTOS]&lt;br /&gt;
&lt;br /&gt;
[https://www.freertos.org/Documentation/RTOS_book.html '''Manual de referència per al FreeRTOS''']&lt;br /&gt;
&lt;br /&gt;
== 20210305 (2h síncrona) ==&lt;br /&gt;
Continuem amb el temes d'ahir.&lt;br /&gt;
&lt;br /&gt;
=== HTTP a MQTT ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/http_a_mqtt/http_mqtt.nodered.txt Flux de NodeRED per a convertir crides HTTP a MQTT]&lt;br /&gt;
&lt;br /&gt;
==== Exercici d'HTTP a MQTT ====&lt;br /&gt;
Mitjançant ''curl'' o navegador web encén i/o apaga qualsevol led de la placa IoT-02 connectada a un ''broker'' MQTT.&lt;br /&gt;
&lt;br /&gt;
== 20210304 (3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
=== Bases de dades temporals i visualització ===&lt;br /&gt;
Seguim amb la instal·lació d'InfluxDB i Grafana.&lt;br /&gt;
&lt;br /&gt;
==== Exercici de bases de dades temporals i visualització ====&lt;br /&gt;
* Visualitzeu a Grafana les dades de temperatura, humitat relativa, pressió atmosfèrica i de nivell de llum.&lt;br /&gt;
&lt;br /&gt;
=== HTTP a MQTT ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210304_iot/http_a_mqtt/http_mqtt.nodered.txt Flux de NodeRED per a convertir crides HTTP a MQTT]&lt;br /&gt;
&lt;br /&gt;
=== '''FreeRTOS''' ===&lt;br /&gt;
[https://github.com/jordibinefa/IoT-02/tree/master/codes/freeRTOS Alguns codis funcionant amb FreeRTOS per a la placa IoT-02 basada en ESP32]&lt;br /&gt;
&lt;br /&gt;
== 20210301 (1h presencial) ==&lt;br /&gt;
Seguim amb la instal·lació d'InfluxDB i Grafana.&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210301/notesProvisionals20210301.png Notes provisionals d'avaluació ordinària del M07UF1]&lt;br /&gt;
&lt;br /&gt;
== 20210226 (IoT: '''InfluxDB''' i '''Grafana''', 2h presencial) ==&lt;br /&gt;
Part pròpia del M15UF1 (Internet de les Coses) i M09UF2 (Processos i fils).&lt;br /&gt;
&lt;br /&gt;
=== InfluxDB v2.0 ===&lt;br /&gt;
* Instal·lació de la base de dades temporal a la [http://binefa.com/index.php?title=DAM_2020-2021#Actualitzaci.C3.B3_de_la_m.C3.A0quina_virtual màquina virtual Linux]&lt;br /&gt;
[https://docs.influxdata.com/influxdb/v2.0/get-started/ Instal·lació d'InfluxDB 2.0] i [https://portal.influxdata.com/downloads/ lloc de descàrregues]&lt;br /&gt;
&lt;br /&gt;
 curl -s https://repos.influxdata.com/influxdb2.key | gpg --import -&lt;br /&gt;
 wget -qO- https://repos.influxdata.com/influxdb2.key | sudo apt-key add -&lt;br /&gt;
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-linux-amd64.tar.gz.asc&lt;br /&gt;
 wget https://dl.influxdata.com/influxdb/releases/influxdb2-2.0.4-amd64.deb&lt;br /&gt;
 sudo dpkg -i influxdb2-2.0.4-amd64.deb&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat ha de sortir:&lt;br /&gt;
 ...&lt;br /&gt;
 Setting up influxdb2 (2.0.4) ...&lt;br /&gt;
 Created symlink /etc/systemd/system/influxd.service → /lib/systemd/system/influxdb.service.&lt;br /&gt;
 Created symlink /etc/systemd/system/multi-user.target.wants/influxdb.service → /lib/systemd/system/influxdb.service.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configuració a la nova màquina virtual:&lt;br /&gt;
 InfluxDB : ecat / clotfje1234&lt;br /&gt;
 Organization Name: Clot&lt;br /&gt;
 Bucket Name: api/v2/query&lt;br /&gt;
&lt;br /&gt;
* Escriptura i lectura de dades des del NodeRed a Influx DB v2.0&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/escripturaInfluxDB.nodered.txt Escriptura de dades múltiple des del NodeRed]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/lecturaInfluxDB.nodered.txt Lectura de dades múltiple des del NodeRed]&lt;br /&gt;
&lt;br /&gt;
=== Grafana ===&lt;br /&gt;
* Instal·lació de l'aplicació web de visualització de dades a la [http://binefa.com/index.php?title=DAM_2020-2021#Actualitzaci.C3.B3_de_la_m.C3.A0quina_virtual màquina virtual Linux]&lt;br /&gt;
[https://grafana.com/grafana/download?platform=linux Descàrrega de Grafana]&lt;br /&gt;
&lt;br /&gt;
* Posada en marxa&lt;br /&gt;
Recàrrega dels serveis dimoni:&lt;br /&gt;
 '''sudo systemctl daemon-reload'''&lt;br /&gt;
&lt;br /&gt;
Feu que arrenqui el servei quan poseu en marxa la màquina virtual:&lt;br /&gt;
 '''sudo systemctl enable grafana-server'''&lt;br /&gt;
&lt;br /&gt;
Poseu el servei en marxa:&lt;br /&gt;
 '''sudo systemctl start grafana-server'''&lt;br /&gt;
&lt;br /&gt;
Verifiqueu l'estat del servei:&lt;br /&gt;
 '''systemctl status grafana-server'''&lt;br /&gt;
&lt;br /&gt;
* Primer accés&lt;br /&gt;
 admin / admin&lt;br /&gt;
&lt;br /&gt;
Us demanarà un canvi de la contrasenya d'administració. A la nova màquina virtual és:&lt;br /&gt;
 admin / clotfje1234&lt;br /&gt;
&lt;br /&gt;
* Configuració de Grafana per rebre dades d'InfluxDB mitjançant Flux&lt;br /&gt;
[https://docs.influxdata.com/influxdb/v2.0/tools/grafana/ Configure Grafana to use Flux]&lt;br /&gt;
&lt;br /&gt;
* Ús de les dades d'InfluxDB a Grafana&lt;br /&gt;
[https://grafana.com/docs/grafana/latest/datasources/influxdb/ Using InfluxDB in Grafana]&lt;br /&gt;
&lt;br /&gt;
 from(bucket: &amp;quot;api/v2/query&amp;quot;)&lt;br /&gt;
 |&amp;gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Exercici de prova  ===&lt;br /&gt;
[https://binefa.cat/training/nodered/influxDB_2.0/escripturaUnaDadaAleatoriaInfluxDB.nodered.txt Flux NodeRED d'escriptura d'una dada aleatòria a InfluxDB] a l'organització '''Clot''' al ''bucket'' '''aleatori/v1'''&lt;br /&gt;
&lt;br /&gt;
Codi Flux per a la graficació a Grafana:&lt;br /&gt;
 from(bucket: &amp;quot;aleatori/v1&amp;quot;)&lt;br /&gt;
 |&amp;gt; range(start: v.timeRangeStart, stop: v.timeRangeStop)&lt;br /&gt;
&lt;br /&gt;
=== Serveis (Processos) ===&lt;br /&gt;
* Per saber si el servei està en marxa:&lt;br /&gt;
 systemctl status influxd&lt;br /&gt;
&lt;br /&gt;
* Per a engegar un servei&lt;br /&gt;
 sudo systemctl start influxd&lt;br /&gt;
&lt;br /&gt;
* Per a aturar un servei&lt;br /&gt;
 sudo systemctl stop influxd&lt;br /&gt;
&lt;br /&gt;
* Per a fer que el servei s'engegui a l'iniciar el sistema:&lt;br /&gt;
 sudo systemctl enable influxd&lt;br /&gt;
&lt;br /&gt;
* Per a fer que el servei deixi d'engeggar-se a l'iniciar el sistema:&lt;br /&gt;
 sudo systemctl disable influxd&lt;br /&gt;
&lt;br /&gt;
* Llista els serveis que arrenquen (enable) a l'iniciar el sistema:&lt;br /&gt;
 systemctl list-unit-files --type=service | grep influx&lt;br /&gt;
&lt;br /&gt;
* Per a veure els ports TCP / UDP dels serveis:&lt;br /&gt;
 sudo netstat -aputn&lt;br /&gt;
Sense sudo no es veu el nom del procés.&lt;br /&gt;
&lt;br /&gt;
=== Més teoria ===&lt;br /&gt;
[https://www.grafanacon.org/2019/presentations/Grafana_Flux_JTL.pdf Grafana &amp;amp; Flux. New Flux support in Grafana] by Jacob Lisi @JacobLisi&lt;br /&gt;
&lt;br /&gt;
== 20210225 ('''Examen final del M07UF1'''. Part de QML amb IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210225_ex_M07UF1ord/ Accés a l'examen en format pdf, odt i el material comprimit necessari per a desenvolupar-lo]&lt;br /&gt;
&lt;br /&gt;
== 20210222 (QML / IoT, 2h síncrona) ==&lt;br /&gt;
Darrer dia abans de l'examen de final de la UF1 del M07.&lt;br /&gt;
&lt;br /&gt;
Resolució de dubtes.&lt;br /&gt;
&lt;br /&gt;
== 20210219 (QML / IoT, 2h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210219_qml/ Alguns codis comentats avui] fent servir '''comportaments elàstics''' (''easing'').&lt;br /&gt;
&lt;br /&gt;
Comentem la importància del centratge de les imatges. Al codi comentat avui es fan servir [https://freesvg.org/vector-image-of-analog-clock dissenys vectorials lliures i oberts] aconseguits a [https://freesvg.org https://freesvg.org]&lt;br /&gt;
&lt;br /&gt;
Seguim amb els [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210218 (QML / IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210218_qml/ Alguns codis comentats avui] fent servir '''comportaments elàstics''' (''easing'').&lt;br /&gt;
&lt;br /&gt;
Seguim amb els [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210212 (QML, 2h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210212_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
[https://sourceforge.net/projects/qmlexporter/ QmlExporter]&lt;br /&gt;
&lt;br /&gt;
== 20210211 (QML, 3h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210211_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
Recordeu-vos de canviar l''''SSID''' i '''contrasenya''' de la connexió sense fils, per adaptar-la a casa vostra.&lt;br /&gt;
&lt;br /&gt;
Recordeu-vos de personalitzar '''#define MAC_PLACA &amp;quot;'''xxxxxxxxxxx'''&amp;quot;'''&lt;br /&gt;
&lt;br /&gt;
== 20210208 (QML, 1h presencial) ==&lt;br /&gt;
Microprogramari [https://binefa.cat/dam2021/20210208_qml_iot/IoT-02_mqtts_10_dam.zip IoT-02_mqtts_10_dam.zip] per a la placa IoT-02 per a provar els exercicis 7 i 8 dels [[Exercicis de QML]].&lt;br /&gt;
&lt;br /&gt;
[[Guia per a desenvolupar l'ex07 dels exercicis de QML]] fent servir senyals. Us pot ajudar per a la vostra implementació fent servir '''propietats'''.&lt;br /&gt;
&lt;br /&gt;
== 20210205 (QML, 2h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20210205_qml_iot/ Alguns codis comentats avui]&lt;br /&gt;
&lt;br /&gt;
=== Actualització de la màquina virtual ===&lt;br /&gt;
* [https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-the-mosquitto-mqtt-messaging-broker-on-debian-10 Instal·lació de MQTT amb contrasenya]&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/nodesource/distributions/blob/master/README.md Instal·lació de node i npm]&lt;br /&gt;
 ecat@iot-ecat:~$ '''sudo bash'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''curl -sL https://deb.nodesource.com/setup_14.x | bash -'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''apt install -y nodejs'''&lt;br /&gt;
 root@iot-ecat:/home/ecat# '''exit'''&lt;br /&gt;
 ecat@iot-ecat:~$ '''node --version'''&lt;br /&gt;
 v14.15.4&lt;br /&gt;
 ecat@iot-ecat:~$ '''npm -- version'''&lt;br /&gt;
 6.14.10&lt;br /&gt;
&lt;br /&gt;
* Instal·lació i funcionament del NodeRed autònom:&lt;br /&gt;
 ecat@iot-ecat:~$ '''mkdir bin'''&lt;br /&gt;
 ecat@iot-ecat:~$ '''cd bin'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''sudo apt install unzip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''mkdir nodered-ui'''&lt;br /&gt;
 ecat@iot-ecat:~/bin$ '''cd nodered-ui'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''wget https://binefa.cat/dam2021/20200928/node_red_ui.zip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''unzip node_red_ui.zip'''&lt;br /&gt;
 ecat@iot-ecat:~/bin/nodered-ui$ '''node node_modules/node-red/red.js --userDir node_modules/node-red/data --settings node_modules/node-red/settings.js -v --port 2222 --title elmeuTitol --safe flows_meuTitol.json'''&lt;br /&gt;
&lt;br /&gt;
== 20210204 (QML, 3h presencial) ==&lt;br /&gt;
Al disc dur que us passaré hi ha dues màquines virtuals (''andro_8.1-r4-VM-32bit.7z'' de 543,8 MB i ''IoT - eCat - Debian 11.x 64-bit _v20210202_00.zip'' de 19,0 GB) al directori ''maquinesVirtuals/Android_i_Qt''&lt;br /&gt;
&lt;br /&gt;
=== Màquina virtual amb emulador per a Android ===&lt;br /&gt;
El darrer dia va haver dos talls de llum. Van assistir a classe 6 alumnes. Els hi vaig passar una màquina virtual amb un emulador d'Android ('''Android-x86 8.1-R4 Oreo'''). Els que no vau assistir el darrer dia, '''porteu instal·lada''' [https://www.osboxes.org/android-x86/ la màquina virtual de l'emulador d'Android].&lt;br /&gt;
&lt;br /&gt;
És important que aquesta màquina virtual estigui configurada amb:&lt;br /&gt;
* Connexió pont (''bridge'' i no ''NAT'')&lt;br /&gt;
* Memòria mínima de 2GB&lt;br /&gt;
&lt;br /&gt;
=== Màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android ===&lt;br /&gt;
[http://popotamo.binefa.cat/iot/maqVirt/IoT%20-%20eCat%20-%20Debian%2011.x%2064-bit%20_v20210202_00.zip Adreça de descàrrega de la màquina virtual amb Debian 11, Android Studio i Qt6 per a escriptori i Android]&lt;br /&gt;
&lt;br /&gt;
Avui us passaré, comprimida a 19GB, una màquina virtual basada en Debian 11 (a hores d'ara, Debian 11 és en fase de ''testing'') amb els següents programes ja instal·lats i preparats per a funcionar:&lt;br /&gt;
&lt;br /&gt;
* Android Studio&lt;br /&gt;
* QtCreator amb la darrera Qt5 LTS i les Qt6&lt;br /&gt;
* Biblioteca qtMqtt preparada per a funcionar a l'escriptori i a Android amb les Qt6&lt;br /&gt;
&lt;br /&gt;
Configuració de la màquina virtual:&lt;br /&gt;
* L'usuari per defecte és '''ecat''' (''eCat'')&lt;br /&gt;
* La contrasenya de l'usuari '''ecat''' és '''clotfje''' (''ecat'' és membre del grup d'usuaris ''sudo'' i ''dialout''). Almenys a l'hora de passar-vos la màquina virtual. És aconsellable que canvieu la vostra contrasenya d'accés.&lt;br /&gt;
* És aconsellable tenir la connexió de xarxa en connexió pont (''bridge''). Però no cal per a connectar-ho amb l'emulador d'Android amb màquina virtual. Sí que caldria per a tenir accés extern al ''broker'' MQTT i al NodeRED (no instal·lats en aquesta primera versió).&lt;br /&gt;
* Memòria mínima de 4GB&lt;br /&gt;
&lt;br /&gt;
=== Connectant les dues màquines virtuals ===&lt;br /&gt;
* Trobeu quina IP té la màquina virtual amb l'emulador d'Android (a l'explicació faré servir com a IP de l'emulador '''172.20.''xy''.''xyz''''').&lt;br /&gt;
* Obriu un terminal a la màquina virtual amb Debian 11:&lt;br /&gt;
 ecat@iot-ecat:~$ '''cd Android/Sdk/platform-tools/'''&lt;br /&gt;
 ecat@iot-ecat:~/Android/Sdk/platform-tools$ '''./adb connect 172.20.''xy''.''xyz'':5555'''&lt;br /&gt;
 * daemon not running; starting now at tcp:5037&lt;br /&gt;
 * daemon started successfully&lt;br /&gt;
 connected to 172.20.25.152:5555&lt;br /&gt;
 ecat@iot-ecat:~/Android/Sdk/platform-tools$ '''./adb shell'''&lt;br /&gt;
 x86:/ $&lt;br /&gt;
* Obriu el Qt Creator (premeu la supertecla -aquella amb el símbol d'una finestra propietària- i escriviu-hi Qt). Feu un exemple simple de QML (per exemple el del ''swipe''). Seleccioneu les Qt6 per a escriptori i Android x86 (amb l'opció ''Release'' i sense ''Debug'' ni ''Profile''). Aneu a ''Tools'' / ''Options'' / ''Devices'' i verifiqueu que no hi dóna cap error de configuració (és possible que al principi surtin marques vermelles, però al cap de pocs segons se'n van). Assegureu-vos que compilareu per Android i feu ''Play'' al projecte de les Qt. Seleccioneu el dispositiu compatible ''VMware Virtual Platform''. I premeu al botó ''OK''.&lt;br /&gt;
* Al cap de pocs segons hi apareix el programa bàsic ''swipe'' a l'emulador sobre màquina virtual. El podeu aturar prement el botó quadrat vermell d'''Application Output''.&lt;br /&gt;
&lt;br /&gt;
=== MQTT i MQTTS ===&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=MQTT_i_MQTTS MQTT_i_MQTTS]&lt;br /&gt;
&lt;br /&gt;
== 20210201 (QML, 1h presencial) ==&lt;br /&gt;
&lt;br /&gt;
[https://www.osboxes.org/android-x86/ Emulador d'Android a una màquina virtual]&lt;br /&gt;
&lt;br /&gt;
Aneu amb cura, malgrat és obsolet quelcom es pot fer servir en part: [https://visualgdb.com/tutorials/android/vmware/ Using VMWare to replace the slow Android Emulator]&lt;br /&gt;
&lt;br /&gt;
* Poseu en marxa la màquina virtual (connexió pont -''bridge'' i no ''NAT''-) i cerqueu la IP del dispositiu Android virtualitzat. Connecteu-vos-hi:&lt;br /&gt;
&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''cd Android/Sdk/platform-tools/'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Android/Sdk/platform-tools$ '''./adb connect 172.20.''xy''.''xyz'':5555'''&lt;br /&gt;
 * daemon not running; starting now at tcp:5037&lt;br /&gt;
 * daemon started successfully&lt;br /&gt;
 connected to 172.20.''xy''.''xyz'':5555&lt;br /&gt;
 jordi@ecat-XPS13:~/Android/Sdk/platform-tools$ '''./adb shell'''&lt;br /&gt;
 x86:/ $&lt;br /&gt;
&lt;br /&gt;
* Aneu al QtCreator, compileu i executeu una aplicació per a Android. Us sortirà a la llista de dispositius compatibles la màquina virtual emulant Android.&lt;br /&gt;
&lt;br /&gt;
== 20210129 (QML, 2h presencial) ==&lt;br /&gt;
Comencem per l'exercici '''ex06_07''' dels [[Exercicis de QML]] (Vídeo 7/10 a [[Vídeos QML]])&lt;br /&gt;
&lt;br /&gt;
== 20210128 (QML, 3h síncrona) ==&lt;br /&gt;
'''Avui, abans de començar la classe, s'han d'haver tramès per correu electrònic els exercicis ex01, ex02, ex03, ex04 i ex05 dels [[Exercicis de QML]]''', seguint les indicacions a la capçalera de la pàgina.&lt;br /&gt;
&lt;br /&gt;
'''Acabem l'exercici 6 de la col·lecció''' dels [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
=== Millores de codi ===&lt;br /&gt;
Aquest codi:&lt;br /&gt;
    Connections {&lt;br /&gt;
        target: appCore // Specify the target to connect&lt;br /&gt;
        '''onSendToQml: {'''&lt;br /&gt;
            p1.etiqueta.text = count // Set the counter to the text label&lt;br /&gt;
            // count &amp;lt;-- Mateix nom que al senyal void sendToQml(int count);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
Provoca aquest avís (''warning''):&lt;br /&gt;
 qrc:/main.qml:13:5: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(&amp;lt;arguments&amp;gt;) { ... }&lt;br /&gt;
&lt;br /&gt;
I aquesta és la solució que s'aconsella actualment:&lt;br /&gt;
    Connections {&lt;br /&gt;
        target: appCore // Specify the target to connect&lt;br /&gt;
        '''function onSendToQml(count){'''&lt;br /&gt;
            p1.etiqueta.text = count // Set the counter to the text label&lt;br /&gt;
            // count &amp;lt;-- Mateix nom que al senyal void sendToQml(int count);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
=== ProgressBar a QML per a Qt6 ===&lt;br /&gt;
La propietat de valor màxim ha desaparegut a les Qt6&lt;br /&gt;
    ProgressBar {&lt;br /&gt;
        id: progressBar&lt;br /&gt;
        y: 189&lt;br /&gt;
        value: ''50''&lt;br /&gt;
        '''//maximumValue: 100'''&lt;br /&gt;
        anchors.right: parent.right&lt;br /&gt;
        anchors.rightMargin: 20&lt;br /&gt;
        anchors.left: parent.left&lt;br /&gt;
        anchors.leftMargin: 20&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
A Qt 6 el valor màxim està a 1.0, per tant:&lt;br /&gt;
    ProgressBar {&lt;br /&gt;
        id: progressBar&lt;br /&gt;
        y: 189&lt;br /&gt;
        '''value: 0.5'''&lt;br /&gt;
        anchors.right: parent.right&lt;br /&gt;
        anchors.rightMargin: 20&lt;br /&gt;
        anchors.left: parent.left&lt;br /&gt;
        anchors.leftMargin: 20&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
i al '''main.qml''' de [https://binefa.cat/training/qml/01_qmlLliscant_10.zip 01_qmlLliscant_10]:&lt;br /&gt;
&lt;br /&gt;
        function actualitzaBarraDeProgres(n){&lt;br /&gt;
            l01.progressBar.value = '''n/100'''; // Originàriament hi havia '''n'''&lt;br /&gt;
            l01.text1.text = n; // canvieu element1 per text1 a l'editor QML&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/qml/01_qmlLliscant_10_qt6.zip '''Codi actualitzat per a Qt6: 01_qmlLliscant_10_qt6''']&lt;br /&gt;
&lt;br /&gt;
A l'arxiu '''main.cpp''' també he afegit un ''#if / #endif'' per a verificar si el codi és previ a les Qt6.0.0:&lt;br /&gt;
 '''#if QT_VERSION &amp;lt; QT_VERSION_CHECK(6, 0, 0)'''&lt;br /&gt;
    QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);&lt;br /&gt;
 '''#endif'''&lt;br /&gt;
&lt;br /&gt;
== 20210125 (QML, 1h presencial) ==&lt;br /&gt;
=== Connexió entre el frontal QML i el rerefons en C++ ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210121_qml/qmlEd01.zip Exemple de connexió entre el frontal QML i el rerefons en C++] (El codi de connexió és basat en [https://evileg.com/en/post/569/ QML - Tutorial 036. Working with Signals and Slots in QML]).&lt;br /&gt;
&lt;br /&gt;
Aquí teniu alguns [[Vídeos QML]] que guien pas a pas la connexió entre el frontal i el rerefons.&lt;br /&gt;
&lt;br /&gt;
'''Comenceu l'exercici 6 de la col·lecció''' [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
== 20210122 (QML, 2h síncrona) ==&lt;br /&gt;
* Ajuda per a fer els '''ex04''' i '''ex05''' dels [[Exercicis de QML]]:&lt;br /&gt;
    MqttClient {&lt;br /&gt;
        id: client&lt;br /&gt;
        hostname: hostnameField.text&lt;br /&gt;
        port: portField.text&lt;br /&gt;
        '''username: userField.text'''&lt;br /&gt;
        '''password: pwdField.text'''&lt;br /&gt;
    }&lt;br /&gt;
Modifiqueu el broker per un que faci servir usuari i contrasenya:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: hostnameField&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;rubi.xoic.coop&amp;quot;'''&lt;br /&gt;
            placeholderText: &amp;quot;&amp;lt;Enter host running MQTT broker&amp;gt;&amp;quot;&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Afegiu l'etiqueta d'usuari:&lt;br /&gt;
        Label {&lt;br /&gt;
            text: '''&amp;quot;Usuari:&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Al camp de text d'usuari, poseu el nom d'usuari per defecte:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: '''userField'''&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;rubi&amp;quot;'''&lt;br /&gt;
            placeholderText: '''&amp;quot;&amp;lt;Usuari&amp;gt;&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Afegiu l'etiqueta de contrasenya:&lt;br /&gt;
        Label {&lt;br /&gt;
            text: '''&amp;quot;Contrasenya:&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
Al camp de text de la contrasenya, poseu la contrasenya per defecte:&lt;br /&gt;
        TextField {&lt;br /&gt;
            id: '''pwdField'''&lt;br /&gt;
            '''echoMode: TextInput.Password'''&lt;br /&gt;
            Layout.fillWidth: true&lt;br /&gt;
            text: '''&amp;quot;iotRubi&amp;quot;'''&lt;br /&gt;
            placeholderText: '''&amp;quot;&amp;lt;Contrasenya&amp;gt;&amp;quot;'''&lt;br /&gt;
            passwordCharacter: '''&amp;quot;x&amp;quot;'''&lt;br /&gt;
            enabled: client.state === MqttClient.Disconnected&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
Proveu les dues aplicacions a l'escriptori i al dispositiu Android. &lt;br /&gt;
&lt;br /&gt;
Proveu un altre ''broker'' que també faci servir usuari i contrasenya.&lt;br /&gt;
&lt;br /&gt;
Proveu si funciona a un ''broker'' que no faci servir usuari i contrasenya&lt;br /&gt;
&lt;br /&gt;
== 20210121 (QML, 3h presencial) ==&lt;br /&gt;
=== Un tutorial curt de QML ===&lt;br /&gt;
[https://doc.qt.io/qt-5/qml-tutorial1.html Un tutorial amb tres exemples de codi QML] ([https://binefa.cat/dam2021/20210121_qml/qmlTut01_03.zip Els tres codis del tutorial curt]).&lt;br /&gt;
&lt;br /&gt;
Seguint amb el tema dels '''estats''', baixeu-vos i executeu l'[https://binefa.cat/dam2021/20210121_qml/qmlState01.zip exemple qmlState01 d'estats en QML] i l'[https://binefa.cat/dam2021/20210121_qml/qmlState02.zip exemple qmlState02 d'estats en QML] (Basats en la [https://doc.qt.io/qt-5/qml-qtquick-state.html documentació sobre estats de les Qt]).&lt;br /&gt;
&lt;br /&gt;
=== Bucles de vinculació ===&lt;br /&gt;
Què són els [http://binefa.com/index.php?title=DAM_2020-2021#Bucles_de_vinculaci.C3.B3_2 bucles de vinculació] (''binding loops'')?&lt;br /&gt;
&lt;br /&gt;
=== Connexió entre el frontal QML i el rerefons en C++ ===&lt;br /&gt;
[https://binefa.cat/dam2021/20210121_qml/qmlEd01.zip Exemple de connexió entre el frontal QML i el rerefons en C++] (El codi de connexió és basat en [https://evileg.com/en/post/569/ QML - Tutorial 036. Working with Signals and Slots in QML]).&lt;br /&gt;
&lt;br /&gt;
Aquí teniu alguns [[Vídeos QML]] que guien pas a pas la connexió entre el frontal i el rerefons.&lt;br /&gt;
&lt;br /&gt;
'''Comenceu l'exercici 6 de la col·lecció''' [[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
=== Instal·lació de '''QtMqtt per Android''' ===&lt;br /&gt;
Malgrat que ja us funcioni la biblioteca QtMqtt en programes d'escriptori, heu de fer la compilació de la biblioteca QtMqtt per a la versió de Qt/QML que feu servir per a poder executar programes que duguin aquesta biblioteca a Android.&lt;br /&gt;
&lt;br /&gt;
Hi ha diversos suggeriments de com fer-ho. Després de diversos intents, aquest és el sistema que a mi m'ha funcionat:&lt;br /&gt;
&lt;br /&gt;
Cerqueu el directori '''lib''' de la vostra distribució Qt per a '''Android x86''':&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''/home/jordi/Qt/6.0.0/android_x86/bin/qmake -query QT_INSTALL_LIBS'''&lt;br /&gt;
 /home/jordi/Qt/6.0.0/android_x86/lib&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~$ '''/home/ecat/Qt/6.0.0/android_armv7/bin/qmake -query QT_INSTALL_LIBS'''&lt;br /&gt;
 /home/ecat/Qt/6.0.0/android_armv7/lib&lt;br /&gt;
Aneu a la carpeta que ens retorna l'ordre anterior ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~$ '''cd /home/jordi/Qt/6.0.0/android_x86/lib'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~$ cd /home/ecat/Qt/6.0.0/android_armv7/lib&lt;br /&gt;
I feu el procés d'instal·lació ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib$ '''cd qtmqtt/'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''git checkout 6.0'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''rm -r examples/'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''git clone git://code.qt.io/qt/qtmqtt.git'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib$ '''cd qtmqtt/'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''git checkout 6.0'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ rm -r examples/&lt;br /&gt;
Per a '''Android x86''', mitjançant el '''Qt Creator''' obriu el projecte /home/jordi/Qt/6.0.0/android_x86/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake'''&lt;br /&gt;
&lt;br /&gt;
Per a '''Android ARM''', mitjançant el '''Qt Creator''' obriu el projecte /home/ecat/Qt/6.0.0/android_armv7/lib/qtmqtt/'''qtmqtt.pro'''. Aneu al menú i seleccioneu '''Build / Run qmake'''&lt;br /&gt;
&lt;br /&gt;
Torneu al terminal d'abans i feu ('''Android x86'''):&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''make'''&lt;br /&gt;
 jordi@ecat-XPS13:~/Qt/6.0.0/android_x86/lib/qtmqtt$ '''sudo make install'''&lt;br /&gt;
o, per al dispositiu físic Android amb tecnologia '''Android ARM''':&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''make'''&lt;br /&gt;
 ecat@iot-ecat:~/Qt/6.0.0/android_armv7/lib/qtmqtt$ '''sudo make install'''&lt;br /&gt;
Copieu, fora de la ruta de les Qt, els projectes d'exemple [https://binefa.cat/dam2021/20210121_qml/quickpublication.zip '''quickpublication'''] i [https://binefa.cat/dam2021/20210121_qml/quicksubscription.zip '''quicksubscription''']. Obriu els dos projectes per a que puguin ser executats des de l'escriptori i des del mòbil (emulat o no). Per a verificar llur funcionament, podeu executar un projecte al dispositiu mòbil i l'altre a l'escriptori.&lt;br /&gt;
&lt;br /&gt;
=== En cas de no poder actualitzar l'editor de QML ===&lt;br /&gt;
Si us surt el missatge '''Qt Quick emulator layer crash''' i no s'actualitza el visor QML, però podeu editar l'arxiu en mode text, haureu d'anar al menú:&lt;br /&gt;
 &lt;br /&gt;
 Tools / Options... / Qt Quick / Qt Quick Designer&lt;br /&gt;
&lt;br /&gt;
i canvieu la selecció '''Use fallback QML emulation layer''' per '''Use QML emulation layer that is built with the selected Qt''', deixant buit el ''Top level build path:''. Quan torneu a editar des de l'editor QML es farà una recompilació del visor (sigueu pacients i deixeu acabar tot el procés).&lt;br /&gt;
&lt;br /&gt;
== 20210118 (QML, 1h presencial) ==&lt;br /&gt;
=== Seguim amb QML ===&lt;br /&gt;
El darrer dia es va recomanar veure els tres primers capítols dels vídeos de KDAB sobre QML.&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210118_qml/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML] dels [https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc vídeos de KDAB]&lt;br /&gt;
&lt;br /&gt;
=== qml_02_kdab ===&lt;br /&gt;
==== Ancoratge ====&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors.qml anchors.qml:]&lt;br /&gt;
[[Image:00_anchors.png|center|anchors.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors2.qml anchors2.qml:]&lt;br /&gt;
[[Image:01_anchors2.png|center|anchors2.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-centerin-parent-keyword.qml anchors-centerin-parent-keyword.qml:]&lt;br /&gt;
[[Image:02_anchors-centerin-parent-keyword.png|center|anchors-centerin-parent-keyword.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-expanding.qml anchors-expanding.qml:]&lt;br /&gt;
[[Image:03_anchors-expanding.png|center|anchors-expanding.qml]]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-anchor-layout/anchors-fill.qml anchors-fill.qml:]&lt;br /&gt;
[[Image:04_anchors-expanding.png|center|anchors-fill.qml]]&lt;br /&gt;
&lt;br /&gt;
==== Bucles de vinculació ====&lt;br /&gt;
[https://github.com/KDAB/kdabtv/blob/master/qml-intro/ex-binding-loop/main.qml Bucles de vinculació (''binding loop'')]&lt;br /&gt;
&lt;br /&gt;
Exemple de bucle de vinculació:&lt;br /&gt;
 import QtQuick 2.0&lt;br /&gt;
 &lt;br /&gt;
 Rectangle {&lt;br /&gt;
    color: &amp;quot;black&amp;quot;&lt;br /&gt;
    '''width: child.width'''&lt;br /&gt;
    '''height: child.width'''&lt;br /&gt;
 &lt;br /&gt;
    Image {&lt;br /&gt;
        '''id: child'''&lt;br /&gt;
        source : &amp;quot;../images/vertical-gradient.png&amp;quot;&lt;br /&gt;
        '''anchors.fill: parent'''&lt;br /&gt;
        anchors.margins: 5&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
Una solució per a evitar bucles de vinculació:&lt;br /&gt;
 import QtQuick 2.0&lt;br /&gt;
 &lt;br /&gt;
 Rectangle {&lt;br /&gt;
    color: &amp;quot;black&amp;quot;&lt;br /&gt;
    '''implicitWidth: child.implicitWidth'''&lt;br /&gt;
    '''implicitHeight: child.implicitWidth'''&lt;br /&gt;
 &lt;br /&gt;
    Image {&lt;br /&gt;
        '''id: child'''&lt;br /&gt;
        source : &amp;quot;../images/vertical-gradient.png&amp;quot;&lt;br /&gt;
        '''anchors.fill: parent'''&lt;br /&gt;
        anchors.margins: 5&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
== 20210115 (QML, 1h síncrona) ==&lt;br /&gt;
=== '''Connectem Qt/QML a Android''' ===&lt;br /&gt;
* Obriu l'Android Studio i virtualitzeu un telèfon mòbil d'arquitectura x86 (molt més ràpid que virtualitzar un ARM):&lt;br /&gt;
 jordi@ecat-XPS13:/opt/android-studio/bin$ ./studio.sh&lt;br /&gt;
&lt;br /&gt;
* Feu un nou projecte '''Application (Qt Quick)''' / '''Qt Quick Application - Swipe'''.&lt;br /&gt;
&lt;br /&gt;
* Anomeneu i deseu el projecte. Per exemple amb el nom '''prMobil00'''&lt;br /&gt;
&lt;br /&gt;
* Seleccioneu els kits d'Android i d'escriptori, seleccionant l'opció '''release'''. Per exemple: '''Android Qt 6.0.0 Clang x86''' i '''Desktop Qt 6.0.0 GCC 64bit'''&lt;br /&gt;
&lt;br /&gt;
* Proveu que us funciona amb la versió d'escriptori&lt;br /&gt;
&lt;br /&gt;
* Proveu que us funciona amb la versió d'Android virtualitzat. Quan ho executeu heu de seleccionar a quin dispositiu virtual ho voleu fer córrer.&lt;br /&gt;
&lt;br /&gt;
=== Seguim amb QML ===&lt;br /&gt;
Es recomana veure els tres primers capítols dels vídeos de KDAB sobre QML.&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de QML]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210115_qml/ Alguns codis explicats avui]&lt;br /&gt;
&lt;br /&gt;
[https://github.com/KDAB/kdabtv/tree/master/qml-intro Codis QML] dels [https://www.youtube.com/playlist?list=PL6CJYn40gN6hdNC1IGQZfVI707dh9DPRc vídeos de KDAB]&lt;br /&gt;
&lt;br /&gt;
== 20210112 (QML, 3h presencial) ==&lt;br /&gt;
[https://qmlbook.github.io/ Accés al llibre de Qt/QML en línia]&lt;br /&gt;
&lt;br /&gt;
Execució de codis QML des del terminal:&lt;br /&gt;
 /home/jordi/Qt/5.15.2/gcc_64/bin/qmlscene showcase.qml&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210112_qml/ Exemples treballats avui]&lt;br /&gt;
&lt;br /&gt;
'''Exercicis QML''':&lt;br /&gt;
&lt;br /&gt;
* ex1) Feu un programa en QML que al principi hi surti un quadrat vermell centrat. Al prémer la tecla B hi sortirà de color blau, al prémer la tecla G hi sortirà de color verd i al prémer la tecla R torna a ser vermell.&lt;br /&gt;
&lt;br /&gt;
* ex2) Feu un programa en QML a on hi aparegui centrat, horitzontalment i vertical, ben gros i en negreta el nom '''Escola del Clot'''. Al prémer la tecla + la lletra es farà més grossa. I al prémer la tecla - la lletra es farà més petita.&lt;br /&gt;
&lt;br /&gt;
* ex3) Feu un programa que hi surti el text, centrat a la finestra, &amp;quot;Comptador: 0&amp;quot; de color vermell. Al prémer el botó + incrementarà el valor del comptador, i al prémer el botó '-' es decrementarà. Al prémer la tecla N el text serà de color negre i al prémer V tornarà a ser de color vermell.&lt;br /&gt;
&lt;br /&gt;
== 20210111 (QML, 1h síncrona) ==&lt;br /&gt;
A partir dels [http://zetcode.com/gui/qtquick/ exemples en QML d'en Jan Bodnar] fem servir el Qt Creator per a executar-los.&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20210111_qml/ Exemples treballats avui]&lt;br /&gt;
&lt;br /&gt;
== 20201221 (IoT, 1h síncrona) ==&lt;br /&gt;
S'acaba el termini de lliurament de pràctiques desenvolupades fins les festes de Nadal.&lt;br /&gt;
&lt;br /&gt;
Les dues darreres:&lt;br /&gt;
* Control de la placa IoT-02 mitjançant Telegram&lt;br /&gt;
&lt;br /&gt;
* Publicació de dades del sensor BM280 de la placa IoT-02 a Mastodon&lt;br /&gt;
&lt;br /&gt;
== 20201218 (IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201218_iot/ Codis d'avui i material d'ajuda per a fer l'exercici]&lt;br /&gt;
&lt;br /&gt;
* Mastodon, una alternativa lliure a Twitter&lt;br /&gt;
&lt;br /&gt;
No totes les instàncies de [https://ca.wikipedia.org/wiki/Mastodon_(xarxa_social) Mastodon] faciliten la instal·lació de ''bots''. Per a fer els primers passos us recomano aquesta [https://botsin.space/ instància pensada per a hostatjar ''bots'' de Mastodon] ('''tal i com es va demanar el dia anterior, heu d'haver demanat les credencials a la instància de Mastodon [https://botsin.space/ botsin.space] amb molta antelació. Si ho sol·liciteu avui mateix no podreu seguir la classe''').&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://botsin.space/@siarq_sensors Exemple de bot de Mastodon] per a fer lectures de sensors cada hora.&lt;br /&gt;
&lt;br /&gt;
[https://gist.github.com/aparrish/661fca5ce7b4882a8c6823db12d42d26 Getting credentials for the Mastodon API with Mastodon.py, step by step]&lt;br /&gt;
&lt;br /&gt;
* '''Exercici''':&lt;br /&gt;
&lt;br /&gt;
Publiqueu la temperatura, humitat relativa i pressió atmosfèrica llegides per la vostra placa IoT-02 i les publiqueu a Mastodon mitjançant NodeRED.&lt;br /&gt;
&lt;br /&gt;
Feu un informe de com ho heu programat i captures de llur funcionament.&lt;br /&gt;
&lt;br /&gt;
== 20201215 (IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201215_iot/ Alguns codis d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Autenticació d'accés a NodeRED ===&lt;br /&gt;
[https://nodered.org/docs/user-guide/runtime/securing-node-red Securing NodeRED]&lt;br /&gt;
&lt;br /&gt;
Generació de la contrasenya d'accés en mode hash des de la carpeta d'execució del NodeRED:&lt;br /&gt;
 node node_modules/node-red/red.js admin hash-pw&lt;br /&gt;
&lt;br /&gt;
En aquest exemple fem servir aquesta contrasenya en mode hash:&lt;br /&gt;
 '''$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq'''&lt;br /&gt;
&lt;br /&gt;
Edició de '''settings.js''':&lt;br /&gt;
 toni@vps-10d8edcd:~/bin/nodered$ nano ./node_modules/node-red/settings.js&lt;br /&gt;
&lt;br /&gt;
    // Securing Node-RED&lt;br /&gt;
    // -----------------&lt;br /&gt;
    // To password protect the Node-RED editor and admin API, the following&lt;br /&gt;
    // property can be used. See http://nodered.org/docs/security.html for details.&lt;br /&gt;
    adminAuth: {&lt;br /&gt;
        type: &amp;quot;credentials&amp;quot;,&lt;br /&gt;
        users: [{&lt;br /&gt;
            username: &amp;quot;'''toni'''&amp;quot;,&lt;br /&gt;
            password: &amp;quot;'''$2a$08$PbYFpiQSnoVaOfD1daCelU2Kvcg19KElO1DbVtE8GAJXacD6ABq'''&amp;quot;,&lt;br /&gt;
            permissions: &amp;quot;*&amp;quot;&lt;br /&gt;
        }]&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
Un cop fets el canvis '''cal reiniciar el NodeRED'''.&lt;br /&gt;
&lt;br /&gt;
=== '''Telegram''' ===&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Bot_de_Telegram Bot de Telegram]&lt;br /&gt;
&lt;br /&gt;
* Creació de bots amb BotFather&lt;br /&gt;
&lt;br /&gt;
* Instal·lació de nodes de Telegram a NodeRED (afegiu els nodes '''node-red-contrib-telegrambot''')&lt;br /&gt;
&lt;br /&gt;
* Interacció amb un usuari de Telegram&lt;br /&gt;
&lt;br /&gt;
* Interacció amb un grup de Telegram&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/training/adtelecom/20201209/ Material per a fer el bot]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201215_iot/provantBotTelegram.txt Flux de prova per al bot de Telegram]&lt;br /&gt;
&lt;br /&gt;
=== '''Deures pel proper dia''' ===&lt;br /&gt;
&lt;br /&gt;
Feu-vos membres d'aquesta instància de Mastodon: [https://botsin.space/ botsin.space]&lt;br /&gt;
&lt;br /&gt;
'''Feu-ho amb prou antelació''', és possible que trigui més de tres hores a donar-vos accés.&lt;br /&gt;
&lt;br /&gt;
== 20201211 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201211_qt_iot/notes_1rT_v2.png Notes del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
Comentarem dubtes de la darrera pràctica.&lt;br /&gt;
&lt;br /&gt;
Es demana de dur instal·lat Telegram al telèfon mòbil per a la propera classe del 14 de desembre de 2020.&lt;br /&gt;
&lt;br /&gt;
== 20201204 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201204_qt_iot/notes_1rT.png Notes provisionals del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201204_qt_iot/20201201_exQt_IoT_01.pdf Desenvolupem com a pràctica puntuable la resolució dels exercicis 5, 6 i 7] (Trameteu per separat P5, P6 i P7)&lt;br /&gt;
&lt;br /&gt;
== 20201201 '''Examen 1r trimestre''' ==&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201201_qt_iot_Ex1rT/enunciat/ Enunciat de l'examen del 1r trimestre]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201201_qt_iot_Ex1rT/pr20201201.png Notes provisionals de les pràctiques a 1 de desembre de 2020]&lt;br /&gt;
&lt;br /&gt;
== 20201130 (dubtes i Qt, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201130_qt_iot/ Codis d'avui] (Senyals, osques, agrupacions i connexions)&lt;br /&gt;
&lt;br /&gt;
== 20201127 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
Revisem l'exercici proposat el darrer dia.&lt;br /&gt;
&lt;br /&gt;
== 20201124 (IoT i Qt) (3h, presencial) ==&lt;br /&gt;
[[Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201123_qt_iot/ '''Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT'''].&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201124_qt_iot/controlLeds.nodered.txt Codi de flux de NodeRED per a controlar els leds de la placa IoT-02 mitjançant un JSON]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201124_qt_iot/ledsBotonsBidireccional.nodered.txt Flux de NodeRED emprant MQTT i JSON bidireccional]&lt;br /&gt;
&lt;br /&gt;
=== Exercici amb '''la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT''' ===&lt;br /&gt;
Desenvolupeu el projecte '''15_mqtt_IoT02_03''', basant-vos en el darrer [https://binefa.cat/dam2021/20201123_qt_iot/14_mqtt_IoT02_02.zip codi de control de la placa IoT-02 en C++ per a Qt], que visualitzi en una barra de progrés el nivell de llum rebut per la LDR.&lt;br /&gt;
&lt;br /&gt;
== 20201123 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
[[Control de la placa IoT-02 mitjançant MQTT emprant Qt i missatges JSON]]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201123_qt_iot/ '''Codis d'interacció amb la placa IoT-02 emprant C++ per a Qt, fent servir JSON i MQTT'''].&lt;br /&gt;
&lt;br /&gt;
== 20201120 (Qt i IoT, 1h síncrona) ==&lt;br /&gt;
Al dia d'avui us he posat el codi per a poder visualitzar el color dels leds.&lt;br /&gt;
&lt;br /&gt;
Fent servir MQTT, feu una aplicació emprant Qt que ensenyi l'estat dels botons i dels leds de la placa IoT-02 &lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201120_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
== 20201117 (Qt i IoT, 3h presencial) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201117_qt_iot/Arduino_JSON.zip Biblioteca '''Arduino_JSON''' per l'IDE d'Arduino]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/dam2021/20201117_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
Dades encapsulades en JSON al NodeRED i a la placa IoT-02.&lt;br /&gt;
&lt;br /&gt;
=== Exercici ===&lt;br /&gt;
Desenvolupeu una aplicació GUI feta amb Qt que mitjançant el protocol MQTT:&lt;br /&gt;
* Controli els quatre leds mitjançant botons seleccionadors (''check box'')&lt;br /&gt;
&lt;br /&gt;
* Indiqui l'estat dels tres botons mitjançant etiqueta (premut / no premut)&lt;br /&gt;
&lt;br /&gt;
* Indiqui l'estat dels tres botons mitjançant etiqueta gràfica (color viu / color fosc)&lt;br /&gt;
&lt;br /&gt;
* Una barra de progrés indiqui el nivell de llum&lt;br /&gt;
&lt;br /&gt;
* Trameti missatges a la pantalla OLED (tres botons seleccionadors de mida del text)&lt;br /&gt;
&lt;br /&gt;
== 20201116 (Qt, 1h síncrona) ==&lt;br /&gt;
[https://binefa.cat/dam2021/20201116_qt_iot/ Codis d'avui]&lt;br /&gt;
&lt;br /&gt;
=== Exercici ===&lt;br /&gt;
Modifiqueu el codi de [https://binefa.cat/dam2021/20201116_qt_iot/simpleclient.zip MQTT's simpleclient] per a admetre usuari i contrasenya (podeu fer servir el ''broker'' '''formacio.things.cat''' amb usuari '''ecat''' i contrasenya '''clotClot''').&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/dam2021/20201116_qt_iot/simpleClient_usrPwd.png Ca]&lt;br /&gt;
&lt;br /&gt;
= Documentació =&lt;br /&gt;
== Qt/QML ==&lt;br /&gt;
[http://zetcode.com/gui/qt5/ Qt5] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
[[Vídeos QML]]&lt;br /&gt;
&lt;br /&gt;
[https://qmlbook.github.io/ Qt5 Cadaques!] A Book about Qt5&lt;br /&gt;
&lt;br /&gt;
[http://zetcode.com/gui/qtquick/ Qt Quick tutorial] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
[http://zetcode.com/gui/pyqt5/ PyQt5] de [https://twitter.com/janbodnar Jan Bodnar]&lt;br /&gt;
&lt;br /&gt;
=== Qt for WebAssembly ===&lt;br /&gt;
[https://wiki.qt.io/Qt_for_WebAssembly Qt for WebAssembly]&lt;br /&gt;
&lt;br /&gt;
=== json ===&lt;br /&gt;
[http://erickveil.github.io/2016/04/06/How-To-Manipulate-JSON-With-C++-and-Qt.html How To Manipulate JSON With C++ and Qt]&lt;br /&gt;
&lt;br /&gt;
=== QProcess ===&lt;br /&gt;
[https://gist.github.com/ynonp/8148340 QProcess example]&lt;br /&gt;
&lt;br /&gt;
[https://www.bogotobogo.com/Qt/Qt5_QProcess_QFileDialog_QTextEdit_FFmpeg.php Qt5 tutorial FFmpeg converter using QProcess - 2020]&lt;br /&gt;
&lt;br /&gt;
== IoT ==&lt;br /&gt;
[https://binefa.cat/IoT/nodeRed/nodeRed01.pdf Introducció al Node-RED]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/IoT/teoria/ethernetTcpUdp_00.pdf TCP/UDP Capa de transport d'Ethernet]&lt;br /&gt;
&lt;br /&gt;
[https://binefa.cat/IoT/teoria/mqtt_00.pdf Introducció a MQTT]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=Afegint_la_targeta_ESP8266_a_l%27IDE_d%27Arduino Afegint la targeta ESP8266 a l'IDE d'Arduino] (NodeMCU1.0)&lt;br /&gt;
&lt;br /&gt;
[https://blog.miguelgrinberg.com/post/micropython-and-the-internet-of-things-part-i-welcome Micropython and the Internet of Things]&lt;br /&gt;
&lt;br /&gt;
[https://wiki.binefa.cat/index.php?title=SCADA_fent_servir_Python_QML_i_Arduino SCADA fent servir Python QML i Arduino]&lt;br /&gt;
&lt;br /&gt;
[http://silanus.fr/sin/?p=1194 MQTT avec Qt]&lt;br /&gt;
&lt;br /&gt;
= Planificació =&lt;br /&gt;
[[Distribució de M07UF1, M09UF2, M09UF3, M15UF1 i M13 al curs 2020-2021 de 2n de DAM]]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=2n_SMX-B_per_dies._Curs_2021-2022&amp;diff=3704</id>
		<title>2n SMX-B per dies. Curs 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=2n_SMX-B_per_dies._Curs_2021-2022&amp;diff=3704"/>
		<updated>2021-10-25T17:26:47Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* Algunes classes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2122-SMX2B-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2122-SMX2B-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides 2n d'SMX-B. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://meet.google.com/tmh-ydxv-ayk Teleconferència provisional]&lt;br /&gt;
&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1fb0_S7WxJbJqocBtco6JfQEn4RoN_hSmWyxka7Gs8Co/edit#gid=839410655 Llista]&lt;br /&gt;
&lt;br /&gt;
== 20211025 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211025/ Recull de codis fets avui]  usuari / contrasenya : ''smxB'' / ''smxB2122''&lt;br /&gt;
&lt;br /&gt;
== 20211018 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211018/ Recull de codis fets avui]  usuari / contrasenya : ''smxB'' / ''smxB2122''&lt;br /&gt;
&lt;br /&gt;
1. Cinema&lt;br /&gt;
&lt;br /&gt;
A partir de la qualificació d’una pel·lícula i l’edat de l'espectador, indiqueu si aquest pot o no passar.&lt;br /&gt;
&lt;br /&gt;
Qualificacions de les pel·lícules:&lt;br /&gt;
&lt;br /&gt;
T   –   Tots els públics.&lt;br /&gt;
&lt;br /&gt;
M  –   Majors (o igual) a 13 anys.&lt;br /&gt;
&lt;br /&gt;
J   –   Majors (o igual) a 16 anys.&lt;br /&gt;
&lt;br /&gt;
A   –   Majors (o igual) a 18 anys.&lt;br /&gt;
&lt;br /&gt;
El programa demanarà la lletra que determina la qualificació de la pel·lícula i l’edat de l'espectador per, a continuació, mostrar per pantalla si aquest pot passar a la sala o no.&lt;br /&gt;
&lt;br /&gt;
== 20210927 ==&lt;br /&gt;
Comencem fent la pràctica número 7.&lt;br /&gt;
&lt;br /&gt;
== 20210920 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210920/ Exemple de com anomenar els arxius de cada projecte]&lt;br /&gt;
&lt;br /&gt;
La pràctica 1, dins de la carpeta ''20210920'' que penja de ''2122-SMXB-1rCognom2nCognomNom'' ha de tenir 4 arxius:&lt;br /&gt;
&lt;br /&gt;
'''p01_'''1rCognom'''_'''Nom'''-SMX2B.png''' (amb la captura del tros de codi de l'Scratch)&lt;br /&gt;
&lt;br /&gt;
'''p01_'''1rCognom'''_'''Nom'''-SMX2B.sb''' (amb el codi de l'Scratch)&lt;br /&gt;
&lt;br /&gt;
'''p01_'''1rCognom'''_'''Nom'''-SMX2B_df.png''' (amb la captura del diagrama de flux)&lt;br /&gt;
&lt;br /&gt;
'''p01_'''1rCognom'''_'''Nom'''-SMX2B_df.drawio''' (amb el codi del diagrama de flux)&lt;br /&gt;
&lt;br /&gt;
Exercicis introductoris a Scratch. &lt;br /&gt;
&lt;br /&gt;
Les '''pràctiques sense codi''' han de dur la captura de pantalla de la '''part gràfica'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hem arribat fins a la pràctica ...&lt;br /&gt;
&lt;br /&gt;
== 20210914 ==&lt;br /&gt;
[[Repàs d'ordres del sistema operatiu GNU/Linux - 1a setmana del curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''smxB'' / ''smxB2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador en línia]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
	<entry>
		<id>https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=3562</id>
		<title>DAW 2021-2022</title>
		<link rel="alternate" type="text/html" href="https://www.binefa.com/index.php?title=DAW_2021-2022&amp;diff=3562"/>
		<updated>2021-10-15T15:19:12Z</updated>

		<summary type="html">&lt;p&gt;172.18.0.2: /* 20211015 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Quan tingueu les credencials d'accés a la [https://clot.fje.edu/ca NET] heu de compartir-nos (als '''dos''' professors) una carpeta amb aquest nom: '''2122-DAW-M03-1rCognom2nCognomNom''' (Per exemple, si el teu nom és Xavier López Pujol --&amp;gt; ''2122-DAW-M03-LopezPujolXavier''). A aquest enllaç podreu veure si ja hi sou a la llista:&lt;br /&gt;
&lt;br /&gt;
[[Carpetes compartides del M03 de 1r de DAW. Curs 2021-2022]]&lt;br /&gt;
&lt;br /&gt;
= Algunes classes =&lt;br /&gt;
[https://docs.google.com/spreadsheets/d/1FhkkzZmQA3-mpiuKGv7Onhtcr8sdLyFAcTg3GBwhLgw/ Llista de 1r de DAW]&lt;br /&gt;
&lt;br /&gt;
== Teleconferència ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats]&lt;br /&gt;
&lt;br /&gt;
== 20211015 ==&lt;br /&gt;
Operadors relacionals: [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p6.htm m2p06.c]&lt;br /&gt;
&lt;br /&gt;
Comencem per la pràctica [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2p5.htm m2p05.c]&lt;br /&gt;
&lt;br /&gt;
== 20211014 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211014/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en C''' es fa servir la funció '''pow()''' (que li cal l'arxiu de capçalera ''math.h'' i, per tant, requereix afegir a la compilació el paràmetre '''-lm'''):&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow('''lfBase''','''lfExponent''')'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una '''potència en Python''' es fa servir l'operador '''**''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; lfBase'''**'''lfExponent&lt;br /&gt;
&lt;br /&gt;
En '''Python''':&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''Exercicis/Python'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.py'', ''m1e4.py'', ''m1e5.py'', ''m1e6.py'' i ''m1e7.py'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.py'', ''m1e7_01.py'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7_py.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
En '''C''':&lt;br /&gt;
&lt;br /&gt;
[[Introducció a C - 2a part]]&lt;br /&gt;
&lt;br /&gt;
== 20211008 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211008/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
Compilació amb l'arxiu de capçalera ''math.h'':&lt;br /&gt;
 gcc m1p06.c -o m1p06 '''-lm'''&lt;br /&gt;
&lt;br /&gt;
Per a fer una potència en '''C''' es fa servir la funció '''pow()''':&lt;br /&gt;
 lfBase ^ lfExponent =&amp;gt; '''pow(lfBase,lfExponent)'''&lt;br /&gt;
&lt;br /&gt;
En C:&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211007 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20211007/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
=== Python ===&lt;br /&gt;
Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:&lt;br /&gt;
 jupyter-lab&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html Accés directe a 20211007_py.html] i [https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py_02.html accés directe a 20211007_py_02.html]&lt;br /&gt;
&lt;br /&gt;
=== C ===&lt;br /&gt;
* Implementació en C dels dos darrers exercicis d'[https://www.binefa.cat/daw2122/m03_m14/20211007/20211007_py.html aquest enllaç]&lt;br /&gt;
&lt;br /&gt;
* Implementació en C de l'exercici 5 de la [https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf col·lecció d'exercicis de pseudocodi]&lt;br /&gt;
&lt;br /&gt;
* Exercicis 3, 4, 5, 6 i 7 dels [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m1/d97m1ex.htm exercicis de C del mòdul 1 del d97]. Dins de la vostra carpeta compartida, feu la subcarpeta '''Exercicis/C'''. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran ''m1e3.c'', ''m1e4.c'', ''m1e5.c'', ''m1e6.c'' i ''m1e7.c'' (si hi pugeu versions diferents, les podeu anomenar ''m1e7_00.c'', ''m1e7_01.c'', ...). També hi pujareu un arxiu en pdf, anomenat ''m1e3_7.pdf'' amb les captures de codi més significatives (al principi, potser, serà tot el codi. Però quan els codis es facin més grans tan sols farà falta indicar la part més representativa) i les captures de llur execució. A classe comentem com fer-ho.&lt;br /&gt;
&lt;br /&gt;
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3te.htm Els condicionals en C]&lt;br /&gt;
&lt;br /&gt;
== 20211005 ==&lt;br /&gt;
[https://jupyter.org/try Prova de Jupyter via web externa]&lt;br /&gt;
&lt;br /&gt;
Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:&lt;br /&gt;
 $ su -&lt;br /&gt;
 # apt update&lt;br /&gt;
 # apt install python3-pip&lt;br /&gt;
 # exit&lt;br /&gt;
 $ pip --version&lt;br /&gt;
 $ pip install jupyterlab&lt;br /&gt;
 $ pip install jupyter-c-kernel&lt;br /&gt;
&lt;br /&gt;
Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:&lt;br /&gt;
&lt;br /&gt;
 $ install_c_kernel --user&lt;br /&gt;
 $ jupyter kernelspec list&lt;br /&gt;
&lt;br /&gt;
Un cop instal·lat s'executa des del terminal:&lt;br /&gt;
 $ jupyter-lab&lt;br /&gt;
&lt;br /&gt;
I apareix el navegador web amb el Jupyter Lab.&lt;br /&gt;
&lt;br /&gt;
Codis '''00_py_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/python/doc/00_py_intro.ipynb 00_py_intro.ipynb]([https://www.binefa.cat/training/codes/python/doc/00_py_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
Codis '''00_C_intro''':&lt;br /&gt;
&lt;br /&gt;
[https://www.binefa.cat/training/codes/C/doc/00_C_intro.ipynb 00_C_intro.ipynb]([https://www.binefa.cat/training/codes/C/doc/00_C_intro.html Vista web])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Seguim amb la [[Introducció bàsica a Python]]&lt;br /&gt;
&lt;br /&gt;
== 20211001 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20211001]&lt;br /&gt;
&lt;br /&gt;
== 20210930 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210930]&lt;br /&gt;
&lt;br /&gt;
== 20210928 ==&lt;br /&gt;
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional pel dia 20210928]&lt;br /&gt;
&lt;br /&gt;
== 20210923 ==&lt;br /&gt;
[https://meet.google.com/bsu-fmpg-dve Adreça de la teleconferència per al dia d'avui]&lt;br /&gt;
&lt;br /&gt;
[https://recull.binefa.cat/files/20210923/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
== 20210921 ==&lt;br /&gt;
[https://recull.binefa.cat/files/20210921/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2122''&lt;br /&gt;
&lt;br /&gt;
= Repositori de codis fet a classe durant el curs =&lt;br /&gt;
[https://recull.binefa.cat/files/ Codis fets a les classes de 1r de DAW] usuari: daw | contrasenya: daw2122&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
== Algorísmica ==&lt;br /&gt;
[https://www.binefa.cat/daw2122/m03_m14/doc/1PRG_M03UF1_EXE001_BasicsPseudocodi.pdf Exercicis bàsics de pesudocodi - Ex01]&lt;br /&gt;
&lt;br /&gt;
== Python ==&lt;br /&gt;
[[Pràctiques d'introducció a Python - SMX | Pràctiques d'introducció a Python]]&lt;br /&gt;
&lt;br /&gt;
=== Condicionals en Python ===&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 2 - SMX | Condicionals amb Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis de condicions en Python]]&lt;br /&gt;
&lt;br /&gt;
=== Estructures repetitives, o bucles, en Python ===&lt;br /&gt;
&lt;br /&gt;
[[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]]&lt;br /&gt;
&lt;br /&gt;
[[Exercicis d'estructures de control repetitives en Python]]&lt;br /&gt;
&lt;br /&gt;
== C ==&lt;br /&gt;
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm Fonaments de programació en C]&lt;br /&gt;
&lt;br /&gt;
= Eines en línia =&lt;br /&gt;
[https://recull.binefa.cat/ Recull de codis fets a classe] usuari / contrasenya : ''daw'' / ''daw2122''&lt;br /&gt;
&lt;br /&gt;
[https://app.diagrams.net/ Disseny de diagrames de flux en línia]&lt;br /&gt;
&lt;br /&gt;
[https://snap.berkeley.edu/ Snap!] o [https://www.binefa.cat/Snap Snap! personalitzat]&lt;br /&gt;
&lt;br /&gt;
[https://www.onlinegdb.com/ Compilador / intèrpret en línia onlinegdb.com]&lt;br /&gt;
&lt;br /&gt;
[http://www.arduinoblocks.com/ Arduino Blocks]&lt;/div&gt;</summary>
		<author><name>172.18.0.2</name></author>
		
	</entry>
</feed>