DAW 2023-2024

De binefa.com
Salta a la navegació Salta a la cerca

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

Algunes classes

Enllaços ràpids

Llista de 1r de DAW

Compartició de pantalla

Recull de codis fets a classe ( usuari: daw / contrasenya: daw2324 )

Drive curs 2023-2024


20240523 Examen fitxers, estructures i gestió dinàmica de memòria (2h)

Vídeo SO

Examen usuari: daw / contrasenya: daw2324

20240521 (2h)

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

  • Dubtes
  • Fitxers

20240514 (2h)

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

  • Dubtes
  • Fitxers

20240510 (1h + 2h)

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

  • Dubtes
  • Fitxers

20240507 (2h)

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

  • Dubtes
  • Fitxers

20240503 (1h + 2h)

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

  • Dubtes
  • Fitxers

20240430 (2h)

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

  • Dubtes
  • Fitxers:

Fitxers en C

Fitxers en Python

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

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;
}

- 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;
}

- 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.

Quadre 2023-2024

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)

Biblioteca ArduinoThread

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

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

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.
  • 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

Condicionals amb Python

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

  • 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!

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: daw2324

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 : asix / asix2122

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