Diferència entre revisions de la pàgina «DAW 2024-2025»

De binefa.com
Salta a la navegació Salta a la cerca
 
(Hi ha 40 revisions intermèdies del mateix usuari que no es mostren)
Línia 4: Línia 4:
  
 
Estructura de les carpetes:
 
Estructura de les carpetes:
 +
EH1 ''(depenent del subgrup)''
 
  SM1 ''(depenent del subgrup)'' [https://www.collados.org/ collados.org]
 
  SM1 ''(depenent del subgrup)'' [https://www.collados.org/ collados.org]
 
  SM3
 
  SM3
Línia 37: Línia 38:
  
 
= Algunes classes =
 
= Algunes classes =
 +
== 20250425 ==
 +
* Seguim fent els [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis 3, 5, 6, 11 i 12].
 +
* Apuntadors
 +
== 20250424 ==
 +
* Seguim fent els [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm exercicis 3, 5, 6, 11 i 12].
 +
 +
== 20250411 ==
 +
* Recursivitat
 +
* Aleatorietat
 +
* [https://docs.python.org/3/library/turtle.html turtle]
 +
* [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/annex.htm La depuració] El '''gdb'''.
 +
* Codi [https://recull.binefa.cat/files/20250411/debug_p01.c debug_p01.c]
 +
 +
== 20250410 ==
 +
* Recursivitat
 +
* Aleatorietat
 +
 +
== 20250407 ==
 +
* Exercicis de recursivitat ([http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/d97m4ex.htm Exercicis 1 i 2]) Resoleu-los en Python i en C.
 +
 +
== 20250404 ==
 +
* Recursivitat
 +
* Aleatorietat
 +
 +
== 20250403 ==
 +
* Recursivitat
 +
== 20250331 ==
 +
[https://recull.binefa.cat/files/20250331/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2425''
 +
 +
<!-- Exercicis de '''recursivitat'''. ([https://recull.binefa.cat/files/20231214/ m4p01.c, m4p02.c, m4e1.c, m4e2.c i m4e2.py])
 +
 +
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m4/annex.htm La '''depuració''' en C emprant '''gdb''']
 +
-->
 +
=== Separació d'arxius en Python ===
 +
 +
'''crida01.py''':
 +
# crida01.py
 +
 +
def nLaTevaEdat():
 +
    return int(input("La teva edat: "))
 +
 +
'''if __name__ == "__main__":'''
 +
    print("Dius tenir %d anys"%nLaTevaEdat())
 +
 +
'''principal.py''':
 +
# principal.py
 +
'''import''' ''crida01''
 +
 +
nEdat = ''crida01''.nLaTevaEdat()
 +
print("Heu dit que teniu %d anys"%nEdat)
 +
 +
'''principal02.py''':
 +
# principal02.py
 +
'''from''' crida01 '''import''' ''nLaTevaEdat''
 +
 +
nEdat = ''nLaTevaEdat''()
 +
print("Heu dit que teniu %d anys"%nEdat)
 +
 +
'''principal03.py''':
 +
# principal03.py
 +
'''from''' crida01 '''import''' nLaTevaEdat '''as''' ''nIntroEdat''
 +
 +
nEdat = ''nIntroEdat''()
 +
print("Heu dit que teniu %d anys"%nEdat)
 +
=== Separació d'arxius en C ===
 +
[https://recull.binefa.cat/files/20250331/m4e1_separacioArxiusEnC.zip Exemple de separació d'arxius en C]
 +
 +
== 20250328 ==
 +
Concurs de robots
 +
[[Image:Graella2025.png|center|Graella]]
 +
 +
== 20250327 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250324 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250321 ==
 +
* Dubtes
 +
* [https://github.com/ivanseidel/ArduinoThread Pseudofils a Arduino] (com posar en paral·lel diferents processos).
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== SM1 exam ==
 +
* Monday 20250317 - 19.10 to 21.00 Skill Assesment (504 & 505)
 +
* Friday 20250321 - 15.00 to 15.55 Knowledge Assesment (504 & 505)
 +
== 20250317 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
== 20250314 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250313 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
== 20250310 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250307 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250228 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250224 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250221 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250220 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250217 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250214 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250213 ==
 +
* Dubtes
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250210 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
== 20250206 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i robots
 +
 +
* Pas per referència:
 +
/*
 +
pasReferencia00.c
 +
El pas per referència serveix per modificar valors indirectament. (Sense return)
 +
20250206
 +
*/
 +
#include <stdio.h>
 +
 +
void suma2(int *n){ // * significa que la variable emmagatzema l'adreça. No el valor
 +
    *n = *n + 2; // El valor d'on apunta n s'incrementa en 2
 +
}
 +
 +
int main(){
 +
    int x = 7;
 +
   
 +
    printf("1) x: %d\n",x);
 +
    suma2(&x); // & diu l'adreça de la variable
 +
    printf("2) x: %d\n",x);
 +
 +
    return 0;
 +
}
 +
 +
== 20250203 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
== 20250131 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
== 20250130 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
== 20250127 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
== 20250124 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
== 20250123 ==
 +
* Dubtes
 +
 +
* Seguim fent les pràctiques d'Arduino i Robot
 +
 
== 20250120 ==
 
== 20250120 ==
 
* Dubtes
 
* Dubtes
  
 
* Seguim fent les pràctiques d'Arduino i Robot
 
* Seguim fent les pràctiques d'Arduino i Robot
 +
 +
* [https://recull.binefa.cat/files/20250120/robot01_3estats.jpg Diagrama d'estats del robot]
 +
 
== 20250117==
 
== 20250117==
 
* Dubtes
 
* Dubtes

Revisió de 13:07, 25 abr 2025

Quan tingueu les credencials d'accés a la NET heu de compartir-nos (als dos professors) una carpeta amb aquest nom: 2425-DAW-SM3-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2425-DAW-SM3-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:

Carpetes compartides del SM3 de 1r de DAW. Curs 2024-2025

Estructura de les carpetes:

EH1 (depenent del subgrup)
SM1 (depenent del subgrup) collados.org
SM3
  examens
  exercicis
    C
    Python
    Encastats
  perDies

Enllaços ràpids

Compartició de pantalla

Llista de 1r de DAW

Totes les llistes

Introducció a Arduino

Simulació dels 4 leds i 4 botons de la placa S4A

Simulació dels 4 leds i 4 botons de la placa S4A, permetent prémer més d'un botó alhora

Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part

Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part

Pràctiques amb el robot versió 6

Algunes classes

20250425

20250424

20250411

20250410

  • Recursivitat
  • Aleatorietat

20250407

20250404

  • Recursivitat
  • Aleatorietat

20250403

  • Recursivitat

20250331

Codis comentats avui a classe usuari: daw / contrasenya: daw2425

Separació d'arxius en Python

crida01.py:

# crida01.py

def nLaTevaEdat():
   return int(input("La teva edat: "))

if __name__ == "__main__":
   print("Dius tenir %d anys"%nLaTevaEdat())

principal.py:

# principal.py
import crida01

nEdat = crida01.nLaTevaEdat()
print("Heu dit que teniu %d anys"%nEdat)

principal02.py:

# principal02.py
from crida01 import nLaTevaEdat

nEdat = nLaTevaEdat()
print("Heu dit que teniu %d anys"%nEdat)

principal03.py:

# principal03.py
from crida01 import nLaTevaEdat as nIntroEdat

nEdat = nIntroEdat()
print("Heu dit que teniu %d anys"%nEdat)

Separació d'arxius en C

Exemple de separació d'arxius en C

20250328

Concurs de robots

Graella

20250327

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250324

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250321

  • Dubtes
  • Pseudofils a Arduino (com posar en paral·lel diferents processos).
  • Seguim fent les pràctiques d'Arduino i robots

SM1 exam

  • Monday 20250317 - 19.10 to 21.00 Skill Assesment (504 & 505)
  • Friday 20250321 - 15.00 to 15.55 Knowledge Assesment (504 & 505)

20250317

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250314

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250313

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250310

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250307

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250228

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250224

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250221

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250220

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250217

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250214

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250213

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250210

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots

20250206

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i robots
  • Pas per referència:
/*
pasReferencia00.c 
El pas per referència serveix per modificar valors indirectament. (Sense return)
20250206
*/
#include <stdio.h>

void suma2(int *n){ // * significa que la variable emmagatzema l'adreça. No el valor
   *n = *n + 2; // El valor d'on apunta n s'incrementa en 2 
}

int main(){
   int x = 7;
   
   printf("1) x: %d\n",x);
   suma2(&x); // & diu l'adreça de la variable
   printf("2) x: %d\n",x);

   return 0;
}

20250203

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250131

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250130

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250127

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250124

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250123

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250120

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot

20250117

  • Dubtes
  • Seguim fent les pràctiques d'Arduino i Robot


SM1 act10:

systemctl --reverse list-dependencies cups

20250116

  • Dubtes
  • Seguim fent les pràctiques d'Arduino

20250113

  • Dubtes
  • Seguim fent les pràctiques d'Arduino

20250110

  • Dubtes
  • Seguim fent les pràctiques d'Arduino
  • Nou delay():
bool bNouDelay(int nMs){
 int nEspera = nMs/10, i;

 for (i = 0; i < 10; i++){
   if (bBotoPremut(BOTO_3)) {
     return true;
   }
   delay(nEspera);
 }
 return false;
}

void loop() {
 bool bSurt = false;

 if (bBotoPremut(BOTO_2)) {
   digitalWrite(LED_W, LOW);
   digitalWrite(LED_G, LOW);
   digitalWrite(LED_Y, LOW);
   digitalWrite(LED_R, LOW);
   while (true) { 
     digitalWrite(LED_W, HIGH); 
     bSurt = bNouDelay(1000);
     if (bSurt) break;
     digitalWrite(LED_W, LOW);

     digitalWrite(LED_G, HIGH); 
     bSurt = bNouDelay(1000);
     if (bSurt) break;
     digitalWrite(LED_G, LOW);  
...

20250109

  • Dubtes
  • Seguim fent les pràctiques d'Arduino
  • Pujada la segona part de les pràctiques d'Arduino

20241220

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241219

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241216

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241213

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241212

  • Dubtes
  • Bases numèriques:
void setup(){
 Serial.begin(115200);
}

void loop() {
 static int n = 0;

 Serial.print("dec: ");
 Serial.print(n);
 Serial.print(", hex: ");
 Serial.print(n,16);
 Serial.print(", oct: ");
 Serial.print(n,8);
 Serial.print(", bin: ");
 Serial.println(n,2);
 n++;
 delay(50);
}
  • Gestió del temps a Arduino: millis()
  • Seguim fent els exercicis d'Arduino

20241209

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241205

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241202

  • Dubtes
  • Seguim fent els exercicis d'Arduino

20241129

  • Dubtes

20241122 Examen 1r trimestre

Examen del primer trimestre en paper i bolígraf. Es permeten apunts físics. No es permet l'ús de l'ordinador o del telèfon mòbil durant l'estona de l'examen.

20241121

  • Dubtes
  • Seguim fent exemples amb bucles

20241118

  • Dubtes
  • Seguim fent exemples amb bucles

20241115

  • Dubtes
  • Seguim fent exemples amb bucles

20241114

  • Dubtes
  • Implementació d'un codi per a fer sèries de números a(n) = a*n + b
  • Càlcul de la suma de sèries de números emprant bucles i emprant fórmula.
  • Operadors >> i << per a fer multiplicacions i divisions en base 2
  • Implementació de la multiplicació russa

20241111

  • Dubtes
  • Seguim fent en C l'algorisme 3n+1

20241108

  • Dubtes
  • Seguim implementant la verificació del número d'una targeta de crèdit

20241107

  • Dubtes
  • Seguim implementant la verificació del número d'una targeta de crèdit

20241104

  • Dubtes
  • Exercicis de bucles

20241028

  • Dubtes
  • Més bucles

20241024

  • Dubtes
  • Bucles

20241024

  • Dubtes
  • Condicionals

20241021

  • Dubtes
  • Seguim fent m2e5.c i m2e5.py

20241018

  • Dubtes
  • Funcions. Paràmetres a funcions i retorn.
  • m2e5.c i m2e5.py

20241017

  • Dubtes
  • Tipus de divisions: enteres i amb decimals.
  • Funcions. Paràmetres a funcions i retorn.
  • m2e5.c i m2e5.py

20241014

Seguim amb variables booleanes.

20241011

Repàs

20241010

  • Introducció de cadenes amb espais (scanf("%[^\n]",szNomCompost);)
  • Introducció a la lògica booleana
   printf("%d\n",(cTipus == 'J')); // == es una comparació
   printf("%d\n",(cTipus == 'G'));
   printf("%d\n",(cTipus != 'J')); // != Vol dir diferent
   printf("%d\n",(cTipus != 'G'));
   printf("%d\n",!(cTipus != 'J')); // == es una comparació
   printf("%d\n",!(cTipus != 'G')); // !( Nega l'estat
#include <stdio.h>
#define bool unsigned char
#define true 1
#define false 0

int main(){
   bool bPlou, bTincParaigua;
   
   bPlou = true;
   bTincParaigua = false;
   printf("Em mullo(1). Nom em mullo(0): %d\n", bPlou  && !bTincParaigua);
   bTincParaigua = true;
   printf("Em mullo(1). Nom em mullo (0): %d\n", bPlou && !bTincParaigua);

   return 0;
}
  • Exercici m1e7 del d97
  • Seguim en Python i C. Introducció de valors en C.

20241007

Seguim en Python i C. Introducció de valors en C.

20241004

Seguim en Python i C. Introducció de valors en C.

20241003

Seguim en Python i C. Introducció de valors en C.

20240930 (1h)

Seguim en Python i C. Introducció de valors en C.

20240927 (1h)

Seguim en Python i C. Introducció de valors en C.

Python:

nA = int(input("nA: ")) # imprimeix i captura del teclat
fB = float(input("fB: "))
print("nA: %d, fB: %f, fB: %.3f"%(nA,fB,fB));

C:

#include <stdio.h>

int main(){
   int nA;
   float fB;
    
   printf("nA: ");
   scanf("%d",&nA);
   printf("fB: "); // fB = float(input("fB: "))
   scanf("%f",&fB); // captura el valor del teclat
   printf("nA: %d, fB: %f, fB: %.3f\n",nA,fB,fB);
    
   return 0;
}

20240926 (1h)

Seguim en Python i C. Introducció de valors en C.

Tipus de variable en C. Visualització de caràcters del codi ASCII com a caràcter, decimal, hexadecimal i octal.

20240923 (1h)

Seguim en Python i C. Introducció de valors en C.

20240920 (1h)

Codis comentats avui a classe usuari: daw / contrasenya: daw2425

20240919 (1h)

Codis comentats avui a classe usuari: daw / contrasenya: daw2425

  • Introducció Hola món en Python i C.
  • Funcionament del return. Lectura a Linux del que retorna un programa al sistema operatiu:
echo $?

Lectura a Windows del que retorna un programa al sistema operatiu:

echo %errorlevel%
  • Retorn al sistema a Python:
ecat@iot-ecat:~$ python -c "import sys; sys.exit(0)"; echo $?
0
ecat@iot-ecat:~$ python -c "import sys; sys.exit(5)"; echo $?
5
ecat@iot-ecat:~$ python -c "import sys; sys.exit(-1)"; echo $?
255
  • Lectura de dades a Snap!, Python i C

20240916 (1h)

Codis comentats avui a classe usuari: daw / contrasenya: daw2425

Compilador / intèrpret en línia onlinegdb.com

Snap!

Snap!

Python

Instal·lador de Python per a Windows

Convertidor de blocs a Python

Pràctiques d'introducció a Python

C

Instal·lador de C per a Windows

Using GCC with MinGW

Fonaments de programació en C

IDE

Visual Studio Code

Geany

Compilador / intèrpret en línia onlinegdb.com

Repositori de codis fet a classe durant el curs

Codis fets a les classes de 1r de DAW usuari: daw / contrasenya: daw2425

Algorísmica

Exercicis bàsics de pesudocodi - Ex01

Python

Pràctiques d'introducció a Python

Condicionals en Python

Condicionals amb Python

Exercicis de condicions en Python

Estructures repetitives, o bucles, en Python

Estructures repetitives, o bucles, en Python

Exercicis d'estructures de control repetitives en Python

Instal·lació del Jupyter Lab

Prova de Jupyter via web externa

Instal·lació de Jupyter Lab a la màquina virtual GNU/Linux. Des del terminal:

$ su -
# apt update
# apt install python3-pip
# exit
$ pip --version
$ pip install jupyterlab
$ pip install jupyter-c-kernel

Sortiu de la sessió i torneu-hi a entrar. Seguiu amb aquestes ordres:

$ install_c_kernel --user
$ jupyter kernelspec list

Un cop instal·lat s'executa des del terminal:

$ jupyter-lab

I apareix el navegador web amb el Jupyter Lab.

C

Fonaments de programació en C

Eines en línia

Recull de codis fets a classe usuari / contrasenya : daw / daw2425

Disseny de diagrames de flux en línia

Snap! o Snap! personalitzat

Compilador / intèrpret en línia onlinegdb.com

Arduino Blocks

MinGW - Compilador de C per a Windows

Vídeo de particions en línia d'ordres

EduBlocks