SlideShare una empresa de Scribd logo
1 de 8
Chequeo de tipos
 Miguel Ángel Alarcos Torrecillas
 Ingeniero Técnico en Informática
 miguel.alarcos@gmail.com
Chequeo de tipos en
la programación estática y dinámica.
Tipos de los parámetros en una
función
 Dada la función f que llama a g:
debe cumplirse que el tipo de los parámetros
en la llamada coincide con el tipo de los
parámetros esperados a la entrada de g.
 Argumento: el chequeo de tipos alerta de
errores, eso es bueno.
Tipos de los parámetros en una
función
 Respuesta: Si la unit-test de f se cumple, se
cumple la coincidencia de tipos, ya que está
subsumida. Pero dado que no somos
perfectos haciendo unit-tests, es bueno
como ayuda auxiliar.
 Más formalmente: si para que B se cumpla
debe cumplirse A, eso no significa que
verificando que se cumple A nos acercamos
a que se cumpla B, ya que hay casos en los
que se cumple A y no B.
Un ejemplo
def g(float a, float b): # se suele decir que g acepta un flotante como primer parámetro.
# Lo correcto es decir qué objetos son los que acepta: por ejemplo, la velocidad
# de los cuerpos con masa mayor a 1 tonelada.
return a - b
def f():
a, b = 8, 4
return g(b, a) # queremos hacer g(a,b), pero nos equivocamos en el orden de los parámetros
 Coinciden tipos, pero hemos invertido el
orden de los parámetros, lo que producirá un
error que se descubrirá pasado bastante
tiempo de ejecución y sin posible pista de
dónde viene el error.
Un experimento psico-
informático
 Detectar el error de tipos sí, corregir el error
de tipos no.
 Experimento psico-informático: funciones
con llamadas a otras funciones en las que
hay errores de tipo en las llamadas.
¿Corrigen los tipos solamente o el correcto
funcionamiento de las funciones?
La inferencia no cubre el 100%
 Argumento: La inferencia no cubre el 100%
en un código dinámico sin dar algunas
pistas, mientras que en un código estático
tenemos toda la información de tipos, y
hemos dicho que eso es algo bueno.
Respuesta:
 podemos dar algunas pistas (Python function
annotations): def f(x: int) -> int:
 no estamos hablando del mismo código. En
el caso dinámico hay más expresividad
Pero, ¿qué información de tipos
tenemos realmente en el caso
estático?
 En el mundo ideal sabemos a priori todos
los tipos que vamos a utilizar, pero en el
mundo real el algoritmo va cambiando y con
ello la declaración de tipos. Es decir, la
información de declaración de tipos se
extrae del algoritmo a posteriori y no al
revés, luego no tiene sentido utilizarla para
verificar el algoritmo.
 Lo que si necesitamos es inferencia de tipos
(recorriendo todos las ramas) para saber que
el algoritmo es coherente a nivel de tipos.
Un paralelismo
 Si sobre una línea tenemos trazadas las
siguientes distancias: 2m, 5m, 9m.
 No tiene sentido verificar las marcas
atendiendo a la mitad de la medida de la
primera marca.
 Tiene sentido tener un metro certificado
externamente y utilizarlo para verificar las
medidas.

Más contenido relacionado

La actualidad más candente

Sentencias if python y entrada
Sentencias if python y entradaSentencias if python y entrada
Sentencias if python y entradaElim Aqp
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionMagui Cisnecorz
 
Estructura de lenguaje C++
Estructura de lenguaje C++Estructura de lenguaje C++
Estructura de lenguaje C++jhoel terrel
 
Palabras reservadas en java
Palabras reservadas en javaPalabras reservadas en java
Palabras reservadas en javatriss0706
 
If visual basic marlon y españa
If visual basic marlon y españaIf visual basic marlon y españa
If visual basic marlon y españaStalyn Cruz
 
PráCtica Con Foreign Desk
PráCtica Con Foreign DeskPráCtica Con Foreign Desk
PráCtica Con Foreign Deskteresa_soto
 
Recursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezRecursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezVanessa Ramirez
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacionsullonkey
 
APP Inventor - Bloques de control
APP Inventor - Bloques de controlAPP Inventor - Bloques de control
APP Inventor - Bloques de controlBruno Vidondo
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño webPaula_rozo
 

