name: portada class: portada-slide, center, middle # Programació ## Motivació .footnote[Joan Puigcerver Ibáñez] --- layout: true class: regular-slide .right[.logo[]] --- # Exercici 1.1 .right-image[] - Volem que el braç mecànic porti una caixa d'una plataforma a una altre. - El braç té les següents operacions - Obrir/tancar mà - Pujar/baixar braç - Girar braç - Escriu un document indicant que ha de fer el braç
??? Treball: instruccions --- # Exercici 1.2 .right-image[] - Volem que el braç mecànic porti les 5 caixes d'una plataforma a una altre. - Hem afegit rodes al braç mecànic. - Operacions noves: - Avançar braç - Escriu un document indicant que ha de fer el braç
??? - treball: - funcions - bucle --- # Exercici 1.3 .right-image[] - Volem que el braç mecànic porti les totes les caixes d'una plataforma a una altre. - Hem a fegit un sensor que ens indica la presencia de caixes. - Operacions noves: - Comprovar si hi ha caixa - Escriu un document indicant que ha de fer el braç
??? - treball: - if --- # Exercici 1.4 .right-image[] - Volem, a més de l'anterior, contar el número de caixes mogudes. - Hem a fegit una pantalla al robot per mostrar el número de caixes mogudes. - Operacions noves: - Assignar valor - Operacions matemàtiques - Escriu un document indicant que ha de fer el braç
??? - treball: - variables inicialitzar contador de peces fer 5 vegades: moure_peça_si_n'hi_ha(*) avançar (*) moure_peça_si_n'hi_ha: si es detecta peça: moure_peça** incrementar contador de peces imprimir contador (**) moure_peça: tanca ma girar braç 180º obrir ma girar braç 180º --- # Estudi de l'exercici - Instrucció - Condició - Funció - Bucle - Variable --- # Exercici 2 - Tinc una pila de més de 100 DNIs ordenats pel número de DNI. - Indica quins passos haig de seguir per trobar el DNI 52147888
--- # Estudi de l'exercici - Fases - Estudi del problema - Diseny de l'algoritme - Pseudo codi - Diagrama de seqüencia - Codificació - Depuració --- # Que és programar? .blue[Programar] és desenvolupar un programa. Un .blue[programa] és una llista d’instruccions que l'ordinador realitzarà de manera seqüencial. --- # Com entenen les instruccions els ordinadors? - Llenguatge natural? - Català, Anglès, Xinès, ... - Complexos - Matisos - Poden no ser clars, ambigüetats -- .center[.large[__Llenguatge de programació__]] ??? Les llengües naturals són llengües que han evolucionat amb el pas del temps a través de l’ús (per exemple, el català l'anglès o el xinès). Per als ordinadors és difícil entendre els llenguatges naturals: són increïblement complexos i poden estar plens de matisos. En canvi, els programadors utilitzen llenguatges de programació específics. --- # Com entenen les instruccions els ordinadors? - Llenguatge de programació - Artificial dissenyat expressament per controlar el comportament d'una màquina - Regles clares - Només té una interpretació - Llenguatges de progració - __Java__, C, Python, Ruby, Kotlin, Php, Javascript, Go, Rust, Matlab, R ??? Els llenguatges de programació són llenguatges formals, construïts amb conjunts de regles clares. Actualment, hi ha una àmplia gamma de llenguatges de programació que s’utilitzen per a diversos propòsits. En aquest mòdul usarem el llenguatge __Java__. --- # Primer programa Java ### Objectiu Farem un programa que escrigui _Hello World!_ --- # Primer programa Java - Obre Intellij - Crea un nou projecte - Java - El codi del nostre programa va a la carpeta __*src*__ - Crea nou fitxer (*classe*) - Botó dret sobre src - Crear classe - Anomena-la* cat.itb.elteuusuari.dam.m03.uf1.data.HelloWorld .footnote[(*) elteuusuari consisteix en la teua direcció de correu, sense punts, fins @itb.cat] --- # Primer programa Java - Copia el següent text: ``` package cat.itb.elteuusuari.dam.m03.uf1.data; public class HelloWorld { /** * Prints a welcome message */ public static void main(String[] args) { // Code to be executed System.out.println("Hello World"); } } ``` .footnote[(*) elteuusuari consisteix en la teua direcció de correu, sense punts, fins @itb.cat] --- # Primer programa - Executa el programa - Fes click al triangle verd (play). - S'obrirà una terminal amb l'execució del programa. --- # Primer programa - Exercicis 1. Modifica el programa per a que escrigui "Hola!" 2. Modifica el programa per a que escrigui "Hola!" i a la següent línia, "Adéu!"
--- # Primer programa - estudi - Instrucció - Finalitza amb punt i coma - Comentari - Funció - Classe - Package ``` package cat.itb.elteuusuari.dam.m03.uf1.data public class HelloWorld { /** * Prints a welcome message */ public static void main(String[] args) { // Code to be executed System.out.println("Hello World"); } } ``` ??? Bibliografia usada: - https://learn.unity.com/tutorial/get-started-with-code-in-unity?projectId=5d48025dedbc2a0020e85be2# --- # On guardo el codi? - .blue[Git] - MP05 - Entorns de desenvolupament - Permet guarda el codi al núvol --- # Git - GitLab - Crea una compte a GitLab - https://gitlab.com/users/sign_in - Crea un projecte - Nom*: __elteuusuari-dam-m03-uf1__ - Crear projecte - Clica on posa clone - copia la url que comença per http:// .footnote[(*) elteuusuari consisteix en la teua direcció de correu, sense punts, fins @itb.cat] --- # Git - GitLab ## Invita'm al projecte - Menú esquerra - Members - Invite members - name: @joan.puigcerver - role: Maintainer - invite --- # Git - Intellij ## Configuració d'un projecte nou - copia el seguent fitxer i anomena'l _.gitignore_ - [JetBrains .gitignore](https://raw.githubusercontent.com/github/gitignore/master/Global/JetBrains.gitignore) - VCS -> Enable Version Control Integration -> Git -> Ok - VCS -> Git -> Remotes - fer clic al + - enganxa la url del apartat anterior --- # Git - Intellij ## Pujar fitxers - VCS -> Git -> Commit file - Marca tots els fitxers - Al commit message posa-hi en 5 paraules que hi ha - fes clic a commit. - VCS -> Git -> Push --- # Git - Intellij ## Descarregar el projecte en un pc - File -> new -> Project from version control - Copia la url del gitlab --- # Git - Intellij ## Descarregar canvis fets des d'un altre pc - VCS -> Git -> Pull --- # Git resum Accions un cop configurat el projecte ## Pujar canvis amb Intellij - Git commit - Git push ## Descarregar canvis - Git pull