SlideShare a Scribd company logo
1 of 32
Download to read offline
Daniel Poot Mutul
Luis Salgado Segoviano.
 Rossana Chi Gomez.
Omar Mandujano Ordaz.
   ¿Cuáles son las ventajas de usar tipos
    enumerados ?
   Menciona el propósito de nombrar constantes
   ¿Por qué los arreglos deben manejarse como
    estructuras de secuencia?
   ¿Cual es la importancia de la creación de tipos
    propios?
   Menciona las consideraciones al usar tipos
    definidos.
   Usar tipos enumerados para la legibilidad. En
    vez de escribir:
   if chosenColor=1
   puedes escribir:
   if chosenColor= Color_Red
   Usar tipos enumerados para mayor confiabilidad.
    En pocos lenguajes como ADA, un tipo enumerado
    le permite al compilador mas desempeño por
    medio del chequeo de tipos que este lo haga con
    valores enteros y constantes. Con constantes
    nombradas el compilador no tiene manera de
    saber que los valores legales solamente son
    Color_Red, Color_Green y Color_Blue.
   El compilador no hara objeción en sentencias como
    color= Country_England o country=
    Output_Printer.
   Si usas un tipo enumerado , declarando una
    variable Color, el compilador permitirá a la
    variable ser asignada solo los valores Color_Red,
    Color_Green y Color_Blue.
   Usar tipos enumerados para facilitar la
    modificación. Si encontramos un defecto en
    nuestro “1 singinfica rojo, 2 significa verde, 3
    significa azul” tendríamos que ir a través de todo
    nuestro código e ir cambiando los 1’s, 2’s, 3’s, y asi
    sucesivamente. En cambio si utilizamos un tipo
    enumerado, puedes seguir añadiendo elementos a
    la lista con sólo ponerlos en la definición del tipo y
    recompilar.
Usar tipos enumerados como una alternativa a las
variables booleanas. A menudo, una variable booleana no
es lo suficientemente rica para expresar el significado que
se necesita. Por ejemplo, suponiendo que se tiene una
rutina que devuelve el valor de true si la tarea se
desempeño correctamente y falso de otra manera.
Despues te das cuenta que tienes dos maneras posibles de
que la rutina devuelva el valor de falso. Una cuando la
tarea fallo y los efectos se limitan a la rutina misma. Y la
otra es cuando la tarea fallo y causa un error fatal que
necesita ser propagado al resto del programa. En este caso
un tipo enumerado con los valores: Status_Succes,
Status_Warning y Status_FatalError, podría ser mas
usable que una simple variable booleana con los valores
true y false.
   Checar valores invalidos. Cuando comparas un tipo
    enumerado en un if o case (switch en java), checa valores
    invalidos. Usa la clausula else en una sentencia case para
    atrapar valores invalidos.
Select Case screenColor
Case Color_Red
...
Case Color_Blue
...
Case Color_Green
...
Case Else
DisplayInternalError( False, "Internal Error 752: Invalid color." )
End Select
    Definir la primera y la ultima entrada de una enumeración para usarlas como limite en
     los ciclos. Esto permite escribir un bucle que recorre los elementos de una enumeración.
     Configure el tipo enumerado utilizando valores explícitos, como se muestra a
     continuación:
Public Enum Country
Country_First = 0
Country_China = 0
Country_England = 1
Country_France = 2
Country_Germany = 3
Country_India = 4
Country_Japan = 5
Country_Usa = 6
Country_Last = 6
End Enum
' compute currency conversions from US currency to target currency
Dim usaCurrencyConversionRate( Country_Last ) As Single
Dim iCountry As Country
For iCountry = Country_First To Country_Last
usaCurrencyConversionRate( iCountry ) = ConversionRate( Country_Usa, iCountry )
Next
  Reservar la primera entrada de un tipo enumerado como invalido.
   Muchos compiladores asignan al primer elemento de un tipo enumerado
   el valor 0. Declarar el elemento que se asigna a 0 para ser inválida ayuda a
   atrapar variables que no se ha inicializado correctamente, ya que son más
   propensos a ser 0 que cualquier otro valor no válido.
