Diferència entre revisions de la pàgina «DAW 2024-2025»
m (→20250407) |
|||
Línia 38: | Línia 38: | ||
= Algunes classes = | = Algunes classes = | ||
+ | == 20250410 == | ||
+ | * Recursivitat | ||
+ | * Aleatorietat | ||
== 20250407 == | == 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. | * 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. |
Revisió del 18:06, 10 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
Contingut
- 1 Enllaços ràpids
- 2 Algunes classes
- 2.1 20250410
- 2.2 20250407
- 2.3 20250404
- 2.4 20250403
- 2.5 20250331
- 2.6 20250328
- 2.7 20250327
- 2.8 20250324
- 2.9 20250321
- 2.10 SM1 exam
- 2.11 20250317
- 2.12 20250314
- 2.13 20250313
- 2.14 20250310
- 2.15 20250307
- 2.16 20250228
- 2.17 20250224
- 2.18 20250221
- 2.19 20250220
- 2.20 20250217
- 2.21 20250214
- 2.22 20250213
- 2.23 20250210
- 2.24 20250206
- 2.25 20250203
- 2.26 20250131
- 2.27 20250130
- 2.28 20250127
- 2.29 20250124
- 2.30 20250123
- 2.31 20250120
- 2.32 20250117
- 2.33 20250116
- 2.34 20250113
- 2.35 20250110
- 2.36 20250109
- 2.37 20241220
- 2.38 20241219
- 2.39 20241216
- 2.40 20241213
- 2.41 20241212
- 2.42 20241209
- 2.43 20241205
- 2.44 20241202
- 2.45 20241129
- 2.46 20241122 Examen 1r trimestre
- 2.47 20241121
- 2.48 20241118
- 2.49 20241115
- 2.50 20241114
- 2.51 20241111
- 2.52 20241108
- 2.53 20241107
- 2.54 20241104
- 2.55 20241028
- 2.56 20241024
- 2.57 20241024
- 2.58 20241021
- 2.59 20241018
- 2.60 20241017
- 2.61 20241014
- 2.62 20241011
- 2.63 20241010
- 2.64 20241007
- 2.65 20241004
- 2.66 20241003
- 2.67 20240930 (1h)
- 2.68 20240927 (1h)
- 2.69 20240926 (1h)
- 2.70 20240923 (1h)
- 2.71 20240920 (1h)
- 2.72 20240919 (1h)
- 2.73 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
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