Algunas ideas b - PowerPoint PPT Presentation

About This Presentation
Title:

Algunas ideas b

Description:

Algunas ideas b sicas de C++ Agust n J. Gonz lez ELO-320 – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 20
Provided by: utf55
Category:
Tags: algunas | ideas

less

Transcript and Presenter's Notes

Title: Algunas ideas b


1
Algunas ideas básicas de C
  • Agustín J. González
  • ELO-320

2
Introducción
  • Si ustedes han aprendido otro lenguaje, podrán
    ubicarse rápidamente
  • Es un lenguaje Orientado a Objetos.
  • Un objeto es una entidad que contiene nombre,
    estado y comportamiento.
  • Los programas se ven como interacción entre
    objetos, no como conjunto de datos y funciones
    separados.

3
Cambio de visión
  • Aún cuando C es un superconjunto de C (i.e. lo
    válido en C también lo es en C), lo más
    relevante es el manejo de objetos en C.

Computación en C Datosprocedimientos
programa Típico funcion(parametros) Los
datos son pasados a las acciones.
Computación en C ? objetos programa Objeto
NombreEstadocomportamiento Típico
objeto.metodo(parametros) Se le pide a un objeto
que haga una tarea.
4
Cambio de visión
  • Variables son a tipos en C como objetos son a
    clases en C.
  • Los objetos son instancias de alguna clase.
  • Un programa típico define clases, y luego en el
    main crea objetos de esas clases y los pone a
    trabajar.
  • El main sigue la estructura de procedimientos/func
    ión de C.
  • Hay clases predefinidas en C.

5
Cosas nuevas que se pueden hacer en C
  • Podemos crear clases. Si hay clases relacionadas
    , podemos crear una en base a otra (herencia o
    relación es-un).
  • Polimorfismo El prototipo de una función queda
    definido en forma unívoca con su nombre más la
    lista de parámetros, luego se permiteswap(int
    a, int b) y swap(float a, float b) en el
    mismo programa.
  • Se puede hacer ligado dinámico. Básicamente es
    definir la función a llamar en tiempo de
    ejecución. Se invoca un comportamiento, pero
    sobre el objeto de turnogt distinto código.

6
Cosas nuevas que se pueden hacer en C
  • En C se puede definir el significado de los
    operadores cuando éstos actúan sobre nuestros
    objetos. Por ejemplo si Estudiante es una clase,
    podemos hacerEstudiante a(Eduardo),
    b(Ivan)if (a gt b) ....
  • Se pueden crear templates (plantillas). Éstas
    permiten definir modelos de funciones o clases
    similares.Ej swap(int a, intb) y
    swap(floata, floatb)Para qué hacer dos
    funciones?

7
Cosas nuevas que se pueden hacer en C
  • Paso de parámetro por referenciaswap (int a ,
    int b) ....
  • Luego invoco int x, y swap(x,y)

8
Comentarios
  • // Para comentarios de una línea
  • / ......... / Para comentarios de
    múltiples líneas
  • No se permiten los comentarios alineados. Éstos
    son extraídos por el preprocesador, el cual no
    tiene capacidad de reconocer estas estructuras
    gramaticales.
  • if 0código comentadoendif
  • Hay mucho más que aprender sobre el
    preprocesador, ver http//profesores.elo.utfsm.cl
    /agv/elo329/miscellaneous/preprocessor.pdf

9
Tipos de Variable
  • int
  • short in ( o short)
  • long int (o long)
  • unsigned int (o unsigned)
  • unsigned long int (o unsigned long)
  • unsigned short int (unsigned short)
  • char
  • float
  • double
  • long double
  • bool

10
Salida de Datos
  • include ltiostreamgtint main (void) cout ltlt
    Hello, world ltlt endl return 0
  • iostream debe ser incluido para hacer uso de las
    operaciones de entrada y salida.
  • Es posible enviar datos a la salida estándar y a
    archivos
  • include ltfstreamgtofstream os (output.dat)os
    ltlt The value of pi is approx. ltlt 3.14.159 ltlt
    endl....