Public Enum Country
Country_InvalidFirst = 0
Country_First = 1
Country_China = 1
Country_England = 2
Country_France = 3
Country_Germany = 4
Country_India = 5
Country_Japan = 6
Country_Usa = 7
Country_Last = 7
End Enum
  Definir con precision, como el primer y el ultimo elementos
   se van a utilizar en la codificación estándar del proyecto, y
   usarlas consistentemente.
 Tener cuidado con las trampas de la asignación de valores
   explícitos a los elementos de una enumeración. Si se declara
   un índice de bucle de tipo Color y trató de recorrer a través
   de colores, lo haría circular a través de los valores no válidos
   de 3, 5, 6 y 7, así como los valores válidos de 1, 2, y 4.
enum Color {
Color_InvalidFirst = 0,
Color_Red = 1,
Color_Green = 2,
Color_Blue = 4,
Color_InvalidLast = 8
};
       SI TU LENGUAJE NO TIENE TIPOS ENUMERADOS…
       Si tu lenguaje no le da soporte a los tipos de datos enumerados, tu puedes simularlos con variables globales de clase:
// set up Color enumerated type
class Color {
private Color() {}
public static final Color Red = new Color();
public static final Color Green = new Color();
public static final Color Blue = new Color();
}

// set up Country enumerated type
class Country {
private Country() {}
public static final Country China = new Country();
public static final Country England = new Country();
public static final Country France = new Country();
public static final Country Germany = new Country();
public static final Country India = new Country();
public static final Country Japan = new Country();
}

// set up Output enumerated type
class Output {
private Output() {}
public static final Output Screen = new Output();
public static final Output Printer = new Output();
public static final Output File = new Output();
}
Este particular metodo de creacion de tipos
enumerados es también typesafe, porque cada
tipo es declarado como una clase. El compilador
checara sentencias invalidas como Output output =
Country.England.
   Una constante nombrada es como una variable,
    excepto que no se puede cambiar la constante
    de valor una vez que lo hayas asignado.

           1000          MaximumEmployees


   Hay veces que declaramos un arreglo que
    termina siendo más grande de lo que tu
    pensabas que ibas a necesitar y luego de
    correrlo se queda fuera del espacio
   Cuando se cambia el tamaño de un arreglo, tu
    solamente cambias la definición de la
    constante que tu usaste para declarar el arreglo.
    este punto único de control tiene un largo
    camino por recorrer para hacer del software
    realmente “soft” fácil de trabajar y de cambiar
   Tener el habito de usar constantes nombradas
    ayuda a conservar la legibilidad y
    mantenibilidad en declaraciones de datos .
   Ejemplo:
   En el bucle de abajo podemos ver un ejemplo
    donde nos preguntamos qué quiere decir el 12




   aparenta que el 12 hace referencia a los meses
    del año. Pero estamos seguros 100% de que es
    así Quieren apostar sus laps?
   es mejor aclararlo con una constante nombrada




   Este ejemplo está casi completo a excepción
    por una cosa..
   podemos ir aún más lejos mediante el uso de
    un tipo enumerado:




   este en esto momento donde ya no debe haber
    más dudas sobre el propósito del bucle
   En resumen utiliza constantes con nombre aun
    cuando creas que es una literal segura si no
    estás seguro de haber erradicado dichos errores
    utiliza un editor de texto para verificar que no
    los estés usando accidentalmente.
Simular constantes nombradas con variables con
ámbito apropiadamente o clases
 Si tu lenguaje no soporta constantes
  nombradas , tu tendrás que crear las tuyas.

Utilice constantes con nombre constantemente
 Es muy peligroso usar constantes con nombre
  en un lugar y en otro un literal para
  representar la misma entidad
