SlideShare une entreprise Scribd logo
1  sur  40
Télécharger pour lire hors ligne
Tipos de datos

       Repaso de temas de lectura
                SSD5

SSD5           Mtl Lourdes Cahuich   1
Tipos de datos
       • C++ clasifica los objetos de datos en
         diferentes tipos; éstos no solamente
         describen las operaciones fundamentales su
         no también el rango de valores que los
         tipos de datos aceptan




SSD5                     Mtl Lourdes Cahuich          2
Tipos de datos
       • Diferentes tipos de datos permiten guardar
         valores diferentes, el lenguaje puede
         verificar y asegurar que un programador
         asigne solamente valores apropiados al
         objeto de datos




SSD5                     Mtl Lourdes Cahuich          3
Tipos de datos
       • Este mecanismo se conoce como revisión
         de tipos C++, por eso es considerado que
         es un lenguaje fuertemente tipeado, ya que
         es muy estricto al revisar los tipos de datos
         y sus valores correspondientes




SSD5                       Mtl Lourdes Cahuich           4
Tipos de datos C++             Tipos Java
  bool                      boolean
  char                      char
  int                       int
  short long                short long
  float                     float
  double                    double


SSD5                Mtl Lourdes Cahuich         5
Tipos de datos
       • El espacio requerido para almacenar
         variables difiere entre los lenguajes, en
         C++ los requerimientos de espacio de
         almacenamiento son dejados a discreción
         del compilador, en otros lenguajes el
         tamaño puede variar



SSD5                      Mtl Lourdes Cahuich        6
Programa para conocer el tamaño
           de datos en C++
#include <cstdlib>
#include <iostream>
using namespace std;
int main(int argc, char * argv[]){
    cout << “ bool: “ << sizeof(bool) << endl;
    cout << “ char: “ << sizeof(char) << endl;
    cout << “ short: “ << sizeof(short) << endl;
    cout << “ int: “ << sizeof(int) << endl;
    cout << “ long: “ << sizeof(long) << endl;
    cout << “ float: “ << sizeof(float) << endl;
    cout << “ double: “ << sizeof(double) << endl;
    return EXIT_SUCCESS;
}
SSD5                    Mtl Lourdes Cahuich          7
Variables de sólo lectura
       • C++ contiene un mecanismo para crear
         variables de “solo-lectura”; se usa la
         palabra const para permitir crear
         variables de solo lectura y no puede ser
         modificada después de que ésta haya sido
         inicializada



SSD5                     Mtl Lourdes Cahuich        8
Variables de sólo lectura
       const   int BOILING_POINT = 100;
       const   int FREEZING_POINT = 0;
       const   float PI = 3.14159;


       • Los nombres de las constantes se escriben
         en mayúsculas por convención



SSD5                     Mtl Lourdes Cahuich         9
Cadenas de caracteres
       • El tipo de dato cadena de caracteres
         (string) provee la abstracción para permitir
         que los programadores trabajen con
         cadenas de caracteres; a diferencia de Java,
         el tipo cadena de caracteres no está
         disponible en todos los programas.



SSD5                      Mtl Lourdes Cahuich           10
Cadenas de caracteres
       • Si un programa de C++ requiere string
         deberá referirse a la biblioteca que define
         este tipo #include<string> ésta es
         necesaria para permitir que el programador
         acceda el tipo de dato cadena de caracteres




SSD5                      Mtl Lourdes Cahuich          11
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[]){
       string s1 = “first”; //inicialización
       string s2;
       s1 += “string”; //concatenación
       s2 = s1; //asignación
       cout << s1 << endl; //salida a consola
       cout << s1.length() << endl; //longitud
       return EXIT_SUCCESS;
SSD5                 Mtl Lourdes Cahuich         12
}
Arreglos
       • C++ provee soporte básico para una
         secuencia de datos homogéneos a través de
         los arreglos
       • En C++ se declaran los arreglos así:
         //declaración de arreglos enteros
         int cpp_array[10];




SSD5                     Mtl Lourdes Cahuich         13
Arreglos
       • El doble corchete puede ponerse
         solamente después de la variable
       • El acceso a los elementos almacenados en
         un arreglo se realiza encerrando entre
         corchetes el número índice del elemento
         que se desea acceder; el indexamiento
         comienza con cero

