• Save
Primera Clase
Upcoming SlideShare
Loading in...5
×
 

Primera Clase

on

  • 3,290 views

 

Statistics

Views

Total Views
3,290
Views on SlideShare
3,279
Embed Views
11

Actions

Likes
1
Downloads
0
Comments
0

3 Embeds 11

http://programacionorientadaobjetos.nireblog.com 8
http://www.slideshare.net 2
http://209.85.207.104 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Primera Clase Primera Clase Presentation Transcript

  • INTRODUCCION C++ Como C
  • El Proceso de Programar
    • Definir el problema
      • Hago o compro el software?
    • Diseño el programa
    • Codifico (escribo) el programa
    • Pruebo (Test & debug) el programa
    • Documento el programa
  • Definir el Problema
    • Qué se debe resolver?
    • Cuál es el objetivo?
    • Cuál es el entorno ?
    View slide
  • Definir el Problema
    • Se necesita:
    • Especificación completa
    • Salida Esperada
    • Entrada Disponible
    View slide
  • Definir el Problema
    • Que se necesita saber Restricciones?
    • Condiciones especiales?
    • Hacer un plan
  • Documentación
    • Implica mejora de la calidad
    • Ayuda a recordar
    • Otros entienden
    • Facilita el mantenimiento
  • Diseñar una Solución
    • Descomponer el problema en pequeñas partes
    • Descomponer las partes en pequeñas componentes
        • Facilita el testeo y debugging
    • Existen otras soluciones? pro y contra de cada solución
    • Resolver cada parte
    • Integrar las soluciones de los partes para resolver el problema original
  • Programación Estructurada
    • No existen pasos de gigante
    • Muchas tareas pequeñas
    • Desarrolladores concentrados en los detalles
    • Normalmente se desarrolla en equipo
  • Programación Estructurada
    • Reduce el tiempo (y $)
    • Diferentes módulos
    • Aislamiento de los Errores
    • Diseño escrito en código
  • Algoritmos en Pseudocódigo comienzo juego muestro instrucciones elijo un número entre 1 y 100 repito el turno hasta que el número se adivine o 7 vueltas se completen entro dato del usuario respondo fin repito fin juego muestro mensajes finales Pasos Lógicos Escrito en lengua nativa Indentación para las estructuras lógicas
  • Diagramas de flujo
    • Los pasos lógicos se representan
    • por símbolos normalizados
    display instruccion get numero es el numero? True False continue
  • Pruebo el Diseño
    • Resuelve el problema?
    • no - elegir otro diseño - volver a analizar el problema sí - seguir adelante
  • Implementar el Diseño
    • Elegir un lenguaje
    • Escribir el código
    SIN plan, SIN AYUDA SIN plan, SIN ayuda Sin plan, SIN AYUDA SIN plan, SIN ayuda
  • Ejemplo de Diseño Búsqueda Líneal
    • Problema: encontrar el número más grande de una lista
    Algoritmo: llamar al 1° mayor llamar al 2° actual (cont.)
  • Ejemplo de Diseño Búsqueda Líneal
    • 1 while no se termine
    • 2 comparar el mayor con el actual
    • 3 if actual > mayor
    • 4 asignar actual como mayor
    • 5 asignar al próximo número de la lista como actual
    • 6 end while
    • 7 output el mayor
  • Lenguajes de Programación
    • Más de 200 lenguajes
    • El Lenguaje depende de la aplicación
    • COBOL Logo
      • C++ ADA
      • Pascal FORTRAN
      • BASIC
  • Lenguajes de Programación
    • Níveles de los Lenguajes: Bajo máquina assembler
  • Lenguajes de Programación
    • Niveles de Lenguajes: Alto COBOL Pascal FORTRAN Logo
  • Lenguajes de Programación
    • Niveles de los Lenguajes: Nivel Medio C C++
  • Lenguajes de Programación
    • Lenguajes Procedurales
    • Lenguajes Orientados al Objeto Object-Oriented languages (OOP)
  • Los Computadores no pueden Entender
    • C ++
    • COBOL
    • FORTRAN
    • Pascal
    • BASIC
    • ADA
    • LISP
  • La base de C++: el lenguaje C
    • Lenguaje e structurado, pero no estrictamente estructurado en b loques (no se pueden definir funciones dentro de funciones).
    • Compartimentalización de código (funciones) y datos (variables locales).
    • Incluye las construcciones típicas de los lenguajes estructurados (distintos tipos de condicionales y lazos ).
    • Componente estructural básico: la función
    • Otra forma de estructuración: el bloque de código
      • If (x<10) {
    • cout << “ muy pequeño, pruebe de nuevo&quot;;
    • reini_contador(-1);
    • }
    • Se distingue entre minúscula y mayúscula
    • Palabras claves en minúsculas
    Un bloque de código (delimitado por llaves)
  • Lenguajes de Programación
    • Traducción al Lenguaje de Máquina
    • Intérprete
    • Compilador enlazador (linker)
  • Generación de un ejecutable Código fuente compilador h-archivos Código objecto Enlace a bibliotecas Archivo .exe
  • Generación de un ejecutable
  • El preprocesador
    • El preprocesador transforma el programa fuente de esta forma:
      • Elimina los comentarios
      • Incluye en el fuente el contenido de los archivos declarados con #include <archivo.h> (cabeceras)
      • Sustituye en el fuente las macros declaradas con #define ( #define PI 3.1416 )
  • El compilador
    • El compilador convierte el archivo fuente en un archivo en lenguaje de máquina: archivo objeto
    • Algunos compiladores pasan por una etapa intermedia en lenguaje ensamblador
  • El enlazador
    • El enlazador genera el ejecutable binario , a partir del contenido de los archivos objetos y de las bibliotecas
    • Las bibliotecas contienen el código de las funciones precompiladas, a las que el archivo fuente llama
  • Bibliotecas Estándares
    • La especificación del lenguaje C no incluye el manejo de strings o cadenas de letras, entrada/salida, etc
    • Por ello, recurre bastante a funciones de biblioteca (definidas en el estándar )
      • Entrada/salida: printf, scanf, fopen, fclose, …
      • Strings: strcpy, strcat, strlen, …
      • Memoria: malloc, free, memcpy, …
  • Bibliotecas de funciones
    • Los compiladores de C/C++ proporcionan bibliotecas de funciones.
    • Cada biblioteca de funciones tiene asociada un archivo de definición que se denomina archivo de cabecera(o simplemente cabecera).
    • Los archivos de cabecera en C tienen la extensión .h y contienen las declaraciones de los elementos de programa (datos y funciones) que la biblioteca exporta ( pone a disposición).
  • Bibliotecas de funciones
    • Para utilizar algo de una biblioteca en un módulo de programa hay que colocar al principio una directiva de preprocesamiento #include seguida del nombre del correspondiente archivo de cabecera entre comillas dobles o ángulos:
      • #include < cabecera >
    • Programación modular (compilación separada de módulos)
  • Bibliotecas de funciones
    • Por ejemplo, para mostrar datos en la pantalla se usa el operador << con el elemento cout , que representa la salida estándar (la pantalla normalmente):
        • cout << dato ;
    • Pero para poder usar cout y su operador << (insertor) se debe incluir la biblioteca donde está definido; se trata de la biblioteca cuyas declaraciones se encuentran en el archivo de cabecera iostream.h :
      • #include <iostream.h>
    • Una vez que se incluye el archivo de cabecera se conocen las declaraciones de la biblioteca y, por tanto, se puede usar lo que está definido en ella.
  • Bibliotecas de funciones y espacios de nombres
    • Las bibliotecas más modernas de C++ tienen archivos de cabecera que no llevan la extensión .h ; por ej . , la biblioteca iostream se rescribió para mejorarla y para distinguirla de la antigua su archivo de cabecera no lleva la extensión .h :
      • #include <iostream>
    • En estas bibliotecas están definidos espacios de nombres , que son algo así como secciones con nombre dentro de las que se incluyen las declaraciones; los e spacios de nombres permiten usar varias veces un mismo identificador, cada una en un espacio de nombres distinto; por lo que se necesita, en esos casos , indicar el espacio de nombres que se usa:
      • #include <iostream>
      • using namespace std;
    • std es el espacio de nombres estándar.
  • Estructura del programa
    • La estructura normal de un programa en C:
      • Inclusión de los archivos de cabecera
      • Declaraciones de prototipos de funciones, de tipos y variables
      • Definición de funciones
    • Todo ejecutable tiene que tener una función main()
  • Ejemplo de programa
    • # i nclude <iostream>
    • #include <string>
    • using namespace std;
    • void main()
    • {
    • cout << &quot;hola estoy aqui &quot; << endl;
    • }
    Directiva Preprocesador Biblioteca de E/S por cónsola Este programa usa la definición de cout como salida estándard y el operador << que se le aplica La biblioteca puede tener definida espacios de nombres Si no se usa (using namespace) un espacio de nombres (std en este caso), los elementos importados deben ser calificados (std::cout por ejemplo)
  • Ejemplo de programa
    • # i nclude <iostream>
    • using namespace std;
    • void main()
    • {
    • cout << &quot;hola estoy aqui &quot; << endl;
    • }
    Cabecera de la función tipo de dato que devuelve nombre lista de parámetros entre paréntesis Cabecera de la función Función Cuerpo de la función un bloque { ................} La ejecución siempre comienza con la función main( )
  • Ejemplo de programa
    • # i nclude <iostream>
    • using namespace std;
    • int main()
    • {
    • cout << &quot;hola estoy aqui &quot;;
    • return 0;
    • }
    Devuelve el valor resultado Constante de cadena de caracteres Secuencia de escape (constante de caracter de barra invertida cout flujo de salida estandard (pantalla) << operador de inserción (insertor) para flujo de salida Envía el flujo el operando derecho El punto y coma (;) es un terminador de instrucciones (declaraciones o ejecutables)
  • “ Descubrí que siempre tengo alternativas, y la mayor parte de las veces es sólo un cambio de actitud.” Judith M. Knowlton