Un arreglo contiene un grupo de elementos, todos
ellos del mismo tipo y son directamente accesados
mediante un índice
   Asegúrese de que todos los índices del arreglo
    están dentro de los límites del arreglo.
   Piense en arreglos como estructuras
    secuenciales.
   Compruebe los puntos extremos de arreglos.
   Si un arreglo es multidimensional, asegúrese
    de que sus subíndices se utilizan en el
    orden correcto
   Cuidado con los índices cruzados
   Meter un elemento adicional al final de un
    arreglo
   Es una de las capacidades más poderosas que
    un lenguaje le puede dar para aclarar su
    comprensión de un programa.

   Si estás usando C, C + + u otro lenguaje que te
    permite tipos definidos por el usuario,
    aprovecha de ellos!
Todo lo que tiene que cambiar es la definición de
tipo.
Suponga que está creando una nómina
sistema en el que los nombres de los empleados
son un máximo de 30 caracteres. Su
usuarios han dicho que nadie tiene un nombre
más largo de 30 caracteres. Hacer
que en el código el número 30 se mantenga a lo
largo de su programa?
Es prudente definir un nombre constante que indica la longitud de la
cadena o matriz y luego usar el nombre constante en la definición de
tipo.
•Para realizar las modificaciones más fácil.
• Para evitar la distribución de la información
excesiva.
• Para aumentar la fiabilidad.
• Para compensar las deficiencias del lenguaje.
Crear tipos con nombres funcionalmente
  orientados

          BigInteger        LongString

  Evite los tipos predefinidos
coordenada x;                    int x;
No volver a definir un tipo predefinido

      Integer ¿?

   Definir tipos sustitutos para la portabilidad
Maquina de 16 bits
typedef short int intNumber;
typedef float floatNumber;
Maquina de 32 bits
typedef long int intNumber;
typedef double floatNumber;
Considerar la creación de una clase en lugar de
utilizar un typedef.

More Related Content

What's hot (19)

P01 secuencial
P01 secuencialP01 secuencial
P01 secuencial
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Declaraciones
DeclaracionesDeclaraciones
Declaraciones
 
Identificadores en Lógia de Programación
Identificadores en Lógia de ProgramaciónIdentificadores en Lógia de Programación
Identificadores en Lógia de Programación
 
Tipos de datos
Tipos de datosTipos de datos
Tipos de datos
 
Presentacion del pseudocodigo2ºam
Presentacion del pseudocodigo2ºamPresentacion del pseudocodigo2ºam
Presentacion del pseudocodigo2ºam
 
Pseint Variables Y Comentarios
Pseint Variables Y ComentariosPseint Variables Y Comentarios
Pseint Variables Y Comentarios
 
3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones3.3.- Operadores y Expresiones
3.3.- Operadores y Expresiones
 
Tipos de datos en pseudocódigo
Tipos de datos en pseudocódigoTipos de datos en pseudocódigo
Tipos de datos en pseudocódigo
 
Introducción gambas
Introducción gambasIntroducción gambas
Introducción gambas
 
Expocision pseudocodigo
Expocision pseudocodigoExpocision pseudocodigo
Expocision pseudocodigo
 
Programacion
ProgramacionProgramacion
Programacion
 
Programacion
ProgramacionProgramacion
Programacion
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2Elementos basicos de un programa Grupo 2
Elementos basicos de un programa Grupo 2
 
Datos simples
Datos simples Datos simples
Datos simples
 
TUTORIAL
TUTORIALTUTORIAL
TUTORIAL
 
Sintaxis del lenguaje c++
Sintaxis del lenguaje c++Sintaxis del lenguaje c++
Sintaxis del lenguaje c++
 
Segundo trabajo
Segundo trabajoSegundo trabajo
Segundo trabajo
 

Viewers also liked

Alberto Lavín Additional Text for the Presentation of Boards under Crisis
Alberto Lavín Additional Text for the Presentation of Boards under CrisisAlberto Lavín Additional Text for the Presentation of Boards under Crisis
Alberto Lavín Additional Text for the Presentation of Boards under CrisisHi-Tech Consulting, S.A.
 
Epic research singapore : daily i forex report of 02 nd december 2014
Epic research singapore :   daily i forex report of 02 nd december 2014Epic research singapore :   daily i forex report of 02 nd december 2014
Epic research singapore : daily i forex report of 02 nd december 2014Epic Research Singapore
 
Presentacionavegadores
PresentacionavegadoresPresentacionavegadores
PresentacionavegadoresTania Alvarado
 
