{"id":2034,"date":"2019-07-10T19:46:57","date_gmt":"2019-07-10T17:46:57","guid":{"rendered":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/?page_id=2034"},"modified":"2019-07-31T11:51:36","modified_gmt":"2019-07-31T09:51:36","slug":"5-5-datos","status":"publish","type":"page","link":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/5-5-datos\/","title":{"rendered":"5.5. Datos"},"content":{"rendered":"<p>El cap\u00edtulo 12 del libro nos habla de c\u00f3mo recuperar datos de fuentes externas. Explica dos posibilidades:<\/p>\n<ul>\n<li>la <strong>recuperaci\u00f3n de datos <em>csv<\/em><\/strong>, que es un formato que podemos generar con hojas de c\u00e1lculo, y<\/li>\n<li>la <strong>recuperaci\u00f3n de datos <em>json<\/em><\/strong>, que es un est\u00e1ndar de compartici\u00f3n de datos a trav\u00e9s de internet.<\/li>\n<\/ul>\n<p>Cada caso se tiene que tratar de manera diferente, pues los datos nos llegan de maneras diferentes. El formato <em>csv<\/em> nos ser\u00e1 \u00fatil para recuperar datos que tengamos nosotros o datos que pasen desde ficheros de hoja de c\u00e1lculo. Como sabr\u00e9is, las hojas de c\u00e1lculo tienen filas y columnas y lo que se recupera son filas y columnas que habr\u00e1 que tratar de alguna manera. En el ejemplo 12-2, parte de un archivo con una sola fila, y el ejemplo 12-3 ya trabaja con filas y columnas.<\/p>\n<p>El formato <em>json<\/em> guarda para cada registro informaci\u00f3n de qu\u00e9 es cada valor. Como se explica en el libro, el formato <em>csv<\/em> ocupa menos, pero a cambio puede ser menos claro. De nuevo, con este formato tiene dos ejemplos: uno, el 15-4, donde recupera un solo registro, y el 15-5, donde recupera un conjunto de registros y usa un <em>array<\/em> de objetos para guardar los datos.<\/p>\n<p>Finalmente, este cap\u00edtulo habla de las <a href=\"https:\/\/es.wikipedia.org\/wiki\/Interfaz_de_programaci%C3%B3n_de_aplicaciones\" target=\"_blank\" rel=\"noopener\">API<\/a> pero b\u00e1sicamente se refiere al acceso a datos abiertos que podemos recuperar de bases de datos p\u00fablicas.<\/p>\n<h2><span lang=\"es\">Ejercicio<\/span><\/h2>\n<p>Modificad la funci\u00f3n <span style=\"font-family: Courier, Arial;\">owl<\/span> del ejemplo 9-7 para que permita indicar un color en vez de un tono de gris. La funci\u00f3n recibir\u00e1, pues, seis par\u00e1metros:<\/p>\n<pre>function own(x,y,r,g,b,s)<\/pre>\n<p>D\u00f3nde <em>r<\/em>, <em>g<\/em>, <em>b<\/em> ser\u00e1n los valores de los tres colores b\u00e1sicos (<em>red<\/em>, <em>green<\/em>, <em>blue<\/em>). El cuerpo del b\u00faho se pintar\u00e1 seg\u00fan el color indicado. La manera de pintar la cara se puede dejar tal y como est\u00e1 en la funci\u00f3n original.<\/p>\n<p>Las funciones <span style=\"font-family: Courier, Arial;\">setup()<\/span> y <span style=\"font-family: Courier, Arial;\">draw()<\/span> ser\u00e1n estas:<\/p>\n<pre>function setup() {\r\n createCanvas(480, 120);\r\n}\r\nfunction draw() {\r\n background(204);\r\n randomSeed(0);\r\n for (var i = 35; i &lt; width + 40; i += 40) {\r\n  var r = int(random(0, 102));\r\n  var g = int(random(0, 102));\r\n  var b = int(random(0, 102));\r\n  var scalar = random(0.25, 1.0);\r\n  owl(i, 110, r, g, b, scalar);\r\n }\r\n}<\/pre>\n<p>Y lo que se pintar\u00e1 es esto:<\/p>\n<p><img loading=\"lazy\" class=\"alignnone size-full wp-image-967\" src=\"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/wp-content\/uploads\/sites\/17\/2019\/07\/PID_00258586_5_003.jpg\" alt=\"\" width=\"500\" height=\"128\" srcset=\"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/wp-content\/uploads\/sites\/17\/2019\/07\/PID_00258586_5_003.jpg 500w, http:\/\/disseny-test.uoc.edu\/materials\/programacio\/wp-content\/uploads\/sites\/17\/2019\/07\/PID_00258586_5_003-300x77.jpg 300w\" sizes=\"(max-width: 500px) 100vw, 500px\" \/><\/p>\n<h2><span lang=\"es\">Soluci\u00f3n al ejercicio<\/span><\/h2>\n<h3 style=\"line-height: normal;\"><span lang=\"es\">B\u00faho de colores<\/span><\/h3>\n<pre>function owl(x, y, r, g, b, s) {\r\n push();\r\n translate(x, y);\r\n scale(s); \/\/ Set the scale\r\n stroke(r,g,b); <strong>\/\/ Seleccionamos el color <\/strong>\r\n strokeWeight(70);\r\n line(0, -35, 0, -65); \/\/ Body\r\n noStroke();\r\n fill(255-g);\r\n ellipse(-17.5, -65, 35, 35); \/\/ Left eye dome\r\n ellipse(17.5, -65, 35, 35); \/\/ Right eye dome\r\n arc(0, -65, 70, 70, 0, PI); \/\/ Chin\r\n fill(g);\r\n ellipse(-14, -65, 8, 8); \/\/ Left eye\r\n ellipse(14, -65, 8, 8); \/\/ Right eye\r\n quad(0, -58, 4, -51, 0, -44, -4, -51); \/\/ Beak pop();\r\n}\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>El cap\u00edtulo 12 del libro nos habla de c\u00f3mo recuperar datos de fuentes externas. Explica dos posibilidades: la recuperaci\u00f3n de datos csv, que es un formato que podemos generar con hojas de c\u00e1lculo, y la recuperaci\u00f3n de datos json, que es un est\u00e1ndar de compartici\u00f3n de datos a trav\u00e9s de internet. Cada caso se tiene [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false},"acf":[],"_links":{"self":[{"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/pages\/2034"}],"collection":[{"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/comments?post=2034"}],"version-history":[{"count":6,"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/pages\/2034\/revisions"}],"predecessor-version":[{"id":3284,"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/pages\/2034\/revisions\/3284"}],"wp:attachment":[{"href":"http:\/\/disseny-test.uoc.edu\/materials\/programacio\/es\/wp-json\/wp\/v2\/media?parent=2034"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}