SSD5                     Mtl Lourdes Cahuich        14
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]){
   int arr[25];
   for(int i=0; i<25;i++){
      arr[i]=i;
   }
     cout <<“Primer elemento igual a: ”<<arr[0]<<endl;
     return EXIT_SUCCESS;
}

    SSD5                Mtl Lourdes Cahuich              15
Arreglos
       • Un peligro inherente es la falta de validación de
         los límites del arreglo, pues C++ no soporta la
         revisión de los límites y dependiendo del
         contenido de la memoria adyacente puede o no
         “tronar” el programa por acceder fuera de los
         límites, pero podemos asegurar que los datos
         que se obtienen de un acceso fuera de límites
         podrían ser no significativos; es una práctica
         peligrosa que se debe evitar

SSD5                         Mtl Lourdes Cahuich             16
Vectores
       • El tipo de dato Vector es una alternativa
         más segura que un arreglo; pues tienen
         múltiples características, por ejemplo,
         regresar el tamaño del vector y también
         ofrece la revisión de límites y a diferencia
         de los arreglos, el vector puede aumentar
         automáticamente su tamaño cuando se
         requiere
SSD5                       Mtl Lourdes Cahuich          17
Creando nuevos nombres de tipos de
                     datos
       • En C++ se pueden crear tipos de datos
         adicionales para los tipos de datos
         existentes; para crear otro nombre se utiliza
         la palabra clave “typedef” con la siguiente
         sintaxis:

         typedef tipo_anterior nuevo_nombre;


SSD5                      Mtl Lourdes Cahuich            18
Creando nuevos nombres de tipos de
                     datos
       • Al hacer esto los programadores pueden
         encapsular su elección de tipos de datos, lo
         cual es una buena práctica de
         programación ya que, si es necesario, un
         programador puede cambiar los usos de un
         tipo de dato, en particular cambiando la
         definición del “typedef”


SSD5                      Mtl Lourdes Cahuich           19
Clases – sintaxis básica
       • La clase es la unidad básica de abstracción
         en C++ y se usa para especificar y después
         instanciar objetos.
       • La forma de definir una clase es diferente
         entre Java y C++ aunque son pocas las
         diferencias importantes



SSD5                      Mtl Lourdes Cahuich          20
Clases – sintaxis básica
       • Primero.- Usan diferentes modificadores
         de acceso. En Java se puede repetir el
         modificador de acceso para cada dato y
         cada función miembro; en cambio en C++
         se usa un modificador de acceso para
         delimitar una sección de la definición de la
         clase


SSD5                      Mtl Lourdes Cahuich           21
Clases – sintaxis básica
       • Segundo.- En C++ no existe una clase
         “pública” o “privada”; se puede usar
         cualquier clase incluida en la declaración de
         clases
       • Tercero.- Las declaraciones de clases de
         C++ deben terminar con punto y coma (;)



SSD5                      Mtl Lourdes Cahuich            22
Clases - constructores
       • Los constructores son los métodos de una
         clase que definen qué acciones tomar al
         crear un objeto
       • Una clase en C++ puede tener múltiples
         constructores, lo que permite que existan
         variaciones de instancias pues pueden
         existir números y tipos de parámetros
         diferentes en cada constructor

SSD5                     Mtl Lourdes Cahuich         23
1. class BankAccount{
2. private:
3.   double sum;
4.   string name;
5. public:
6.   BankAccount (string nm):name(nm), sum(0) {}
7.   BankAccount (string nm, double bal) : name(nm),
   sum(bal){}
8.   double balance () {return sum;}
9.   void deposit (double amount){ sun += amount;}
10. void withdraw (double amount){ sum =- amount;}
11. string getName(){ return name;}
12.};




  SSD5                  Mtl Lourdes Cahuich            24
Clases - constructores
       • El uso de listas iniciales en constructores es
         la mejor forma de especificar los valores
         iniciales para los miembros de los datos de
         una clase.
       • Las listas iniciales son variables iniciadoras
         separadas por una coma, que aparecen
         antes del acuerdo de un constructor.