Dialogue From Dharamsala
Dialogue From DharamsalaDialogue From Dharamsala
Dialogue From DharamsalaBODY BISTRO
 
给想进入设计行业的在浙大校生们
给想进入设计行业的在浙大校生们给想进入设计行业的在浙大校生们
给想进入设计行业的在浙大校生们Wang shimu
 
Trabajo en slideshare will polanco coronado
Trabajo en slideshare will polanco coronadoTrabajo en slideshare will polanco coronado
Trabajo en slideshare will polanco coronadowillpolanco
 
Proyecto en informatica e.r.m merendu
Proyecto en informatica e.r.m merenduProyecto en informatica e.r.m merendu
Proyecto en informatica e.r.m merenduCarolina Dominguez
 
Avance Medio Curso
Avance Medio CursoAvance Medio Curso
Avance Medio Cursovaneslz
 
Presentacion ifis 02102012
Presentacion ifis 02102012Presentacion ifis 02102012
Presentacion ifis 02102012Daniel Moran
 
La funcion comercial de la empresa milagros
La funcion comercial de la empresa  milagrosLa funcion comercial de la empresa  milagros
La funcion comercial de la empresa milagrosMilagros Gonzalez
 
Kids' Vegies on the Verge turns 1!
Kids' Vegies on the Verge turns 1!Kids' Vegies on the Verge turns 1!
Kids' Vegies on the Verge turns 1!Graeme Stuart
 

Viewers also liked (20)

Assambler
AssamblerAssambler
Assambler
 
Alberto Lavín Additional Text for the Presentation of Boards under Crisis
Alberto Lavín Additional Text for the Presentation of Boards under CrisisAlberto Lavín Additional Text for the Presentation of Boards under Crisis
Alberto Lavín Additional Text for the Presentation of Boards under Crisis
 
Epic research singapore : daily i forex report of 02 nd december 2014
Epic research singapore :   daily i forex report of 02 nd december 2014Epic research singapore :   daily i forex report of 02 nd december 2014
Epic research singapore : daily i forex report of 02 nd december 2014
 
Presentacionavegadores
PresentacionavegadoresPresentacionavegadores
Presentacionavegadores
 
Dialogue From Dharamsala
Dialogue From DharamsalaDialogue From Dharamsala
Dialogue From Dharamsala
 
给想进入设计行业的在浙大校生们
给想进入设计行业的在浙大校生们给想进入设计行业的在浙大校生们
给想进入设计行业的在浙大校生们
 
OCWCD Hoofdstuk 2
OCWCD Hoofdstuk 2OCWCD Hoofdstuk 2
OCWCD Hoofdstuk 2
 
Trabajo en slideshare will polanco coronado
Trabajo en slideshare will polanco coronadoTrabajo en slideshare will polanco coronado
Trabajo en slideshare will polanco coronado
 
тема 6
тема 6тема 6
тема 6
 
Kmii torrez
Kmii torrezKmii torrez
Kmii torrez
 
Proyecto en informatica e.r.m merendu
Proyecto en informatica e.r.m merenduProyecto en informatica e.r.m merendu
Proyecto en informatica e.r.m merendu
 
Naal
NaalNaal
Naal
 
Lupita
LupitaLupita
Lupita
 
Construction- Advert
Construction- AdvertConstruction- Advert
Construction- Advert
 
March 2011 Care Minders Newsletter
March 2011 Care Minders NewsletterMarch 2011 Care Minders Newsletter
March 2011 Care Minders Newsletter
 
Avance Medio Curso
Avance Medio CursoAvance Medio Curso
Avance Medio Curso
 
Presentacion ifis 02102012
Presentacion ifis 02102012Presentacion ifis 02102012
Presentacion ifis 02102012
 
La funcion comercial de la empresa milagros
La funcion comercial de la empresa  milagrosLa funcion comercial de la empresa  milagros
La funcion comercial de la empresa milagros
 
Kids' Vegies on the Verge turns 1!
Kids' Vegies on the Verge turns 1!Kids' Vegies on the Verge turns 1!
Kids' Vegies on the Verge turns 1!
 