La actualidad más candente (18)

Lenguaje c... trabajo
Lenguaje c... trabajoLenguaje c... trabajo
Lenguaje c... trabajo
 
Introduccion a python
Introduccion a pythonIntroduccion a python
Introduccion a python
 
Sentencias if python y entrada
Sentencias if python y entradaSentencias if python y entrada
Sentencias if python y entrada
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Las estructuras de control
Las estructuras de controlLas estructuras de control
Las estructuras de control
 
Estructura de lenguaje C++
Estructura de lenguaje C++Estructura de lenguaje C++
Estructura de lenguaje C++
 
Ahorcado
AhorcadoAhorcado
Ahorcado
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Palabras reservadas en java
Palabras reservadas en javaPalabras reservadas en java
Palabras reservadas en java
 
If visual basic marlon y españa
If visual basic marlon y españaIf visual basic marlon y españa
If visual basic marlon y españa
 
Arreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de FlujoArreglos Expresiones y Control de Flujo
Arreglos Expresiones y Control de Flujo
 
PráCtica Con Foreign Desk
PráCtica Con Foreign DeskPráCtica Con Foreign Desk
PráCtica Con Foreign Desk
 
Recursividad - Vanessa Ramirez
Recursividad - Vanessa RamirezRecursividad - Vanessa Ramirez
Recursividad - Vanessa Ramirez
 
Expresiones y control del flujo Java
Expresiones y control del flujo JavaExpresiones y control del flujo Java
Expresiones y control del flujo Java
 
Polimorfismo_PApps
Polimorfismo_PAppsPolimorfismo_PApps
Polimorfismo_PApps
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
APP Inventor - Bloques de control
APP Inventor - Bloques de controlAPP Inventor - Bloques de control
APP Inventor - Bloques de control
 
Fundamentos de programación en diseño web
Fundamentos de programación en diseño webFundamentos de programación en diseño web
Fundamentos de programación en diseño web
 

Destacado

Economica
EconomicaEconomica
Economicadadm08
 
Trabajo andres marce (1)
Trabajo andres   marce (1)Trabajo andres   marce (1)
Trabajo andres marce (1)angeles300
 
Valoración del proyecto
Valoración del proyectoValoración del proyecto
Valoración del proyectoMAITEBG
 
5 averías que todo ciclista de montaña debe saber solucionar
5 averías que todo ciclista de montaña debe saber solucionar 5 averías que todo ciclista de montaña debe saber solucionar
5 averías que todo ciclista de montaña debe saber solucionar mariasegura92
 
Pariacl2 diego cabrera
Pariacl2 diego cabreraPariacl2 diego cabrera
Pariacl2 diego cabreraDiegocabr
 
Spielregel twilight 691004
Spielregel twilight 691004Spielregel twilight 691004
Spielregel twilight 691004Jason Fawcett
 
Folienpräsentation Erasmus+ JUGEND IN AKTION
Folienpräsentation Erasmus+ JUGEND IN AKTIONFolienpräsentation Erasmus+ JUGEND IN AKTION
Folienpräsentation Erasmus+ JUGEND IN AKTIONJUGEND für Europa
 
Sintesis mas informacion menos conocimiento mario vargas
Sintesis mas informacion menos conocimiento   mario vargasSintesis mas informacion menos conocimiento   mario vargas
Sintesis mas informacion menos conocimiento mario vargasAlejandra Tèllez
 
Implementacion de las tic como metodo didactico para mejorar el aprendisaje
Implementacion de las tic  como metodo didactico para mejorar el  aprendisajeImplementacion de las tic  como metodo didactico para mejorar el  aprendisaje
Implementacion de las tic como metodo didactico para mejorar el aprendisajecaraballo5
 

Destacado (20)

Economica
EconomicaEconomica
Economica
 
Trabajo andres marce (1)
Trabajo andres   marce (1)Trabajo andres   marce (1)
Trabajo andres marce (1)
 
C onstitucion
C onstitucionC onstitucion
C onstitucion
 
Valoración del proyecto
Valoración del proyectoValoración del proyecto
Valoración del proyecto
 
Fallos de Cámara
Fallos de CámaraFallos de Cámara
Fallos de Cámara
 
