Diferència entre revisions de la pàgina «ASIX-M3-UF1-A1»

De wikiserver
Dreceres ràpides: navegació, cerca
(ACTIVITAT 1.1: La calculadora)
(ACTIVITAT 3: Els operador lógics i de comparació)
Línia 117: Línia 117:
  
 
- operador de conjunció: and (i lògic).
 
- operador de conjunció: and (i lògic).
 +
 
True si i només si ambes parts són certes.
 
True si i només si ambes parts són certes.
 +
<pre>
 
>>>True and True
 
>>>True and True
 +
</pre>
 
Si alguna part és falsa el resultat és Fals.
 
Si alguna part és falsa el resultat és Fals.
 +
<pre>
 
>>>False and True
 
>>>False and True
 +
</pre>
 +
- operador de disjunció: or (o lògic)
  
- operador de disjunció: or (o lògic)
 
 
Si una de les parts és certa el resultat serà cert.
 
Si una de les parts és certa el resultat serà cert.
 +
<pre>
 
>>>True or False
 
>>>True or False
 +
</pre>
 
El resultat és fals només si les dos parts són falses.
 
El resultat és fals només si les dos parts són falses.
 +
<pre>
 
>>>False and False
 
>>>False and False
 +
</pre>
 
- operador de negació: not (no lògic)
 
- operador de negació: not (no lògic)
 +
 
El resultat és el valor lògic oposat
 
El resultat és el valor lògic oposat
 +
<pre>
 
>>>not True
 
>>>not True
 +
 
>>>not False
 
>>>not False
 +
</pre>
 
Es pot tenir més d’una operació lògica amb una mateixa línia:
 
Es pot tenir més d’una operació lògica amb una mateixa línia:
 +
<pre>
 
>>> True and False and True and True
 
>>> True and False and True and True
 +
</pre>
 
En aquest cas phyton o resoldrà per l’esquerra:
 
En aquest cas phyton o resoldrà per l’esquerra:
 +
<pre>
 
1r True and False and True and True (True and False → False)
 
1r True and False and True and True (True and False → False)
 
False and True and True
 
False and True and True
2
+
2n False and True and True (False and True → False)
n
 
False and True and True (False and True → False)
 
 
False and True
 
False and True
3
+
3r False and True (False and True → False)
r
 
False and True (False and True → False)
 
 
False
 
False
 +
</pre>
 
Es poden tenir operadors lògics diferents amb una mateixa línia:
 
Es poden tenir operadors lògics diferents amb una mateixa línia:
 +
<pre>
 
>>> True and False or not False
 
>>> True and False or not False
 +
</pre>
 
En aquest python utilitza una taula de precedència:
 
En aquest python utilitza una taula de precedència:
1
+
<pre>
r
+
1r la negació: True and False or not False (not False → True)
la negació: True and False or not False (not False → True)
 
 
True and False or True
 
True and False or True
2
+
2n les conjuncions: True and False or True (True and False → False)
n
 
les conjuncions: True and False or True (True and False → False)
 
 
False or True
 
False or True
3
+
3r les disjuncions: False or True (False or True → False)
r
 
les disjuncions: False or True (False or True → False)
 
 
True
 
True
 +
</pre>
 
Operadors de comparació:
 
Operadors de comparació:
 
- Igual a
 
- Igual a
 +
<pre>
 
>>>True == False
 
>>>True == False
 +
</pre>
 
- Diferent a
 
- Diferent a
 +
<pre>
 
>>>True != False
 
>>>True != False
 +
</pre>
 
- Major a
 
- Major a
 +
<pre>
 
>>>9 > 4
 
>>>9 > 4
 +
</pre>
 
- Menor que
 
- Menor que
 +
<pre>
 
>>> 4 < 5
 
>>> 4 < 5
 +
</pre>
 
- Major o igual que
 
- Major o igual que
 +
<pre>
 
10 >= 56
 
10 >= 56
 +
</pre>
 
- Menor o igual que
 
- Menor o igual que
 +
<pre>
 
45 <= 45
 
45 <= 45
 +
</pre>

Revisió del 13:10, 17 set 2020

Esquema simplificat d’un ordinador


Esquema_ordinador

La unitat central de processament pot processar milions d’instruccions per segon. I sempre espera noves instruccions...

Usualment aquestes instruccions es poden donar agrupades en el que podríem anomenar com Programa.

però, en quin llenguatge li podem parlar a la unitat central de processament?

Només entén un llenguatge de molt baix nivell conegut com llenguatge màquina.

