DAW 2023-2024
Quan tingueu les credencials d'accés a la NET heu de compartir-nos (als dos professors) una carpeta amb aquest nom: 2324-DAW-SM3-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2324-DAW-SM3-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:
Carpetes compartides del SM3 de 1r de DAW. Curs 2023-2024
Estructura de les carpetes:
SM1 (depenent del subgrup) SM3 examens exercicis C Python Encastats perDies
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta SM3/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!
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta SM3/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!
Contingut
- 1 Algunes classes
- 1.1 Enllaços ràpids
- 1.2 20240523 Examen fitxers, estructures i gestió dinàmica de memòria (2h)
- 1.3 20240521 (2h)
- 1.4 20240514 (2h)
- 1.5 20240510 (1h + 2h)
- 1.6 20240507 (2h)
- 1.7 20240503 (1h + 2h)
- 1.8 20240430 (2h)
- 1.9 20240426 (1h + 2h)
- 1.10 20240423 (2h)
- 1.11 20240419 (1h + 2h)
- 1.12 20240416 (2h)
- 1.13 20240412 (1h + 2h)
- 1.14 20240409 (2h)
- 1.15 20240405 (1h+2h)
- 1.16 20240402 (2h)
- 1.17 20240322 (Concurs de robots)
- 1.18 20240322 (1h+2h)
- 1.19 20240319 (2h)
- 1.20 20240315 (1h + 2h)
- 1.21 20240308 (1h + 2h)
- 1.22 20240301 (1h + 2h)
- 1.23 20240227 (2h)
- 1.24 20240223 (1h + 2h)
- 1.25 20240220 (2h)
- 1.26 20240216 (1h + 2h)
- 1.27 20240213 (2h)
- 1.28 20240209 (1h)
- 1.29 20240206 (2h)
- 1.30 20240202 (1h + 2h)
- 1.31 20240130 (2h)
- 1.32 20240126 (1h + 2h)
- 1.33 20240123 (2h)
- 1.34 20240119 (1h + 2h)
- 1.35 20240116 (2h)
- 1.36 20240112 (1h + 2h)
- 1.37 20240109 (2h)
- 1.38 20231219 (2h)
- 1.39 20231215 (1h + 2h)
- 1.40 20231205 (2h)
- 1.41 20231201 (1h + 2h)
- 1.42 20231128 (2h)
- 1.43 20231124 (1h + 2h)
- 1.44 20231121 (2h)
- 1.45 20231117 (1h + 2h)
- 1.46 20231114 (2h)
- 1.47 20231110 (1h + 2h)
- 1.48 20231107 (1h + 2h)
- 1.49 20231103 (1h + 2h)
- 1.50 20231031 (2h)
- 1.51 20231027 (1h + 2h)
- 1.52 20231024 (2h)
- 1.53 20231020 (1h + 2h)
- 1.54 20231017 (2h)
- 1.55 20231010 (2h)
- 1.56 20231006 (1h + 2h)
- 1.57 20231003 (2h)
- 1.58 20230929 (1h)
- 1.59 20230926 (3h)
- 1.60 20230922 (3h)
- 1.61 20230919 (2h)
- 2 Repositori de codis fet a classe durant el curs
- 3 Eines en línia
Algunes classes
Enllaços ràpids
Recull de codis fets a classe ( usuari: daw / contrasenya: daw2324 )
20240523 Examen fitxers, estructures i gestió dinàmica de memòria (2h)
Examen usuari: daw / contrasenya: daw2324
20240521 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers
- Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria (Al d97: Estructures, typedef, malloc, calloc i free)
20240514 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers
- Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria (Al d97: Estructures, typedef, malloc, calloc i free)
20240510 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers
- Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria (Al d97: Estructures, typedef, malloc, calloc i free)
20240507 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers
- Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria (Al d97: Estructures, typedef, malloc, calloc i free)
20240503 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers
- Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria (Al d97: Estructures, typedef, malloc, calloc i free)
20240430 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Fitxers:
20240426 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Exercicis d'exàmens anteriors
20240423 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- strcat(), strcpy()
- Exercicis d'exàmens anteriors
20240419 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Exercicis d'exàmens anteriors
20240416 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Exercicis d'exàmens anteriors
20240412 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Exercicis d'exàmens anteriors
20240409 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Dubtes
- Exercicis d'exàmens anteriors
20240405 (1h+2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Repàs de l'algorisme d'ordenació de la bombolla
- Implementació de l'algorisme de la bombolla bidireccional en Python i C
- Introducció al tkinter
- Exercicis d'exàmens anteriors
20240402 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Repàs de la implementació en C de l' algorisme d'ordenació de la bombolla (Bubble Sort):
Codi donat per a estudiar-ho per vacances de Setmana Santa usuari: daw / contrasenya: daw2324
Anàlisi de les funcions per a fer funcionar aquest programa d'ordenació de la bombolla. (Traducció del programa fet en Python el darrer dia)
int main(){ int nValors[N],nQ; vLlavorAleatorietat(); nQ = nPregunta("Nombre d'elements",N); vEmplenavalorsAleatoris(nValors,nQ,VAL_MIN,VAL_MAX); vVisualitzaLlista(nValors,nQ); vOrdBombolla(nValors,nQ); vVisualitzaLlista(nValors,nQ); return 0; }
- Algorisme d'ordenació pel mètode de la bombolla bidireccional (Cocktail Sort).
- Implementeu les funcions en Python:
n = int(input("nombre d'elements: ")) a = [] for x in range(n): a.append(random.randint(-9,9)) vilsualitzaLlista(a) a = ordenaBombollaBidireccional(a) vilsualitzaLlista(a)
- Implementeu les funcions en C:
int main(){ int nValors[N],nQ; vLlavorAleatorietat(); nQ = nPregunta("Nombre d'elements",N); vEmplenavalorsAleatoris(nValors,nQ,VAL_MIN,VAL_MAX); vVisualitzaLlista(nValors,nQ); vOrdBombollaBidireccional(nValors,nQ); vVisualitzaLlista(nValors,nQ); return 0; }
- Algorisme d'ordenació pel mètode de la inserció (Insertion Sort)
- Implementeu les funcions en Python:
n = int(input("nombre d'elements: ")) a = [] for x in range(n): a.append(random.randint(-9,9)) vilsualitzaLlista(a) a = ordenaInsercio(a) vilsualitzaLlista(a)
- Implementeu les funcions en C:
int main(){ int nValors[N],nQ; vLlavorAleatorietat(); nQ = nPregunta("Nombre d'elements",N); vEmplenavalorsAleatoris(nValors,nQ,VAL_MIN,VAL_MAX); vVisualitzaLlista(nValors,nQ); vOrdInsercio(nValors,nQ); vVisualitzaLlista(nValors,nQ); return 0; }
20240322 (Concurs de robots)
Concurs de robots ASIX i DAW.
20240322 (1h+2h)
Prorrogat al proper dia de classe.
Codi per a que pugueu repassar per vacances de Setmana Santa usuari: daw / contrasenya: daw2324
Implementeu les funcions per a fer funcionar aquest programa d'ordenació de la bombolla. (Traducció del programa fet en Python el darrer dia)
int main(){ int nValors[N],nQ; vLlavorAleatorietat(); nQ = nPregunta("Nombre d'elements",N); vEmplenavalorsAleatoris(nValors,nQ,VAL_MIN,VAL_MAX); vVisualitzaLlista(nValors,nQ); vOrdBombolla(nValors,nQ); vVisualitzaLlista(nValors,nQ); return 0; }
20240319 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Algorisme d'ordenació pel mètode de la bombolla (Bubble Sort)
20240315 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Seguim amb teoria de programació.
I quan hi sigui en carles seguim amb les Pràctiques amb el robot versió 6
20240308 (1h + 2h)
Diagrama d'estats per al sumo --> Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Simulació al Wokwi d'un Arduino fent servir fils (per a ser exactes, quelcom semblant a fils)
Pràctiques amb el robot versió 6
20240301 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240227 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240223 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240220 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240216 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240213 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240209 (1h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240206 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pràctiques amb el robot versió 6
20240202 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Repàs del pas per referència fent servir cadenes.
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
20240130 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Repàs del pas per referència fent servir cadenes.
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
20240126 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
Pas per referència
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
20240123 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324'
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
20240119 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Pràctiques amb el robot versió 6
20240116 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Operadors: ! (negació a nivell de variable), ~ (negació a nivell de bit), & (operació lògica i) i | (operació lògica o)
Visualització pel monitor sèrie de forma decimal (Serial.println(n,DEC)) i hexadecimal (Serial.print(n,HEX)).
byte by = 0x00; by |= (bBotoPremut(BOTO_A4))? 0x08:0x00; by |= (bBotoPremut(BOTO_A5))? 0x04:0x00; by |= (bBotoPremut(BOTO_3))? 0x02:0x00; by |= (bBotoPremut(BOTO_2))? 0x01:0x00; Serial.print("Hexadecimal: 0x0"); Serial.println(by,HEX); Serial.print("Binari: 0b"); Serial.println(by,BIN); Serial.print("Decimal: "); Serial.println(by,DEC);
Serial.print("Octal: 0"); // 0 at the beginning: https://learn.adafruit.com/deciphering-strange-arduino-code/octal Serial.println(by,OCT);
Serial.print("Binari negat bit a bit: 0b"); Serial.println(~by,BIN); // 4 bytes Serial.print("Binari negat bit a bit: 0b"); Serial.println((byte)~by,BIN); // byte: limitem a 8 el nombre d'1s i 0s Serial.print("Binari negat a nivell de byte: 0b"); Serial.println((byte)!by,BIN); // byte: limitem a 8 el nombre d'1s i 0s
Serial.print("Hexadecimal negat bit a bit: 0x0"); Serial.println(~by,HEX); Serial.print("Hexadecimal negat a nivell de byte: 0x"); Serial.println(!by,HEX); // 4 bytes Serial.println((byte)!by,HEX); // 1 byte
Uns i zeros mitjançant selector (Simulat emprant TinkerCad)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20240112 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20240109 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Captura de l'algorisme de detecció per flanc
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
20231219 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231215 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
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
20231205 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
La depuració 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
Exemple de separació d'arxius en C
20231201 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Explicació de la recursivitat.
20231128 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Exercicis d'aleatorietat
Exercicis d'algorísmica alg01 (en Python) i alg07 (en Python i C). (Exercicis bàsics de pesudocodi)
20231124 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Introducció a l'aleatorietat. Nombres aleatoris.
- Fem l'exercici 12 d'Exercicis d'estructures de control repetitives en Python
- Desenvolupem el joc de la travessa (La Quiniela).
20231121 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Afegir elements a una llista en Python
20231117 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231114 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231110 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231107 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Exercicis de condicions en Python
Exercicis d'estructures de control repetitives en Python
20231103 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231031 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231027 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
EAC02
Feu un programa en llenguatge C i Python que demani un valor en graus Kelvin i els converteixi a graus Celsius.
Dins del programa, a la primera línia comentada posa el teu nom i cognoms.
El fitxer que m'enviaràs ( carles[punt]olive[arrova]fje[punt]edu) en C es dirà EAC02-DAW-cognom_nom.c i en Python EAC02-DAW-cognom_nom.py.txt.
20231024 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Seguim amb els punts no finalitzats el darrer dia.
20231020 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
- Desenvolupeu m2e5.c a partir del codi m2e5_04.py
- Desenvolupeu m2e6.c i m2e6.py
- Canvieu m2p08.c a un m2p08.c emprant l'estil fet servir classe.
- Traduïu m2p08.c a m2p08.py
Seguim amb les funcions.
20231017 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231010 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231006 (1h + 2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
20231003 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Repassat l'exercici m1e5 en C i Python
Fets els exercicis m1e6 i m1e7 en C i Python
20230929 (1h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Fet l'exercici m1e5 en C i Python
20230926 (3h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Fets els exercicis m1e3 i m1e4 en C i Python
20230922 (3h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
Instal·lem el programari necessari per a programació i repassem els codis del darrer dia.
20230919 (2h)
Codis comentats avui a classe usuari: daw / contrasenya: daw2324
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: daw2324
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 : asix / asix2122
Disseny de diagrames de flux en línia
Compilador / intèrpret en línia onlinegdb.com
MinGW - Compilador de C per a Windows