Lenguaje C - PowerPoint PPT Presentation

1 / 37
About This Presentation
Title:

Lenguaje C

Description:

Lenguaje C++ GRANADOS PAREDES GIBR N Lenguajes de Programaci n Dra. Ana Lilia Laureano Cruces Lenguaje C++ Introducci n B. Stroustrup, mediados de los 80, AT&T ... – PowerPoint PPT presentation

Number of Views:71
Avg rating:3.0/5.0
Slides: 38
Provided by: RicardoT151
Category:

less

Transcript and Presenter's Notes

Title: Lenguaje C


1
Lenguaje C
  • GRANADOS PAREDES GIBRÁN

Lenguajes de Programación Dra. Ana Lilia Laureano
Cruces
2
Lenguaje CIntroducción
  • B. Stroustrup, mediados de los 80, ATT
  • Paso de la programación tradicional (C) a estilos
    de abstracción de datos y orientación a objetos
  • Conserva características del C y añade nuevos
    conceptos

3
Lenguaje C Extensiones respecto al C
  • No orientadas a objeto
  • Orientadas a objetos

4
Lenguaje C Extensiones respecto al C
  • No orientadas a objeto
  • Mejoras en entrada/salida - streams
  • Sobrecarga de funciones y operadores
  • Parámetros por defecto. Referencias

5
Lenguaje C
  • Organización de programas
  • Ficheros de declaraciones (.h)
  • Del sistema
  • Del usuario (ifndef .... define ..... endif)
  • Ficheros de código fuente (.cc, .cpp)

6
Lenguaje C
  • Scope (alcance)
  • Fichero declaraciones que no pertenecen a
    función o clase alguna
  • Función etiquetas
  • Local cualquier nombre declarado en un bloque
    pertenece al bloque.
  • Clase declaraciones asociadas a una clase
  • Cada variable tiene un scope o un contexto

7
Lenguaje C
  • Operadores y sentencias
  • Sentencias
  • Misma sintaxis y semántica que las de C
  • Operadores idem sentencias excepto
  • new, delete, delete,
  • ltlt, gtgt
  • Sobrecarga

8
Lenguaje CEstructura básica de un programa
  • includeltiostream.hgt
  • main()
  • //inicio
  • cout ltlt Hello world
  • //fin

9
Lenguaje CElementos del programa
  • COMENTARIOS
  • // Comentario de una sola línea
  • / Comentario multilínea /
  • BLOQUES DE CÓDIGO
  • Todos los bloques de código van entre corchetes
  • FIN DE LINEA
  • Todas las instrucciones terminan con un punto y
    coma

10
Lenguaje CTipo básico de datos
  • Tipo de dato bool tiene dos valores asociados
    true o false
  • DECLARACIÓN DE UNA VARIABLE
  • ltTipo de datogt Nombre_variable
  • INICIALIZACION DE UNA VARIABLE
  • ltTipo de datogt Nombre_variable valor
  • EJEMPLO
  • int variable1
  • bool variable2true

11
Lenguaje C Tipo básico de datos
  • Variables y aritmética.
  • Todo nombre y/o expresión tiene un tipo.
  • El tipo determina las operaciones que se pueden
    realizar con el.
  • Conversiones implícitas.
  • En asignaciones y operaciones algebraicas el
    lenguaje lleva a cabo todas las conversiones
    implícitas que faciliten el uso y sean seguras.

12
Lenguaje CArreglos
  • Un arreglo es un conjunto de tipos de datos
    básicos
  • DECLARACIÓN DE UN ARREGLO
  • ltTipo de dato básicogt Nombre_variableNúmero de
    elementos
  • INICIALIZACION DE UN ARREGLO
  • ltTipo de datogt Nombre_variable valor1, valor2,
    , valorN
  • EJEMPLO
  • char arreglo110
  • float arreglo21.5, 2.3, 6,7