RAUL ILLESCAS FOTÓGRAFO PROFESIONAL
RAUL ILLESCAS FOTÓGRAFO PROFESIONALRAUL ILLESCAS FOTÓGRAFO PROFESIONAL
RAUL ILLESCAS FOTÓGRAFO PROFESIONAL
 

Similar to Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTEREMMAFLORESCARMONA
 
FORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptxFORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptxEMMAFLORESCARMONA
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntCristian C
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++grachika
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacionkarenyulithza
 
Definiciones de datos
Definiciones de datosDefiniciones de datos
Definiciones de datosKareliaRivas
 
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
 
Trabajo tecnología (3).pdf
Trabajo tecnología (3).pdfTrabajo tecnología (3).pdf
Trabajo tecnología (3).pdfSamuelBedoya6
 
Trabajo tecnología.pdf
Trabajo tecnología.pdfTrabajo tecnología.pdf
Trabajo tecnología.pdfSamuelBedoya6
 
Act04 tabla de tipos de datos
Act04 tabla de  tipos de datosAct04 tabla de  tipos de datos
Act04 tabla de tipos de datoskevin antonio
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantesCarlos Pes
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoAbrirllave
 
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptxcapitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptxMundoGamerHD
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CPablo Chiesa
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programaDavid Tuarez
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programaDavid Tuarez
 

Similar to Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26) (20)

Introducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTERIntroducción a Funciones LENGUAJE DART FLUTTER
Introducción a Funciones LENGUAJE DART FLUTTER
 
FORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptxFORMATO DIAPOSITIVAS - dart y flutter.pptx
FORMATO DIAPOSITIVAS - dart y flutter.pptx
 
Pseudocodigo
PseudocodigoPseudocodigo
Pseudocodigo
 
Variables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeIntVariables, expresiones y ejecución de condiciones les en PSeInt
Variables, expresiones y ejecución de condiciones les en PSeInt
 
Instrucciones C++
Instrucciones C++Instrucciones C++
Instrucciones C++
 
37 tarazona karen programacion
37 tarazona karen programacion37 tarazona karen programacion
37 tarazona karen programacion
 
Constantes y variables enitmar
Constantes y variables enitmarConstantes y variables enitmar
Constantes y variables enitmar
 
Definiciones de datos
Definiciones de datosDefiniciones de datos
Definiciones de datos
 
Programacion
ProgramacionProgramacion
Programacion
 
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
 
Trabajo tecnología (3).pdf
Trabajo tecnología (3).pdfTrabajo tecnología (3).pdf
Trabajo tecnología (3).pdf
 
Trabajo tecnología.pdf
Trabajo tecnología.pdfTrabajo tecnología.pdf
Trabajo tecnología.pdf
 
Trabajo tecnología.pdf
Trabajo tecnología.pdfTrabajo tecnología.pdf
Trabajo tecnología.pdf
 
Act04 tabla de tipos de datos
Act04 tabla de  tipos de datosAct04 tabla de  tipos de datos
Act04 tabla de tipos de datos
 
Identificadores, variables y constantes
Identificadores, variables y constantesIdentificadores, variables y constantes
Identificadores, variables y constantes
 
Identificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigoIdentificadores variables y constates en pseudocódigo
Identificadores variables y constates en pseudocódigo
 
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptxcapitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
 
Guía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en CGuía de Algoritmo y Programación en C
Guía de Algoritmo y Programación en C
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 
Elementos basicos de un programa
Elementos basicos de un programaElementos basicos de un programa
Elementos basicos de un programa
 

Recently uploaded

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIIsauraImbrondone
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfAngélica Soledad Vega Ramírez
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaDecaunlz
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...JAVIER SOLIS NOYOLA
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxYadi Campos
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónLourdes Feria
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...JAVIER SOLIS NOYOLA
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAEl Fortí
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxnandoapperscabanilla
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdfDemetrio Ccesa Rayme
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfMaritzaRetamozoVera
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Carlos Muñoz
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxzulyvero07
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxdkmeza
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADauxsoporte
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoJosDanielEstradaHern
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxlclcarmen
 

