Diferència entre revisions de la pàgina «ASIX 2022-2023»
m (→2) UF2) |
|||
(Hi ha 120 revisions intermèdies del mateix usuari que no es mostren) | |||
Línia 18: | Línia 18: | ||
* 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!''' | * 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!''' | ||
= Algunes classes = | = Algunes classes = | ||
+ | == Enllaços ràpids == | ||
[https://docs.google.com/spreadsheets/d/1DvF2mHwjqGqM6W97Atn2IeSS1gzPJtHbjg528XQ6-Ac Llista de 1r d'ASIX] | [https://docs.google.com/spreadsheets/d/1DvF2mHwjqGqM6W97Atn2IeSS1gzPJtHbjg528XQ6-Ac Llista de 1r d'ASIX] | ||
− | |||
[https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats] | [https://meet.google.com/xcy-pzph-huk Teleconferència provisional per a compartir pantalles a classe i per a confinats] | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | [[Introducció a Arduino]] | ||
+ | |||
+ | [https://wokwi.com/projects/354037245005603841 Simulació dels 4 leds i 4 botons de la placa S4A] | ||
+ | |||
+ | [https://wokwi.com/projects/355572920722910209 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]] | ||
<!-- https://docs.python.org/3/library/csv.html --> | <!-- https://docs.python.org/3/library/csv.html --> | ||
+ | |||
+ | == 20230524 '''UF1''' i '''UF2''' == | ||
+ | === 1) UF1 === | ||
+ | Teniu 10 minuts per a trametre el fitxer .c | ||
+ | |||
+ | Feu un programa en llenguatge C que passi de graus Celsius a Fahrenheit. | ||
+ | === 2) UF1 === | ||
+ | Feu un programa en llenguatge C que, amb un '''switch case''', simuli el funcionament d'un munta càrregues que vagi de la planta zero a la quarta planta. | ||
+ | === 1) UF2 === | ||
+ | Teniu 10 minuts per a trametre una captura de pantalla. Feu una depuració d'aquest programa i demostreu que: | ||
+ | |||
+ | * parant a la posició 17, quant val "a" | ||
+ | |||
+ | * parant a la posició 18, quant val "a,b" | ||
+ | |||
+ | * parant a la posició 19, quant val "a,b,c" | ||
+ | |||
+ | * parant a la posició 20, quant val "a,b,c,d" | ||
+ | |||
+ | * parant a la posició 25, quant val "suma" | ||
+ | |||
+ | #include <stdio.h> | ||
+ | #include <stdlib.h> | ||
+ | |||
+ | int main(){ | ||
+ | int suma=0,a=0,b=0,c=0,d=0; // Instanciem | ||
+ | |||
+ | system("clear"); | ||
+ | a=1; | ||
+ | b=2; | ||
+ | c=3; | ||
+ | d=4; | ||
+ | suma=a+b; | ||
+ | suma=suma+c; | ||
+ | suma=suma+d; | ||
+ | printf(" La suma totales %d \n ",suma); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | === 2) UF2 === | ||
+ | Teniu 10 minuts per a trametre el fitxer .c | ||
+ | |||
+ | Feu un programa que demani una cadena i l'emmagatzemi a szParaula2. L'ha de comparar amb la cadena szParaula1. Heu de dir si són iguals o no. | ||
+ | |||
+ | #include <stdio.h> | ||
+ | |||
+ | int main (){ | ||
+ | char Paraula1[30]="Clot"; | ||
+ | char Paraula2[30]; | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | == 20230523 Examen d'ordinària '''UF3''' == | ||
+ | [https://recull.binefa.cat/files/20230523m03uf3exOrd/ Enunciat de l'examen i material] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | == 20230518 == | ||
+ | [https://recull.binefa.cat/files/20230518/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230517 == | ||
+ | [https://recull.binefa.cat/files/20230517/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230516 == | ||
+ | [https://recull.binefa.cat/files/20230516/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230510 == | ||
+ | [https://recull.binefa.cat/files/20230510/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230509 == | ||
+ | [https://recull.binefa.cat/files/20230509/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230503 == | ||
+ | [https://recull.binefa.cat/files/20230503/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | === Exercici === | ||
+ | Fer un programa que faci servir una estructura similar a: | ||
+ | struct peli { | ||
+ | char titol[50]; | ||
+ | char director[50]; | ||
+ | char protagonista[50]; | ||
+ | int duracio; | ||
+ | }; | ||
+ | amb un menú amb aquestes opcions: | ||
+ | 1) Llegeix arxiu | ||
+ | 2) Quantes pel·lícules hi ha emmagatzemades? | ||
+ | 3) Visualitza informació de totes les pel·lícules | ||
+ | 4) Visualitza informació d'una pel·lícula | ||
+ | 5) Esborra pel·lícula | ||
+ | 6) Afegeix pel·lícula | ||
+ | 7) Escriu arxiu | ||
+ | x) Surt | ||
+ | |||
+ | == 20230502 == | ||
+ | [https://recull.binefa.cat/files/20230502/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria]] | ||
+ | |||
+ | == 20230426 == | ||
+ | [https://recull.binefa.cat/files/20230426/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | == 20230425 == | ||
+ | [https://recull.binefa.cat/files/20230425/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | == 20230421 Exàmens d'ordinària '''UF1''' i '''UF2''' == | ||
+ | [https://recull.binefa.cat/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | == 20230419 == | ||
+ | [https://recull.binefa.cat/files/20230419/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6te.htm Funcions de l'arxiu de capçalera '''string.h'''] | ||
+ | |||
+ | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6te.htm Fitxers en C] | ||
+ | |||
+ | [https://www.w3schools.com/python/python_file_handling.asp Fitxers en Python] | ||
+ | |||
+ | === Exercici 1 de fitxers en Python === | ||
+ | Feu el programa '''copia.py''' que admet dos arguments ('''''copia.py arxiuOrigen.txt arxiuDesti.txt'''''). En cas de no passar dos arguments ens pregunta el nom de l'arxiu origen i el de l'arxiu destí. El programa obre l'arxiu origen de lectura i l'arxiu destí d'escriptura. Mentre es puguin llegir línies de l'arxiu origen s'aniran copiant a l'arxiu destí. | ||
+ | |||
+ | == 20230418 == | ||
+ | [https://recull.binefa.cat/files/20230418/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6te.htm Funcions de l'arxiu de capçalera '''string.h'''] | ||
+ | |||
+ | == 20230412 == | ||
+ | [https://recull.binefa.cat/files/20230412/ Codis comentats avui a classe] usuari: ''daw'' / contrasenya: ''daw2223'' | ||
+ | |||
+ | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m6/d97m6te.htm Funcions de l'arxiu de capçalera '''string.h'''] | ||
+ | |||
+ | == 20230411 '''UF3''' == | ||
+ | [https://recull.binefa.cat/files/20230411/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | Arguments en C i en Python. | ||
+ | |||
+ | // '''argc00.c''' | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(int argc,char*argv[]){ | ||
+ | int i; | ||
+ | |||
+ | printf("Arguments: %d\n",argc); | ||
+ | for(i = 0; i < argc; i++){ | ||
+ | printf("argv[%d]: %s\n",i,argv[i]); | ||
+ | } | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | # '''arg00.py''' | ||
+ | import sys | ||
+ | |||
+ | print("Arguments: %d"%(len(sys.argv))) | ||
+ | i = 0 | ||
+ | for arg in sys.argv: | ||
+ | print("argv[%d]: %s"%(i,arg)) | ||
+ | i += 1 | ||
+ | |||
+ | == 20230331 '''Concurs de robots''' == | ||
+ | '''Concurs de robots del M16UF1 a les aules 506 i 507 a partir de les 16.50''' | ||
+ | |||
+ | == 20230329 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230329/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | === 20230329 - 1a hora === | ||
+ | '''Darrer dia de classe abans del concurs de robots del M16UF1 es farà aquest divendres, 31 de març de 2023, a les aules 506 i 507 a partir de les 16.50''' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | === 20230329 - 2a hora === | ||
+ | '''Darrer dia de classe abans dels exàmens finals del M03UF1 i M03UF2 que es faran al tornar de la Setmana Santa''' | ||
+ | |||
+ | * Seguim practicant programació en C i en Python | ||
+ | |||
+ | == 20230328 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230328/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | == 20230322 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230322/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | === 20230322 - 1a hora === | ||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | === 20230322 - 2a hora === | ||
+ | * Seguim practicant programació en C i en Python | ||
+ | |||
+ | * ord() : Funció en Python que retorna el número de la [https://ca.wikipedia.org/wiki/ASCII taula ASCII] del caràcter passat. | ||
+ | |||
+ | * chr() : Funció en Python que retorna el caràcter del número corresponent a la [https://ca.wikipedia.org/wiki/ASCII taula ASCII]. | ||
+ | |||
+ | a = 49 | ||
+ | b = 'B' | ||
+ | print("El caràcter %d a la taula ASCII és %c"%(a,'''chr(a)''')) | ||
+ | print("El caràcter %d a la taula ASCII és %c"%('''ord(b)''',b)) | ||
+ | L'execució al terminal és: | ||
+ | El caràcter 49 a la taula ASCII és '''1''' | ||
+ | El caràcter '''66''' a la taula ASCII és B | ||
+ | |||
+ | * Implementeu en C i en Python l'examen [https://recull.binefa.cat/files/examensAntics/20150420ex.zip 20150420ex.zip] | ||
+ | |||
+ | == 20230321 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230321/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | == 20230314 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230228/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | == 20230301 (3h) '''Examen parcial''' == | ||
+ | * 1a hora: [[Pràctiques amb el robot versió 6 | Robots]] | ||
+ | |||
+ | * 2a hora: Examen parcial M03UF1 | ||
+ | |||
+ | * 3a hora: Examen parcial M03UF2 | ||
+ | |||
+ | == 20230228 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230228/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | == 20230222 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230221/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | * Seguim practicant M03UF2. Codificació i descodificació amb el [https://ca.wikipedia.org/wiki/Xifratge_de_C%C3%A8sar xifratge de Cèsar]. | ||
+ | |||
+ | == 20230221 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230221/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | == 20230215 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230215/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [https://onecompiler.com/python Intèrpret de Python en línia] | ||
+ | |||
+ | [https://onecompiler.com/c Compilador de C en línia] | ||
+ | |||
+ | Seguim la resolució de l'exercici de la '''targeta de crèdit'''. [https://recull.binefa.cat/files/20230215/digits_de_control_inicial.zip Codis del dia anterior] | ||
+ | |||
+ | Per a la implementació en Python:<!-- https://onecompiler.com/python/3yxvqtbe5 --> | ||
+ | def parse(cad): | ||
+ | for c in cad: | ||
+ | if not(c>='0' and c<='9'): | ||
+ | return False | ||
+ | return True | ||
+ | |||
+ | def verifica(cad): | ||
+ | if parse(cad): | ||
+ | print("%s són tot números"%cad) | ||
+ | else: | ||
+ | print("%s no són tot números"%cad) | ||
+ | |||
+ | def cadena_a_llista(sz): | ||
+ | l = [] | ||
+ | for c in sz: | ||
+ | l.append(int(c)) | ||
+ | return l | ||
+ | |||
+ | szNumA = "12345678" | ||
+ | szNumB = "12345G78" | ||
+ | verifica(szNumA) | ||
+ | verifica(szNumB) | ||
+ | if parse(szNumA): | ||
+ | llistaN = cadena_a_llista(szNumA) | ||
+ | print(llistaN) | ||
+ | |||
+ | == 20230214 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230214/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | == 20230208 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230207/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * (1a hora) Darrer dia de les pràctiques d'Arduino. Seguim fent pràctiques amb el [[Pràctiques amb el robot versió 6 | robot]]. | ||
+ | |||
+ | * (2a i 3a hora) Comencem a desenvolupar un codi que verifiqui el número d'una '''targeta de crèdit''' ([https://recull.binefa.cat/files/20230208/digits_de_control.pdf pàgina 8 del document digits_de_control.pdf]). | ||
+ | |||
+ | == 20230207 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230207/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent les pràctiques d'Arduino / [[Pràctiques amb el robot versió 6 | robot]]: | ||
+ | |||
+ | Pujat el codi [https://recull.binefa.cat/files/20230207/negat.c negat.c] amb un exemple d'us de funcions lògiques. | ||
+ | |||
+ | == 20230201 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230131/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent les pràctiques d'Arduino / [[Pràctiques amb el robot versió 6 | robot]]: | ||
+ | |||
+ | * Seguim amb la resolució d'exàmens M03UF1 i M03UF2 de cursos passats. | ||
+ | === 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) | ||
+ | |||
+ | == 20230131 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230131/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Seguim fent les pràctiques d'Arduino / [[Pràctiques amb el robot versió 6 | robot]]: | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | == 20230125 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230125/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | === EAC05 === | ||
+ | Feu un diagrama de flux, que controli l'activació i la desactivació del commutador 2 (polsador), que quan és activat (premut) encén el led 10 i quan és desactivat (no premut) l'apaga i encén el led 11. Eviteu els rebots, tal com es va explicar a classe. | ||
+ | |||
+ | Dit d'una altra manera, quan connecteu la placa a l'alimentació, el led 11 ha d'estar encès i la resta apagats, quan premeu el polsador 2 s'apaga led 11 i s'encén el led 10, que romandrà encès mentre es prem, en deixar-lo anar s'apaga el led 10 i s'encén el led 11. | ||
+ | |||
+ | Al [https://recull.binefa.cat/files/20230125/ recull del dia d'avui] teniu el fitxer '''eac05_asix1_cognomNom.dia''' que pot ser editat mitjançant aquest [https://app.diagrams.net/ editor de diagrames de flux en línia] (heu de tenir el JavaScript activat). | ||
+ | |||
+ | Heu de trametre per correu electrònic la captura del diagrama de flux. Dins de la captura també ha d'aparèixer el vostre nom i cognoms. El nom de l'arxiu ha de ser '''eac05_asix1_cognomNom.png''' o '''eac05_asix1_cognomNom.jpg'''. També l'heu de desar a la carpeta compartida d'exàmens. | ||
+ | |||
+ | == 20230124 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230124/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * [https://wokwi.com/projects/354037245005603841 Simulació de la placa S4A] | ||
+ | |||
+ | * Seguim fent les pràctiques d'Arduino: | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(){ | ||
+ | unsigned char ucA; | ||
+ | |||
+ | ucA = 0xA5; | ||
+ | printf("ucA: 0x%X\n",ucA); | ||
+ | ucA = ~ucA; // el símbol de la ~ nega bit a bit | ||
+ | printf("ucA: 0x%X\n",ucA); | ||
+ | ucA = !ucA; // el símbol de l' ! nega tot el byte (diferent de zero és cert) | ||
+ | printf("ucA: 0x%X\n",ucA); | ||
+ | ucA = !ucA; // el símbol de l' ! nega tot el byte (diferent de zero és cert) | ||
+ | printf("ucA: 0x%X\n",ucA); | ||
+ | ucA = 0xA5; | ||
+ | printf("0x%X & 0x0F: 0x%X\n",ucA,ucA & 0x0F ); | ||
+ | printf("0x%X & 0xF0: 0x%X\n",ucA,ucA & 0xF0 ); | ||
+ | printf("(0x%X & 0xF0) >> 4: 0x%X\n",ucA,(ucA & 0xF0)>>4 ); | ||
+ | printf("0x%X | 0x0F: 0x%X\n",ucA,ucA | 0x0F ); | ||
+ | printf("0x%X | 0xF0: 0x%X\n",ucA,ucA | 0xF0 ); | ||
+ | printf("(0x%X | 0xF0) >> 4: 0x%X\n",ucA,(ucA,ucA | 0xF0)>>4 ); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | == 20230118 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230118/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * 1a hora | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | * 2a hora | ||
+ | |||
+ | Seguim amb la resolució dels exàmens M03UF1 i M03UF2 de l'any passat. | ||
+ | |||
+ | == 20230118 (2h) == | ||
+ | [https://recull.binefa.cat/files/20230118/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [https://wokwi.com/projects/354304372782367745 ord06b] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | == 20230111 (3h) == | ||
+ | [https://recull.binefa.cat/files/20230111/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | *1a hora | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | *2a hora | ||
+ | |||
+ | Resolució examen M03UF1 de l'any passat | ||
+ | |||
+ | == 20230110 (2h) == | ||
+ | Explicació de '''detecció per flanc''' i fer funcions '''delay()''' no blocants emprant '''millis()''' | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | == 20221221 (3h) == | ||
+ | [https://recull.binefa.cat/files/20221221/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | Resolució de dubtes. | ||
+ | |||
+ | == 20221214 (3h) == | ||
+ | '''Pas per valor i pas per referència''' | ||
+ | |||
+ | [https://recull.binefa.cat/files/20221214/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | == 20221207 (3h) '''eac04''' == | ||
+ | [https://recull.binefa.cat/files/20221207/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [https://www.simplilearn.com/tutorials/python-tutorial/yield-in-python '''yield''' a Python] | ||
+ | |||
+ | * '''eac04''' | ||
+ | |||
+ | Feu un programa utilitzant un ''switch-case'', per al control d'un muntacàrregues, la presentació ha de ser idèntica a l'exemple: | ||
+ | |||
+ | [[Image:Muntacarregues.png|center|thumb|exemple de l'eac04]] | ||
+ | |||
+ | El programa ha de funcionar constantment amb un ''do-while'' fins a prémer ''S''. | ||
+ | |||
+ | Inspireu-vos en la pràctica [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3p6.htm m3p06.c] del tutorial [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/index.htm D97]. | ||
+ | |||
+ | === Placa S4A-PLB emprant '''Arduino''' Nano === | ||
+ | [[Introducció a Arduino]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part]] | ||
+ | |||
+ | [[Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part]] | ||
+ | |||
+ | == 20221123 (3h) == | ||
+ | [https://recull.binefa.cat/files/20221123/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | == 20221122 (2h) == | ||
+ | [https://recull.binefa.cat/files/20221122/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | '''eac03''' | ||
+ | |||
+ | Hi ha un empresari que té un negoci. | ||
+ | A final de mes (es considera que cada mes són quatre setmanes), el responsable del negoci introdueix mitjançant | ||
+ | una aplicació el que ha facturat la primera setmana, la segona setmana, la tercera setmana i la quarta setmana. | ||
+ | L'empresari mitjançant un missatge, pot veure el facturat al negoci a final de mes setmana a setmana i el total | ||
+ | dels diners recaptats al seu compte bancari. | ||
+ | |||
+ | Utilitza un FOR. Implementa-ho en Python i C. | ||
+ | |||
+ | == 20221116 (3h) '''Vectors (''arrays'') i llistes''' == | ||
+ | [https://recull.binefa.cat/files/20221116/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | * Llistes de Python: | ||
+ | |||
+ | [https://docs.python.org/3/tutorial/datastructures.html Estructures de dades en Python] | ||
+ | |||
+ | [https://developers.google.com/edu/python/lists Llistes de Python] a Google for Education | ||
+ | |||
+ | [https://www.programiz.com/python-programming/list Llistes de Python] a programiz.com | ||
+ | |||
+ | # llesques01.py | ||
+ | llistaCaracters = ['T','o','n','i',' ','V','a','r','ó','n'] | ||
+ | print(llistaCaracters) | ||
+ | print(llistaCaracters[1]) | ||
+ | print(llistaCaracters.index('o')) | ||
+ | print(llistaCaracters[1:]) | ||
+ | print(llistaCaracters[1:6]) | ||
+ | print(llistaCaracters[1:-2]) | ||
+ | cadena = "Toni Varón" | ||
+ | print(cadena) | ||
+ | print(cadena[1]) | ||
+ | print(cadena.index('o')) | ||
+ | print(cadena[1:]) | ||
+ | print(cadena[1:6]) | ||
+ | print(cadena[1:-2]) | ||
+ | |||
+ | cadena = "Dídac Garcia Dumé" | ||
+ | posA = cadena.index('a') | ||
+ | print(posA) | ||
+ | posB = cadena[posA+1:].index('a') | ||
+ | print(posA+posB+1) | ||
+ | posC = cadena[posB+1:].index('a') | ||
+ | print(posA+ posB+1 + posC+1) | ||
+ | * Vectors en C: | ||
+ | |||
+ | [https://www.programiz.com/c-programming/c-arrays Vectors (''arrays'') en C] | ||
+ | |||
+ | Exercici a desenvolupar en Python i en C: | ||
+ | |||
+ | Feu un vector / llista de 1000 posicions. De la posició 0 a la 999 hi haurà la suma del valors de dos daus llençats a l'atzar. Heu de comptar el número de cops que la suma dóna 9 i el número de cops que la suma dóna 10. Després heu de dir el percentatge de cops que la suma és 9 i 10. | ||
+ | |||
+ | == 20221109 (3h) == | ||
+ | [https://recull.binefa.cat/files/20221109/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Exercicis d'estructures de control repetitives en Python]] | ||
+ | |||
+ | == 20221108 (2h) '''Aleatorietat''' == | ||
+ | [https://recull.binefa.cat/files/20221108/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Exercicis d'estructures de control repetitives en Python]] | ||
+ | |||
+ | """ | ||
+ | aleatorietat00.py | ||
+ | Cognom1 Cognom2, Nom | ||
+ | 20221108 | ||
+ | """ | ||
+ | import '''random''' | ||
+ | |||
+ | for i in range(50): | ||
+ | # print("%d "%(random.'''randrange'''(1,7)),end = "") | ||
+ | print("%d"%(random.'''randint'''(1,6)),end = " ") | ||
+ | print() | ||
+ | |||
+ | import random | ||
+ | |||
+ | for i in range(50): | ||
+ | print("%s"%(random.'''choice'''("1X2")),end=" ") | ||
+ | |||
+ | // time00.c | ||
+ | // Unix Epoch | ||
+ | |||
+ | #include <stdio.h> | ||
+ | #include <time.h> | ||
+ | |||
+ | int main(){ | ||
+ | printf("Nombre de segons que han passat des del 1r de gener de 1970: %ld\n",time(NULL)); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | == 20221102 (3h) == | ||
+ | [https://recull.binefa.cat/files/20221102/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Exercicis d'estructures de control repetitives en Python]] | ||
+ | |||
+ | === '''eac01''' === | ||
+ | Desenvolupeu un programa (feu servir un '''for''' en '''C''') que digui: | ||
+ | |||
+ | '''Hola, a quin curs pertanys?: ''' | ||
+ | |||
+ | '''Com et dius?: ''' | ||
+ | |||
+ | '''Digues-me les 8 notes que has obtingut a programació: ''' | ||
+ | |||
+ | Calculeu la mitjana aritmètica de les notes i contesteu: | ||
+ | |||
+ | '''Hola, ''Nom'' d' ''ASIX1'' la vostra nota mitjana de programació és ''XX.XX'' '''(dos decimals). | ||
+ | |||
+ | |||
+ | ''Trameteu la prova al correu electrònic que es comunica a classe i pugeu-lo a la subcarpeta Exàmens de la carpeta compartida'' | ||
+ | |||
+ | == 20221026 (3h) == | ||
+ | [https://recull.binefa.cat/files/20221026/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | [[Exercicis d'estructures de control repetitives en Python]] | ||
+ | |||
+ | == 20221025 (2h) '''break''', '''continue''', '''do-while''' i '''switch-case''' == | ||
+ | [https://recull.binefa.cat/files/20221025/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(){ | ||
+ | int n = 1; | ||
+ | |||
+ | while(1){ // for(;;) <-- Bucles infinits | ||
+ | printf("%d ",n); | ||
+ | n += 1; // o n = n+1; o ++n; o n++; | ||
+ | if(n > 37){ | ||
+ | '''break'''; // Es trenca el bucle infinit | ||
+ | } | ||
+ | } | ||
+ | printf("\nAquí es trenca el bucle infinit"); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(){ | ||
+ | int ct; | ||
+ | |||
+ | for(ct=0;ct<19;ct++){ | ||
+ | if(ct%3){ | ||
+ | '''continue'''; | ||
+ | } | ||
+ | printf("el número %d és múltiple de 3\n",ct); | ||
+ | } | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | |||
== 20221019 (3h) == | == 20221019 (3h) == | ||
[https://recull.binefa.cat/files/20221019/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | [https://recull.binefa.cat/files/20221019/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
+ | |||
+ | === Estructures repetitives, o bucles, en Python === | ||
+ | [[Pràctiques d'introducció a Python . Part 3 - SMX | Estructures repetitives, o bucles, en Python]] | ||
+ | |||
+ | * En Python: | ||
+ | print("Exemples amb for:") | ||
+ | for num in range(7): | ||
+ | print("%d "% num, end = "") | ||
+ | print() | ||
+ | for num in range(23,30): | ||
+ | print("%d "% num, end = "") | ||
+ | print() | ||
+ | for num in range(23,30,2): | ||
+ | print("%d "% num, end = "") | ||
+ | print() | ||
+ | for num in range(3,-13,-2): | ||
+ | print("%d "% num, end = "") | ||
+ | |||
+ | print("\nExemples amb while:") | ||
+ | n = 0 | ||
+ | while n < 7: | ||
+ | print("%d "% n, end = "") | ||
+ | n = n + 1 # El mateix que n += 1 | ||
+ | print() | ||
+ | n = 23 | ||
+ | while n < 30: | ||
+ | print("%d "% n, end = "") | ||
+ | n = n + 1 # El mateix que n += 1 | ||
+ | print() | ||
+ | n = 23 | ||
+ | while n < 30: | ||
+ | print("%d "% n, end = "") | ||
+ | n += 2 # El mateix que n = n + 2 | ||
+ | print() | ||
+ | n = 3 | ||
+ | while n > -13: | ||
+ | print("%d "% n, end = "") | ||
+ | n -= 2 # El mateix que n = n - 2 | ||
+ | |||
+ | * En C: | ||
+ | #include <stdio.h> | ||
+ | |||
+ | int main(){ | ||
+ | int n; | ||
+ | |||
+ | printf("Exemples amb for:\n"); | ||
+ | for(n = 0; n < 7; n = n + 1){ // n+=1 --> n++ | ||
+ | printf("%d ",n); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | for(n = 23; n < 30; n++){ | ||
+ | printf("%d ",n); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | for(n = 23; n < 30; n+=2){ | ||
+ | printf("%d ",n); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | for(n = 3; n > -13; n-=2){ | ||
+ | printf("%d ",n); | ||
+ | } | ||
+ | printf("\n"); | ||
+ | printf("\nExemples amb while:\n"); | ||
+ | n = 0; | ||
+ | while(n < 7){ | ||
+ | printf("%d ",n); | ||
+ | n += 1; | ||
+ | } | ||
+ | printf("\n"); | ||
+ | |||
+ | return 0; | ||
+ | } | ||
+ | [[Exercicis d'estructures de control repetitives en Python]] | ||
+ | |||
+ | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m3/d97m3ex.htm Més exercicis bàsics (m3e*)] | ||
== 20221018 (2h) '''Funcions''' == | == 20221018 (2h) '''Funcions''' == | ||
Línia 32: | Línia 741: | ||
[http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)] | [http://www.xtec.cat/formaciotic/ateneu_historic/materials/td97/d97m2/d97m2ex.htm Més exercicis bàsics (m2e*)] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
== 20221011 (2h) == | == 20221011 (2h) == | ||
[https://recull.binefa.cat/files/20221011/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | [https://recull.binefa.cat/files/20221011/ Codis comentats avui a classe] usuari: ''asix'' / contrasenya: ''asix2223'' | ||
Línia 237: | Línia 941: | ||
[https://sourceforge.net/projects/mingw/ MinGW - Compilador de C per a Windows] | [https://sourceforge.net/projects/mingw/ MinGW - Compilador de C per a Windows] | ||
+ | |||
+ | [https://drive.google.com/file/d/1Oc50PJsmL3m-U3fn0TbwmGTW9uLOoBwi/view?usp=share_link Vídeo de particions en línia d'ordres] |
Revisió de 16:48, 24 maig 2023
Quan tingueu les credencials d'accés a la NET heu de compartir-nos (als dos professors) una carpeta amb aquest nom: 2223-ASIX-M03-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2223-ASIX-M03-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:
Carpetes compartides del M03 de 1r d'ASIX. Curs 2022-2023
Estructura de les carpetes:
M01 (depenent del subgrup) M03 examens exercicis C Python perDies M16 Arduino
- 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!
Contingut
- 1 Algunes classes
- 1.1 Enllaços ràpids
- 1.2 20230524 UF1 i UF2
- 1.3 20230523 Examen d'ordinària UF3
- 1.4 20230518
- 1.5 20230517
- 1.6 20230516
- 1.7 20230510
- 1.8 20230509
- 1.9 20230503
- 1.10 20230502
- 1.11 20230426
- 1.12 20230425
- 1.13 20230421 Exàmens d'ordinària UF1 i UF2
- 1.14 20230419
- 1.15 20230418
- 1.16 20230412
- 1.17 20230411 UF3
- 1.18 20230331 Concurs de robots
- 1.19 20230329 (3h)
- 1.20 20230328 (2h)
- 1.21 20230322 (3h)
- 1.22 20230321 (2h)
- 1.23 20230314 (2h)
- 1.24 20230301 (3h) Examen parcial
- 1.25 20230228 (2h)
- 1.26 20230222 (3h)
- 1.27 20230221 (2h)
- 1.28 20230215 (3h)
- 1.29 20230214 (2h)
- 1.30 20230208 (3h)
- 1.31 20230207 (2h)
- 1.32 20230201 (3h)
- 1.33 20230131 (2h)
- 1.34 20230125 (3h)
- 1.35 20230124 (2h)
- 1.36 20230118 (3h)
- 1.37 20230118 (2h)
- 1.38 20230111 (3h)
- 1.39 20230110 (2h)
- 1.40 20221221 (3h)
- 1.41 20221214 (3h)
- 1.42 20221207 (3h) eac04
- 1.43 20221123 (3h)
- 1.44 20221122 (2h)
- 1.45 20221116 (3h) Vectors (arrays) i llistes
- 1.46 20221109 (3h)
- 1.47 20221108 (2h) Aleatorietat
- 1.48 20221102 (3h)
- 1.49 20221026 (3h)
- 1.50 20221025 (2h) break, continue, do-while i switch-case
- 1.51 20221019 (3h)
- 1.52 20221018 (2h) Funcions
- 1.53 20221011 (2h)
- 1.54 20221005 (3h)
- 1.55 20221004 (2h)
- 1.56 20220928 (3h)
- 1.57 20220927 (2h)
- 1.58 20220921 (3h)
- 1.59 20220920 (2h)
- 1.60 20220914 (3h)
- 1.61 20220913 (2h)
- 2 Repositori de codis fet a classe durant el curs
- 3 Eines en línia
Algunes classes
Enllaços ràpids
Teleconferència provisional per a compartir pantalles a classe i per a confinats
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
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
20230524 UF1 i UF2
1) UF1
Teniu 10 minuts per a trametre el fitxer .c
Feu un programa en llenguatge C que passi de graus Celsius a Fahrenheit.
2) UF1
Feu un programa en llenguatge C que, amb un switch case, simuli el funcionament d'un munta càrregues que vagi de la planta zero a la quarta planta.
1) UF2
Teniu 10 minuts per a trametre una captura de pantalla. Feu una depuració d'aquest programa i demostreu que:
- parant a la posició 17, quant val "a"
- parant a la posició 18, quant val "a,b"
- parant a la posició 19, quant val "a,b,c"
- parant a la posició 20, quant val "a,b,c,d"
- parant a la posició 25, quant val "suma"
#include <stdio.h> #include <stdlib.h> int main(){ int suma=0,a=0,b=0,c=0,d=0; // Instanciem system("clear"); a=1; b=2; c=3; d=4; suma=a+b; suma=suma+c; suma=suma+d; printf(" La suma totales %d \n ",suma); return 0; }
2) UF2
Teniu 10 minuts per a trametre el fitxer .c
Feu un programa que demani una cadena i l'emmagatzemi a szParaula2. L'ha de comparar amb la cadena szParaula1. Heu de dir si són iguals o no.
#include <stdio.h> int main (){ char Paraula1[30]="Clot"; char Paraula2[30]; return 0; }
20230523 Examen d'ordinària UF3
Enunciat de l'examen i material usuari: asix / contrasenya: asix2223
20230518
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230517
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230516
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230510
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230509
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230503
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
Exercici
Fer un programa que faci servir una estructura similar a:
struct peli { char titol[50]; char director[50]; char protagonista[50]; int duracio; };
amb un menú amb aquestes opcions:
1) Llegeix arxiu 2) Quantes pel·lícules hi ha emmagatzemades? 3) Visualitza informació de totes les pel·lícules 4) Visualitza informació d'una pel·lícula 5) Esborra pel·lícula 6) Afegeix pel·lícula 7) Escriu arxiu x) Surt
20230502
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Fonaments de gestió de fitxers, estructures i gestió dinàmica de memòria
20230426
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20230425
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20230421 Exàmens d'ordinària UF1 i UF2
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20230419
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Funcions de l'arxiu de capçalera string.h
Exercici 1 de fitxers en Python
Feu el programa copia.py que admet dos arguments (copia.py arxiuOrigen.txt arxiuDesti.txt). En cas de no passar dos arguments ens pregunta el nom de l'arxiu origen i el de l'arxiu destí. El programa obre l'arxiu origen de lectura i l'arxiu destí d'escriptura. Mentre es puguin llegir línies de l'arxiu origen s'aniran copiant a l'arxiu destí.
20230418
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Funcions de l'arxiu de capçalera string.h
20230412
Codis comentats avui a classe usuari: daw / contrasenya: daw2223
Funcions de l'arxiu de capçalera string.h
20230411 UF3
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Arguments en C i en Python.
// argc00.c #include <stdio.h> int main(int argc,char*argv[]){ int i; printf("Arguments: %d\n",argc); for(i = 0; i < argc; i++){ printf("argv[%d]: %s\n",i,argv[i]); } return 0; }
# arg00.py import sys print("Arguments: %d"%(len(sys.argv))) i = 0 for arg in sys.argv: print("argv[%d]: %s"%(i,arg)) i += 1
20230331 Concurs de robots
Concurs de robots del M16UF1 a les aules 506 i 507 a partir de les 16.50
20230329 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20230329 - 1a hora
Darrer dia de classe abans del concurs de robots del M16UF1 es farà aquest divendres, 31 de març de 2023, a les aules 506 i 507 a partir de les 16.50
- Seguim fent pràctiques amb el robot.
20230329 - 2a hora
Darrer dia de classe abans dels exàmens finals del M03UF1 i M03UF2 que es faran al tornar de la Setmana Santa
- Seguim practicant programació en C i en Python
20230328 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent pràctiques amb el robot.
20230322 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20230322 - 1a hora
- Seguim fent pràctiques amb el robot.
20230322 - 2a hora
- Seguim practicant programació en C i en Python
- ord() : Funció en Python que retorna el número de la taula ASCII del caràcter passat.
- chr() : Funció en Python que retorna el caràcter del número corresponent a la taula ASCII.
a = 49 b = 'B' print("El caràcter %d a la taula ASCII és %c"%(a,chr(a))) print("El caràcter %d a la taula ASCII és %c"%(ord(b),b))
L'execució al terminal és:
El caràcter 49 a la taula ASCII és 1 El caràcter 66 a la taula ASCII és B
- Implementeu en C i en Python l'examen 20150420ex.zip
20230321 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent pràctiques amb el robot.
20230314 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent pràctiques amb el robot.
20230301 (3h) Examen parcial
- 1a hora: Robots
- 2a hora: Examen parcial M03UF1
- 3a hora: Examen parcial M03UF2
20230228 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent pràctiques amb el robot.
20230222 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent pràctiques amb el robot.
- Seguim practicant M03UF2. Codificació i descodificació amb el xifratge de Cèsar.
20230221 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Seguim fent pràctiques amb el robot.
20230215 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Seguim la resolució de l'exercici de la targeta de crèdit. Codis del dia anterior
Per a la implementació en Python:
def parse(cad): for c in cad: if not(c>='0' and c<='9'): return False return True def verifica(cad): if parse(cad): print("%s són tot números"%cad) else: print("%s no són tot números"%cad) def cadena_a_llista(sz): l = [] for c in sz: l.append(int(c)) return l szNumA = "12345678" szNumB = "12345G78" verifica(szNumA) verifica(szNumB) if parse(szNumA): llistaN = cadena_a_llista(szNumA) print(llistaN)
20230214 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Seguim fent pràctiques amb el robot.
20230208 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- (1a hora) Darrer dia de les pràctiques d'Arduino. Seguim fent pràctiques amb el robot.
- (2a i 3a hora) Comencem a desenvolupar un codi que verifiqui el número d'una targeta de crèdit (pàgina 8 del document digits_de_control.pdf).
20230207 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent les pràctiques d'Arduino / robot:
Pujat el codi negat.c amb un exemple d'us de funcions lògiques.
20230201 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent les pràctiques d'Arduino / robot:
- Seguim amb la resolució d'exàmens M03UF1 i M03UF2 de cursos passats.
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)
20230131 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent les pràctiques d'Arduino / robot:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20230125 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
EAC05
Feu un diagrama de flux, que controli l'activació i la desactivació del commutador 2 (polsador), que quan és activat (premut) encén el led 10 i quan és desactivat (no premut) l'apaga i encén el led 11. Eviteu els rebots, tal com es va explicar a classe.
Dit d'una altra manera, quan connecteu la placa a l'alimentació, el led 11 ha d'estar encès i la resta apagats, quan premeu el polsador 2 s'apaga led 11 i s'encén el led 10, que romandrà encès mentre es prem, en deixar-lo anar s'apaga el led 10 i s'encén el led 11.
Al recull del dia d'avui teniu el fitxer eac05_asix1_cognomNom.dia que pot ser editat mitjançant aquest editor de diagrames de flux en línia (heu de tenir el JavaScript activat).
Heu de trametre per correu electrònic la captura del diagrama de flux. Dins de la captura també ha d'aparèixer el vostre nom i cognoms. El nom de l'arxiu ha de ser eac05_asix1_cognomNom.png o eac05_asix1_cognomNom.jpg. També l'heu de desar a la carpeta compartida d'exàmens.
20230124 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Seguim fent les pràctiques d'Arduino:
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
#include <stdio.h> int main(){ unsigned char ucA; ucA = 0xA5; printf("ucA: 0x%X\n",ucA); ucA = ~ucA; // el símbol de la ~ nega bit a bit printf("ucA: 0x%X\n",ucA); ucA = !ucA; // el símbol de l' ! nega tot el byte (diferent de zero és cert) printf("ucA: 0x%X\n",ucA); ucA = !ucA; // el símbol de l' ! nega tot el byte (diferent de zero és cert) printf("ucA: 0x%X\n",ucA); ucA = 0xA5; printf("0x%X & 0x0F: 0x%X\n",ucA,ucA & 0x0F ); printf("0x%X & 0xF0: 0x%X\n",ucA,ucA & 0xF0 ); printf("(0x%X & 0xF0) >> 4: 0x%X\n",ucA,(ucA & 0xF0)>>4 ); printf("0x%X | 0x0F: 0x%X\n",ucA,ucA | 0x0F ); printf("0x%X | 0xF0: 0x%X\n",ucA,ucA | 0xF0 ); printf("(0x%X | 0xF0) >> 4: 0x%X\n",ucA,(ucA,ucA | 0xF0)>>4 ); return 0; }
20230118 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- 1a hora
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
- 2a hora
Seguim amb la resolució dels exàmens M03UF1 i M03UF2 de l'any passat.
20230118 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20230111 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- 1a hora
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
- 2a hora
Resolució examen M03UF1 de l'any passat
20230110 (2h)
Explicació de detecció per flanc i fer funcions delay() no blocants emprant millis()
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20221221 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Resolució de dubtes.
20221214 (3h)
Pas per valor i pas per referència
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20221207 (3h) eac04
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- eac04
Feu un programa utilitzant un switch-case, per al control d'un muntacàrregues, la presentació ha de ser idèntica a l'exemple:
El programa ha de funcionar constantment amb un do-while fins a prémer S.
Inspireu-vos en la pràctica m3p06.c del tutorial D97.
Placa S4A-PLB emprant Arduino Nano
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 1a part
Pràctiques Arduino sobre placa S4A i Snap4Arduino - 2a part
20221123 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
20221122 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
eac03
Hi ha un empresari que té un negoci. A final de mes (es considera que cada mes són quatre setmanes), el responsable del negoci introdueix mitjançant una aplicació el que ha facturat la primera setmana, la segona setmana, la tercera setmana i la quarta setmana. L'empresari mitjançant un missatge, pot veure el facturat al negoci a final de mes setmana a setmana i el total dels diners recaptats al seu compte bancari.
Utilitza un FOR. Implementa-ho en Python i C.
20221116 (3h) Vectors (arrays) i llistes
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Llistes de Python:
Estructures de dades en Python
Llistes de Python a Google for Education
Llistes de Python a programiz.com
# llesques01.py llistaCaracters = ['T','o','n','i',' ','V','a','r','ó','n'] print(llistaCaracters) print(llistaCaracters[1]) print(llistaCaracters.index('o')) print(llistaCaracters[1:]) print(llistaCaracters[1:6]) print(llistaCaracters[1:-2]) cadena = "Toni Varón" print(cadena) print(cadena[1]) print(cadena.index('o')) print(cadena[1:]) print(cadena[1:6]) print(cadena[1:-2])
cadena = "Dídac Garcia Dumé" posA = cadena.index('a') print(posA) posB = cadena[posA+1:].index('a') print(posA+posB+1) posC = cadena[posB+1:].index('a') print(posA+ posB+1 + posC+1)
- Vectors en C:
Exercici a desenvolupar en Python i en C:
Feu un vector / llista de 1000 posicions. De la posició 0 a la 999 hi haurà la suma del valors de dos daus llençats a l'atzar. Heu de comptar el número de cops que la suma dóna 9 i el número de cops que la suma dóna 10. Després heu de dir el percentatge de cops que la suma és 9 i 10.
20221109 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis d'estructures de control repetitives en Python
20221108 (2h) Aleatorietat
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis d'estructures de control repetitives en Python
""" aleatorietat00.py Cognom1 Cognom2, Nom 20221108 """ import random for i in range(50): # print("%d "%(random.randrange(1,7)),end = "") print("%d"%(random.randint(1,6)),end = " ") print()
import random for i in range(50): print("%s"%(random.choice("1X2")),end=" ")
// time00.c // Unix Epoch #include <stdio.h> #include <time.h> int main(){ printf("Nombre de segons que han passat des del 1r de gener de 1970: %ld\n",time(NULL)); return 0; }
20221102 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis d'estructures de control repetitives en Python
eac01
Desenvolupeu un programa (feu servir un for en C) que digui:
Hola, a quin curs pertanys?:
Com et dius?:
Digues-me les 8 notes que has obtingut a programació:
Calculeu la mitjana aritmètica de les notes i contesteu:
Hola, Nom d' ASIX1 la vostra nota mitjana de programació és XX.XX (dos decimals).
Trameteu la prova al correu electrònic que es comunica a classe i pugeu-lo a la subcarpeta Exàmens de la carpeta compartida
20221026 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis d'estructures de control repetitives en Python
20221025 (2h) break, continue, do-while i switch-case
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
#include <stdio.h> int main(){ int n = 1; while(1){ // for(;;) <-- Bucles infinits printf("%d ",n); n += 1; // o n = n+1; o ++n; o n++; if(n > 37){ break; // Es trenca el bucle infinit } } printf("\nAquí es trenca el bucle infinit"); return 0; }
#include <stdio.h> int main(){ int ct; for(ct=0;ct<19;ct++){ if(ct%3){ continue; } printf("el número %d és múltiple de 3\n",ct); } return 0; }
20221019 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Estructures repetitives, o bucles, en Python
Estructures repetitives, o bucles, en Python
- En Python:
print("Exemples amb for:") for num in range(7): print("%d "% num, end = "") print() for num in range(23,30): print("%d "% num, end = "") print() for num in range(23,30,2): print("%d "% num, end = "") print() for num in range(3,-13,-2): print("%d "% num, end = "")
print("\nExemples amb while:") n = 0 while n < 7: print("%d "% n, end = "") n = n + 1 # El mateix que n += 1 print() n = 23 while n < 30: print("%d "% n, end = "") n = n + 1 # El mateix que n += 1 print() n = 23 while n < 30: print("%d "% n, end = "") n += 2 # El mateix que n = n + 2 print() n = 3 while n > -13: print("%d "% n, end = "") n -= 2 # El mateix que n = n - 2
- En C:
#include <stdio.h> int main(){ int n; printf("Exemples amb for:\n"); for(n = 0; n < 7; n = n + 1){ // n+=1 --> n++ printf("%d ",n); } printf("\n"); for(n = 23; n < 30; n++){ printf("%d ",n); } printf("\n"); for(n = 23; n < 30; n+=2){ printf("%d ",n); } printf("\n"); for(n = 3; n > -13; n-=2){ printf("%d ",n); } printf("\n"); printf("\nExemples amb while:\n"); n = 0; while(n < 7){ printf("%d ",n); n += 1; } printf("\n"); return 0; }
Exercicis d'estructures de control repetitives en Python
20221018 (2h) Funcions
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Introducció a les funcions en Python i en C.
20221011 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
- Primer enunciat:
Partint de la pràctica del tutorial D97 anjuta m1p02.c, demana a més: De quina ciutat és vostè? i Quin és el vostre número de telèfon?
- Segon enunciat:
Partint de la pràctica m1p05.c del tutorial D97 anjuta: Realitza la conversió de graus celsius a fahrenheit.
- Tercer enunciat:
Feu un programa que llegeixi un codi d'accés i digui si és correcte o no.
20221005 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis emprant condicionals en C i Python
Llei de Morgan
- En Python:
not ( a and b ) = not a or not b not ( a or b ) = not a and not b
- En C:
!( a && b ) = !a || !b !( a || b ) = !a && !b
20221004 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis emprant condicionals en C i Python
20220928 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Exercicis emprant condicionals en C i Python
20220927 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Repàs de tipus de variables
Comparativa de programes bàsics en C i en python
Exercicis (m1e*) (excepte el 2)
Exercicis emprant condicionals en C i Python
20220921 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Taula amb la mida d'alguns tipus de variable en C
gcc m1p06.c -o m1p06 -lm
Exercicis (excepte el 2)
#include <stdio.h> int main(){ char cA = 'A', cB = 103 /* g */, cC = 0x6B /* k */; printf("%c %d 0x%X\n",cA,cA,cA); printf("%c %d 0x%X\n",cB,cB,cB); printf("%c %d 0x%X 0x%x\n",cC,cC,cC,cC); return 0; }
20220920 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
szCognom = "Varón" szNom = 'Toni' szNomComplet = szNom + " " + szCognom print("1) " + szNomComplet) szNomTotal = "%d) %s %s"%(2,szNom,szCognom) print(szNomTotal) szNomTotal2 = "%d) %s %s" print(szNomTotal2%(3,szNom,szCognom))
#include <stdio.h> int main(){ char szCognom[20] = "Varón",szNom[20] = "Toni"; printf("%s %s\n",szNom,szCognom); printf("%d) %s %s\n",2,szNom,szCognom); return 0; }
szNom = input("Com et dius?: ") print('Hola, ' + szNom)
#include <stdio.h> int main(){ char szNom[20]; printf("Nom: "); scanf("%s",&szNom[0]); // Que és el mateix que scanf("%s",szNom); printf("Hola, %s\n",szNom); return 0; }
20220914 (3h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
Compilador / intèrpret en línia onlinegdb.com
Snap!
Python
Pràctiques d'introducció a Python
C
20220913 (2h)
Codis comentats avui a classe usuari: asix / contrasenya: asix2223
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: asix2223
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