13
Lenguaje C Arreglos Multidimencionales
  • DECLARACIÓN DE UN ARREGLO MULTIDIMENCIONAL
  • ltTipo de dato básicogt Nombre_variableNúmero de
    elementosNumero de elementos
  • INICIALIZACION DE UN ARREGLO MULTIDIMENCIONAL
  • ltTipo de datogt Nombre_variable valor1,
    valor2, , valorN, valor1, valor2, , valorN
  • EJEMPLO
  • char arreglo11010
  • int arreglo21,2,3,4,5,67,8,9

14
Lenguaje CApuntadores y vectores
  • Punteros y vectores.
  • char v10 //vector de 10 caracteres (0 a 9)
  • char p // puntero a un carácter
  • p v3 //p apunta al cuarto elemento de v
  • punteros - operaciones asociadas
  • int p //puntero a entero
  • int p //puntero a puntero a entero
  • int (vp) 10 //puntero a vector de 10 enteros
  • int (fp) ( char, char )// puntero a función

15
Lenguaje CTipos definidos por el usuario
  • ESTRUCTURAS (Registros)
  • struct date_s
  • int day, month, year
  • aDate
  • La definición de arriba de aDate es también la
    declaración de una estructura llamada date_s.
    Podemos definir otras variables de este tipo
    referenciando la estructura por el nombre
  • struct date_s anotherDate
  • Enumeraciones
  • Clases

16
Lenguaje CInstrucciones de control de flujo
  • EJEMPLO
  • for(int i0 ilt5 i)
  • cout ltlt Hello worldltlti

17
Lenguaje COperadores
  • Los operadores de incremento y -- pueden ser
    explicados por medio del siguiente ejemplo. Si
    tienes la siguiente secuencia de instrucciones
  • a a 1 b a
  • Se puede puedes usar
  • b a
  • b a

18
Lenguaje CSobrecarga de operadores
  • - / ! lt gt - /
  • ltlt gtgt gtgt ltlt ! lt gt
    --
  • -gt -gt , ( ) new new delete
    delete
  • No se sobrecargan
  • .
  • .

19
Lenguaje CSobrecarga de operadores
  • class complex
  • double re, im
  • public
  • complex(double r, double i) re(r), im(i)
  • complex operator(complex)
  • complex operator(complex)
  • bool operator(complex)
  • bool operatorlt(complex)
  • void f()
  • complex a(1, 3.1)
  • complex b(1.2, 2)
  • complex c b
  • if(ab)
  • a b c
  • b b c a
  • c a b complex(1,2)

20
Lenguaje CFunciones
  • Regulares (similares a una función C).
  • Miembros (asociadas a una clase).
  • Nombre, lista de argumentos, tipo de retorno y
    cuerpo.
  • int miFuncion(int a) //firma o declaración
  • int miFuncion(int a) //definición
  • coutltlta

21
Lenguaje CFunciones
  • extern int pow( float, int)
  • int main()
  • for (int i 0 i lt 10 i)
  • cout ltlt pow( 2, 5) ltlt endl

22
Lenguaje CFunciones
  • Paso de argumentos
  • Por valor - seguridad
  • copiado en el almacenamiento local de la función
  • la función accede a la copia
  • Por referencia - velocidad - retornos múltiples
  • se copia la dirección del objeto que se esta
    pasando
  • la función accede al objeto
  • Por referencia constante - seguridad velocidad
  • Vectores paso por referencia

23
Lenguaje CFunciones
  • Paso de argumentos
  • Por valor
  • char a a
  • miFuncion(a)
  • Por referencia
  • char a a
  • miFuncion(a)
  • Vectores paso por referencia
  • char a a,b
  • miFuncion(a)

24
Lenguaje CFunciones
  • Sobrecarga de nombres.
  • int max(int, int)
  • int max( int, int, int)
  • int max(int , int)
  • int max(float, int)
  • int max(int, float)