Recently uploaded (20)

AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA IIAFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
AFICHE EL MANIERISMO HISTORIA DE LA ARQUITECTURA II
 
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdfSELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
SELECCIÓN DE LA MUESTRA Y MUESTREO EN INVESTIGACIÓN CUALITATIVA.pdf
 
Qué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativaQué es la Inteligencia artificial generativa
Qué es la Inteligencia artificial generativa
 
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
ACERTIJO DE LA BANDERA OLÍMPICA CON ECUACIONES DE LA CIRCUNFERENCIA. Por JAVI...
 
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptxSEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
SEXTO SEGUNDO PERIODO EMPRENDIMIENTO.pptx
 
Estrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcciónEstrategia de prompts, primeras ideas para su construcción
Estrategia de prompts, primeras ideas para su construcción
 
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
LABERINTOS DE DISCIPLINAS DEL PENTATLÓN OLÍMPICO MODERNO. Por JAVIER SOLIS NO...
 
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURAFORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
FORTI-MAYO 2024.pdf.CIENCIA,EDUCACION,CULTURA
 
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptxORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
ORGANIZACIÓN SOCIAL INCA EN EL TAHUANTINSUYO.pptx
 
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
Programacion Anual Matemática4    MPG 2024  Ccesa007.pdfProgramacion Anual Matemática4    MPG 2024  Ccesa007.pdf
Programacion Anual Matemática4 MPG 2024 Ccesa007.pdf
 
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdfEjercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
Ejercicios de PROBLEMAS PAEV 6 GRADO 2024.pdf
 
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
Plan Refuerzo Escolar 2024 para estudiantes con necesidades de Aprendizaje en...
 
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptxACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
ACUERDO MINISTERIAL 078-ORGANISMOS ESCOLARES..pptx
 
Estrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptxEstrategias de enseñanza-aprendizaje virtual.pptx
Estrategias de enseñanza-aprendizaje virtual.pptx
 
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdfTema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
Tema 8.- PROTECCION DE LOS SISTEMAS DE INFORMACIÓN.pdf
 
Presentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza MultigradoPresentacion Metodología de Enseñanza Multigrado
Presentacion Metodología de Enseñanza Multigrado
 
CALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDADCALENDARIZACION DE MAYO / RESPONSABILIDAD
CALENDARIZACION DE MAYO / RESPONSABILIDAD
 
actividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° gradoactividades comprensión lectora para 3° grado
actividades comprensión lectora para 3° grado
 
Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.Fe contra todo pronóstico. La fe es confianza.
Fe contra todo pronóstico. La fe es confianza.
 
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptxTIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
TIPOLOGÍA TEXTUAL- EXPOSICIÓN Y ARGUMENTACIÓN.pptx
 