11
Entrada de Datos
  • include ltiostreamgt
  • include ltfstreamgt
  • using namespace std // en ocasiones no exigido,
    para acceder a cout
  • int main()
  • int i
  • ifstream fin
  • fin.open("test") // test contains 3 ints
  • for (int j0jlt3j)
  • fin gtgt i
  • cout ltlt i ltlt endl
  • fin.close()

12
Lectura desde archivo
  • include ltstringgt
  • include ltfstreamgt
  • include ltiostreamgt
  • using namespace std
  • int main()
  • string s
  • ifstream fin
  • fin.open("/etc/passwd")
  • while(getline(fin,s))
  • cout ltlt s ltlt endl

13
Operadores aritméticos
Asociatividad ---gt ---gt ---gt ---gt ---gt ---gt ---gt
---gt ---gt ---gt lt--- lt--- ----gt
  • Precedencia en orden decreciente
  • () -gt . ---gt ! --
    (unario) - (unario) (referencia)
    (dirección) (tipo) sizeof
  • / ---gt -
  • ltlt gtgt
  • lt lt gt gt
  • !
  • ?
  • - /
    gtgt ltlt
  • ,
  • En principio podríamos usar and en lugar de y
    or en lugar de sin embargo, éstos no están
    soportados por todos los compiladores.

14
Asignaciones, Arreglos y Vectores
  • Todas asignación tiene un valor, aquel asignado.
  • ANSI C usa el mismo constructor de arreglo que
    C
  • Como los arreglo de C no son particularmente
    poderosos, C incorpora los vectores.
  • Los vectores son una forma de plantilla
    (template). Las plantillas es todo un tema en
    C, pero su uso es muy simplevector ltXgt
    a(n)crea un arreglo astuto de tipo X con
    espacio para n elementos.
  • El acceso es ai
  • Puede crecer a voluntad.

15
Vectores
  • Pueden crecer según nuestra necesidadvector
    ltdoublegt a
  • Inicialmente a está vacío. Para hacerlo
    crecera.push_back(0.3)a.push_back(56.2)
  • También podemos hacer que el vector crezca en
    varios elementosa.resize(10)
  • podemos preguntar por el tamaño de un vector con
    a.size() como enfor (int i0 i lt a.size()
    i) // .....

16
Strings
  • En ANSI C tenemos acceso a una poderosa clase
    para string.
  • Ésta tiene definido el operador copia , el
    operador concatenación y operadores
    relacionales , !, lt, lt, gt, gt, entre otros.
  • El operador provee acceso a elementos
    individuales.
  • Existen muchos métodos en esta clase como substr
    para extraer un substringString s Hola a
    todosint n s.length() // n es 12char ch
    s0String t s.substr(0,4) // Substring de
    s0 a s4

17
Control de Flujo
  • Se dispone de de las opciones comunes en C.
  • if (condición) block1 // Un bloque se delimita
    con else block2
  • La parte else es opcional.
  • While (condición) block
  • do block while (condición)
  • for(expresión expresión2 expresión3)
    instrucción_a_repetir
  • switch análoga a C.

18
Paso por referencia
  • En C tenemos un nuevo tipo de paso de
    argumentos, el paso por referencia.
  • Equivale a la opción C en que usamos punteros
    para obtener el mismo efecto.
  • Ejemplo En C podemos hacervoid swap (int x,
    int y) int tmp x xy ytmp
  • El llamado se hace swap(a,b)
  • Equivalentemente en Cvoid cswap(int px, int
    py) int tmp x x y ytmp
  • El llamado se hace cswap(a, b)

19
Archivos includes
  • Muchas estructuras de datos requieren que uno
    defina un archivo de inclusión antes que podamos
    usarlas.
  • Propósito Nombre
  • stream input/output iostream
  • funciones matemáticas math.h
  • números complejos complex
  • valores booleanos bool.h
  • algoritmos genéricos algorithm
  • Abstracción vector vector
  • Abstracción lista list
  • Abstracción conjunto set
  • Abstracción mapa map
Write a Comment
User Comments (0)
About PowerShow.com