És fàcil aprendre aquest llenguatge i àgil per fer programes?

Doncs NO!.

Necessitem un llenguatge de programació d’alt nivell (més proper al llenguatge que parlem) per poder ser eficients alhora de programar. Python és una molt bona opció pels Administradors de Sistemes.

Nosaltres fem programes d’alt nivell i la CPU només entén llenguatges de baix nivell. Com es resol?

Hi ha dos opcions que depenen del llenguatge d’alt nivell emprat: intèrprets i compiladors.


Interpret-compilador


Python és un llenguatge interpretat.

Aleshores per poder fer els nostres programes necessitarem tenir instal·lat en el nostres sistema l’intèrpret de python.

Conviuen dues versions de python la 2.x i la 3.x: això és degut a que curiosament no hi ha compatibilitat entre les versions 2 i 3. I per tant, molts programes fets per a la versió 2 s’haurien de “reprogramar” perquè funcionin en la versió 3.

Nosaltres treballarem amb la versió 3 per la millora que hi ha en les llibreries de sistemes.


Amb les darreres versions d’Ubuntu l’intèrpret de python ja ve instal·lat.

Veiem-ho!!

ACTIVITAT 1.1: La calculadora

Indica resultat de les següents operacions:

- Operacions bàsiques:

>>> 2 + 3 =
>>> 4 – 3 =
>>> 5 * 3 =
>>> 8 / 2 =
>>> 7 % 2 =
>>> 2**3 =

- Més d’una operació (prioritat):

1r la potencia
2n canvis de signe (ni n’hi ha): Per ex. - (-8) = +8
3r multiplicacions, divisions i mòduls (mateixa prioritat → d'esquerra a dreta)
4t sumes i restes (mateixa prioritat → d'esquerra a dreta)
>>> 4+3+2-5 =
>>> 2**3**2 = (de dreta a esquerra)
>>> 5*3+2 =
>>> 2+5*3 =
>>> 4/2*3 =
>>> 3*4/2 =
>>> 13%5*3 =
>>> 3*17%5 =
>>> 2+3-4*6/2**3%2 =

- Parèntesis per canviar la prioritat:

>>> 4+3+(2-5) =
>>> (2**3)**2 =
>>> 5*(3+2) =
>>> (2+5)*3 =
>>> 17%(5*3) =
>>> 3*(17%5) =
>>> (((2+3-4)*6)/2)**3%2 =

ACTIVITAT 1.2: Primers tipus de dades: enters(sense decimal) i reals(amb coma flotant)

Enters:

>>> 45
>>> -27

Reals:

>>> 5.25
>>> -8.1

Es poden fer operacions que involucrin els dos tipus i el resultat sempre serà del tipus més general (real).

>>> 45 + 5.25 =
>>> -27 + 5.25 =

Compte! Amb les divisions de tipus enter, obtindrem un número real (amb python 2 NO!):

>>> 6 / 3 =
>>> 7 / 3 =

però si el que volem és la divisió sencera, aleshores utilitzarem el mètode int():

>>> int(6/3) =
>>> int(7/3) =

ACTIVITAT 3: Els operador lógics i de comparació

Un altre tipus de dada: els valors lògics (True o 1, False o 0).

Operadors lògics principals:

- operador de conjunció: and (i lògic).

True si i només si ambes parts són certes.

>>>True and True

Si alguna part és falsa el resultat és Fals.

>>>False and True

- operador de disjunció: or (o lògic)

Si una de les parts és certa el resultat serà cert.

>>>True or False

El resultat és fals només si les dos parts són falses.

>>>False and False

- operador de negació: not (no lògic)

El resultat és el valor lògic oposat

>>>not True

>>>not False

Es pot tenir més d’una operació lògica amb una mateixa línia:

>>> True and False and True and True

En aquest cas phyton o resoldrà per l’esquerra:

1r True and False and True and True (True and False → False)
False and True and True
2n False and True and True (False and True → False)
False and True
3r False and True (False and True → False)
False

Es poden tenir operadors lògics diferents amb una mateixa línia:

>>> True and False or not False

En aquest python utilitza una taula de precedència:

1r la negació: True and False or not False (not False → True)
True and False or True
2n les conjuncions: True and False or True (True and False → False)
False or True
3r les disjuncions: False or True (False or True → False)
True

Operadors de comparació: - Igual a

>>>True == False

- Diferent a

>>>True != False

- Major a

>>>9 > 4

- Menor que

>>> 4 < 5

- Major o igual que

10 >= 56

- Menor o igual que

45 <= 45