Tipos de datos fundamentales (copia conflictiva de amyeluz gomez 2012 09-26)

  • 1. Daniel Poot Mutul Luis Salgado Segoviano. Rossana Chi Gomez. Omar Mandujano Ordaz.
  • 2. ¿Cuáles son las ventajas de usar tipos enumerados ?  Menciona el propósito de nombrar constantes  ¿Por qué los arreglos deben manejarse como estructuras de secuencia?  ¿Cual es la importancia de la creación de tipos propios?  Menciona las consideraciones al usar tipos definidos.
  • 3. Usar tipos enumerados para la legibilidad. En vez de escribir:  if chosenColor=1  puedes escribir:  if chosenColor= Color_Red
  • 4. Usar tipos enumerados para mayor confiabilidad. En pocos lenguajes como ADA, un tipo enumerado le permite al compilador mas desempeño por medio del chequeo de tipos que este lo haga con valores enteros y constantes. Con constantes nombradas el compilador no tiene manera de saber que los valores legales solamente son Color_Red, Color_Green y Color_Blue.  El compilador no hara objeción en sentencias como color= Country_England o country= Output_Printer.
  • 5. Si usas un tipo enumerado , declarando una variable Color, el compilador permitirá a la variable ser asignada solo los valores Color_Red, Color_Green y Color_Blue.  Usar tipos enumerados para facilitar la modificación. Si encontramos un defecto en nuestro “1 singinfica rojo, 2 significa verde, 3 significa azul” tendríamos que ir a través de todo nuestro código e ir cambiando los 1’s, 2’s, 3’s, y asi sucesivamente. En cambio si utilizamos un tipo enumerado, puedes seguir añadiendo elementos a la lista con sólo ponerlos en la definición del tipo y recompilar.
  • 6. Usar tipos enumerados como una alternativa a las variables booleanas. A menudo, una variable booleana no es lo suficientemente rica para expresar el significado que se necesita. Por ejemplo, suponiendo que se tiene una rutina que devuelve el valor de true si la tarea se desempeño correctamente y falso de otra manera. Despues te das cuenta que tienes dos maneras posibles de que la rutina devuelva el valor de falso. Una cuando la tarea fallo y los efectos se limitan a la rutina misma. Y la otra es cuando la tarea fallo y causa un error fatal que necesita ser propagado al resto del programa. En este caso un tipo enumerado con los valores: Status_Succes, Status_Warning y Status_FatalError, podría ser mas usable que una simple variable booleana con los valores true y false.
  • 7. Checar valores invalidos. Cuando comparas un tipo enumerado en un if o case (switch en java), checa valores invalidos. Usa la clausula else en una sentencia case para atrapar valores invalidos. Select Case screenColor Case Color_Red ... Case Color_Blue ... Case Color_Green ... Case Else DisplayInternalError( False, "Internal Error 752: Invalid color." ) End Select
  • 8. Definir la primera y la ultima entrada de una enumeración para usarlas como limite en los ciclos. Esto permite escribir un bucle que recorre los elementos de una enumeración. Configure el tipo enumerado utilizando valores explícitos, como se muestra a continuación: Public Enum Country Country_First = 0 Country_China = 0 Country_England = 1 Country_France = 2 Country_Germany = 3 Country_India = 4 Country_Japan = 5 Country_Usa = 6 Country_Last = 6 End Enum ' compute currency conversions from US currency to target currency Dim usaCurrencyConversionRate( Country_Last ) As Single Dim iCountry As Country For iCountry = Country_First To Country_Last usaCurrencyConversionRate( iCountry ) = ConversionRate( Country_Usa, iCountry ) Next
  • 9.  Reservar la primera entrada de un tipo enumerado como invalido. Muchos compiladores asignan al primer elemento de un tipo enumerado el valor 0. Declarar el elemento que se asigna a 0 para ser inválida ayuda a atrapar variables que no se ha inicializado correctamente, ya que son más propensos a ser 0 que cualquier otro valor no válido. Public Enum Country Country_InvalidFirst = 0 Country_First = 1 Country_China = 1 Country_England = 2 Country_France = 3 Country_Germany = 4 Country_India = 5 Country_Japan = 6 Country_Usa = 7 Country_Last = 7 End Enum
  • 10.  Definir con precision, como el primer y el ultimo elementos se van a utilizar en la codificación estándar del proyecto, y usarlas consistentemente.  Tener cuidado con las trampas de la asignación de valores explícitos a los elementos de una enumeración. Si se declara un índice de bucle de tipo Color y trató de recorrer a través de colores, lo haría circular a través de los valores no válidos de 3, 5, 6 y 7, así como los valores válidos de 1, 2, y 4. enum Color { Color_InvalidFirst = 0, Color_Red = 1, Color_Green = 2, Color_Blue = 4, Color_InvalidLast = 8 };
  • 11. SI TU LENGUAJE NO TIENE TIPOS ENUMERADOS…  Si tu lenguaje no le da soporte a los tipos de datos enumerados, tu puedes simularlos con variables globales de clase: // set up Color enumerated type class Color { private Color() {} public static final Color Red = new Color(); public static final Color Green = new Color(); public static final Color Blue = new Color(); } // set up Country enumerated type class Country { private Country() {} public static final Country China = new Country(); public static final Country England = new Country(); public static final Country France = new Country(); public static final Country Germany = new Country(); public static final Country India = new Country(); public static final Country Japan = new Country(); } // set up Output enumerated type class Output { private Output() {} public static final Output Screen = new Output(); public static final Output Printer = new Output(); public static final Output File = new Output(); }
  • 12. Este particular metodo de creacion de tipos enumerados es también typesafe, porque cada tipo es declarado como una clase. El compilador checara sentencias invalidas como Output output = Country.England.
  • 13. Una constante nombrada es como una variable, excepto que no se puede cambiar la constante de valor una vez que lo hayas asignado. 1000 MaximumEmployees  Hay veces que declaramos un arreglo que termina siendo más grande de lo que tu pensabas que ibas a necesitar y luego de correrlo se queda fuera del espacio
  • 14. Cuando se cambia el tamaño de un arreglo, tu solamente cambias la definición de la constante que tu usaste para declarar el arreglo. este punto único de control tiene un largo camino por recorrer para hacer del software realmente “soft” fácil de trabajar y de cambiar
  • 15. Tener el habito de usar constantes nombradas ayuda a conservar la legibilidad y mantenibilidad en declaraciones de datos .  Ejemplo:
  • 16. En el bucle de abajo podemos ver un ejemplo donde nos preguntamos qué quiere decir el 12  aparenta que el 12 hace referencia a los meses del año. Pero estamos seguros 100% de que es así Quieren apostar sus laps?
  • 17. es mejor aclararlo con una constante nombrada  Este ejemplo está casi completo a excepción por una cosa..
  • 18. podemos ir aún más lejos mediante el uso de un tipo enumerado:  este en esto momento donde ya no debe haber más dudas sobre el propósito del bucle
  • 19. En resumen utiliza constantes con nombre aun cuando creas que es una literal segura si no estás seguro de haber erradicado dichos errores utiliza un editor de texto para verificar que no los estés usando accidentalmente.
  • 20. Simular constantes nombradas con variables con ámbito apropiadamente o clases  Si tu lenguaje no soporta constantes nombradas , tu tendrás que crear las tuyas. Utilice constantes con nombre constantemente  Es muy peligroso usar constantes con nombre en un lugar y en otro un literal para representar la misma entidad
  • 21. Un arreglo contiene un grupo de elementos, todos ellos del mismo tipo y son directamente accesados mediante un índice
  • 22. Asegúrese de que todos los índices del arreglo están dentro de los límites del arreglo.  Piense en arreglos como estructuras secuenciales.  Compruebe los puntos extremos de arreglos.  Si un arreglo es multidimensional, asegúrese de que sus subíndices se utilizan en el orden correcto
  • 23. Cuidado con los índices cruzados  Meter un elemento adicional al final de un arreglo
  • 24. Es una de las capacidades más poderosas que un lenguaje le puede dar para aclarar su comprensión de un programa.  Si estás usando C, C + + u otro lenguaje que te permite tipos definidos por el usuario, aprovecha de ellos!
  • 25.
  • 26. Todo lo que tiene que cambiar es la definición de tipo.
  • 27. Suponga que está creando una nómina sistema en el que los nombres de los empleados son un máximo de 30 caracteres. Su usuarios han dicho que nadie tiene un nombre más largo de 30 caracteres. Hacer que en el código el número 30 se mantenga a lo largo de su programa?
  • 28. Es prudente definir un nombre constante que indica la longitud de la cadena o matriz y luego usar el nombre constante en la definición de tipo.
  • 29. •Para realizar las modificaciones más fácil. • Para evitar la distribución de la información excesiva. • Para aumentar la fiabilidad. • Para compensar las deficiencias del lenguaje.
  • 30. Crear tipos con nombres funcionalmente orientados BigInteger LongString Evite los tipos predefinidos coordenada x; int x;
  • 31. No volver a definir un tipo predefinido Integer ¿? Definir tipos sustitutos para la portabilidad Maquina de 16 bits typedef short int intNumber; typedef float floatNumber; Maquina de 32 bits typedef long int intNumber; typedef double floatNumber;
  • 32. Considerar la creación de una clase en lugar de utilizar un typedef.