5 averías que todo ciclista de montaña debe saber solucionar
5 averías que todo ciclista de montaña debe saber solucionar 5 averías que todo ciclista de montaña debe saber solucionar
5 averías que todo ciclista de montaña debe saber solucionar
 
Herramientas digitales
Herramientas digitales Herramientas digitales
Herramientas digitales
 
el modelo desarrollistas
el modelo desarrollistasel modelo desarrollistas
el modelo desarrollistas
 
Pariacl2 diego cabrera
Pariacl2 diego cabreraPariacl2 diego cabrera
Pariacl2 diego cabrera
 
Informatica
InformaticaInformatica
Informatica
 
Act! Produktbroschüre Version v16
Act! Produktbroschüre Version v16Act! Produktbroschüre Version v16
Act! Produktbroschüre Version v16
 
Presentación2
Presentación2Presentación2
Presentación2
 
Sprechen Sie Lead? für Infor CRM
Sprechen Sie Lead? für Infor CRMSprechen Sie Lead? für Infor CRM
Sprechen Sie Lead? für Infor CRM
 
Spielregel twilight 691004
Spielregel twilight 691004Spielregel twilight 691004
Spielregel twilight 691004
 
wea bologia :3
wea bologia :3wea bologia :3
wea bologia :3
 
Cultura expocicion
Cultura expocicionCultura expocicion
Cultura expocicion
 
Folienpräsentation Erasmus+ JUGEND IN AKTION
Folienpräsentation Erasmus+ JUGEND IN AKTIONFolienpräsentation Erasmus+ JUGEND IN AKTION
Folienpräsentation Erasmus+ JUGEND IN AKTION
 
20 problemas
20 problemas 20 problemas
20 problemas
 
Sintesis mas informacion menos conocimiento mario vargas
Sintesis mas informacion menos conocimiento   mario vargasSintesis mas informacion menos conocimiento   mario vargas
Sintesis mas informacion menos conocimiento mario vargas
 
Implementacion de las tic como metodo didactico para mejorar el aprendisaje
Implementacion de las tic  como metodo didactico para mejorar el  aprendisajeImplementacion de las tic  como metodo didactico para mejorar el  aprendisaje
Implementacion de las tic como metodo didactico para mejorar el aprendisaje
 

Similar a Chequeo de tipos

Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.comFresyMetal
 
Presentacion python final
Presentacion python finalPresentacion python final
Presentacion python finalAlex
 
Presentacion python final
Presentacion python finalPresentacion python final
Presentacion python finalAlex
 
Recursividad
RecursividadRecursividad
Recursividadjuan jose
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4flaquita_dany
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE Cflaquita_dany
 
Actividad 5. Ejercicios.docx
Actividad 5. Ejercicios.docxActividad 5. Ejercicios.docx
Actividad 5. Ejercicios.docxSnorkReyes
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfSofiaMoreno74
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-javajairjulian
 
Estructuras básicas tecnologia P3 2021
Estructuras básicas tecnologia P3 2021Estructuras básicas tecnologia P3 2021
Estructuras básicas tecnologia P3 2021DavidLopez979
 
Estructuras básicas 10 3
Estructuras básicas 10 3 Estructuras básicas 10 3
Estructuras básicas 10 3 juansolano67
 

Similar a Chequeo de tipos (20)

Tema 7 www.fresymetal.com
Tema 7 www.fresymetal.comTema 7 www.fresymetal.com
Tema 7 www.fresymetal.com
 
Presentacion python final
Presentacion python finalPresentacion python final
Presentacion python final
 
Presentacion python final
Presentacion python finalPresentacion python final
Presentacion python final
 
Tecnología pseint (1)
Tecnología pseint (1)Tecnología pseint (1)
Tecnología pseint (1)
 
Recursividad
RecursividadRecursividad
Recursividad
 
Tecnología pseint
Tecnología pseintTecnología pseint
Tecnología pseint
 
Funciones lenguaje c modulo4
Funciones lenguaje c modulo4Funciones lenguaje c modulo4
Funciones lenguaje c modulo4
 
FUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE CFUNCIONES EN LENGUAJE C
FUNCIONES EN LENGUAJE C
 
Funciones
FuncionesFunciones
Funciones
 
Ciclos
CiclosCiclos
Ciclos
 
