Diferència entre revisions de la pàgina «DAW 2021-2022»

De binefa.com
Salta a la navegació Salta a la cerca
Línia 70: Línia 70:
 
  '''||''' '''o''' lògica
 
  '''||''' '''o''' lògica
 
** Altres operadors
 
** Altres operadors
  '''operador unari''': '''+''' no fa res, però serveix com a complement de l'operador unari '''-'''.
+
  '''unari''': '''+''' no fa res, però serveix com a complement de l'operador unari '''-'''.
  '''operador sizeof()''': torna la mida del tipus, variable o expressió introduït com argument.
+
  '''sizeof()''': torna la mida del tipus, variable o expressió introduït com argument.
  '''operador ,''' (coma): serveix per avaluar expressions múltiples. El seu ús més freqüent és en expressions de la sentència for.
+
  ''',''' (coma): serveix per avaluar expressions múltiples. El seu ús més freqüent és en expressions de la sentència for.
 +
** Expressions
 +
(a-b*2.0)||(c!=a)
 +
** Jerarquia de les operacions
 +
** Conversions de tipus implícites i explícites (''casting'')
 +
** Sentències
 +
Una sentència en C és una '''unitat executable''' com pot ser una assignació o una crida a una funció. Una sentència  pot ser simple o composta.
 +
 
 +
'''Les sentències simples acaben amb el caràcter ; (punt i coma)'''.
 +
 
 +
'''Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}'''. Una sentència composta també es coneix amb el nom de bloc.
 +
** Directives del preprocessador: '''#include''' i '''#define'''
 +
** Funcions
 +
*** Declaració de funcions
 +
*** Implementació de funcions
  
 
== 20211008 ==
 
== 20211008 ==

Revisió del 14:35, 14 oct 2021

Quan tingueu les credencials d'accés a la NET heu de compartir-nos (als dos professors) una carpeta amb aquest nom: 2122-DAW-M03-1rCognom2nCognomNom (Per exemple, si el teu nom és Xavier López Pujol --> 2122-DAW-M03-LopezPujolXavier). A aquest enllaç podreu veure si ja hi sou a la llista:

Carpetes compartides del M03 de 1r de DAW. Curs 2021-2022

Algunes classes

Llista de 1r de DAW

Teleconferència

Teleconferència provisional per a compartir pantalles a classe i per a confinats

20211014

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

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

En C:

Al resum teòric del mòdul 2 del d97 destaquem:

  • Tipus de variables
  • Constants:
12312 constant tipus int
54154551145 constant no vàlida
54154551145. constant tipus double
1.25f constant tipus float
1.25l constant tipus long double
  • Operadors:
    • Operadors aritmètics:
- Canvia el signe  (és un operador unari, és a dir, actua només sobre un operant)
+ Suma 
- Resta
* Producte
/ Divisió
% Residu (residu de la divisió entera)
& i a nivell de bit
| o a nivell de bit
~ Negador a nivell de bit
    • Operadors d'assignació:
nom_variable = expressió;
a = a+1;
a += b significa a = a + b
a -= b significa a = a – b
a *= b significa a = a * b
a /= b significa a = a / b
a %= b significa a = a % b
    • Operadors incrementals:
a = 2;
b = a++;              /* a = 3 i b = 2 */
b = ++a;              /* a = 3 i b = 3 */
    • Operadors relacionals:
== Igual que (no confondre amb l'operador d'assignació =)
<  Menor que
>  Major que
<= Menor o igual que
>= Major o igual que
!= Diferent que
    • Operadors lògics:
! Negador a nivell de valor lògic (0 es fals. Qualsevol altra número és cert)
&& i lògica
|| o lògica
    • Altres operadors
unari: + no fa res, però serveix com a complement de l'operador unari -.
sizeof(): torna la mida del tipus, variable o expressió introduït com argument.
, (coma): serveix per avaluar expressions múltiples. El seu ús més freqüent és en expressions de la sentència for.
    • Expressions
(a-b*2.0)||(c!=a)
    • Jerarquia de les operacions
    • Conversions de tipus implícites i explícites (casting)
    • Sentències

Una sentència en C és una unitat executable com pot ser una assignació o una crida a una funció. Una sentència pot ser simple o composta.

Les sentències simples acaben amb el caràcter ; (punt i coma).

Les sentències compostes són un conjunt de sentències simples agrupades dintre de claus {}. Una sentència composta també es coneix amb el nom de bloc.

    • Directives del preprocessador: #include i #define
    • Funcions
      • Declaració de funcions
      • Implementació de funcions

20211008

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

Compilació amb l'arxiu de capçalera math.h:

gcc m1p06.c -o m1p06 -lm

Per a fer una potència en C es fa servir la funció pow():

lfBase ^ lfExponent => pow(lfBase,lfExponent)

En C:

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

20211007

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

Python

Fem servir el Jupyter Lab des de la màquina virtual. Des del terminal:

jupyter-lab

Accés directe a 20211007_py.html i accés directe a 20211007_py_02.html

C

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

20211005

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.

Codis 00_py_intro:

00_py_intro.ipynb(Vista web)

Codis 00_C_intro:

00_C_intro.ipynb(Vista web)


Seguim amb la Introducció bàsica a Python

20211001

Teleconferència provisional pel dia 20211001

20210930

Teleconferència provisional pel dia 20210930

20210928

Teleconferència provisional pel dia 20210928

20210923

Adreça de la teleconferència per al dia d'avui

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

20210921

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

Repositori de codis fet a classe durant el curs

Codis fets a les classes de 1r de DAW usuari: daw | contrasenya: daw2122

Pràctiques d'introducció a Python

Algorísmica

Exercicis bàsics de pesudocodi - Ex01

Python

Pràctiques d'introducció a Python

Condicionals en Python

Condicionals amb Python

Exercicis de condicions en Python

Estructures repetitives, o bucles, en Python

Estructures repetitives, o bucles, en Python

Exercicis d'estructures de control repetitives en Python

C

Fonaments de programació en C

Eines en línia

Recull de codis fets a classe usuari / contrasenya : daw / daw2122

Disseny de diagrames de flux en línia

Snap! o Snap! personalitzat

Compilador / intèrpret en línia onlinegdb.com

Arduino Blocks