SSD5                       Mtl Lourdes Cahuich            25
Clases - constructores
       • Todo lo qu ese encuentra entre la coma de
         la línea 7 y los {} componen la lista inicial;
         ésta establece el valor inicial del miembro
         dato privado name igual al parámetro nm.
       • También establece el valor inicial del
         miembro dato sum igual a cero.



SSD5                       Mtl Lourdes Cahuich            26
Clases - constructores
       • En C++ se crean objetos con una sintaxis
         similar a la declaración regular de variables;
         se pueden declarar e instanciar objetos
         usando sintaxis idéntica a la declaración de
         los tipos fundamentales de datos




SSD5                       Mtl Lourdes Cahuich            27
Clases - constructores
       • C++ instancia un objeto cuando se ejecuta
         la línea de código que contiene la
         declaración del objeto.
       • La instaciación involucra la ejecución de
         una clase constructor




SSD5                     Mtl Lourdes Cahuich         28
Clases – el destructor
       • Un destructor es una función miembro que
         se llama cuando termina el ciclo de vida de
         un objeto, por lo general definen las
         acciones necesarias para liberar los recursos
         que un objeto pueda estar ocupando




SSD5                      Mtl Lourdes Cahuich            29
~BankAccount(){
  if (balance()<0){
           cout << “Advertencia: balance negativo!” << endl;

    }
}




    SSD5                      Mtl Lourdes Cahuich              30
Clases – el destructor
       • La diferencia entre la definición de un
         destructor y un constructor es muy sutil
         (~)
       • Esta función es el destructor de cada clase




SSD5                      Mtl Lourdes Cahuich          31
Clases - definición
       • Cuando se “define” una función se dicta
         su comportamiento a través del código que
         se encuentra entre {}




SSD5                     Mtl Lourdes Cahuich         32
Clases - declaración
       • La declaración de una función solo
         especifica la interfaz de una función, que
         incluye el nombre de la función, el tipo de
         regreso y la lista de parámetros y
         normalmente termina con ;




SSD5                      Mtl Lourdes Cahuich          33
Clases - declaración
       • Se debe poner la declaración de la función
         antes del main (esto se conoce como
         referencia directa –forward reference-)
       • También se puede declarar primero la
         función o clase y definirla posteriormente
         en el código



SSD5                      Mtl Lourdes Cahuich         34
Clases - declaración
       • Una clase en C++ puede incluir todas las
         definiciones de sus funciones miembro dentro
         de la declaración de la clase; de manera
         alternativa las funciones para una o más
         funciones de la clase miembro pueden aparecer
         fuera de la definición de la clase siempre y
         cuando se incluyan las declaraciones dentro de la
         definición de la clase


SSD5                        Mtl Lourdes Cahuich              35
Clases - declaración
       • Los programadores deben calificar
         completamente los nombres de las
         funciones que aparecen fuera de la
         definición de la clase; para esto el nombre
         de la función debe ser añadido al inicio del
         nombre de la clase seguido por el
         operador de resolución de visibilidad
         (::)
SSD5                      Mtl Lourdes Cahuich           36
Clases - declaración
       • Colocar la definición de las funciones fuera
         de la definición de la clase tiene sus
         beneficios
       • Primero: reduce el tamaño de la definición
         de la clase, lo que realza la legibilidad, y
         también permite compartir el código pre
         compilado

SSD5                      Mtl Lourdes Cahuich           37
Clases - declaración
       • Segundo: Las definiciones de función
         también pueden aparecer en otro archivo
         diferente al de la definición de la clase, de
         ésta manera se puede compilar de forma
         independiente el archivo de las
         declaraciones de función



SSD5                       Mtl Lourdes Cahuich           38
Clases - declaración
       • El archivo con la definición de funciones
         es conocido como un archivo de
         implantación.
       • El archivo de definición de clase (o
         cabecera o encabezado) se convierte en la
         interfaz que comparte el código pre
         compilado

SSD5                     Mtl Lourdes Cahuich         39
Clases - declaración
       • La directiva del preprocesador #include
         reemplaza la directiva con el contenido del
         archivo especificado
       • Las directivas #define, #ifndef y #endif
         son utilizadas para prevenir que un archivo
         de definición sea incluido en más de una
         ocasión