Elemento 4
Elemento 4Elemento 4
Elemento 4
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Actividad 5. Ejercicios.docx
Actividad 5. Ejercicios.docxActividad 5. Ejercicios.docx
Actividad 5. Ejercicios.docx
 
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdfEstructuras básicas_ Conceptos básicos de programación. 10-1.pdf
Estructuras básicas_ Conceptos básicos de programación. 10-1.pdf
 
Funciones en C
Funciones en CFunciones en C
Funciones en C
 
FUNCIONES LENGUAJE C
FUNCIONES LENGUAJE CFUNCIONES LENGUAJE C
FUNCIONES LENGUAJE C
 
2685008 taller-java
2685008 taller-java2685008 taller-java
2685008 taller-java
 
Estructuras básicas tecnologia P3 2021
Estructuras básicas tecnologia P3 2021Estructuras básicas tecnologia P3 2021
Estructuras básicas tecnologia P3 2021
 
Estructuras básicas 10 3
Estructuras básicas 10 3 Estructuras básicas 10 3
Estructuras básicas 10 3
 
Introducción a Python
Introducción a PythonIntroducción a Python
Introducción a Python
 

Último

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 

Último (12)

EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 

Chequeo de tipos

  • 1. Chequeo de tipos  Miguel Ángel Alarcos Torrecillas  Ingeniero Técnico en Informática  miguel.alarcos@gmail.com Chequeo de tipos en la programación estática y dinámica.
  • 2. Tipos de los parámetros en una función  Dada la función f que llama a g: debe cumplirse que el tipo de los parámetros en la llamada coincide con el tipo de los parámetros esperados a la entrada de g.  Argumento: el chequeo de tipos alerta de errores, eso es bueno.
  • 3. Tipos de los parámetros en una función  Respuesta: Si la unit-test de f se cumple, se cumple la coincidencia de tipos, ya que está subsumida. Pero dado que no somos perfectos haciendo unit-tests, es bueno como ayuda auxiliar.  Más formalmente: si para que B se cumpla debe cumplirse A, eso no significa que verificando que se cumple A nos acercamos a que se cumpla B, ya que hay casos en los que se cumple A y no B.
  • 4. Un ejemplo def g(float a, float b): # se suele decir que g acepta un flotante como primer parámetro. # Lo correcto es decir qué objetos son los que acepta: por ejemplo, la velocidad # de los cuerpos con masa mayor a 1 tonelada. return a - b def f(): a, b = 8, 4 return g(b, a) # queremos hacer g(a,b), pero nos equivocamos en el orden de los parámetros  Coinciden tipos, pero hemos invertido el orden de los parámetros, lo que producirá un error que se descubrirá pasado bastante tiempo de ejecución y sin posible pista de dónde viene el error.
  • 5. Un experimento psico- informático  Detectar el error de tipos sí, corregir el error de tipos no.  Experimento psico-informático: funciones con llamadas a otras funciones en las que hay errores de tipo en las llamadas. ¿Corrigen los tipos solamente o el correcto funcionamiento de las funciones?
  • 6. La inferencia no cubre el 100%  Argumento: La inferencia no cubre el 100% en un código dinámico sin dar algunas pistas, mientras que en un código estático tenemos toda la información de tipos, y hemos dicho que eso es algo bueno. Respuesta:  podemos dar algunas pistas (Python function annotations): def f(x: int) -> int:  no estamos hablando del mismo código. En el caso dinámico hay más expresividad
  • 7. Pero, ¿qué información de tipos tenemos realmente en el caso estático?  En el mundo ideal sabemos a priori todos los tipos que vamos a utilizar, pero en el mundo real el algoritmo va cambiando y con ello la declaración de tipos. Es decir, la información de declaración de tipos se extrae del algoritmo a posteriori y no al revés, luego no tiene sentido utilizarla para verificar el algoritmo.  Lo que si necesitamos es inferencia de tipos (recorriendo todos las ramas) para saber que el algoritmo es coherente a nivel de tipos.
  • 8. Un paralelismo  Si sobre una línea tenemos trazadas las siguientes distancias: 2m, 5m, 9m.  No tiene sentido verificar las marcas atendiendo a la mitad de la medida de la primera marca.  Tiene sentido tener un metro certificado externamente y utilizarlo para verificar las medidas.