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
         descr...
Tipos de datos
       • Diferentes tipos de datos permiten guardar
         valores diferentes, el lenguaje puede
        ...
Tipos de datos
       • Este mecanismo se conoce como revisión
         de tipos C++, por eso es considerado que
         ...
Tipos de datos C++             Tipos Java
  bool                      boolean
  char                      char
  int      ...
Tipos de datos
       • El espacio requerido para almacenar
         variables difiere entre los lenguajes, en
         C+...
Programa para conocer el tamaño
           de datos en C++
#include <cstdlib>
#include <iostream>
using namespace std;
int...
Variables de sólo lectura
       • C++ contiene un mecanismo para crear
         variables de “solo-lectura”; se usa la
  ...
Variables de sólo lectura
       const   int BOILING_POINT = 100;
       const   int FREEZING_POINT = 0;
       const   fl...
Cadenas de caracteres
       • El tipo de dato cadena de caracteres
         (string) provee la abstracción para permitir
...
Cadenas de caracteres
       • Si un programa de C++ requiere string
         deberá referirse a la biblioteca que define
...
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int main(int argc, char * argv[]){
       st...
Arreglos
       • C++ provee soporte básico para una
         secuencia de datos homogéneos a través de
         los arreg...
Arreglos
       • El doble corchete puede ponerse
         solamente después de la variable
       • El acceso a los eleme...
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char* argv[]){
   int arr[25];
   for(int i...
Arreglos
       • Un peligro inherente es la falta de validación de
         los límites del arreglo, pues C++ no soporta ...
Vectores
       • El tipo de dato Vector es una alternativa
         más segura que un arreglo; pues tienen
         múlti...
Creando nuevos nombres de tipos de
                     datos
       • En C++ se pueden crear tipos de datos
         adic...
Creando nuevos nombres de tipos de
                     datos
       • Al hacer esto los programadores pueden
         enc...
Clases – sintaxis básica
       • La clase es la unidad básica de abstracción
         en C++ y se usa para especificar y ...
Clases – sintaxis básica
       • Primero.- Usan diferentes modificadores
         de acceso. En Java se puede repetir el
...
Clases – sintaxis básica
       • Segundo.- En C++ no existe una clase
         “pública” o “privada”; se puede usar
     ...
Clases - constructores
       • Los constructores son los métodos de una
         clase que definen qué acciones tomar al
...
1. class BankAccount{
2. private:
3.   double sum;
4.   string name;
5. public:
6.   BankAccount (string nm):name(nm), sum...
Clases - constructores
       • El uso de listas iniciales en constructores es
         la mejor forma de especificar los ...
Clases - constructores
       • Todo lo qu ese encuentra entre la coma de
         la línea 7 y los {} componen la lista i...
Clases - constructores
       • En C++ se crean objetos con una sintaxis
         similar a la declaración regular de vari...
Clases - constructores
       • C++ instancia un objeto cuando se ejecuta
         la línea de código que contiene la
    ...
Clases – el destructor
       • Un destructor es una función miembro que
         se llama cuando termina el ciclo de vida...
~BankAccount(){
  if (balance()<0){
           cout << “Advertencia: balance negativo!” << endl;

    }
}




    SSD5    ...
Clases – el destructor
       • La diferencia entre la definición de un
         destructor y un constructor es muy sutil
...
Clases - definición
       • Cuando se “define” una función se dicta
         su comportamiento a través del código que
  ...
Clases - declaración
       • La declaración de una función solo
         especifica la interfaz de una función, que
     ...
Clases - declaración
       • Se debe poner la declaración de la función
         antes del main (esto se conoce como
    ...
Clases - declaración
       • Una clase en C++ puede incluir todas las
         definiciones de sus funciones miembro dent...
Clases - declaración
       • Los programadores deben calificar
         completamente los nombres de las
         funcion...
Clases - declaración
       • Colocar la definición de las funciones fuera
         de la definición de la clase tiene sus...
Clases - declaración
       • Segundo: Las definiciones de función
         también pueden aparecer en otro archivo
      ...
Clases - declaración
       • El archivo con la definición de funciones
         es conocido como un archivo de
         i...
Clases - declaración
       • La directiva del preprocesador #include
         reemplaza la directiva con el contenido del...
Upcoming SlideShare
Loading in …5
×

3 Tipos De Datos

5,025 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
5,025
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
50
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

3 Tipos De Datos

  1. 1. Tipos de datos Repaso de temas de lectura SSD5 SSD5 Mtl Lourdes Cahuich 1
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 30. ~BankAccount(){ if (balance()<0){ cout << “Advertencia: balance negativo!” << endl; } } SSD5 Mtl Lourdes Cahuich 30
  31. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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

×