SSD5                      Mtl Lourdes Cahuich          40

Contenu connexe

Similaire à TiposDatosCpp

Similaire à TiposDatosCpp (20)

3 Tipos De Datos Cont
3 Tipos De Datos Cont3 Tipos De Datos Cont
3 Tipos De Datos Cont
 
5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion Cont5 Mecanismos Reuntilizacion Abstraccion Cont
5 Mecanismos Reuntilizacion Abstraccion Cont
 
7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos7 Stl Y Los Contenedores Basicos
7 Stl Y Los Contenedores Basicos
 
SQL Server rápido y furioso
SQL Server rápido y furiosoSQL Server rápido y furioso
SQL Server rápido y furioso
 
5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion5 Mecanismos Reuntilizacion Abstraccion
5 Mecanismos Reuntilizacion Abstraccion
 
Csharp
CsharpCsharp
Csharp
 
Programacion C#
Programacion C#Programacion C#
Programacion C#
 
tutorial de c++
tutorial de c++tutorial de c++
tutorial de c++
 
Tutorial C++
Tutorial C++Tutorial C++
Tutorial C++
 
C++
C++C++
C++
 
data_collection-es.pptx
data_collection-es.pptxdata_collection-es.pptx
data_collection-es.pptx
 
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptxcapitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
capitulo05identificadoresvariablesyconstantes-110508105055-phpapp01.pptx
 
C++ Meetup Madrid
C++ Meetup MadridC++ Meetup Madrid
C++ Meetup Madrid
 
Fund Java
Fund JavaFund Java
Fund Java
 
C++
C++C++
C++
 
C++
C++C++
C++
 
Manual Básico de Programación en C++
Manual Básico de Programación en C++Manual Básico de Programación en C++
Manual Básico de Programación en C++
 
C++
C++C++
C++
 
C++
C++C++
C++
 
Manual cpp. c++..
Manual cpp. c++..Manual cpp. c++..
Manual cpp. c++..
 

Plus de UVM

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programaciónUVM
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaUVM
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempoUVM
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosUVM
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglosUVM
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadoresUVM
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlUVM
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadoresUVM
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicosUVM
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datosUVM
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funcionesUVM
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funcionesUVM
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bitsUVM
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreUVM
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3UVM
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuarioUVM
 
Función main()
Función main()Función main()
Función main()UVM
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++UVM
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoUVM
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++UVM
 

Plus de UVM (20)

Tiempo compartido en programación
Tiempo compartido en programaciónTiempo compartido en programación
Tiempo compartido en programación
 
Portafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación AvanzadaPortafolio de evidencias del curso Programación Avanzada
Portafolio de evidencias del curso Programación Avanzada
 
Eficiencia en uso tiempo
Eficiencia en uso  tiempoEficiencia en uso  tiempo
Eficiencia en uso tiempo
 
Administración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicosAdministración de memoria arreglos dinamicos
Administración de memoria arreglos dinamicos
 
Practica de arreglos
Practica de arreglosPractica de arreglos
Practica de arreglos
 
Otra introducción a apuntadores
Otra introducción a apuntadoresOtra introducción a apuntadores
Otra introducción a apuntadores
 
Ejemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stlEjemplo de solución de práctica funciones stl
Ejemplo de solución de práctica funciones stl
 
Breve repaso de apuntadores
Breve repaso de apuntadoresBreve repaso de apuntadores
Breve repaso de apuntadores
 
Arreglos conceptos básicos
Arreglos conceptos básicosArreglos conceptos básicos
Arreglos conceptos básicos
 
Resolución práctica de tipos de datos
Resolución práctica de tipos de datosResolución práctica de tipos de datos
Resolución práctica de tipos de datos
 
Resumen de funciones
Resumen de funcionesResumen de funciones
Resumen de funciones
 
Biblioteca estándar de funciones
Biblioteca estándar de funcionesBiblioteca estándar de funciones
Biblioteca estándar de funciones
 
Manejo de bits
Manejo de bitsManejo de bits
Manejo de bits
 
Aclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembreAclaración de dudas 4 de septiembre
Aclaración de dudas 4 de septiembre
 
Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3Aclaraciones varias a códigos entregados en sesión 3
Aclaraciones varias a códigos entregados en sesión 3
 
Funciones definidas por el usuario
Funciones definidas por el usuarioFunciones definidas por el usuario
Funciones definidas por el usuario
 
Función main()
Función main()Función main()
Función main()
 
Depuración de un programa en c++
Depuración de un programa en c++Depuración de un programa en c++
Depuración de un programa en c++
 
Algunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agostoAlgunas dudas de la sesión 28 agosto
Algunas dudas de la sesión 28 agosto
 
Estructura programa c++
Estructura programa c++Estructura programa c++
Estructura programa c++
 

Dernier

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 

Dernier (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 

TiposDatosCpp

  • 1. Tipos de datos Repaso de temas de lectura SSD5 SSD5 Mtl Lourdes Cahuich 1
  • 2. Tipos de datos • C++ clasifica los objetos de datos en diferentes tipos; éstos no solamente describen las operaciones fundamentales su no también el rango de valores que los tipos de datos aceptan SSD5 Mtl Lourdes Cahuich 2
  • 3. Tipos de datos • Diferentes tipos de datos permiten guardar valores diferentes, el lenguaje puede verificar y asegurar que un programador asigne solamente valores apropiados al objeto de datos SSD5 Mtl Lourdes Cahuich 3
  • 4. Tipos de datos • Este mecanismo se conoce como revisión de tipos C++, por eso es considerado que es un lenguaje fuertemente tipeado, ya que es muy estricto al revisar los tipos de datos y sus valores correspondientes SSD5 Mtl Lourdes Cahuich 4
  • 5. Tipos de datos C++ Tipos Java bool boolean char char int int short long short long float float double double SSD5 Mtl Lourdes Cahuich 5
  • 6. Tipos de datos • El espacio requerido para almacenar variables difiere entre los lenguajes, en C++ los requerimientos de espacio de almacenamiento son dejados a discreción del compilador, en otros lenguajes el tamaño puede variar SSD5 Mtl Lourdes Cahuich 6
  • 7. Programa para conocer el tamaño de datos en C++ #include <cstdlib> #include <iostream> using namespace std; int main(int argc, char * argv[]){ cout << “ bool: “ << sizeof(bool) << endl; cout << “ char: “ << sizeof(char) << endl; cout << “ short: “ << sizeof(short) << endl; cout << “ int: “ << sizeof(int) << endl; cout << “ long: “ << sizeof(long) << endl; cout << “ float: “ << sizeof(float) << endl; cout << “ double: “ << sizeof(double) << endl; return EXIT_SUCCESS; } SSD5 Mtl Lourdes Cahuich 7
  • 8. Variables de sólo lectura • C++ contiene un mecanismo para crear variables de “solo-lectura”; se usa la palabra const para permitir crear variables de solo lectura y no puede ser modificada después de que ésta haya sido inicializada SSD5 Mtl Lourdes Cahuich 8
  • 9. Variables de sólo lectura const int BOILING_POINT = 100; const int FREEZING_POINT = 0; const float PI = 3.14159; • Los nombres de las constantes se escriben en mayúsculas por convención SSD5 Mtl Lourdes Cahuich 9
  • 10. Cadenas de caracteres • El tipo de dato cadena de caracteres (string) provee la abstracción para permitir que los programadores trabajen con cadenas de caracteres; a diferencia de Java, el tipo cadena de caracteres no está disponible en todos los programas. SSD5 Mtl Lourdes Cahuich 10
  • 11. Cadenas de caracteres • Si un programa de C++ requiere string deberá referirse a la biblioteca que define este tipo #include<string> ésta es necesaria para permitir que el programador acceda el tipo de dato cadena de caracteres SSD5 Mtl Lourdes Cahuich 11
  • 12. #include <iostream> #include <string> #include <cstdlib> using namespace std; int main(int argc, char * argv[]){ string s1 = “first”; //inicialización string s2; s1 += “string”; //concatenación s2 = s1; //asignación cout << s1 << endl; //salida a consola cout << s1.length() << endl; //longitud return EXIT_SUCCESS; SSD5 Mtl Lourdes Cahuich 12 }
  • 13. Arreglos • C++ provee soporte básico para una secuencia de datos homogéneos a través de los arreglos • En C++ se declaran los arreglos así: //declaración de arreglos enteros int cpp_array[10]; SSD5 Mtl Lourdes Cahuich 13
  • 14. Arreglos • El doble corchete puede ponerse solamente después de la variable • El acceso a los elementos almacenados en un arreglo se realiza encerrando entre corchetes el número índice del elemento que se desea acceder; el indexamiento comienza con cero SSD5 Mtl Lourdes Cahuich 14
  • 15. #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char* argv[]){ int arr[25]; for(int i=0; i<25;i++){ arr[i]=i; } cout <<“Primer elemento igual a: ”<<arr[0]<<endl; return EXIT_SUCCESS; } SSD5 Mtl Lourdes Cahuich 15
  • 16. Arreglos • Un peligro inherente es la falta de validación de los límites del arreglo, pues C++ no soporta la revisión de los límites y dependiendo del contenido de la memoria adyacente puede o no “tronar” el programa por acceder fuera de los límites, pero podemos asegurar que los datos que se obtienen de un acceso fuera de límites podrían ser no significativos; es una práctica peligrosa que se debe evitar SSD5 Mtl Lourdes Cahuich 16
  • 17. Vectores • El tipo de dato Vector es una alternativa más segura que un arreglo; pues tienen múltiples características, por ejemplo, regresar el tamaño del vector y también ofrece la revisión de límites y a diferencia de los arreglos, el vector puede aumentar automáticamente su tamaño cuando se requiere SSD5 Mtl Lourdes Cahuich 17
  • 18. Creando nuevos nombres de tipos de datos • En C++ se pueden crear tipos de datos adicionales para los tipos de datos existentes; para crear otro nombre se utiliza la palabra clave “typedef” con la siguiente sintaxis: typedef tipo_anterior nuevo_nombre; SSD5 Mtl Lourdes Cahuich 18
  • 19. Creando nuevos nombres de tipos de datos • Al hacer esto los programadores pueden encapsular su elección de tipos de datos, lo cual es una buena práctica de programación ya que, si es necesario, un programador puede cambiar los usos de un tipo de dato, en particular cambiando la definición del “typedef” SSD5 Mtl Lourdes Cahuich 19
  • 20. Clases – sintaxis básica • La clase es la unidad básica de abstracción en C++ y se usa para especificar y después instanciar objetos. • La forma de definir una clase es diferente entre Java y C++ aunque son pocas las diferencias importantes SSD5 Mtl Lourdes Cahuich 20
  • 21. Clases – sintaxis básica • Primero.- Usan diferentes modificadores de acceso. En Java se puede repetir el modificador de acceso para cada dato y cada función miembro; en cambio en C++ se usa un modificador de acceso para delimitar una sección de la definición de la clase SSD5 Mtl Lourdes Cahuich 21
  • 22. Clases – sintaxis básica • Segundo.- En C++ no existe una clase “pública” o “privada”; se puede usar cualquier clase incluida en la declaración de clases • Tercero.- Las declaraciones de clases de C++ deben terminar con punto y coma (;) SSD5 Mtl Lourdes Cahuich 22
  • 23. Clases - constructores • Los constructores son los métodos de una clase que definen qué acciones tomar al crear un objeto • Una clase en C++ puede tener múltiples constructores, lo que permite que existan variaciones de instancias pues pueden existir números y tipos de parámetros diferentes en cada constructor SSD5 Mtl Lourdes Cahuich 23
  • 24. 1. class BankAccount{ 2. private: 3. double sum; 4. string name; 5. public: 6. BankAccount (string nm):name(nm), sum(0) {} 7. BankAccount (string nm, double bal) : name(nm), sum(bal){} 8. double balance () {return sum;} 9. void deposit (double amount){ sun += amount;} 10. void withdraw (double amount){ sum =- amount;} 11. string getName(){ return name;} 12.}; SSD5 Mtl Lourdes Cahuich 24
  • 25. Clases - constructores • El uso de listas iniciales en constructores es la mejor forma de especificar los valores iniciales para los miembros de los datos de una clase. • Las listas iniciales son variables iniciadoras separadas por una coma, que aparecen antes del acuerdo de un constructor. SSD5 Mtl Lourdes Cahuich 25
  • 26. Clases - constructores • Todo lo qu ese encuentra entre la coma de la línea 7 y los {} componen la lista inicial; ésta establece el valor inicial del miembro dato privado name igual al parámetro nm. • También establece el valor inicial del miembro dato sum igual a cero. SSD5 Mtl Lourdes Cahuich 26
  • 27. Clases - constructores • En C++ se crean objetos con una sintaxis similar a la declaración regular de variables; se pueden declarar e instanciar objetos usando sintaxis idéntica a la declaración de los tipos fundamentales de datos SSD5 Mtl Lourdes Cahuich 27
  • 28. Clases - constructores • C++ instancia un objeto cuando se ejecuta la línea de código que contiene la declaración del objeto. • La instaciación involucra la ejecución de una clase constructor SSD5 Mtl Lourdes Cahuich 28
  • 29. Clases – el destructor • Un destructor es una función miembro que se llama cuando termina el ciclo de vida de un objeto, por lo general definen las acciones necesarias para liberar los recursos que un objeto pueda estar ocupando SSD5 Mtl Lourdes Cahuich 29
  • 30. ~BankAccount(){ if (balance()<0){ cout << “Advertencia: balance negativo!” << endl; } } SSD5 Mtl Lourdes Cahuich 30
  • 31. Clases – el destructor • La diferencia entre la definición de un destructor y un constructor es muy sutil (~) • Esta función es el destructor de cada clase SSD5 Mtl Lourdes Cahuich 31
  • 32. Clases - definición • Cuando se “define” una función se dicta su comportamiento a través del código que se encuentra entre {} SSD5 Mtl Lourdes Cahuich 32
  • 33. Clases - declaración • La declaración de una función solo especifica la interfaz de una función, que incluye el nombre de la función, el tipo de regreso y la lista de parámetros y normalmente termina con ; SSD5 Mtl Lourdes Cahuich 33
  • 34. Clases - declaración • Se debe poner la declaración de la función antes del main (esto se conoce como referencia directa –forward reference-) • También se puede declarar primero la función o clase y definirla posteriormente en el código SSD5 Mtl Lourdes Cahuich 34
  • 35. Clases - declaración • Una clase en C++ puede incluir todas las definiciones de sus funciones miembro dentro de la declaración de la clase; de manera alternativa las funciones para una o más funciones de la clase miembro pueden aparecer fuera de la definición de la clase siempre y cuando se incluyan las declaraciones dentro de la definición de la clase SSD5 Mtl Lourdes Cahuich 35
  • 36. Clases - declaración • Los programadores deben calificar completamente los nombres de las funciones que aparecen fuera de la definición de la clase; para esto el nombre de la función debe ser añadido al inicio del nombre de la clase seguido por el operador de resolución de visibilidad (::) SSD5 Mtl Lourdes Cahuich 36
  • 37. Clases - declaración • Colocar la definición de las funciones fuera de la definición de la clase tiene sus beneficios • Primero: reduce el tamaño de la definición de la clase, lo que realza la legibilidad, y también permite compartir el código pre compilado SSD5 Mtl Lourdes Cahuich 37
  • 38. Clases - declaración • Segundo: Las definiciones de función también pueden aparecer en otro archivo diferente al de la definición de la clase, de ésta manera se puede compilar de forma independiente el archivo de las declaraciones de función SSD5 Mtl Lourdes Cahuich 38
  • 39. Clases - declaración • El archivo con la definición de funciones es conocido como un archivo de implantación. • El archivo de definición de clase (o cabecera o encabezado) se convierte en la interfaz que comparte el código pre compilado SSD5 Mtl Lourdes Cahuich 39
  • 40. Clases - declaración • La directiva del preprocesador #include reemplaza la directiva con el contenido del archivo especificado • Las directivas #define, #ifndef y #endif son utilizadas para prevenir que un archivo de definición sea incluido en más de una ocasión SSD5 Mtl Lourdes Cahuich 40