DAW 2024-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
Contingut
- 1 Enllaços ràpids
 - 2 Algunes classes
- 2.1 20250521
 - 2.2 20250519
 - 2.3 20250516
 - 2.4 20250515
 - 2.5 20250512
 - 2.6 20250509
 - 2.7 20250508
 - 2.8 20250505
 - 2.9 20250425
 - 2.10 20250424
 - 2.11 20250411
 - 2.12 20250410
 - 2.13 20250407
 - 2.14 20250404
 - 2.15 20250403
 - 2.16 20250331
 - 2.17 20250328
 - 2.18 20250327
 - 2.19 20250324
 - 2.20 20250321
 - 2.21 SM1 exam
 - 2.22 20250317
 - 2.23 20250314
 - 2.24 20250313
 - 2.25 20250310
 - 2.26 20250307
 - 2.27 20250228
 - 2.28 20250224
 - 2.29 20250221
 - 2.30 20250220
 - 2.31 20250217
 - 2.32 20250214
 - 2.33 20250213
 - 2.34 20250210
 - 2.35 20250206
 - 2.36 20250203
 - 2.37 20250131
 - 2.38 20250130
 - 2.39 20250127
 - 2.40 20250124
 - 2.41 20250123
 - 2.42 20250120
 - 2.43 20250117
 - 2.44 20250116
 - 2.45 20250113
 - 2.46 20250110
 - 2.47 20250109
 - 2.48 20241220
 - 2.49 20241219
 - 2.50 20241216
 - 2.51 20241213
 - 2.52 20241212
 - 2.53 20241209
 - 2.54 20241205
 - 2.55 20241202
 - 2.56 20241129
 - 2.57 20241122 Examen 1r trimestre
 - 2.58 20241121
 - 2.59 20241118
 - 2.60 20241115
 - 2.61 20241114
 - 2.62 20241111
 - 2.63 20241108
 - 2.64 20241107
 - 2.65 20241104
 - 2.66 20241028
 - 2.67 20241024
 - 2.68 20241024
 - 2.69 20241021
 - 2.70 20241018
 - 2.71 20241017
 - 2.72 20241014
 - 2.73 20241011
 - 2.74 20241010
 - 2.75 20241007
 - 2.76 20241004
 - 2.77 20241003
 - 2.78 20240930 (1h)
 - 2.79 20240927 (1h)
 - 2.80 20240926 (1h)
 - 2.81 20240923 (1h)
 - 2.82 20240920 (1h)
 - 2.83 20240919 (1h)
 - 2.84 20240916 (1h)
 
 - 3 Repositori de codis fet a classe durant el curs
 - 4 Eines en línia
 
Enllaços ràpids
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
20250521
- Part 2 i 3 de l'examen de SM3 i EH3
 
20250519
20250516
- Dubtes
 
20250515
- Dubtes
 
20250512
- Dubtes
 - Fitxers (Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria i fitxers en C
 
20250509
- Dubtes
 - Estructures
 - Fitxers (Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria i fitxers en C
 
20250508
- Dubtes
 - Exercici 1 - anagrames
 
20250505
- Dubtes
 - Seguim amb les cadenes de caràcters
 - Mètodes de cadenes a Python
 - Part 1 de Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
 
20250425
- Seguim fent els exercicis 3, 5, 6, 11 i 12.
 - Apuntadors
 
20250424
- Seguim fent els exercicis 3, 5, 6, 11 i 12.
 
20250411
- Recursivitat
 - Aleatorietat
 - turtle
 - La depuració El gdb.
 - Codi debug_p01.c
 
20250410
- Recursivitat
 - Aleatorietat
 
20250407
- Exercicis de recursivitat (Exercicis 1 i 2) Resoleu-los en Python i en C.
 
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
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
 
- binari00 al Wokwi
 
- binari01 al Wokwi
 
- binari02 al Wokwi
 
- 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
 
- Introducció a Arduino Simulació en línia
 
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!
Python
Instal·lador de Python per a Windows
Pràctiques d'introducció a Python
C
Instal·lador de C per a Windows
IDE
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
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
Eines en línia
Recull de codis fets a classe usuari / contrasenya : daw / daw2425
Disseny de diagrames de flux en línia
Compilador / intèrpret en línia onlinegdb.com
MinGW - Compilador de C per a Windows