25
Lenguaje CSoporte para abstracción de datos
  • Definición de un conjunto de operaciones
    asociadas a un tipo.
  • Restricción del conjunto de operaciones que se
    pueden realizar sobre un tipo a las definidas
    para el mismo.
  • CLASE
  • nombre
  • datos miembros
  • funciones miembro
  • control de acceso

26
Lenguaje CSoporte para abstracción de datos
  • Inicialización y destrucción.
  • Inicialización y asignación.
  • Patrones.
  • Conversiones de tipo
  • complex a complex(1)
  • Múltiples implementaciones

27
Lenguaje CSoporte para orientacion a objetos
  • Funciones virtuales. Polimorfismo.
  • Clases abstractas.
  • Clases patrón.
  • Herencia simple y múltiple.
  • Encapsulado.

28
Lenguaje C
  • Los objetos se crean al llegar a su definición.
  • Los objetos se destruyen cuando salen del bloque.
  • Los objetos globales se crean una sola vez y se
    destruyen al terminar el programa.
  • Los objetos static son similares a los globales.

29
Lenguaje C
  • Almacenamiento de objetos
  • estático (asignada al iniciarse el programa)
  • automático (asociada al bloque)
  • en la memoria disponible (obtenida con new)

30
Lenguaje C Clases. Tipo abstracto de datos
definido por el usuarioInterface e implementación
  • class X
  • private
  • int i
  • public
  • f()
  • protected
  • g()

struct X private int i public f() protected
g()
31
Lenguaje Cclases
  • Constructores
  • Funciones con el mismo nombre de la clase pero
    que no retornan nada.
  • Constructor de copia
  • Constructor por defecto
  • Constructores como conversores de tipo
  • Destructores
  • virtuales

32
Lenguaje Cclases
  • CONSTRUCTORES
  • class Point
  • int _x, _y
  • public Point() _x _y 0
  • void setX(const int val)
  • void setY(const int val)
  • int getX() return _x
  • int getY() return _y

33
Lenguaje Cclases
  • DESTRUCTORES
  • class Point
  • int _x, _y
  • public
  • Point() _x _y 0
  • Point(const int x, const int y) _x x _y y
  • Point() / Nada qué hacer! /
  • void setX(const int val)
  • void setY(const int val)
  • int getX() return _x
  • int getY() return _y

34
Lenguaje Cclases
  • Friend
  • Nosotros podemos definir que funciones o clases
    sean amigos de una clase para permitirles acceso
    directo a sus miembros de datos privados. Por
    ejemplo, que la función para el operador
    tuviese acceso a los miembros de datos privados
    _real e _imag de la clase Complex. Con ese fin
    declaramos que el operador sea amigo de la
    clase Complex
  • class Complex
  • ... public ...
  • friend Complex operator ( const Complex , const
    Complex )
  • Complex operator (const Complex op1, const
    Complex op2)
  • double real op1._real op2._real, imag
    op1._imag op2._imag return(Complex(real,
    imag))

35
Lenguaje Cclases
  • Construcción de objetos
  • automáticos
  • variables locales se ejecuta su constructor cada
    vez que el programa pasa por la declaración
  • secuencia de construcción - destrucción
  • inicialización y asignación
  • en memoria disponible
  • new, delete
  • int ip new int(7)
  • delete ip
  • int iap new int10
  • delete iap

36
Lenguaje Cclases y herencia
  • class Point3D public Point
  • int _z
  • public
  • Point3D() setX(0) setY(0) _z 0
  • Point3D(const int x, const int y, const int z)
    setX(x) setY(y) _z z
  • Point3D() / Nada que hacer /
  • int getZ() return _z
  • void setZ(const int val) _z val

37
Lenguaje Cclases y herencia múltiple
  • class DrawableString public Point, public
    DrawableObject
  • ... public
  • DrawableString(...) ...
  • DrawableString() ... ...
Write a Comment
User Comments (0)
About PowerShow.com