Diferència entre revisions de la pàgina «ASIX 2021-2022»
m (→20220420) |
|||
Línia 22: | Línia 22: | ||
== 20220420 == | == 20220420 == | ||
[https://recull.binefa.cat/files/20220420/ Recull d'avui] | [https://recull.binefa.cat/files/20220420/ Recull d'avui] | ||
+ | |||
+ | * Dubtes | ||
+ | |||
+ | * Diferència de tractament de cadenes en C i en Python | ||
+ | |||
+ | - [https://recull.binefa.cat/files/20220420/cadenes01.c cadenes01.c] | ||
+ | |||
+ | - [https://recull.binefa.cat/files/20220420/cadenes_c_py/cadenes.c cadenes.c] i [https://recull.binefa.cat/files/20220420/cadenes_c_py/cadenes.py cadenes.py] | ||
+ | |||
+ | * [https://recull.binefa.cat/files/20220420/m8p0x.zip Codis del d97 sobre lectura i escriptura d'arxius] | ||
+ | |||
+ | * Lectura d'arxius en Python | ||
+ | |||
+ | - [https://recull.binefa.cat/files/20220420/lecturaArxius.py lecturaArxius.py] | ||
== 20220419 == | == 20220419 == |
Revisió del 15:46, 20 abr 2022
Quan tingueu les credencials d'accés a la NET heu de compartir-nos (als dos professors) una carpeta amb aquest nom: 2122-ASIX-M03-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2122-ASIX-M03-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:
Carpetes compartides del M03 de 1r d'ASIX. Curs 2021-2022
Estructura de les carpetes:
M01 (depenent del subgrup) M03 examens exercicis C Python perDies M16 Arduino
Contingut
- 1 Algunes classes
- 1.1 Teleconferència
- 1.2 20220420
- 1.3 20220419
- 1.4 20220406
- 1.5 20220405
- 1.6 20220404 - M03UF3
- 1.7 20220401 Exàmens M03UF1 i M03Uf2
- 1.8 20220330
- 1.9 20220329
- 1.10 20220328
- 1.11 20220323
- 1.12 20220321
- 1.13 20220315
- 1.14 20220314
- 1.15 20220308
- 1.16 20220307
- 1.17 20220302
- 1.18 20220301
- 1.19 20220223
- 1.20 20220222
- 1.21 20220221
- 1.22 20220216
- 1.23 20220215
- 1.24 20220214
- 1.25 20220209
- 1.26 20220208
- 1.27 20220207
- 1.28 20220202
- 1.29 20220201
- 1.30 20220131
- 1.31 20220126
- 1.32 20220125
- 1.33 20220124
- 1.34 20220119 (Baixa professor)
- 1.35 20220117
- 1.36 20220112 (Baixa professor)
- 1.37 20220110 (Baixa professor)
- 1.38 20211222
- 1.39 20211213
- 1.40 20211201
- 1.41 20211130
- 1.42 20211129
- 1.43 20211124
- 1.44 20211123
- 1.45 20211122
- 1.46 20211117
- 1.47 20211116
- 1.48 20211115
- 1.49 20211110
- 1.50 20211109
- 1.51 20211103
- 1.52 20211102
- 1.53 20211027
- 1.54 20211026
- 1.55 20211025
- 1.56 20211020
- 1.57 20211019
- 1.58 20211018
- 1.59 20211013
- 1.60 20211011
- 1.61 20211006
- 1.62 20211005
- 1.63 20211004
- 1.64 20210929
- 1.65 20210928
- 1.66 20210927
- 1.67 20210922
- 1.68 20210921
- 2 Repositori de codis fet a classe durant el curs
- 3 Eines en línia
Algunes classes
Teleconferència
Teleconferència provisional per a compartir pantalles a classe i per a confinats
20220420
- Dubtes
- Diferència de tractament de cadenes en C i en Python
- cadenes.c i cadenes.py
- Lectura d'arxius en Python
20220419
Darrer dia abans del concurs.
Ens centrem en el concurs de sumo.
20220406
- Dubtes pendents
20220405
- Dubtes pendents
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220404 - M03UF3
- Comentaris dels exàmens del M03UF1 i M03UF2
20220401 Exàmens M03UF1 i M03Uf2
Examen M03UF1
Temps d'examen: entre 16.50 i 17.40 (entre 17.40 i 17.45 heu de trametre l'examen per correu. A les 17.45 no ha de quedar ningú a classe)
Feu captures de pantalla per a documentar l'examen. Heu de capturar els trossos clau i comentar-los. A l’acabar-ho, trameteu-ho als dos professors, adjuntant un arxiu en pdf demostrant els punts claus de les respostes i un arxiu .zip (o .tar.gz, No s’accepten .7z o .rar) amb els vostres codis i sense els arxius executables. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser asix_Cognom1_Cognom2_Nom_m03uf1_ord per a ASIX i daw_Cognom1_Cognom2_Nom_m03uf1_ord per a DAW.
Examen M03UF2
Temps d'examen: entre 18.15 i 19.05 (entre 19.05 i 19.10 heu de trametre l'examen per correu. A les 19.10 començarà la següent classe)
Feu captures de pantalla per a documentar l'examen. A l’acabar-ho, trameteu-ho al correu electrònic dels dos professors, adjuntant un arxiu en pdf demostrant els punts claus de les respostes i un arxiu .zip (o .tar.gz, No s’accepten .7z o .rar) amb els vostres codis i sense els arxius executables. Aquest examen té més de 10 punts (14 possibles), escolliu les preguntes que considereu més adients. El nom de l’arxiu pdf i de l’arxiu .zip ha de ser asix_Cognom1_Cognom2_Nom_m03uf2_ord per a ASIX i daw_Cognom1_Cognom2_Nom_m03uf2_ord per a DAW.
- Depuració en C (2 punts)
- Separació d'arxius (3 punts. 1,5 en C i 1,5 en Python)
- Recursivitat (3 punts. 1,5 en C i 1,5 en Python)
- Vectors, cadenes i llistes (6 punts. 3,5 en C i 2,5 en Python)
20220330
- Dubtes pendents
20220329
- Dubtes pendents
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220328
- Dubtes pendents
20220323
Paraula clau yield a Python. Funcions generadores
- Primer exemple. A cada crida retorna un dels yield. Com a màxim es pot cridar tres cops a aquest exemple:
def generator(): yield "Benvinguts" yield " a l'" yield "Escola del Clot" gen_object = generator() print(type(gen_object)) # type(): Indica el tipus d'objecte for i in gen_object: print(i)
- Segon exemple. Nombres senars amb yield
def filtra_senars(nombres): for numero in range(nombres): if numero%2: yield numero numeros_senars = filtra_senars(25) print(list(numeros_senars))
- Tercer exemple. Ús de next
def filtra_senars(nombres): for numero in range(nombres): if numero%2: yield numero numeros_senars = filtra_senars(8) print(next(numeros_senars)) print(next(numeros_senars)) print(next(numeros_senars)) print(next(numeros_senars))
- Quart exemple:
def alCub(num): return num*num*num def obteCubs(ventall): for i in range(ventall): yield alCub(i) objecteCubs = obteCubs(5) print(list(objecteCubs))
- Cinquè exemple:
def ventall_caracters(c1,c2): for c in range(ord(c1),ord(c2)+1): yield chr(c) for c in ventall_caracters('c','g'): print(c)
20220321
- Dubtes pendents
- Un cop s'ha entès la implementació, en C i en Python, del mètode d'ordenació per selecció, feu la implementació, en C i en Python, del mètode d'ordenació de la bombolla.
20220315
- Dubtes pendents
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220314
- Dubtes pendents
Mètodes d'ordenació
- Alguns mètodes d'Ordenació. Entenem el mètode de la bombolla i el mètode de selecció (avui no analitzarem el mètode d'ordenació recursiva quicksort) i dissenyem una implementació alternativa en C i en Python.
- Per saber-ne més: Documentació extra sobre mètodes d'ordenació. Fet per en Josep Jorba Jorba de la UOC.
20220308
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220307
- Dubtes del dia anterior.
- Seguim resolent l'examen present al recull del dia anterior
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)
20220302
- Dubtes del dia anterior.
- Comencem a resoldre l'examen present al recull d'avui
20220301
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220223
20220222
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220221
- Seguim fent l'examen del darrer dia (present al recull d'avui).
- Fem la depuració del primer exercici de l'examen 20210427_daw_m03uf2_ord.pdf
20220216
20220215
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220214
- Seguim fent l'examen 20210304_m03uf1_ord del recull.
Crides a sistema en Python
# cridaSistema00.py import os os.system ("clear") print("Un cop esborrada la pantalla fem la crida al programa.") os.system("./ra1-2")
Crides a sistema en C
// cridaSistema00.c #include <stdio.h> #include <stdlib.h> // Pel system() int main(){ system("clear"); printf("Un cop esborrada la pantalla fem la crida al programa.\n"); system("python3 ra2-1.py"); return 0; }
20220209
20220208
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Pràctiques amb el robot versió 6
20220207
20220202
20220201
Placa S4A
Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
Robot
Deseu a la carpeta libraries que penja de la carpeta Arduino (a Linux la carpeta Arduino penja de /home/user i a Finestrots penja de la carpeta Els meus Documents) les biblioteques del robot: RobotController.zip i PCF8574.zip.
Pràctiques amb el robot versió 6
Prova del botó d'inici del robot
Màquina d'estats. Possibles estats del robot
Com canviar d'estat quan passen més de 5 segons:
#include <RobotController.h> #define STATE_STOP 0 #define STATE_FAST_FORWARD 1 #define STATE_FORWARD 2 #define STATE_FAST_BACKWARDS 3 #define STATE_BACKWARDS 4 #define STATE_RIGHT 5 #define STATE_LEFT 6 #define STATE_BORDER 7 #define STATE_SEARCH 8 #define DIST_MAX 50 #define CINC_SEGONS 5000 ... int nPensaEstat(int nEstatActual, bool bL, bool bR) { static unsigned long ulStartMillis = millis(); bL = !bL; bR = !bR; switch (nEstatActual) { case STATE_STOP: ... case STATE_FORWARD: if ((bL || bR)) { ulStartMillis = millis(); return STATE_BORDER; } if (millis() - ulStartMillis > CINC_SEGONS) { ulStartMillis = millis(); return STATE_BUSCAR; // Canvi d'estat per passar-se de 5 segons al mateix estat } break; case STATE_BORDER: ... case STATE_SEARCH: ... case STATE_FAST_FORWARD: ... } return nEstatActual; }
20220131
20220126
20220125
- Dubtes pendents
Arduino
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part (Excepte les pràctiques 8, 10 i 12)
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20220124
Explicació de l'intercanvi de dos valors per referència
20220119 (Baixa professor)
Tasques a fer:
Més informació:
Introducció als apuntadors (Teoria d'apuntadors)
20220117
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
- Dubtes pendents
- Comentem el codi for_incr_00.c
- Introducció als apuntadors (Teoria d'apuntadors)
20220112 (Baixa professor)
Us he penjat al recull de fa dos dies els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.
Proveu d'implementar en Python, emprant llistes, els codis: codiBarres00.c, targetaCredit_02_05.c i cc_03.c
Com a exemple, us he resolt codiBarres00.py com a implementació en Python de codiBarres00.c. També, al recull del dia d'avui, us he passat un exemple de conversió de llista de caràcters a llista de nombres enters.
Pugeu els codis targetaCredit_02_05.py i cc_03.py a una subcarpeta anomenada llistes de la carpeta Python de la vostra carpeta compartida amb mi. Feu-me arribar un correu electrònic quan els hàgiu pujat.
20220110 (Baixa professor)
Us he penjat al recull d'avui els darrers codis fets en C i el pdf amb els enunciats dels dígits de control.
Proveu d'implementar en Python, emprant llistes, els codis: codiBarres00.c, targetaCredit_02_05.c i cc_03.c
Com a exemple, us he resolt codiBarres00.py com a implementació en Python de codiBarres00.c
20211222
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
- Dubtes pendents
- Acabem l'exercici que valida el número de targeta de crèdit
- Comentem com trobar els dos dígits de control d'un compte corrent
- Plantegem l'exercici que verifica un número llegit d'un codi de barres
- Comentem el codi for_incr_00.c
- Introducció als apuntadors (Teoria d'apuntadors)
20211213
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
- Dubtes pendents
- Ús de la funció strlen() de l'arxiu de capçalera string.h . Analitzem l'arxiu usStrlen_00.c del recull d'avui.
- Feina pendent de pujar dels exercicis de M2 i M3 de la col·lecció d'exercicis del d97
De la classe del 16 de novembre hi havia aquests enunciats:
Feu els exercicis 5 i 6 d'aquesta col·lecció d'exercicis (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta col·lecció d'exercicis (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta M03/exercicis/C/m2_m3. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran m2e5.c, m2e6.c, m3e1.c, m3e3.c i m3e8.c (si hi pugeu versions diferents, les podeu anomenar m2e5_00.c, m2e5_01.c, ...). També hi pujareu un arxiu en pdf, anomenat m2_m3_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ó. 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 M03/exercicis/Python/m2_m3. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran m2e5.py, m2e6.py, m3e1.py, m3e3.py i m3e8.py (si hi pugeu versions diferents, les podeu anomenar m2e5_00.py, m2e5_01.py, ...). També hi pujareu un arxiu en pdf, anomenat m2_m3_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ó. Si feu servir el Jupyter Lab, no pujareu els arxius .py sinó l'arxiu .ipynb i l'exportació a html. També cal afegir l'enunciat i una captura del codi en Snap!
- Feina pendent de pujar dels exercicis del M4 de la col·lecció d'exercicis del d97
De la classe del 23 de novembre hi havia aquest enunciats:
- m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels exercicis de recursivitat i aleatorietat (Essent *: .py , .c)
Seguint la manera de pujar els arxius al M2 i M3, fareu les supcarpetes M03/exercicis/C/m4 i M03/exercicis/Python/m4. Poseu-hi allà les vostres propostes de solució. A la part de C tindreu l'arxiu m4_c.pdf i a la de Python m4_py.pdf. A ambdós documents hi haurà les captures de codi més importants i les diverses execucions possibles que il·lustrin les diferents possibilitats dels programes que heu desenvolupat. A la part de C també hi haurà els codis amb extensió .c i a les de Python amb extensió .py si feu servir un editor com el VSCode o l'arxiu .ipynb i l'exportació a html en cas de fer servir Jupyter Lab. Cal afegir l'enunciat. En aquesta part no cal que feu servir Snap!.
Python (llistes i tuples)
- Feu els exercicis de les pàgines 14, 17, 19, 21, 22, 23 (consulteu com calcular el producte escalar), 24, 25 i 26 del document llistes i tuples
Els codis tindran el nom llista14.py, llista17.py fins a arribar a llista26.py (si feu servir el Jupyter Lab escriviu, comentat a la primera línia, el nom del codi. També haureu d'afegir una exportació en html a la carpeta compartida). Feu un document llistaPython.pdf a on hi surtin els codis comentats i llurs execucions. Deseu-lo a una subcarpeta anomenada llistes dins de la subcarpeta Python a la carpeta compartida.
C (vectors)
- Fem la implementació del dígit de verificació de les targetes de crèdit present a algorismes de dígits de control
20211201
- Dubtes pendents
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
20211130
- Dubtes pendents
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Exercici en C:
Feu un codi en C que demani el vostre nom i cognoms que presenti el nom amb el número, en base 10, de la taula ASCII.
Examen EAC05_nom_cognom_ASIX1.c
Realitza un programa que demani una lletra minúscula de l'abecedari i vagi ensenyant les lletres següents una a una en línies diferents, fins a arribar a la 'z' on el programa pararà. Entre lletra i lletra hi haurà un temps d'un segon (o mig segon).
Si la lletra és la 'a' ens mostrarà totes les lletres línia a línia fins a la 'z'.
Si la lletra és la 'z' pararà immediatament.
Verbigràcia:
Introdueix una lletra de l'abecedari: x
x
y
z
EAC05_nom_cognom_ASIX1.c
20211129
- Dubtes pendents
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
20211124
- Dubtes pendents
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
20211123
- Dubtes pendents
- m4e1.*, m4e2.*, m4e5.*, m4e6.*, m4e11.* i m4e12.* dels exercicis de recursivitat i aleatorietat (Essent * .png i .xml d'Snap! i .py i .c)
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Examen EAC04_nom_cognom_ASIX1.c
Feu un programa que faci la pregunta a sota indicada i tingui cinc possibles respostes i només una de correcta.
Quina és la velocitat de llum?, escriu una opció, de la 1 a la 5: 1-La velocitat de la llum és 300.000 quilòmetres/segon. 2-La velocitat de la llum és 343,2 metres/segons. 3-La velocitat de la llum és de 300.000 quilòmetres/hora. 4-Cap dels anteriors. 5-Totes les anteriors són correctes.
Quan contesteu una resposta incorrecta,hem de contestar------> T'has equivocat... i tornes a preguntar.
Si la persona s'ha equivocat més de tres cops,hem de contestar------> Hauries d'estudiar més... i acabem.
Si ens posa un número inferior a 1 o superior a 5,hem de contestar-----> Opció no disposada, tria de la 1 a la 5 i tornes a preguntar.
Recorda utilitzar while(1) o for(;;) i break per sortir.
EAC04_nom_cognom_ASIX1.c
20211122
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
20211117
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Comencem implementant en Python els codis desenvolupats en Snap! i ahir implementats en C. Després, seguim fent els exercicis plantejats el dia anterior.
20211116
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Seguim fent els exercicis plantejats el dia anterior.
Un cop acabat els anteriors farem els exercicis 5 i 6 d'aquesta col·lecció d'exercicis (m2e5.png, m2e5.xml, m2e5.py, m2e5.c, m2e6.png, m2e6.xml, m2e6.py i m2e6.c)
Un cop acabat els anteriors farem els exercicis 1, 3 i 8 d'aquesta col·lecció d'exercicis (m3e1.png, m3e1.xml, m3e1.py, m3e1.c, m3e3.* i m3e8.* . Essent * .png, .xml, .py i .c)
20211115
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Entrada de contrasenya oculta en Python
import getpass szPwd = getpass.getpass("Enter Password")
20211110
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
- Seguim fent els exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08)
Exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08)
Implementeu en Snap!, Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la col·lecció d'exercicis bàsics de pesudocodi
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta M03/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 M03/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!
Aleatorietat en Python
import random nN = random.randint(a, b)
Retorna un enter aleatori nN, tal que a <= nN <= b. Àlies de randrange(a, b+1).
Aleatorietat en C
#include <stdlib.h> #include <time.h> void vLlavorAleatorietat(){ srand( (unsigned)time( NULL ) ); } int nNumAleat(int nMin,int nMax){ return nMin+ rand()% ((nMax-nMin)+1); }
20211109
Blocs amb Snap!
Funcions en Python
Funcions en C
Exercicis bàsics de pesudocodi - Ex01
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Exercicis Snap!, Python i C (alg04, alg06, alg07 i alg08)
Implementeu en Snap!, Python i C els exercicis 4, 6, 7 i 8 (no feu en C el 8) de la col·lecció d'exercicis bàsics de pesudocodi
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta M03/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 M03/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!
Com esperar
Des del sistema operatiu:
En Linux:
sleep 5
essent 5 el nombre de segons que s'espera.
En Windows:
timeout 5
essent 5 el nombre de segons que s'espera.
Funcions d'espera de temps multiplataforma:
En C:
#include <stdio.h> #define LINUX #ifdef LINUX #include <unistd.h> #else #include <Windows.h> #endif int main(){ int nS; char szOrdre[99]; printf("Nombre de segons a esperar: "); scanf("%d",&nS); sleep(nS); printf("S'ha acabat l'espera de %d segons\n",nS); return 0; }
En Python:
import time # Per a fer servir sleep() nS = int(input("Nombre de segons a esperar: ")) time.sleep(nS) print("S'ha acabat l'espera de %d segons"%nS)
Examen EAC03_nom_cognom_ASIX1.c
Es tracta de fer un programa que calculi la mitjana aritmètica de 8 notes aconseguides en programació.
- Demanarem primer el nom de l'alumne.
- Segon preguntarem el curs que fa.
- Tercer preguntarem les notes obtingudes seguides d'un Enter.
- Quart i darrer contestarem:
Bé, <nom de l'alumne> que fas <curs de l'alumne>, la mitjana aritmètica de les teves 8 notes és:
Realitzarem la captura i suma de les notes mitjançant un for.
Deseu a la carpeta compartida l'arxiu EAC03_nom_cognom_ASIX1.c i el document EAC03_nom_cognom_ASIX1.pdf (canvieu nom pel vostre nom i cognom pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles(punt)olive(arrova)fje(punt)edu
20211103
Funcions en Python
Estructures repetitives, o bucles, en Python
Estructures repetitives, o bucles, en Python
Exercicis d'estructures de control repetitives en Python
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
20211102
Funcions
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Examen EAC02_nom_cognom_ASIX1.c
Realitzeu un programa que segueixi la seqüència següent:
Introduïu un número que fa de codi d'accés: (Que serà 12248)
en cas d'encertar-lo demanarà:
Com et dius? Posarem el nom i contestarà:
Molt bé <el nom que hagis posat> , estàs autoritzat.
Després sortirà del programa.
Si en introduir el codi d'accés és erroni, contestarà: Prova-ho una altra vegada.
Després ho tornarà a preguntar fins que s'encerti. Després posarem el nom i contestarà:
Per fi ho has aconseguit! Molt bé <el nom que hagis posat> , estàs autoritzat.
Després sortirà del programa.
Deseu a la carpeta compartida l'arxiu EAC02_nom_cognom_ASIX1.c i el document EAC02_nom_cognom_ASIX1.pdf (canvieu nom pel vostre nom i cognom pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles(punt)olive(arrova)fje(punt)edu
20211027
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Estructures repetitives, o bucles, en Python
Estructures repetitives, o bucles, en Python
Exercicis d'estructures de control repetitives en Python
20211026
Alguns codis comentats a classe Usuari: asix i contrasenya: asix2122
Exercicis de condicionals en C.
cond01.c) Feu un programa que demani dos números, 'a' i 'b', i us digui si la seva suma és positiva, negativa o zero.
cond02.c) Escriviu un programa que llegeixi un número i us digui si és parell o senar.
cond03.c) Escriviu un programa que demani un nombre enter entre un i dotze i imprimeixi el nombre de dies que té el mes corresponent.
No hi ha cond04.c (El codi en C equivalent al de Python requereix d'uns coneixements que no s'han explicat encara)
cond05.c) Escriviu un programa que llegeixi un any i us digui si és de traspàs. (Considerarem any és de traspàs si és un número divisible per 4, però no si és divisible per 100, excepte que també sigui divisible per 400)
cond06.c) Feu un programa que llegeixi un caràcter pel teclat i comprovi si és una lletra majúscula.
- Dins de la vostra carpeta compartida, deseu els codis generats a la subcarpeta M03/exercicis/C. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran cond01.c, cond02.c, cond03.c, cond05.c i cond06.c (si hi pugeu versions diferents, les podeu anomenar cond02_00.c, cond02_01.c, ...). També hi pujareu un arxiu en pdf, anomenat condicionals_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.
Examen EAC01_nom_cognom_ASIX1.c
Realitzeu un programa que segueixi la seqüència següent:
Introduïu un número que fa de codi d'accés: (Que serà 12345)
en cas d'encertar-lo demanarà:
Com et dius? Posarem el nom i contestarà:
Molt bé <el nom que hagis posat> , estàs autoritzat.
Després sortirà del programa.
Si en introduir el codi d'accés és erroni, contestarà: Prova-ho una altra vegada.
Després sortirà del programa.
Deseu a la carpeta compartida l'arxiu EAC01_nom_cognom_ASIX1.c i el document EAC01_nom_cognom_ASIX1.pdf (canvieu nom pel vostre nom i cognom pel vostre cognom). Heu de trametre els dos arxius (.c i .pdf) a l'adreça carles(punt)olive(arrova)fje(punt)edu
Operador ternari i switch
Estructures repetitives
20211025
Actualització de l'estructura de carpetes a la carpeta compartida.
Condicionals amb Python. Revisem el not.
- Exercicis de condicions en Python. Dins de la vostra carpeta compartida, feu la subcarpeta M03/exercicis/Python. Poseu-hi allà les vostres propostes de solució. Teniu dues opcions per a penjar el codi:
- 1) Els noms dels arxius seran cond01.py, cond02.py, cond03.py, cond04.py, cond05.py i cond06.py (si hi pugeu versions diferents, les podeu anomenar cond04_00.py, cond04_01.py, ...). També hi pujareu un arxiu en pdf, anomenat condicionals_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.
- 2) Pugeu els arxius condicionals_py.ipynb (arxiu del jupyter-lab) i condicionals_py.htm (arxiu exportat del jupyter-lab). També hi pujareu un arxiu en pdf, anomenat condicionals_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.
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20211020
Exercicis de condicions en Python
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20211019
Examen d'avaluació inicial de programació a 1r d'ASIX. Curs 2021-2022
Exercicis de condicions en Python
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20211018
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
Per a fer una potència en C es fa servir la funció pow() (que li cal l'arxiu de capçalera math.h i, per tant, requereix afegir a la compilació el paràmetre -lm):
lfBase ^ lfExponent => pow(lfBase,lfExponent)
Per a fer una potència en Python es fa servir l'operador **:
lfBase ^ lfExponent => lfBase**lfExponent
En Python:
- Exercicis 3, 4, 5, 6 i 7 dels exercicis de C del mòdul 1 del d97. Dins de la vostra carpeta compartida, feu la subcarpeta M03/exercicis/Python. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran m1e3.py, m1e4.py, m1e5.py, m1e6.py i m1e7.py (si hi pugeu versions diferents, les podeu anomenar m1e7_00.py, m1e7_01.py, ...). També hi pujareu un arxiu en pdf, anomenat m1e3_7_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.
20211013
Continuem fent els exercicis demanats el dia anterior.
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20211011
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
C
Compilació amb l'arxiu de capçalera math.h:
gcc m1p06.c -o m1p06 -lm
- Implementació en C dels dos darrers exercicis d'aquest enllaç
- Implementació en C de l'exercici 5 de la col·lecció d'exercicis de pseudocodi
- Exercicis 3, 4, 5, 6 i 7 dels exercicis de C del mòdul 1 del d97. Dins de la vostra carpeta compartida, feu la subcarpeta M03/exercicis/C. Poseu-hi allà les vostres propostes de solució. Els noms dels arxius seran m1e3.c, m1e4.c, m1e5.c, m1e6.c i m1e7.c (si hi pugeu versions diferents, les podeu anomenar m1e7_00.c, m1e7_01.c, ...). També hi pujareu un arxiu en pdf, anomenat m1e3_7.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.
Python
Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:
jupyter-lab
accés directe a 20211006_py_02.html
20211006
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
Exercici 2 d'algorísmica. Implementeu-ho en Python
Implementeu un algorisme que llegeixi dos números decimals i calculi i escrigui per pantalla el valor de la seva suma, resta, producte i divisió. Com a suggeriment, feu servir el tipus double o float.
20211005
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
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.
Exercici 2 d'algorísmica
Implementeu un algorisme que llegeixi dos números decimals i calculi i escrigui per pantalla el valor de la seva suma, resta, producte i divisió. Com a suggeriment, feu servir el tipus double o float.
20211004
Codis 00_py_intro:
Codis 00_C_intro:
Seguim amb la Introducció bàsica a Python
Els codis fets a classe són penjats al recull d'avui
20210929
Teleconferència provisional pel dia 20210929
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20210928
Teleconferència provisional pel dia 20210928
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20210927
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20210922
Teleconferència puntual per al dia d'avui
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
20210921
Codis comentats avui a classe usuari: asix / contrasenya: asix2122
Teleconferència puntual pel dia d'avui
Instal·lador de C per a Windows
Repositori de codis fet a classe durant el curs
Codis fets a les classes de 1r d'ASIX usuari: asix | contrasenya: asix2122
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
C
Eines en línia
Recull de codis fets a classe usuari / contrasenya : asix / asix2122
Disseny de diagrames de flux en línia