Chatbots de la Lògica a la IA.
Curs de Programació i Introducció a Phyton
def xatbot_inici():
nom = input('Com et dius?')
print(f'Hola {nom}, sóc el teu assistent.')
Hola! Com et puc ajudar?
Projecte Final: El Teu Propi Chatbot
L'Objectiu: Crear un Chatbot funcional i 'intel·ligent'que resolgui una necessitat concreta.
Mòduls
- Diagnóstic
- Anatomia del chatbot
- Pensament computacional
- Python básic aplicat
- Patrons + Disseny del chatbot
- Construcció
- Testeij
- IA + Reflexió
Curs de Programació i Introducció a Phyton
1. Conceptes clau. Anatomia del Chatbot
L'algorisme
Hardware (Maquinari)
Sèrie de passos a seguir per a realitzar una determinada tasca tècnica.
Software (Instruccions)
Ordinador
Un algorisme ha de complir unes certes característiques essencials:1. Claredat i precisió 2. Definició d'entrades 3. Generació de sortides 4. Finitud 5. Correcció 6. Gestió de precondicions
El funcionament d'un ordinador es basa en l'execució d'instruccions organitzades en seqüències anomenades programes informàtics.
Curs de Programació i Introducció a Phyton
Diagrames de flux. Representació gràfica mitjançant símbols d'un algorisme
Regles d'Or
- Un únic inici i
final.
- Flux de dalt a baix
i d'esquerra a
dreta.
- Evitar creuament
de línies.
P01_Radiografía de un chatbot real
Tria un dels següents chatbots i interectua amb ell.
- Anota entrades possibles.
- Analitza respostes.
- Detecta els coneixements del chatbot.
Gol airlines
Travel Club
DKV
Correos
2. Pensament Computacional.
Les seqüències
Les condicions (IF / ELSE)
Els bucles (LOOPS)
Una seqüència és l’ordre de les instruccions. Els ordinadors NO entenen “fes això més tard” o “ja ho intueixes”. Necessiten: 1 → 2 → 3 → 4 → … Si canviem l’ordre, el resultat canvia completament.
Les màquines prenen decisions mitjançant condicions. IF (si) passa A → fes B ELSE (si no) → fes C Això serveix per: donar respostes diferents segons l’input, gestionar errors, crear camins alternatius dins d’un xatbot.
Un bucle permet repetir una acció fins que passi una condició. El farem servir per: mantenir la conversa oberta, repetir preguntes, sortir del xatbot quan l’usuari digui “sortir”.
Exemple
Mentre l’usuari no digui “adeu” Preguntar alguna cosa
Respondre
Fi del bucle
1. Preguntar el nom 2. Guardar el nom 3. Saludar l’usuari pel seu nom Si l’ordre fos 2 → 3 → 1… 🔧 El programa fallaria perquè intenta guardar o utilitzar un nom que encara no existeix.
Si l’usuari escriu “ajuda” → mostrar missatge d’ajuda.Si no → continuar la conversa normal
Curs de Programació i Introducció a Phyton
P02_Construïm el cervell
DISSENY INICIAL
- Nom del chatbot
- Tema / necessitat
- Públic objectiu
- Objectiu principal (1 línia)
- Ton del missatge (friendly / formal / humor)
- 5 preguntes que ha de saber respondre (amb respostes previas)
Tenint en compte el primer exercici i aquest esborrany...
Hauràs de transformar el teu diagrama en un text estructurat que descrigui:
- què fa el xatbot des que comença fins que acaba,
- quines condicions utilitza per decidir la resposta,
- com gestiona inputs incorrectes,
- quins passos es repeteixen.
3. Python bàsic. El llenguatge del curs
Existeixen centenars de llenguatges de programació, diferenciats en categories:Codi màquina / Baix nivell.
Llenguatge d'alt nivell.
def xatbot_inici():
nom = input('Com et dius?')
print(f'Hola {nom}, sóc el teu assistent.')
L'Entorn de Treball (IDE)
Més proper al llenguatge humà
Curs de Programació i Introducció a Phyton
Emmagatzematge de Dades: Variables i Tipus.
Variable
Operadors Aritmètics
Operadors Comperatius
Un contenidor amb nom que guarda un valor a la memòria. Assignació (=): "x = 12" és una ordre, no una pregunta.
+ Suma- Resta * Multiplicació / Divisió // Divisió Entera ** Potència % Mòdul (Residu)
Igual que == Diferent != Més gran que > Menor que < Major o igual >= Menor o igual <=
- Numèrics
- Sencers: int → ordinador = 20
- Decimal: float → preu = 19.99
- Textos: string, qualsevol informació tancada entre cometes. → nom = 'Queralt'
- Booleans: Només pot prendre dos valors True i False.
Activitat:
Exemple
- Fes un programa que calculi la mitjana aritmètica de tres dades.
- Fes un programa que calculi el volum d'un cilindre.
ample = 20 llarg = 5 * 9 print (ample * llarg)
Comunicació amb l'Usuari: Input i Print
Cadenes de caràcters: qualsevol informació que Python interpreti com a text, els element contingut entre cometes simples (‘…’) o cometes dobles (“…”). Es diuen variables tipo string.
Sortida (print)
Entrada (input)
Activitat aprenent:
print ('Hola')
nom = input('Com et dius? ')
Escriu un programa que demani el nom, el cognom i l’edat, i mostri una frase del tipus: "Em dic <nom> <cognom> i tinc <edat> anys."
Hola
print (''Hola\nadeu'')
Com et dius?
Hola adeu
print ('Hola\tadeu')
Activitat avançada:
Hola adeu
Escriu un programa que demani el preu d’un producte i un percentatge de descompte, i mostri el preu final
f-string: Incorpora variables dins de cadenes.
nom = Queralt print (f'Hola {nom}')
Manipulació de cadenes de text (strings)
Exemples
Índex en cadenes de text
print (z[0])
Cada caràcter d'una cadena de text queda referenciat per mitjà d'un índex. associat a la seva posició en la cadena.Es reclama la posició utilitzant cortxets []
IMPORTANT: primera posició és 0
print (z[0:5])
ROBÒT
print (len(z))
-1
-2
-3
-4
-5
-6
-7
-8
Recordem:
Fes un programa en Python que ajudi una persona a calcular el seu pressupost mensual. El programa ha de:
- Demanar el nom de l’usuari.
- Demanar el seu salari mensual net.
- Demanar la quantitat de diners que gasta cada mes en:
- Lloguer
- Menjar
- Transport
- Calcular els següents valors:
- Total de despeses
- Diners restants a final de mes
- Percentatge del salari que representen les despeses
- Mostrar un missatge que expliqui tot.
Exemples
Llistes
formes.append('pentàgon')
Col·lecció ordenada de dades. Cadascun de les dades individuals queda definit dins de la llista per un índex.Els elements queden agrupats entre cortxets [].
formes
triangle
quadrat
cercle
pentàgon
formes = ['quadrat', 'cercle', 'triangle']
formes.pop(0)
dades_p = ['Joan','Puig', 6, 'juny',1988] Nom = dades_p[0] Cognom = dades_p[1] Aniversari = dades_p[2:5] print(Nom, Cognom,Aniversari)
formes
triangle
quadrat
cercle
pentàgon
Joan Puig [6, juny, 11988]
'cercle' in formes
True
Prenent decisions: condicionals (if/else)
Comparadors lògics
==, !=, <, >, =<, = >
L'ordre if avalua una condició. Si la condició es compleix s'executen les ordenis agrupades dins del bloc if. Si no es compleix no s'executaran les ordens agrupades en el bloc if.
Operadors lògics
and, or, not
a= int(input('Introueix un nombre: ')) b= int(input('Introueix un nombre: ')) if a < b: print(a, 'és més petit que', b) elif a > b: print(a, 'és més gran que', b) else: print(a, 'és igual que', b)
Activitats
Escriure un programa que emmagatzemi la cadena de caràcters contrasenya en una variable, pregunti a l'usuari per la contrasenya i imprimeixi per pantalla si la contrasenya introduïda per l'usuari coincideix amb la guardada en la variable sense tenir en compte majúscules i minúscules. a.lower()
Comparadors lògics
==, !=, <, >, =<, = >
Repeticions: bucles (for)
Com podem executar la mateixa instrucció per a cada element sense repetir codi?
Operadors lògics
Estructura de control que repeteix un bloc d'instruccions.
Iteració: cadascuna de les vegades que s’executa el cos del bucle.
and, or, not
assignatures = ['Mates', 'Física', ' Robòtica'] for elements in assignatures: print(f'la meva classe preferida és {elements})
assignatures = ['Mates', 'Física', ' Robòtica'] print(assignatures[0]) print(assignatures[1]) print(assignatures[2])
La meva classe preferida és MatesLa meva classe preferida és Física La meva classe preferida és Robòtica
Activitats
Escriu un programa que permeti sumar números, l'aplicació ha de funcionar de la manera següent:
En primer lloc, el programa preguntarà per la quantitat de números que s'introduiran (tingues en compte que hi han respostes impossibles)
A continuació, el programa ha de demanar cadascun d'aquests valors (poden ser decimals)
Finalment el programa calcularà la suma de tots ells i mostrarà el resultat per pantalla.
Repeticions: bucles (for)
Activitat inicial
Comptador: Variable que porta el compte del nombre de vegades que s'ha complert una condició.
i = i +1
Acumulador: Variable que en cada iteració va incrementant el seu valor en una quantitat (constant o variable). i = i + a
Escriure un programa en el qual es pregunti a l'usuari per una frase i una lletra, i mostri per pantalla el nombre de vegades que apareix la lletra en la frase.
Activitat avançada
Modifica el programa i fes que els caràcters interior només facin el perímetre i l’interior queda buit. i com ho faries en forma de triangle?
Crea un programa que demani dos nombres enters. Utilitzant caràcters producte (*), el programa ha de dibuixar un rectangle. La longitud de la base ve donada pel valor del primer número i la de l'altura pel valor del segon.
Ex: base: 6 altura:3
* * * * * *
* * * * * *
* * * * * *
Objectius sessió
- Nous conceptes: llistes, condicions i bucles.
- Mini repàs
- Desenvolupament inicial del chatbot
- Test
- Depurar codi
Comparadors lògics
==, !=, <, >, =<, = >
Repeticions: bucles (while)
Operadors lògics
Bloc de codi repeteix un grup d'instruccions mentre es compleixi una condició.
Un bucle for s'executarà un nombre fix de vegades. No obstant això un bucle while s'executarà un nombre indefinit d'ocasions, fins que deixi de complir-se una condició.
Ves amb compte ja que un mal ús del while pot donar lloc a bucles infinits i problemes.
x = 5
while x > 0:
x -=1
print(x) else:
print("El bucle ha finalizado")
and, or, not
43 2 1 El bucle ha finalizado
Continue: omitir la resta del bloc de l’iteració actual i passa a la següent iteració.
Break: terminar un bucle de manera anticipada i passa al següent
Comparadors lògics
==, !=, <, >, =<, = >
Activitats
Escriu un programa en Python que permeti jugar a “Pedra, Paper o Tisores” entre dos jugadors seguint aquestes instruccions:
Cada jugador ha d’introduir la seva elecció: pedra, paper o tisores.Si algun escriu sortir, el programa acaba. El programa ha de mostrar les eleccions i decidir qui guanya: Pedra guanya a tisores
Tisores guanya a paper
Paper guanya a pedra
Si tots dos escullen el mateix, hi ha empat
El joc es repetirà mentre els jugadors no escriguin sortir.
Escriu un programa en Python que permeti jugar a “Endevina el Nombre” entre el jugador i l’ordinador.
L’ordinador té un nombre fix (per exemple, 7). El jugador ha d’introduir un nombre.
El programa ha de dir si el nombre introduït és massa alt, massa baix o correcte. El joc es repetirà fins que el jugador encerti el nombre o escrigui sortir.
Operadors lògics
and, or, not
Ampliació
Ampliació
from random import *
print(random.randint(0, 30))
from random import *
print(random.choice[A, B, C]
A # Nombre aleatori entre 0 i 30
A # Lletra aleatoria A, B, C
P03_Construïm el cervell
Definició del diàleg i estructura Objectiu: dissenyar el flux de conversa i la lògica condicional del bot.. Tasca: Taula de conversa amb mínim 8 entrades i respostes plantejades. Aquesta ha d’incloure: Pregunta, paraules claus esperades, resposta estàndard. Decidir quines entrades acceptarà (paraules claus, números per opcions, frases lliures).
Estructura bàsica del codi i escriptura inicial Objectiu: crear l’esquelet del chatbot en Python. TASCA FINAL: Codi bàsic inicial que faci --> benvinguda, demani nom, i es posi en bucle de conversa amb 3-4 respostes condicionals.
Comparadors lògics
==, !=, <, >, =<, = >
Exemples
Diccionaris
persona = {"nom": "Anna", "edat": 30, "ciutat": "Girona"}
Operadors lògics
Un diccionari és una estructura que guarda dades en parelles clau–valor. Permet accedir ràpidament a la informació mitjançant la clau. Característiques principals
- Les claus són úniques (no es poden repetir).
- Els valors poden ser de qualsevol tipus: números, cadenes, llistes…
- Són mutables: podem afegir, modificar o eliminar elements.
and, or, not
Accedir a un valor
persona["nom"] # → "Anna"
Afegir o modificar una entrada
persona["edat"] = 31 persona["professió"] = "doctor"
dicc = {"clau": "valor"}
Eliminar una clau
del persona["ciutat"]
Activitat
Demana el nom a l'usuari i tres llibres que ha llegit aquest mes amb el nombre de pàgines de cadascun, guarda’ls en llistes i calcula el total de pàgines llegides, mostrant un missatge amb el nom de l’estudiant, els llibres i el total de pàgines.
Noms a les variables:
- El nom ha de començar per una lletra o per un guió baix (_).
- El nom no pot tenir espais en blanc.
- És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
- Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
formes.insert(0, hexàgon)
formes
quadrat
hexàgon
cercle
triangle
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès,
etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i
àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin
problemes senzills de forma estructurada i eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Noms a les variables:
- El nom ha de començar per una lletra o per un guió baix (_).
- El nom no pot tenir espais en blanc.
- És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
- Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Codi màquina: El codi màquina és l'únic llenguatge que un ordinador pot interpretar directament. Està compost exclusivament per seqüències de 1s i 0s que indiquen a la computadora com executar operacions bàsiques. Cada processador té el seu propi conjunt d'instruccions en codi màquina, la qual cosa ho fa dependent del maquinari específic. Per als éssers humans, aquest llenguatge és pràcticament incomprensible i el seu ús resulta extremadament laboriós, ja que requereix detallar cada instrucció en la seva forma més bàsica.
Llenguatge assemblador: En els primers ordinadors, la programació es realitzava directament en codi màquina, la qual cosa era lent i propens a errors. Per a simplificar aquest procés, va sorgir el llenguatge assemblador, que empra abreviatures i paraules clau en anglès per a representar instruccions.
A diferència del codi màquina, l'assemblador és més fàcil de llegir i escriure per als programadors, encara que continua sent dependent del maquinari específic. No obstant això , els ordinadors no poden executar-ho directament: és necessari un programa traductor, anomenat assemblador, que converteix el codi assemblador en codi màquina.
Llenguatges d'alt nivell i compiladors. El llenguatge assemblador va facilitar la programació, però continuava requerint massa instruccions fins i tot per a tasques senzilles. Per a fer el procés més eficient, van sorgir els llenguatges d'alt nivell, que permeten escriure codi de forma més intuïtiva i pròxima al llenguatge humà. Aquests llenguatges empren sentències més comprensibles, similars a l'anglès i a la notació matemàtica habitual. Una sola instrucció en un llenguatge d'alt nivell pot equivaler a diverses línies de codi assemblador.
Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès,
etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i
àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin
problemes senzills de forma estructurada i eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Què és un Chatbot?
Un bot és un programa informàtic dissenyat per a simular converses humanes, ja sigui per text o veu, permetent als usuaris interactuar amb serveis digitals de manera automàtica. Utilitzen intel·ligència artificial (IA) i processament del llenguatge natural (PLN) per a entendre i respondre consultes de manera eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.
4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un
resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions
previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.
4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un
resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions
previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Activitat
Fes un programa que:
- Demani a l’usuari: nom, any de naixement, professió i ciutat.
- Calculi l’edat a partir de l’any de naixement.
- Guardi tota aquesta informació en un diccionari anomenat perfil.
- Afegeixi al diccionari una nova clau "email" que demanaràs després.
- Modifiqui la ciutat del perfil per una ciutat nova que també preguntarem.
- Mostri el diccionari final i una frase en format natural:
- "Sóc <nom>, tinc <edat> anys, treballo de <professió> i ara visc a <nova_ciutat>."
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Escriu un programa que simuli un robot amb sensors de bateria i obstacle. Si la bateria és baixa i hi ha obstacle, mostra "Atura el robot". Si la bateria és baixa però no hi ha obstacle, mostra "Busca carregador". En qualsevol altre cas, mostra "Segueix funcionant".
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Chatbots de la Lògica a la IA.
Maria Queralt Bausa Albert
Created on February 3, 2026
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Explainer Video: Keys to Effective Communication
View
Explainer Video: AI for Companies
View
Corporate CV
View
Flow Presentation
View
Discover Your AI Assistant
View
Urban Illustrated Presentation
View
Geographical Challenge: Drag to the map
Explore all templates
Transcript
Chatbots de la Lògica a la IA.
Curs de Programació i Introducció a Phyton
def xatbot_inici(): nom = input('Com et dius?') print(f'Hola {nom}, sóc el teu assistent.')
Hola! Com et puc ajudar?
Projecte Final: El Teu Propi Chatbot
L'Objectiu: Crear un Chatbot funcional i 'intel·ligent'que resolgui una necessitat concreta.
Mòduls
Curs de Programació i Introducció a Phyton
1. Conceptes clau. Anatomia del Chatbot
L'algorisme
Hardware (Maquinari)
Sèrie de passos a seguir per a realitzar una determinada tasca tècnica.
Software (Instruccions)
Ordinador
Un algorisme ha de complir unes certes característiques essencials:1. Claredat i precisió 2. Definició d'entrades 3. Generació de sortides 4. Finitud 5. Correcció 6. Gestió de precondicions
El funcionament d'un ordinador es basa en l'execució d'instruccions organitzades en seqüències anomenades programes informàtics.
Curs de Programació i Introducció a Phyton
Diagrames de flux. Representació gràfica mitjançant símbols d'un algorisme
Regles d'Or
P01_Radiografía de un chatbot real
Tria un dels següents chatbots i interectua amb ell.
Gol airlines
Travel Club
DKV
Correos
2. Pensament Computacional.
Les seqüències
Les condicions (IF / ELSE)
Els bucles (LOOPS)
Una seqüència és l’ordre de les instruccions. Els ordinadors NO entenen “fes això més tard” o “ja ho intueixes”. Necessiten: 1 → 2 → 3 → 4 → … Si canviem l’ordre, el resultat canvia completament.
Les màquines prenen decisions mitjançant condicions. IF (si) passa A → fes B ELSE (si no) → fes C Això serveix per: donar respostes diferents segons l’input, gestionar errors, crear camins alternatius dins d’un xatbot.
Un bucle permet repetir una acció fins que passi una condició. El farem servir per: mantenir la conversa oberta, repetir preguntes, sortir del xatbot quan l’usuari digui “sortir”.
Exemple
Mentre l’usuari no digui “adeu” Preguntar alguna cosa Respondre Fi del bucle
1. Preguntar el nom 2. Guardar el nom 3. Saludar l’usuari pel seu nom Si l’ordre fos 2 → 3 → 1… 🔧 El programa fallaria perquè intenta guardar o utilitzar un nom que encara no existeix.
Si l’usuari escriu “ajuda” → mostrar missatge d’ajuda.Si no → continuar la conversa normal
Curs de Programació i Introducció a Phyton
P02_Construïm el cervell
DISSENY INICIAL
Tenint en compte el primer exercici i aquest esborrany...
Hauràs de transformar el teu diagrama en un text estructurat que descrigui:
3. Python bàsic. El llenguatge del curs
Existeixen centenars de llenguatges de programació, diferenciats en categories:Codi màquina / Baix nivell.
Llenguatge d'alt nivell.
def xatbot_inici(): nom = input('Com et dius?') print(f'Hola {nom}, sóc el teu assistent.')
L'Entorn de Treball (IDE)
Més proper al llenguatge humà
Curs de Programació i Introducció a Phyton
Emmagatzematge de Dades: Variables i Tipus.
Variable
Operadors Aritmètics
Operadors Comperatius
Un contenidor amb nom que guarda un valor a la memòria. Assignació (=): "x = 12" és una ordre, no una pregunta.
+ Suma- Resta * Multiplicació / Divisió // Divisió Entera ** Potència % Mòdul (Residu)
Igual que == Diferent != Més gran que > Menor que < Major o igual >= Menor o igual <=
Activitat:
Exemple
ample = 20 llarg = 5 * 9 print (ample * llarg)
Comunicació amb l'Usuari: Input i Print
Cadenes de caràcters: qualsevol informació que Python interpreti com a text, els element contingut entre cometes simples (‘…’) o cometes dobles (“…”). Es diuen variables tipo string.
Sortida (print)
Entrada (input)
Activitat aprenent:
print ('Hola')
nom = input('Com et dius? ')
Escriu un programa que demani el nom, el cognom i l’edat, i mostri una frase del tipus: "Em dic <nom> <cognom> i tinc <edat> anys."
Hola
print (''Hola\nadeu'')
Com et dius?
Hola adeu
print ('Hola\tadeu')
Activitat avançada:
Hola adeu
Escriu un programa que demani el preu d’un producte i un percentatge de descompte, i mostri el preu final
f-string: Incorpora variables dins de cadenes.
nom = Queralt print (f'Hola {nom}')
Manipulació de cadenes de text (strings)
Exemples
Índex en cadenes de text
print (z[0])
Cada caràcter d'una cadena de text queda referenciat per mitjà d'un índex. associat a la seva posició en la cadena.Es reclama la posició utilitzant cortxets [] IMPORTANT: primera posició és 0
print (z[0:5])
ROBÒT
print (len(z))
-1
-2
-3
-4
-5
-6
-7
-8
Recordem:
Fes un programa en Python que ajudi una persona a calcular el seu pressupost mensual. El programa ha de:
Exemples
Llistes
formes.append('pentàgon')
Col·lecció ordenada de dades. Cadascun de les dades individuals queda definit dins de la llista per un índex.Els elements queden agrupats entre cortxets [].
formes
triangle
quadrat
cercle
pentàgon
formes = ['quadrat', 'cercle', 'triangle']
formes.pop(0)
dades_p = ['Joan','Puig', 6, 'juny',1988] Nom = dades_p[0] Cognom = dades_p[1] Aniversari = dades_p[2:5] print(Nom, Cognom,Aniversari)
formes
triangle
quadrat
cercle
pentàgon
Joan Puig [6, juny, 11988]
'cercle' in formes
True
Prenent decisions: condicionals (if/else)
Comparadors lògics
==, !=, <, >, =<, = >
L'ordre if avalua una condició. Si la condició es compleix s'executen les ordenis agrupades dins del bloc if. Si no es compleix no s'executaran les ordens agrupades en el bloc if.
Operadors lògics
and, or, not
a= int(input('Introueix un nombre: ')) b= int(input('Introueix un nombre: ')) if a < b: print(a, 'és més petit que', b) elif a > b: print(a, 'és més gran que', b) else: print(a, 'és igual que', b)
Activitats
Escriure un programa que emmagatzemi la cadena de caràcters contrasenya en una variable, pregunti a l'usuari per la contrasenya i imprimeixi per pantalla si la contrasenya introduïda per l'usuari coincideix amb la guardada en la variable sense tenir en compte majúscules i minúscules. a.lower()
Comparadors lògics
==, !=, <, >, =<, = >
Repeticions: bucles (for)
Com podem executar la mateixa instrucció per a cada element sense repetir codi?
Operadors lògics
Estructura de control que repeteix un bloc d'instruccions. Iteració: cadascuna de les vegades que s’executa el cos del bucle.
and, or, not
assignatures = ['Mates', 'Física', ' Robòtica'] for elements in assignatures: print(f'la meva classe preferida és {elements})
assignatures = ['Mates', 'Física', ' Robòtica'] print(assignatures[0]) print(assignatures[1]) print(assignatures[2])
La meva classe preferida és MatesLa meva classe preferida és Física La meva classe preferida és Robòtica
Activitats
Escriu un programa que permeti sumar números, l'aplicació ha de funcionar de la manera següent: En primer lloc, el programa preguntarà per la quantitat de números que s'introduiran (tingues en compte que hi han respostes impossibles) A continuació, el programa ha de demanar cadascun d'aquests valors (poden ser decimals) Finalment el programa calcularà la suma de tots ells i mostrarà el resultat per pantalla.
Repeticions: bucles (for)
Activitat inicial
Comptador: Variable que porta el compte del nombre de vegades que s'ha complert una condició. i = i +1 Acumulador: Variable que en cada iteració va incrementant el seu valor en una quantitat (constant o variable). i = i + a
Escriure un programa en el qual es pregunti a l'usuari per una frase i una lletra, i mostri per pantalla el nombre de vegades que apareix la lletra en la frase.
Activitat avançada
Modifica el programa i fes que els caràcters interior només facin el perímetre i l’interior queda buit. i com ho faries en forma de triangle?
Crea un programa que demani dos nombres enters. Utilitzant caràcters producte (*), el programa ha de dibuixar un rectangle. La longitud de la base ve donada pel valor del primer número i la de l'altura pel valor del segon. Ex: base: 6 altura:3 * * * * * * * * * * * * * * * * * *
Objectius sessió
Comparadors lògics
==, !=, <, >, =<, = >
Repeticions: bucles (while)
Operadors lògics
Bloc de codi repeteix un grup d'instruccions mentre es compleixi una condició. Un bucle for s'executarà un nombre fix de vegades. No obstant això un bucle while s'executarà un nombre indefinit d'ocasions, fins que deixi de complir-se una condició. Ves amb compte ja que un mal ús del while pot donar lloc a bucles infinits i problemes.
x = 5 while x > 0: x -=1 print(x) else: print("El bucle ha finalizado")
and, or, not
43 2 1 El bucle ha finalizado
Continue: omitir la resta del bloc de l’iteració actual i passa a la següent iteració. Break: terminar un bucle de manera anticipada i passa al següent
Comparadors lògics
==, !=, <, >, =<, = >
Activitats
Escriu un programa en Python que permeti jugar a “Pedra, Paper o Tisores” entre dos jugadors seguint aquestes instruccions: Cada jugador ha d’introduir la seva elecció: pedra, paper o tisores.Si algun escriu sortir, el programa acaba. El programa ha de mostrar les eleccions i decidir qui guanya: Pedra guanya a tisores Tisores guanya a paper Paper guanya a pedra Si tots dos escullen el mateix, hi ha empat El joc es repetirà mentre els jugadors no escriguin sortir.
Escriu un programa en Python que permeti jugar a “Endevina el Nombre” entre el jugador i l’ordinador. L’ordinador té un nombre fix (per exemple, 7). El jugador ha d’introduir un nombre. El programa ha de dir si el nombre introduït és massa alt, massa baix o correcte. El joc es repetirà fins que el jugador encerti el nombre o escrigui sortir.
Operadors lògics
and, or, not
Ampliació
Ampliació
from random import * print(random.randint(0, 30))
from random import * print(random.choice[A, B, C]
A # Nombre aleatori entre 0 i 30
A # Lletra aleatoria A, B, C
P03_Construïm el cervell
Definició del diàleg i estructura Objectiu: dissenyar el flux de conversa i la lògica condicional del bot.. Tasca: Taula de conversa amb mínim 8 entrades i respostes plantejades. Aquesta ha d’incloure: Pregunta, paraules claus esperades, resposta estàndard. Decidir quines entrades acceptarà (paraules claus, números per opcions, frases lliures).
Estructura bàsica del codi i escriptura inicial Objectiu: crear l’esquelet del chatbot en Python. TASCA FINAL: Codi bàsic inicial que faci --> benvinguda, demani nom, i es posi en bucle de conversa amb 3-4 respostes condicionals.
Comparadors lògics
==, !=, <, >, =<, = >
Exemples
Diccionaris
persona = {"nom": "Anna", "edat": 30, "ciutat": "Girona"}
Operadors lògics
Un diccionari és una estructura que guarda dades en parelles clau–valor. Permet accedir ràpidament a la informació mitjançant la clau. Característiques principals
and, or, not
Accedir a un valor
persona["nom"] # → "Anna"
Afegir o modificar una entrada
persona["edat"] = 31 persona["professió"] = "doctor"
dicc = {"clau": "valor"}
Eliminar una clau
del persona["ciutat"]
Activitat
Demana el nom a l'usuari i tres llibres que ha llegit aquest mes amb el nombre de pàgines de cadascun, guarda’ls en llistes i calcula el total de pàgines llegides, mostrant un missatge amb el nom de l’estudiant, els llibres i el total de pàgines.
Noms a les variables:
- El nom ha de començar per una lletra o per un guió baix (_).
- El nom no pot tenir espais en blanc.
- És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
- Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
formes.insert(0, hexàgon)
formes
quadrat
hexàgon
cercle
triangle
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès, etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin problemes senzills de forma estructurada i eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Noms a les variables:
- El nom ha de començar per una lletra o per un guió baix (_).
- El nom no pot tenir espais en blanc.
- És recomanable evitar utilitzar caràcters no anglesos (ñ, titlles…)
- Python distingeix entre majúscules i minúscules (casi sensitive).
Interessa utilitzar noms de variables que tinguin relació amb la dada emmagatzemada.Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Codi màquina: El codi màquina és l'únic llenguatge que un ordinador pot interpretar directament. Està compost exclusivament per seqüències de 1s i 0s que indiquen a la computadora com executar operacions bàsiques. Cada processador té el seu propi conjunt d'instruccions en codi màquina, la qual cosa ho fa dependent del maquinari específic. Per als éssers humans, aquest llenguatge és pràcticament incomprensible i el seu ús resulta extremadament laboriós, ja que requereix detallar cada instrucció en la seva forma més bàsica. Llenguatge assemblador: En els primers ordinadors, la programació es realitzava directament en codi màquina, la qual cosa era lent i propens a errors. Per a simplificar aquest procés, va sorgir el llenguatge assemblador, que empra abreviatures i paraules clau en anglès per a representar instruccions. A diferència del codi màquina, l'assemblador és més fàcil de llegir i escriure per als programadors, encara que continua sent dependent del maquinari específic. No obstant això , els ordinadors no poden executar-ho directament: és necessari un programa traductor, anomenat assemblador, que converteix el codi assemblador en codi màquina. Llenguatges d'alt nivell i compiladors. El llenguatge assemblador va facilitar la programació, però continuava requerint massa instruccions fins i tot per a tasques senzilles. Per a fer el procés més eficient, van sorgir els llenguatges d'alt nivell, que permeten escriure codi de forma més intuïtiva i pròxima al llenguatge humà. Aquests llenguatges empren sentències més comprensibles, similars a l'anglès i a la notació matemàtica habitual. Una sola instrucció en un llenguatge d'alt nivell pot equivaler a diverses línies de codi assemblador.
Igual que un text escrit pot redactar-se en diferents idiomes (espanyol, anglès, etc.), els programes informàtics poden desenvolupar-se en diferents llenguatges de programació. Cada llenguatge posseeix la seva pròpia sintaxi i regles. En aquesta unitat, estudiarem el llenguatge Python, una eina versàtil i àmpliament utilitzada, amb l'objectiu de desenvolupar programes que resolguin problemes senzills de forma estructurada i eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Què és un Chatbot?
Un bot és un programa informàtic dissenyat per a simular converses humanes, ja sigui per text o veu, permetent als usuaris interactuar amb serveis digitals de manera automàtica. Utilitzen intel·ligència artificial (IA) i processament del llenguatge natural (PLN) per a entendre i respondre consultes de manera eficient.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.
4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
1. Claredat i precisió: Cada pas ha d'estar definit sense ambigüitats. Per exemple , "cuinar fins que el formatge bombollegi" és més precís que "cuinar fins que estigui fet". 2. Definició d'entrades: Ha d'especificar el tipus de dades que rebrà,com a números positius, paraules o llistes de valors. 3. Generació de sortides: Ha de produir resultats ben definits, com el número major entre dos valors o una llista ordenada.
4. Finitud: Ha de concloure en un nombre finit de passos i proporcionar un resultat en un temps raonable. 5. Correcció: Ha de garantir resultats correctes en totes les situacions previstes. 6. Gestió de precondicions: Si requereix condicions en les entrades (per exemple , acceptar sol números positius), aquestes han de complir-se per a garantir un funcionament adequat.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Activitat
Fes un programa que:
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.
Escriu un programa que simuli un robot amb sensors de bateria i obstacle. Si la bateria és baixa i hi ha obstacle, mostra "Atura el robot". Si la bateria és baixa però no hi ha obstacle, mostra "Busca carregador". En qualsevol altre cas, mostra "Segueix funcionant".
Un algorisme s'assembla a una recepta. Una recepta diu com preparar un plat seguint una sèrie de passos. Per exemple, per a preparar un pastís els passos a seguir serien: Precalfar el forn, barrejar la farina amb el sucre i els ous,posar la mescla en un motlle… i així successivament.