SlideShare una empresa de Scribd logo
1 de 30
características
 Características
 Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de
  término.
 Las siguientes son acciones previas a la realización del diagrama de flujo:
 Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben
  estar presentes el dueño o responsable del proceso, los dueños o responsables
  del proceso anterior y posterior y de otros procesos interrelacionados, otras
  partes interesadas.
 Definir qué se espera obtener del diagrama de flujo.
 Identificar quién lo empleará y cómo.
 Establecer el nivel de detalle requerido.
 Determinar los límites del proceso a describir.
 Los pasos a seguir para construir el diagrama de flujo son:
 Establecer el alcance del proceso a describir. De esta manera quedará fijado el
  comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del
  proceso previo y el final la entrada al proceso siguiente.
 Identificar y listar las principales actividades/subprocesos que están incluidos
  en el proceso a describir y su orden cronológico.
Ventajas de los diagramas
       de flujo
 Favorecen la comprensión del proceso al mostrarlo como un
    dibujo. El cerebro humano reconoce muy fácilmente los
    dibujos. Un buen diagrama de flujo reemplaza varias páginas
    de texto.
   Permiten identificar los problemas y las oportunidades de
    mejora del proceso. Se identifican los pasos, los flujos de los
    re-procesos, los conflictos de autoridad, las
    responsabilidades, los cuellos de botella, y los puntos de
    decisión.
   Muestran las interfaces cliente-proveedor y las transacciones
    que en ellas se realizan, facilitando a los empleados el
    análisis de las mismas.
   Son una excelente herramienta para capacitar a los nuevos
    empleados y también a los que desarrollan la tarea, cuando
    se realizan mejoras en el proceso.
   Al igual que el pseudocódigo, el diagrama de flujo con fines de
    análisis de algoritmos de programación puede ser ejecutado
Diagrama de flujo
Tipos de diagramas de flujo
 Formato vertical: En él, el flujo o la secuencia de las
  operaciones, va de arriba hacia abajo. Es una lista ordenada
  de las operaciones de un proceso con toda la información que
  se considere necesaria, según su propósito.
 Formato horizontal: En él, el flujo o la secuencia de las
  operaciones, va de izquierda a derecha.
 Formato panorámico: El proceso entero está representado en
  una sola carta y puede apreciarse de una sola mirada mucho
  más rápido que leyendo el texto, lo que facilita su
  comprensión, aún para personas no familiarizadas. Registra
  no solo en línea vertical, sino también horizontal, distintas
  acciones simultáneas y la participación de más de un puesto o
  departamento que el formato vertical no registra.
 Formato Arquitectónico: Describe el itinerario de ruta de una
  forma o persona sobre el plano arquitectónico del área de
  trabajo. El primero de los flujogramas es eminentemente
Simbología y significado
 Óvalo o Elipse: Inicio y término (Abre y/o cierra el
    diagrama).
   Rectángulo: Actividad (Representa la ejecución de una o
    más actividades o procedimientos).
   Rombo: Decisión (Formula una pregunta o cuestión).
   Círculo: Conector (Representa el enlace de actividades
    con otra dentro de un procedimiento).
   Triángulo boca abajo: Archivo definitivo (Guarda un
    documento en forma permanente).
   Triángulo boca arriba: Archivo temporal (Proporciona un
    tiempo para el almacenamiento del documento).
Simbología y normas del
                  curso grama
 Círculo: Procedimiento estandarizado.
 Cuadrado: Proceso de control.
 Línea ininterrumpida: Flujo de información vía formulario o documentación
    en soporte de papel escrito.
   Línea interrumpida: Flujo de información vía formulario digital.
   Rectángulo: Formulario o documentación. Se grafica con un doble de
    ancho que su altura.
   Rectángulo Pequeño: Valor o medio de pago
    (cheque, pagaré, etcétera).Se grafica con un cuádruple de ancho que su
    altura, siendo su ancho igual al de los formularios.
   Triángulo (base inferior): Archivo definitivo.
   Triángulo Invertido (base superior): Archivo Transitorio.
   Semi-óvalo: Demora.
   Rombo: División entre opciones.
   Trapezoide: Carga de datos al sistema.
   Elipsoide: Acceso por pantalla.
   Hexágono: Proceso no representado.
   Pentágono: Conector.

                   Historia
  La paternidad del diagrama de flujo es en principio algo difusa. El método estructurado para
  documentar graficamente un proceso como un flujo de pasos sucesivo y alternativos, el
  "proceso de diagrama de flujo", fue expuesto por Frank Gilbreth, en la Sociedad Americana
  de Ingenieros Mecánicos (ASME), en 1921, bajo el enunciado de "Proceso de Gráficas-
  Primeros pasos para encontrar el mejor modo". Estas herramientas de Gilbreth rápidamente
  encontraron sitio en los programas de ingeniería industrial. Al principio de los 30, un ingeniero
  industrial, Allan H. Mogensen comenzó la formación de personas de negocios en Lake
  Placid, Nueva York, incluyendo el uso del diagrama de flujo. Art Spinanger, asistente a las
  clases de Mogesen, utilizó las herramientas en su trabajo en Procter & Gamble, donde
  desarrolló su “Programa Metódico de Cambios por Etapas”. Otro asistente al grupo de
  graduados en 1944, Ben S. Graham, Director de Ingeniería de Formcraft Standard Register
  Corporation, adaptó la Gráfica de flujo de procesos al tratamiento de la información en su
  empresa. Y desarrolló la Gráfica del proceso de múltiples flujos en múltiples
  pantallas, documentos, y sus relaciones. En 1947, ASME adoptó un conjunto de símbolos
  derivados de la obra original de Gilbreth como Norma ASME para los gráficos de procesos
  (preparada Mishad, Ramsan y Raiaan).
 Sin embargo, según explica Douglas Hartree fueron originalmente Herman Goldstine y John
  von Neumann quienes desarrollaron el diagrama de flujo (inicialmente llamado "diagrama")
  para planificar los programas de ordenador. Las tablas de programación original de flujo de
  Goldstine y von Neumann, aparecen en un informe no publicado, "Planificación y codificación
  de los problemas de un instrumento de computación electrónica, la Parte II, Volumen 1
  "(1947), reproducido en las obras completas de von Neumann. Inicialmente los diagramas de
  flujo resultaron un medio popular para describir algoritmos de computadora, y aún se utilizan
  con este fin. Herramientas como los diagramas de actividad UML, pueden ser considerados
  como evoluciones del diagrama de flujo.
Programación
 La programación es el proceso de diseñar,
 codificar, depurar y mantener el código
 fuente de programas computacionales. El código fuente es
 escrito en un lenguaje de programación. El propósito de la
 programación es crear programas que exhiban un
 comportamiento deseado. El proceso de escribir código
 requiere frecuentemente conocimientos en varias áreas
 distintas, además del dominio del lenguaje a utilizar,
 algoritmos especializados y lógica formal. Programar no
 involucra necesariamente otras tareas tales como el
 análisis y diseño de la aplicación (pero sí el diseño del
 código), aunque sí suelen estar fusionadas en el desarrollo
 de pequeñas aplicaciones.
Historia
 Para crear un programa, y que la computadora interprete y ejecute las
  instrucciones escritas en él, debe usarse un Lenguaje de programación.
 En sus inicios las computadoras interpretaban sólo instrucciones en un
  lenguaje específico, del más bajo nivel, conocido como código máquina,
  siendo éste excesivamente complicado para programar. De hecho sólo
  consiste en cadenas de números 1 y 0 (Sistema binario).
 Para facilitar el trabajo de programación, los primeros científicos que
  trabajaban en el área decidieron reemplazar las instrucciones, secuencias
  de unos y ceros, por palabras o letras provenientes del inglés;
  codificándolas así y creando un lenguaje de mayor nivel, que se conoce
  como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa
  la letra A de la palabra inglesa add (sumar). En realidad escribir en
  lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje
  máquina, pero las letras y palabras son bastante más fáciles de recordar y
  entender que secuencias de números binarios.
 A medida que la complejidad de las tareas que realizaban las
  computadoras aumentaba, se hizo necesario disponer de un método
  sencillo para programar. Entonces, se crearon los lenguajes de alto nivel.
  Mientras que una tarea tan trivial como multiplicar dos números puede
  necesitar un conjunto de instrucciones en lenguaje ensamblador, en un
  lenguaje de alto nivel bastará con solo una.
Programas y algoritmos
 Un algoritmo es una secuencia no ambigua, finita y ordenada de
    instrucciones que han de seguirse para resolver un problema. Un
    programa normalmente implementa (traduce a un lenguaje de
    programación concreto) uno o más algoritmos. Un algoritmo puede
    expresarse de distintas maneras: en forma gráfica, como un diagrama de
    flujo, en forma de código como en pseudocódigo o un lenguaje de
    programación, en forma explicativa, etc.
   Los programas suelen subdividirse en partes menores, llamadas módulos,
    de modo que la complejidad algorítmica de cada una de las partes sea
    menor que la del programa completo, lo cual ayuda al desarrollo del
    programa. Esta es una práctica muy utilizada y se conoce como "refino
    progresivo".
   Según Niklaus Wirth, un programa está formado por los algoritmos y
    la estructura de datos.
   Se han propuesto diversas técnicas de programación cuyo objetivo es
    mejorar tanto el proceso de creación de software como su mantenimiento.
    Entre ellas, se pueden mencionar las siguientes:
   Programación estructurada
   Programación modular
   Programación orientada a objetos (POO)
Compilación
 El programa escrito en un lenguaje de programación (fácilmente
  comprensible por el programador) es llamado programa fuente y no
  se puede ejecutar directamente en una computadora. La opción más
  común es compilar el programa obteniendo un módulo
  objeto, aunque también puede ejecutarse en forma más directa a
  través de un intérprete informático.
 El código fuente del programa se debe someter a un proceso de
  traducción para convertirlo en lenguaje máquina, código éste
  directamente ejecutable por el procesador. A este proceso se le
  llama compilación.
 Normalmente la creación de un programa ejecutable (un típico.exe
  para Microsoft Windows o DOS) conlleva dos pasos. El primer paso
  se llama compilación (propiamente dicho) y traduce el código fuente
  escrito en un lenguaje de programación almacenado en un archivo a
  código en bajo nivel (normalmente en código objeto, no directamente
  a lenguaje máquina). El segundo paso se llama enlazado en el cual
  se enlaza el código de bajo nivel generado de todos los ficheros y
  subprogramas que se han mandado compilar y se añade el código
  de las funciones que hay en las bibliotecas del compilador para que
Programación e ingeniería del
        software
 Existe una tendencia a identificar el proceso de creación de un
    programa informático con la programación, que es cierta cuando se
    trata de programas pequeños para uso personal, y que dista de la
    realidad cuando se trata de grandes proyectos.
   El proceso de creación de software, desde el punto de vista de
    la ingeniería, incluye los siguientes pasos:
   Reconocer la necesidad de un programa para solucionar un
    problema o identificar la posibilidad de automatización de una tarea.
   Recoger los requisitos del programa. Debe quedar claro qué es lo
    que debe hacer el programa y para qué se necesita.
   Realizar el análisis de los requisitos del programa. Debe quedar
    claro cómo debe realizar el programa las cosas que debe hacer. Las
    pruebas que comprueben la validez del programa se pueden
    especificar en esta fase.
   Diseñar la arquitectura del programa. Se debe descomponer el
    programa en partes de complejidad abordable.
   Implementar el programa. Consiste en realizar un diseño detallado,
    especificando completamente todo el funcionamiento del programa,
Referencias históricas
 La primera programadora de computadora
  conocida fue Ada Lovelace, hija de Anabella
  Milbanke Byron y Lord Byron. Anabella introdujo
  en las matemáticas a Ada quien, después de
  conocer aCharles Babbage, tradujo y amplió una
  descripción de su máquina analítica. Incluso
  aunque Babbage nunca completó la construcción
  de cualquiera de sus máquinas, el trabajo que
  Ada realizó con éstas le hizo ganarse el título de
  primera programadora de computadoras del
  mundo. El nombre del lenguaje de programación
  Ada fue escogido como homenaje a esta
  programadora.
 No olvidemos que este proceso está aplicado a
  todos los métodos científicos que actualmente se
Objetivos de la programación
 La programación debe perseguir la obtención de programas de calidad. Para ello se
  establece una serie de factores que determinan la calidad de un programa. Algunos
  de los factores de calidad más importantes son los siguientes:
 Corrección. Un programa es correcto si hace lo que debe hacer tal y como se
  estableció en las fases previas a su desarrollo. Para determinar si un programa
  hace lo que debe, es muy importante especificar claramente qué debe hacer el
  programa antes de desarrollarlo y, una vez acabado, compararlo con lo que
  realmente hace.
 Claridad. Es muy importante que el programa sea lo más claro y legible
  posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un
  programa se debe intentar que su estructura sea sencilla y coherente, así como
  cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo
  del programador, tanto en la fase de creación como en las fases posteriores de
  corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser
  realizadas incluso por otro programador, con lo cual la claridad es aún más
  necesaria para que otros programadores puedan continuar el trabajo fácilmente.
  Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones
  de código. Otros, por diversión o para impedir un análisis cómodo a otros
  programadores, recurren al uso de código ofuscado.
 Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue
  creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
  los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
  suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
  creado y a la cantidad de memoria que necesita, pero hay otros recursos que
definición
 Un lenguaje de programación es un idioma artificial diseñado para
    expresar procesos que pueden ser llevadas a cabo por máquinas como
    lascomputadoras. Pueden usarse para crear programas que controlen el
    comportamiento físico y lógico de una máquina, para
    expresar algoritmoscon precisión, o como modo de comunicación
    humana.1 Está formado por un conjunto de símbolos y
    reglas sintácticas y semánticas que definen su estructura y el significado
    de sus elementos y expresiones. Al proceso por el cual se escribe, se
    prueba, se depura, se compila y se mantiene el código fuente de
    un programa informático se le llama programación.
   También la palabra programación se define como el proceso de creación
    de un programa de computadora, mediante la aplicación de
    procedimientos lógicos, a través de los siguientes pasos:
   El desarrollo lógico del programa para resolver un problema en particular.
   Escritura de la lógica del programa empleando un lenguaje de
    programación específico (codificación del programa).
   Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
    máquina.
   Prueba y depuración del programa.
   Desarrollo de la documentación.
historia
 Para que la computadora entienda nuestras instrucciones
  debe usarse un lenguaje específico conocido como código
  máquina, el cual la máquina comprende fácilmente, pero
  que lo hace excesivamente complicado para las personas.
  De hecho sólo consiste en cadenas extensas de números 0
  y 1.
 Para facilitar el trabajo, los primeros operadores de
  computadoras decidieron hacer un traductor para
  reemplazar los 0 y 1 por palabras o abstracción de palabras
  y letras provenientes del inglés; éste se conoce
  como lenguaje ensamblador. Por ejemplo, para sumar se
  usa la letra A de la palabra inglesaadd (sumar). El lenguaje
  ensamblador sigue la misma estructura del lenguaje
  máquina, pero las letras y palabras son más fáciles de
  recordar y entender que los números.
 La necesidad de recordar secuencias de programación
elementos
 Variables y Vectores                             Condicionantes
 Las variables podrían calificarse como           Los condicionantes son estructuras de
  contenedores de datos y por ello se               código que indican que para que cierta
  diferencian según el tipo de dato que son         parte del programa se ejecute, deben
  capaces de almacenar. En la mayoría de            cumplirse ciertas premisas, como por
  lenguajes de programación se requiere             ejemplo, que dos valores sean iguales,
  especificar un tipo de variable concreto          que un valor exista, que un valor sea
  para guardar un dato concreto. Por                mayor que otro y similares. Estos
  ejemplo, en Java, si deseamos guardar             condicionantes por lo general solo se
  una cadena de texto deberemos                     ejecutan una vez a lo largo del programa.
  especificar que la variable es del tipo           Los condicionantes más conocidos y
  "String". Por contra en otros lenguajes           empleados en programación son:
  como PHP, este tipo de especificación de         If: Indica una condición para que se
  variables no es necesario. Además                 ejecute una parte del programa.
  también existen variables compuestas por
  varias variables llamados vectores. Un           Else if: Siempre va precedido de un "If" e
  vector no es más que un conjunto de               indica una condición para que se ejecute
  variables ordenadas guardadas dentro de           una parte del programa siempre que no
  una variables contenedor del tipo vector. A       cumpla la condición del if previo y si se
  continuación añadimos un listado con los          cumpla con la que el "else if" especifique.
  tipos de variables y vectores más                Else: Siempre precedido de "If" y en
  comunes:                                          ocasiones de "Else If". Indica que debe
 -Variables tipo Char: Estas variables             ejecutarse cuando no se cumplan las
  contienen un único caracter, es decir, una        condiciones prévias.
  letra, un signo o un número.
 -Variables tipo Int: Contienen un número
Semántica estática
 La semántica estática define las restricciones sobre la
  estructura de los textos válidos que resulta imposible o muy
  difícil expresar mediante formalismos sintácticos estándar.
  Para los lenguajes compilados, la semántica estática
  básicamente incluye las reglas semánticas que se pueden
  verificar en el momento de compilar. Por ejemplo el chequeo
  de que cada identificador sea declarado antes de ser usado
  (en lenguajes que requieren tales declaraciones) o que las
  etiquetas en cada brazo de una estructura case sean distintas.
  Muchas restricciones importantes de este tipo, como la
  validación de que los identificadores sean usados en los
  contextos apropiados (por ejemplo no sumar un entero al
  nombre de una función), o que las llamadas a subrutinas
  tengan el número y tipo de parámetros adecuado, puede ser
  implementadas definiéndolas como reglas en una lógica
  conocida como sistema de tipos. Otras formas de análisis
  estáticos, como los análisis de flujo de datos, también pueden
  ser parte de la semántica estática. Nuevos lenguajes de
sintaxis
 A la forma visible de un lenguaje de programación se le conoce
  como sintaxis. La mayoría de los lenguajes de programación son
  puramente textuales, es decir, utilizan secuencias de texto que
  incluyen palabras, números y puntuación, de manera similar a los
  lenguajes naturales escritos. Por otra parte, hay algunos lenguajes
  de programación que son más gráficos en su naturaleza, utilizando
  relaciones visuales entre símbolos para especificar un programa.
 La sintaxis de un lenguaje de programación describe las
  combinaciones posibles de los símbolos que forman un programa
  sintácticamente correcto. El significado que se le da a una
  combinación de símbolos es manejado por su semántica (ya sea
  formal o como parte del código duro de la referencia de
  implementación). Dado que la mayoría de los lenguajes son
  textuales, este artículo trata de la sintaxis textual.
 La sintaxis de los lenguajes de programación es definida
  generalmente utilizando una combinación de expresiones regulares
  (para la estructura léxica) y la Notación de Backus-Naur (para la
  estructura gramática). Este es un ejemplo de una gramática
  simple, tomada deLisp:
Sistema de tipos
 Un sistema de tipos define la manera en la cual un lenguaje de
 programación clasifica los valores y expresiones en tipos,
 cómo pueden ser manipulados dichos tipos y cómo
 interactúan. El objetivo de un sistema de tipos es verificar y
 normalmente poner en vigor un cierto nivel de exactitud en
 programas escritos en el lenguaje en cuestión, detectando
 ciertas operaciones inválidas. Cualquier sistema de
 tipos decidible tiene sus ventajas y desventajas: mientras por
 un lado rechaza muchos programas incorrectos, también
 prohíbe algunos programas correctos aunque poco comunes.
 Para poder minimizar esta desventaja, algunos lenguajes
 incluyen lagunas de tipos, conversiones explícitas no checadas
 que pueden ser usadas por el programador para permitir
 explícitamente una operación normalmente no permitida entre
 diferentes tipos. En la mayoría de los lenguajes con tipos, el
 sistema de tipos es usado solamente para checar los tipos de
 los programas, pero varios lenguajes, generalmente
 funcionales, llevan a cabo lo que se conoce como inferencia de
Lenguaje C++
 C++ es un lenguaje de programación diseñado a mediados de los
    años 1980 por Bjarne Stroustrup. La intención de su creación fue el
    extender al exitoso lenguaje de programación C con mecanismos
    que permitan la manipulación de objetos. En ese sentido, desde el
    punto de vista de loslenguajes orientados a objetos, el C++ es un
    lenguaje híbrido.
   Posteriormente se añadieron facilidades de programación genérica,
    que se sumó a los otros dos paradigmas que ya estaban admitidos
    (programación estructurada y la programación orientada a objetos).
    Por esto se suele decir que el C++ es un lenguaje de programación
    multiparadigma.
   Actualmente existe un estándar, denominado ISO C++, al que se
    han adherido la mayoría de los fabricantes de compiladores más
    modernos. Existen también algunos intérpretes, tales como ROOT.
   Una particularidad del C++ es la posibilidad de redefinir
    los operadores, y de poder crear nuevos tipos que se comporten
    como tipos fundamentales.
   El nombre C++ fue propuesto por Rick Mascitti en el año 1983,
    cuando el lenguaje fue utilizado por primera vez fuera de un
    laboratorio científico. Antes se había usado el nombre "C con
Un ejemplo de programa en C++,
     el clásico Hola mundo
 /* Esta cabecera permite usar los objetos que encapsulan los
  descriptores stdout y stdin: cout(<<) y cin(>>)*/ #include <iostream>
  using namespace std; int main() { cout << "Hola mundo" << endl;
  return 0; }
 Al usar la directiva #include estamos diciéndole al compilador que busque e
  interprete todos los elementos definidos en el archivo que acompaña la
  directiva (en este caso, iostream). Para evitar sobrescribir los elementos ya
  definidos al ponerles igual nombre, se crearon los espacios de nombres
  o namespace del singular en inglés. En este caso hay un espacio de
  nombres llamado std, que es donde se incluyen las definiciones de todas
  las funciones y clases que conforman la biblioteca estándar de C++. Al
  incluir la sentencia using namespace std le estamos diciendo al compilador
  que usaremos el espacio de nombres std por lo que no tendremos que
  incluirlo cuando usemos elementos de este espacio de nombres, como
  pueden ser los objetos cout y cin, que representan el flujo de salida
  estándar (típicamente la pantalla o una ventana de texto) y el flujo de
  entrada estándar (típicamente el teclado).
Tipos de datos
 C++ tiene los siguientes tipos fundamentales:
 Caracteres: char (también es un entero), wchar_t
 Enteros: short, int, long, long long
 Números en coma flotante: float, double, long double
 Booleanos: bool
 Vacío: void
 El modificador unsigned se puede aplicar a enteros
 para obtener números sin signo (por omisión los
 enteros contienen signo), con lo que se consigue un
 rango mayor de números naturales.
Wchar_t
 Wchar_t
 Para la versión del estándar que se publicó en 1998, se
    decidió añadir el tipo de dato wchar_t, que permite el uso de
    caracteres UNICODE, a diferencia del tradicional char, que
    contempla simplemente al código de caracteres ASCII
    extendido. A su vez, se ha definido para la mayoría de las
    funciones y clases, tanto de C como de C++, una versión
    para trabajar con wchar_t, donde usualmente se prefija el
    carácter w al nombre de la función (en ocasiones el carácter
    es un infijo). Por ejemplo:
   strcpy - wstrcpy
   std::string - std::wstring
   std::cout - std::wcout
   Cabe resaltar que en C se define wchar_t como:
Principios
 La función main debe tener uno de los siguientes prototipos:
  int main()
  int main(int argc, char** argv)
  int main(int argc, char** argv, char** env)

 La primera es la forma por omisión de un programa que no recibe
  parámetros ni argumentos. La segunda forma tiene dos
  parámetros: argc, un número que describe el número de argumentos
  del programa (incluyendo el nombre del programa mismo), y argv, un
  puntero a un array de punteros, de argc elementos, donde el
  elemento argv[i] representa el i-ésimo argumento entregado al
  programa. En el tercer caso se añade la posibilidad de poder acceder
  a las variables de entorno de ejecución de la misma forma que se
  accede a los argumentos del programa, pero reflejados sobre la
  variable env.
 El tipo de retorno de main es int. Al finalizar la función main, debe
  incluirse el valor de retorno (por ejemplo, return 0;, aunque el
  estándar prevé solamente dos posibles valores de retorno:
  EXIT_SUCCESS y EXIT_ERROR, definidas en el archivo cstddef), o
  salir por medio de la función exit. Alternativamente puede dejarse en
  blanco, en cuyo caso el compilador es responsable de agregar la
  salida adecuada.
Constructores
 Constructores
 Véase también: Constructor (informática)
 Son unos métodos especiales que se ejecutan
  automáticamente al crear un objeto de la clase. En su
  declaración no se especifica el tipo de dato que
  devuelven, y poseen el mismo nombre que la clase a la que
  pertenecen. Al igual que otros métodos, puede haber varios
  constructores sobrecargados, aunque no pueden existir
  constructores virtuales.
 Como característica especial a la hora de implementar un
  constructor, justo después de la declaración de los
  parámetros, se encuentra lo que se llama "lista de
  inicializadores". Su objetivo es llamar a los constructores
  de los atributos que conforman el objeto a construir.
 Cabe destacar que no es necesario declarar un constructor
  al igual que un destructor, pues el compilador lo puede
  hacer, aunque no es la mejor forma de programar.
Destructores
 Destructores
 Véase también: Destructor (informática)
 Los destructores son funciones miembro especiales llamadas
  automáticamente en la ejecución del programa, y por
  tanto no tienen por qué ser llamadas explícitamente por
  el programador. Sus principales cometidos son:
 Liberar los recursos computacionales que el objeto de dicha
  clase haya adquirido en tiempo de ejecución al expirar éste.
 Quitar los vínculos que pudiesen tener otros recursos u
  objetos con éste.
 Los destructores son invocados automáticamente al alcanzar
  el flujo del programa el fin del ámbito en el que está
  declarado el objeto. El único caso en el que se debe invocar
  explícitamente al destructor de un objeto, es cuando éste
  fue creado mediante el operador new, es decir, que éste vive
  en memoria heap, y no en la pila de ejecución del programa.
  La invocación del destructor de un objeto
Funciones miembro
 Función miembro es aquella que está declarada
 en ámbito de clase. Son similares a las funciones
 habituales, con la salvedad de que el compilador
 realizara el proceso de Decoración de
 nombre (Name Mangling en inglés): Cambiará el
 nombre de la función añadiendo un identificador
 de la clase en la que está declarada, pudiendo
 incluir caracteres especiales o identificadores
 numéricos. Este proceso es invisible al
 programador. Además, las funciones miembro
 reciben implícitamente un parámetro adicional: El
 puntero this, que referencia al objeto que ejecuta

Más contenido relacionado

La actualidad más candente

Simbología de diagrama de flujo
Simbología de diagrama de flujoSimbología de diagrama de flujo
Simbología de diagrama de flujojuandie987
 
33487057 flujograma-arquitectonico
33487057 flujograma-arquitectonico33487057 flujograma-arquitectonico
33487057 flujograma-arquitectonicojair silva peña
 
Simbologia ansi (1)
Simbologia ansi (1)Simbologia ansi (1)
Simbologia ansi (1)AxePal
 
Simbologia basica para diagramacion
Simbologia basica para diagramacionSimbologia basica para diagramacion
Simbologia basica para diagramacionmanuelhumbertopaerez
 
Presentacion inicial diagramacion y tipos de diagramas
Presentacion inicial diagramacion y tipos de diagramasPresentacion inicial diagramacion y tipos de diagramas
Presentacion inicial diagramacion y tipos de diagramasEdison Dominguez
 
Guía para la elaboración de procedimientos y diagramas de flujo
Guía para la elaboración de procedimientos y diagramas de flujoGuía para la elaboración de procedimientos y diagramas de flujo
Guía para la elaboración de procedimientos y diagramas de flujoShirley Camaran
 
Diagrama De Flujo
Diagrama De FlujoDiagrama De Flujo
Diagrama De FlujoAngiedepp
 
Guia elaboracion-diagramas-flujo-2009
Guia elaboracion-diagramas-flujo-2009Guia elaboracion-diagramas-flujo-2009
Guia elaboracion-diagramas-flujo-2009AxePal
 
Diagrama de flujo[3.3.4 ]
Diagrama de flujo[3.3.4 ]Diagrama de flujo[3.3.4 ]
Diagrama de flujo[3.3.4 ]Guadalupe P.R
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujolordXDie
 

La actualidad más candente (20)

Flujogramas
FlujogramasFlujogramas
Flujogramas
 
Simbología de diagrama de flujo
Simbología de diagrama de flujoSimbología de diagrama de flujo
Simbología de diagrama de flujo
 
Flujogramas
FlujogramasFlujogramas
Flujogramas
 
33487057 flujograma-arquitectonico
33487057 flujograma-arquitectonico33487057 flujograma-arquitectonico
33487057 flujograma-arquitectonico
 
Simbologia ansi (1)
Simbologia ansi (1)Simbologia ansi (1)
Simbologia ansi (1)
 
Flujograma sentencias
Flujograma sentenciasFlujograma sentencias
Flujograma sentencias
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Simbologia basica para diagramacion
Simbologia basica para diagramacionSimbologia basica para diagramacion
Simbologia basica para diagramacion
 
Presentacion inicial diagramacion y tipos de diagramas
Presentacion inicial diagramacion y tipos de diagramasPresentacion inicial diagramacion y tipos de diagramas
Presentacion inicial diagramacion y tipos de diagramas
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Guía para la elaboración de procedimientos y diagramas de flujo
Guía para la elaboración de procedimientos y diagramas de flujoGuía para la elaboración de procedimientos y diagramas de flujo
Guía para la elaboración de procedimientos y diagramas de flujo
 
Diagrama De Flujo
Diagrama De FlujoDiagrama De Flujo
Diagrama De Flujo
 
Guia elaboracion-diagramas-flujo-2009
Guia elaboracion-diagramas-flujo-2009Guia elaboracion-diagramas-flujo-2009
Guia elaboracion-diagramas-flujo-2009
 
Tipos de diagramas de flujo
Tipos de diagramas de flujoTipos de diagramas de flujo
Tipos de diagramas de flujo
 
Diagrama de flujo[3.3.4 ]
Diagrama de flujo[3.3.4 ]Diagrama de flujo[3.3.4 ]
Diagrama de flujo[3.3.4 ]
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Así se hace un diagrama de flujo
Así se hace un diagrama de flujoAsí se hace un diagrama de flujo
Así se hace un diagrama de flujo
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
7 flujogramas
7 flujogramas7 flujogramas
7 flujogramas
 

Destacado

01 diagramas de flujo
01 diagramas de flujo01 diagramas de flujo
01 diagramas de flujoantheresc
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.luismarlmg
 
Teoría de darwin y orígenes de la vida
Teoría de   darwin y orígenes de la vidaTeoría de   darwin y orígenes de la vida
Teoría de darwin y orígenes de la vidaCesar Martinez
 
Diagrama de flujo gabriel cornejo 4 to b
Diagrama de flujo gabriel cornejo 4 to bDiagrama de flujo gabriel cornejo 4 to b
Diagrama de flujo gabriel cornejo 4 to bgabuxitopcornejo
 
Programación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos IProgramación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos IYessenia I. Martínez M.
 
ALGORITMOSAlgoritmo yy estructura de datos
ALGORITMOSAlgoritmo yy estructura de datosALGORITMOSAlgoritmo yy estructura de datos
ALGORITMOSAlgoritmo yy estructura de datosKevin Avilés Torres
 
Calidad en la gestión pública local. Los sistemas de quejas y sugerencias
Calidad en la gestión pública local. Los sistemas de quejas y sugerenciasCalidad en la gestión pública local. Los sistemas de quejas y sugerencias
Calidad en la gestión pública local. Los sistemas de quejas y sugerenciasRaúl Tarrío
 
Panspermia y Generacion espontanea
Panspermia y Generacion espontaneaPanspermia y Generacion espontanea
Panspermia y Generacion espontaneaRodolfo Escamilla P
 
Teoría de la panspermia
Teoría de la panspermiaTeoría de la panspermia
Teoría de la panspermiaCbtis 216
 
Teoría del la Panspermia.
Teoría del la Panspermia.Teoría del la Panspermia.
Teoría del la Panspermia.Sam Arr
 
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONAL
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONALLA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONAL
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONALMIGUEL ANGEL GODOY PRIETO
 
Estructuras de datos y algoritmos
Estructuras de datos y algoritmosEstructuras de datos y algoritmos
Estructuras de datos y algoritmosRobert Rodriguez
 
Proyecto de empresa MANNUCCIE DIESEL S.A.C
Proyecto de  empresa MANNUCCIE DIESEL S.A.CProyecto de  empresa MANNUCCIE DIESEL S.A.C
Proyecto de empresa MANNUCCIE DIESEL S.A.CJulliana Mendoza Chicana
 
Trabajo creacionismo
Trabajo creacionismoTrabajo creacionismo
Trabajo creacionismo10aaleagu
 

Destacado (20)

01 diagramas de flujo
01 diagramas de flujo01 diagramas de flujo
01 diagramas de flujo
 
Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.Diagrama de Flujos Ejemplos.
Diagrama de Flujos Ejemplos.
 
Programacion
ProgramacionProgramacion
Programacion
 
Teoría de darwin y orígenes de la vida
Teoría de   darwin y orígenes de la vidaTeoría de   darwin y orígenes de la vida
Teoría de darwin y orígenes de la vida
 
Diagrama de flujo gabriel cornejo 4 to b
Diagrama de flujo gabriel cornejo 4 to bDiagrama de flujo gabriel cornejo 4 to b
Diagrama de flujo gabriel cornejo 4 to b
 
Programación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos IProgramación del curso - Estructura de Datos I
Programación del curso - Estructura de Datos I
 
ALGORITMOSAlgoritmo yy estructura de datos
ALGORITMOSAlgoritmo yy estructura de datosALGORITMOSAlgoritmo yy estructura de datos
ALGORITMOSAlgoritmo yy estructura de datos
 
Panspermia
Panspermia Panspermia
Panspermia
 
Calidad en la gestión pública local. Los sistemas de quejas y sugerencias
Calidad en la gestión pública local. Los sistemas de quejas y sugerenciasCalidad en la gestión pública local. Los sistemas de quejas y sugerencias
Calidad en la gestión pública local. Los sistemas de quejas y sugerencias
 
Panspermia y Generacion espontanea
Panspermia y Generacion espontaneaPanspermia y Generacion espontanea
Panspermia y Generacion espontanea
 
Teoría de la panspermia
Teoría de la panspermiaTeoría de la panspermia
Teoría de la panspermia
 
Documento10142
Documento10142Documento10142
Documento10142
 
Panspermia
PanspermiaPanspermia
Panspermia
 
Teoría del la Panspermia.
Teoría del la Panspermia.Teoría del la Panspermia.
Teoría del la Panspermia.
 
Bebidas carbonatadas
Bebidas carbonatadasBebidas carbonatadas
Bebidas carbonatadas
 
Agencia de autos
Agencia de autosAgencia de autos
Agencia de autos
 
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONAL
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONALLA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONAL
LA IMPORTANCIA DE LA GESTION DOCUMENTAL EN EL DESEMPEÑO PROFESIONAL
 
Estructuras de datos y algoritmos
Estructuras de datos y algoritmosEstructuras de datos y algoritmos
Estructuras de datos y algoritmos
 
Proyecto de empresa MANNUCCIE DIESEL S.A.C
Proyecto de  empresa MANNUCCIE DIESEL S.A.CProyecto de  empresa MANNUCCIE DIESEL S.A.C
Proyecto de empresa MANNUCCIE DIESEL S.A.C
 
Trabajo creacionismo
Trabajo creacionismoTrabajo creacionismo
Trabajo creacionismo
 

Similar a Miguel guillen 4to b

Diagrama de flujo y programacion
Diagrama de flujo y programacionDiagrama de flujo y programacion
Diagrama de flujo y programacionCriss Russo
 
Diagrama de flujo pr michael
Diagrama de flujo pr michaelDiagrama de flujo pr michael
Diagrama de flujo pr michaelobtener
 
Digramas progr lengu mendez
Digramas progr lengu mendezDigramas progr lengu mendez
Digramas progr lengu mendezAlexaods
 
Diagramadeflujoprmichael 120530095613-phpapp02
Diagramadeflujoprmichael 120530095613-phpapp02Diagramadeflujoprmichael 120530095613-phpapp02
Diagramadeflujoprmichael 120530095613-phpapp02Leydi Ortiz
 
Diagrama de flujo po tony paredes 4b
Diagrama de flujo po tony paredes 4bDiagrama de flujo po tony paredes 4b
Diagrama de flujo po tony paredes 4bTony Paredes
 
Diagramadeflujopotonyparedes4b 120530095800-phpapp01
Diagramadeflujopotonyparedes4b 120530095800-phpapp01Diagramadeflujopotonyparedes4b 120530095800-phpapp01
Diagramadeflujopotonyparedes4b 120530095800-phpapp01Martin Eduardo Toro Suarez
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de FlujoGladysct
 
Gaby (algoritmo y diagrama de flujo) iupsm.
Gaby (algoritmo y diagrama de flujo) iupsm.Gaby (algoritmo y diagrama de flujo) iupsm.
Gaby (algoritmo y diagrama de flujo) iupsm.gabyfr19
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informaticajackitor16
 

Similar a Miguel guillen 4to b (20)

Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Diagrama de flujo y programacion
Diagrama de flujo y programacionDiagrama de flujo y programacion
Diagrama de flujo y programacion
 
Diagramadeflujo
DiagramadeflujoDiagramadeflujo
Diagramadeflujo
 
Diagrama de flujo pr michael
Diagrama de flujo pr michaelDiagrama de flujo pr michael
Diagrama de flujo pr michael
 
Digramas progr lengu mendez
Digramas progr lengu mendezDigramas progr lengu mendez
Digramas progr lengu mendez
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Diagramadeflujoprmichael 120530095613-phpapp02
Diagramadeflujoprmichael 120530095613-phpapp02Diagramadeflujoprmichael 120530095613-phpapp02
Diagramadeflujoprmichael 120530095613-phpapp02
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Diagrama de flujo po tony paredes 4b
Diagrama de flujo po tony paredes 4bDiagrama de flujo po tony paredes 4b
Diagrama de flujo po tony paredes 4b
 
Diagramadeflujopotonyparedes4b 120530095800-phpapp01
Diagramadeflujopotonyparedes4b 120530095800-phpapp01Diagramadeflujopotonyparedes4b 120530095800-phpapp01
Diagramadeflujopotonyparedes4b 120530095800-phpapp01
 
Diagrama de flujo póveda y pilcos
Diagrama de flujo póveda y pilcosDiagrama de flujo póveda y pilcos
Diagrama de flujo póveda y pilcos
 
Diagramas de Flujo
Diagramas de FlujoDiagramas de Flujo
Diagramas de Flujo
 
Texto base
Texto baseTexto base
Texto base
 
Gaby (algoritmo y diagrama de flujo) iupsm.
Gaby (algoritmo y diagrama de flujo) iupsm.Gaby (algoritmo y diagrama de flujo) iupsm.
Gaby (algoritmo y diagrama de flujo) iupsm.
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 

Más de angelordx

Lentes (óptica) miguel angel guillen 4to b
Lentes (óptica) miguel angel guillen 4to bLentes (óptica) miguel angel guillen 4to b
Lentes (óptica) miguel angel guillen 4to bangelordx
 
Presentación2 miguel angel 3 dimension 4to b
Presentación2 miguel angel 3 dimension 4to bPresentación2 miguel angel 3 dimension 4to b
Presentación2 miguel angel 3 dimension 4to bangelordx
 
Presentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesPresentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesangelordx
 
Presentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesPresentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesangelordx
 
Algoritmo 4 to b miguel angel guillen
Algoritmo 4 to b miguel angel guillenAlgoritmo 4 to b miguel angel guillen
Algoritmo 4 to b miguel angel guillenangelordx
 
Leyes de newton o dinámica de miguel angel guillen 4to b
Leyes de newton o dinámica de miguel angel guillen 4to bLeyes de newton o dinámica de miguel angel guillen 4to b
Leyes de newton o dinámica de miguel angel guillen 4to bangelordx
 
San francisco de asis
San francisco de asisSan francisco de asis
San francisco de asisangelordx
 

Más de angelordx (7)

Lentes (óptica) miguel angel guillen 4to b
Lentes (óptica) miguel angel guillen 4to bLentes (óptica) miguel angel guillen 4to b
Lentes (óptica) miguel angel guillen 4to b
 
Presentación2 miguel angel 3 dimension 4to b
Presentación2 miguel angel 3 dimension 4to bPresentación2 miguel angel 3 dimension 4to b
Presentación2 miguel angel 3 dimension 4to b
 
Presentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesPresentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensiones
 
Presentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensionesPresentación1 miguel angel power point de 4to b 2 dimensiones
Presentación1 miguel angel power point de 4to b 2 dimensiones
 
Algoritmo 4 to b miguel angel guillen
Algoritmo 4 to b miguel angel guillenAlgoritmo 4 to b miguel angel guillen
Algoritmo 4 to b miguel angel guillen
 
Leyes de newton o dinámica de miguel angel guillen 4to b
Leyes de newton o dinámica de miguel angel guillen 4to bLeyes de newton o dinámica de miguel angel guillen 4to b
Leyes de newton o dinámica de miguel angel guillen 4to b
 
San francisco de asis
San francisco de asisSan francisco de asis
San francisco de asis
 

Miguel guillen 4to b

  • 1.
  • 2. características  Características  Un diagrama de flujo siempre tiene un único punto de inicio y un único punto de término.  Las siguientes son acciones previas a la realización del diagrama de flujo:  Identificar las ideas principales a ser incluidas en el diagrama de flujo. Deben estar presentes el dueño o responsable del proceso, los dueños o responsables del proceso anterior y posterior y de otros procesos interrelacionados, otras partes interesadas.  Definir qué se espera obtener del diagrama de flujo.  Identificar quién lo empleará y cómo.  Establecer el nivel de detalle requerido.  Determinar los límites del proceso a describir.  Los pasos a seguir para construir el diagrama de flujo son:  Establecer el alcance del proceso a describir. De esta manera quedará fijado el comienzo y el final del diagrama. Frecuentemente el comienzo es la salida del proceso previo y el final la entrada al proceso siguiente.  Identificar y listar las principales actividades/subprocesos que están incluidos en el proceso a describir y su orden cronológico.
  • 3. Ventajas de los diagramas de flujo  Favorecen la comprensión del proceso al mostrarlo como un dibujo. El cerebro humano reconoce muy fácilmente los dibujos. Un buen diagrama de flujo reemplaza varias páginas de texto.  Permiten identificar los problemas y las oportunidades de mejora del proceso. Se identifican los pasos, los flujos de los re-procesos, los conflictos de autoridad, las responsabilidades, los cuellos de botella, y los puntos de decisión.  Muestran las interfaces cliente-proveedor y las transacciones que en ellas se realizan, facilitando a los empleados el análisis de las mismas.  Son una excelente herramienta para capacitar a los nuevos empleados y también a los que desarrollan la tarea, cuando se realizan mejoras en el proceso.  Al igual que el pseudocódigo, el diagrama de flujo con fines de análisis de algoritmos de programación puede ser ejecutado
  • 5. Tipos de diagramas de flujo  Formato vertical: En él, el flujo o la secuencia de las operaciones, va de arriba hacia abajo. Es una lista ordenada de las operaciones de un proceso con toda la información que se considere necesaria, según su propósito.  Formato horizontal: En él, el flujo o la secuencia de las operaciones, va de izquierda a derecha.  Formato panorámico: El proceso entero está representado en una sola carta y puede apreciarse de una sola mirada mucho más rápido que leyendo el texto, lo que facilita su comprensión, aún para personas no familiarizadas. Registra no solo en línea vertical, sino también horizontal, distintas acciones simultáneas y la participación de más de un puesto o departamento que el formato vertical no registra.  Formato Arquitectónico: Describe el itinerario de ruta de una forma o persona sobre el plano arquitectónico del área de trabajo. El primero de los flujogramas es eminentemente
  • 6. Simbología y significado  Óvalo o Elipse: Inicio y término (Abre y/o cierra el diagrama).  Rectángulo: Actividad (Representa la ejecución de una o más actividades o procedimientos).  Rombo: Decisión (Formula una pregunta o cuestión).  Círculo: Conector (Representa el enlace de actividades con otra dentro de un procedimiento).  Triángulo boca abajo: Archivo definitivo (Guarda un documento en forma permanente).  Triángulo boca arriba: Archivo temporal (Proporciona un tiempo para el almacenamiento del documento).
  • 7. Simbología y normas del curso grama  Círculo: Procedimiento estandarizado.  Cuadrado: Proceso de control.  Línea ininterrumpida: Flujo de información vía formulario o documentación en soporte de papel escrito.  Línea interrumpida: Flujo de información vía formulario digital.  Rectángulo: Formulario o documentación. Se grafica con un doble de ancho que su altura.  Rectángulo Pequeño: Valor o medio de pago (cheque, pagaré, etcétera).Se grafica con un cuádruple de ancho que su altura, siendo su ancho igual al de los formularios.  Triángulo (base inferior): Archivo definitivo.  Triángulo Invertido (base superior): Archivo Transitorio.  Semi-óvalo: Demora.  Rombo: División entre opciones.  Trapezoide: Carga de datos al sistema.  Elipsoide: Acceso por pantalla.  Hexágono: Proceso no representado.  Pentágono: Conector.
  • 8. Historia La paternidad del diagrama de flujo es en principio algo difusa. El método estructurado para documentar graficamente un proceso como un flujo de pasos sucesivo y alternativos, el "proceso de diagrama de flujo", fue expuesto por Frank Gilbreth, en la Sociedad Americana de Ingenieros Mecánicos (ASME), en 1921, bajo el enunciado de "Proceso de Gráficas- Primeros pasos para encontrar el mejor modo". Estas herramientas de Gilbreth rápidamente encontraron sitio en los programas de ingeniería industrial. Al principio de los 30, un ingeniero industrial, Allan H. Mogensen comenzó la formación de personas de negocios en Lake Placid, Nueva York, incluyendo el uso del diagrama de flujo. Art Spinanger, asistente a las clases de Mogesen, utilizó las herramientas en su trabajo en Procter & Gamble, donde desarrolló su “Programa Metódico de Cambios por Etapas”. Otro asistente al grupo de graduados en 1944, Ben S. Graham, Director de Ingeniería de Formcraft Standard Register Corporation, adaptó la Gráfica de flujo de procesos al tratamiento de la información en su empresa. Y desarrolló la Gráfica del proceso de múltiples flujos en múltiples pantallas, documentos, y sus relaciones. En 1947, ASME adoptó un conjunto de símbolos derivados de la obra original de Gilbreth como Norma ASME para los gráficos de procesos (preparada Mishad, Ramsan y Raiaan).  Sin embargo, según explica Douglas Hartree fueron originalmente Herman Goldstine y John von Neumann quienes desarrollaron el diagrama de flujo (inicialmente llamado "diagrama") para planificar los programas de ordenador. Las tablas de programación original de flujo de Goldstine y von Neumann, aparecen en un informe no publicado, "Planificación y codificación de los problemas de un instrumento de computación electrónica, la Parte II, Volumen 1 "(1947), reproducido en las obras completas de von Neumann. Inicialmente los diagramas de flujo resultaron un medio popular para describir algoritmos de computadora, y aún se utilizan con este fin. Herramientas como los diagramas de actividad UML, pueden ser considerados como evoluciones del diagrama de flujo.
  • 9. Programación  La programación es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.
  • 10. Historia  Para crear un programa, y que la computadora interprete y ejecute las instrucciones escritas en él, debe usarse un Lenguaje de programación.  En sus inicios las computadoras interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido como código máquina, siendo éste excesivamente complicado para programar. De hecho sólo consiste en cadenas de números 1 y 0 (Sistema binario).  Para facilitar el trabajo de programación, los primeros científicos que trabajaban en el área decidieron reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras provenientes del inglés; codificándolas así y creando un lenguaje de mayor nivel, que se conoce como Assembly o lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). En realidad escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que secuencias de números binarios.  A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un método sencillo para programar. Entonces, se crearon los lenguajes de alto nivel. Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará con solo una.
  • 11. Programas y algoritmos  Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programación concreto) uno o más algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma gráfica, como un diagrama de flujo, en forma de código como en pseudocódigo o un lenguaje de programación, en forma explicativa, etc.  Los programas suelen subdividirse en partes menores, llamadas módulos, de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una práctica muy utilizada y se conoce como "refino progresivo".  Según Niklaus Wirth, un programa está formado por los algoritmos y la estructura de datos.  Se han propuesto diversas técnicas de programación cuyo objetivo es mejorar tanto el proceso de creación de software como su mantenimiento. Entre ellas, se pueden mencionar las siguientes:  Programación estructurada  Programación modular  Programación orientada a objetos (POO)
  • 12. Compilación  El programa escrito en un lenguaje de programación (fácilmente comprensible por el programador) es llamado programa fuente y no se puede ejecutar directamente en una computadora. La opción más común es compilar el programa obteniendo un módulo objeto, aunque también puede ejecutarse en forma más directa a través de un intérprete informático.  El código fuente del programa se debe someter a un proceso de traducción para convertirlo en lenguaje máquina, código éste directamente ejecutable por el procesador. A este proceso se le llama compilación.  Normalmente la creación de un programa ejecutable (un típico.exe para Microsoft Windows o DOS) conlleva dos pasos. El primer paso se llama compilación (propiamente dicho) y traduce el código fuente escrito en un lenguaje de programación almacenado en un archivo a código en bajo nivel (normalmente en código objeto, no directamente a lenguaje máquina). El segundo paso se llama enlazado en el cual se enlaza el código de bajo nivel generado de todos los ficheros y subprogramas que se han mandado compilar y se añade el código de las funciones que hay en las bibliotecas del compilador para que
  • 13. Programación e ingeniería del software  Existe una tendencia a identificar el proceso de creación de un programa informático con la programación, que es cierta cuando se trata de programas pequeños para uso personal, y que dista de la realidad cuando se trata de grandes proyectos.  El proceso de creación de software, desde el punto de vista de la ingeniería, incluye los siguientes pasos:  Reconocer la necesidad de un programa para solucionar un problema o identificar la posibilidad de automatización de una tarea.  Recoger los requisitos del programa. Debe quedar claro qué es lo que debe hacer el programa y para qué se necesita.  Realizar el análisis de los requisitos del programa. Debe quedar claro cómo debe realizar el programa las cosas que debe hacer. Las pruebas que comprueben la validez del programa se pueden especificar en esta fase.  Diseñar la arquitectura del programa. Se debe descomponer el programa en partes de complejidad abordable.  Implementar el programa. Consiste en realizar un diseño detallado, especificando completamente todo el funcionamiento del programa,
  • 14. Referencias históricas  La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemáticas a Ada quien, después de conocer aCharles Babbage, tradujo y amplió una descripción de su máquina analítica. Incluso aunque Babbage nunca completó la construcción de cualquiera de sus máquinas, el trabajo que Ada realizó con éstas le hizo ganarse el título de primera programadora de computadoras del mundo. El nombre del lenguaje de programación Ada fue escogido como homenaje a esta programadora.  No olvidemos que este proceso está aplicado a todos los métodos científicos que actualmente se
  • 15. Objetivos de la programación  La programación debe perseguir la obtención de programas de calidad. Para ello se establece una serie de factores que determinan la calidad de un programa. Algunos de los factores de calidad más importantes son los siguientes:  Corrección. Un programa es correcto si hace lo que debe hacer tal y como se estableció en las fases previas a su desarrollo. Para determinar si un programa hace lo que debe, es muy importante especificar claramente qué debe hacer el programa antes de desarrollarlo y, una vez acabado, compararlo con lo que realmente hace.  Claridad. Es muy importante que el programa sea lo más claro y legible posible, para facilitar así su desarrollo y posterior mantenimiento. Al elaborar un programa se debe intentar que su estructura sea sencilla y coherente, así como cuidar el estilo en la edición; de esta forma se ve facilitado el trabajo del programador, tanto en la fase de creación como en las fases posteriores de corrección de errores, ampliaciones, modificaciones, etc. Fases que pueden ser realizadas incluso por otro programador, con lo cual la claridad es aún más necesaria para que otros programadores puedan continuar el trabajo fácilmente. Algunos programadores llegan incluso a utilizar Arte ASCII para delimitar secciones de código. Otros, por diversión o para impedir un análisis cómodo a otros programadores, recurren al uso de código ofuscado.  Eficiencia. Se trata de que el programa, además de realizar aquello para lo que fue creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido creado y a la cantidad de memoria que necesita, pero hay otros recursos que
  • 16.
  • 17. definición  Un lenguaje de programación es un idioma artificial diseñado para expresar procesos que pueden ser llevadas a cabo por máquinas como lascomputadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmoscon precisión, o como modo de comunicación humana.1 Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el código fuente de un programa informático se le llama programación.  También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos:  El desarrollo lógico del programa para resolver un problema en particular.  Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa).  Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.  Prueba y depuración del programa.  Desarrollo de la documentación.
  • 18. historia  Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje específico conocido como código máquina, el cual la máquina comprende fácilmente, pero que lo hace excesivamente complicado para las personas. De hecho sólo consiste en cadenas extensas de números 0 y 1.  Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstracción de palabras y letras provenientes del inglés; éste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesaadd (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje máquina, pero las letras y palabras son más fáciles de recordar y entender que los números.  La necesidad de recordar secuencias de programación
  • 19. elementos  Variables y Vectores  Condicionantes  Las variables podrían calificarse como  Los condicionantes son estructuras de contenedores de datos y por ello se código que indican que para que cierta diferencian según el tipo de dato que son parte del programa se ejecute, deben capaces de almacenar. En la mayoría de cumplirse ciertas premisas, como por lenguajes de programación se requiere ejemplo, que dos valores sean iguales, especificar un tipo de variable concreto que un valor exista, que un valor sea para guardar un dato concreto. Por mayor que otro y similares. Estos ejemplo, en Java, si deseamos guardar condicionantes por lo general solo se una cadena de texto deberemos ejecutan una vez a lo largo del programa. especificar que la variable es del tipo Los condicionantes más conocidos y "String". Por contra en otros lenguajes empleados en programación son: como PHP, este tipo de especificación de  If: Indica una condición para que se variables no es necesario. Además ejecute una parte del programa. también existen variables compuestas por varias variables llamados vectores. Un  Else if: Siempre va precedido de un "If" e vector no es más que un conjunto de indica una condición para que se ejecute variables ordenadas guardadas dentro de una parte del programa siempre que no una variables contenedor del tipo vector. A cumpla la condición del if previo y si se continuación añadimos un listado con los cumpla con la que el "else if" especifique. tipos de variables y vectores más  Else: Siempre precedido de "If" y en comunes: ocasiones de "Else If". Indica que debe  -Variables tipo Char: Estas variables ejecutarse cuando no se cumplan las contienen un único caracter, es decir, una condiciones prévias. letra, un signo o un número.  -Variables tipo Int: Contienen un número
  • 20. Semántica estática  La semántica estática define las restricciones sobre la estructura de los textos válidos que resulta imposible o muy difícil expresar mediante formalismos sintácticos estándar. Para los lenguajes compilados, la semántica estática básicamente incluye las reglas semánticas que se pueden verificar en el momento de compilar. Por ejemplo el chequeo de que cada identificador sea declarado antes de ser usado (en lenguajes que requieren tales declaraciones) o que las etiquetas en cada brazo de una estructura case sean distintas. Muchas restricciones importantes de este tipo, como la validación de que los identificadores sean usados en los contextos apropiados (por ejemplo no sumar un entero al nombre de una función), o que las llamadas a subrutinas tengan el número y tipo de parámetros adecuado, puede ser implementadas definiéndolas como reglas en una lógica conocida como sistema de tipos. Otras formas de análisis estáticos, como los análisis de flujo de datos, también pueden ser parte de la semántica estática. Nuevos lenguajes de
  • 21. sintaxis  A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un programa.  La sintaxis de un lenguaje de programación describe las combinaciones posibles de los símbolos que forman un programa sintácticamente correcto. El significado que se le da a una combinación de símbolos es manejado por su semántica (ya sea formal o como parte del código duro de la referencia de implementación). Dado que la mayoría de los lenguajes son textuales, este artículo trata de la sintaxis textual.  La sintaxis de los lenguajes de programación es definida generalmente utilizando una combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-Naur (para la estructura gramática). Este es un ejemplo de una gramática simple, tomada deLisp:
  • 22. Sistema de tipos  Un sistema de tipos define la manera en la cual un lenguaje de programación clasifica los valores y expresiones en tipos, cómo pueden ser manipulados dichos tipos y cómo interactúan. El objetivo de un sistema de tipos es verificar y normalmente poner en vigor un cierto nivel de exactitud en programas escritos en el lenguaje en cuestión, detectando ciertas operaciones inválidas. Cualquier sistema de tipos decidible tiene sus ventajas y desventajas: mientras por un lado rechaza muchos programas incorrectos, también prohíbe algunos programas correctos aunque poco comunes. Para poder minimizar esta desventaja, algunos lenguajes incluyen lagunas de tipos, conversiones explícitas no checadas que pueden ser usadas por el programador para permitir explícitamente una operación normalmente no permitida entre diferentes tipos. En la mayoría de los lenguajes con tipos, el sistema de tipos es usado solamente para checar los tipos de los programas, pero varios lenguajes, generalmente funcionales, llevan a cabo lo que se conoce como inferencia de
  • 23. Lenguaje C++  C++ es un lenguaje de programación diseñado a mediados de los años 1980 por Bjarne Stroustrup. La intención de su creación fue el extender al exitoso lenguaje de programación C con mecanismos que permitan la manipulación de objetos. En ese sentido, desde el punto de vista de loslenguajes orientados a objetos, el C++ es un lenguaje híbrido.  Posteriormente se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++ es un lenguaje de programación multiparadigma.  Actualmente existe un estándar, denominado ISO C++, al que se han adherido la mayoría de los fabricantes de compiladores más modernos. Existen también algunos intérpretes, tales como ROOT.  Una particularidad del C++ es la posibilidad de redefinir los operadores, y de poder crear nuevos tipos que se comporten como tipos fundamentales.  El nombre C++ fue propuesto por Rick Mascitti en el año 1983, cuando el lenguaje fue utilizado por primera vez fuera de un laboratorio científico. Antes se había usado el nombre "C con
  • 24. Un ejemplo de programa en C++, el clásico Hola mundo  /* Esta cabecera permite usar los objetos que encapsulan los descriptores stdout y stdin: cout(<<) y cin(>>)*/ #include <iostream> using namespace std; int main() { cout << "Hola mundo" << endl; return 0; }  Al usar la directiva #include estamos diciéndole al compilador que busque e interprete todos los elementos definidos en el archivo que acompaña la directiva (en este caso, iostream). Para evitar sobrescribir los elementos ya definidos al ponerles igual nombre, se crearon los espacios de nombres o namespace del singular en inglés. En este caso hay un espacio de nombres llamado std, que es donde se incluyen las definiciones de todas las funciones y clases que conforman la biblioteca estándar de C++. Al incluir la sentencia using namespace std le estamos diciendo al compilador que usaremos el espacio de nombres std por lo que no tendremos que incluirlo cuando usemos elementos de este espacio de nombres, como pueden ser los objetos cout y cin, que representan el flujo de salida estándar (típicamente la pantalla o una ventana de texto) y el flujo de entrada estándar (típicamente el teclado).
  • 25. Tipos de datos  C++ tiene los siguientes tipos fundamentales:  Caracteres: char (también es un entero), wchar_t  Enteros: short, int, long, long long  Números en coma flotante: float, double, long double  Booleanos: bool  Vacío: void  El modificador unsigned se puede aplicar a enteros para obtener números sin signo (por omisión los enteros contienen signo), con lo que se consigue un rango mayor de números naturales.
  • 26. Wchar_t  Wchar_t  Para la versión del estándar que se publicó en 1998, se decidió añadir el tipo de dato wchar_t, que permite el uso de caracteres UNICODE, a diferencia del tradicional char, que contempla simplemente al código de caracteres ASCII extendido. A su vez, se ha definido para la mayoría de las funciones y clases, tanto de C como de C++, una versión para trabajar con wchar_t, donde usualmente se prefija el carácter w al nombre de la función (en ocasiones el carácter es un infijo). Por ejemplo:  strcpy - wstrcpy  std::string - std::wstring  std::cout - std::wcout  Cabe resaltar que en C se define wchar_t como:
  • 27. Principios  La función main debe tener uno de los siguientes prototipos: int main() int main(int argc, char** argv) int main(int argc, char** argv, char** env)  La primera es la forma por omisión de un programa que no recibe parámetros ni argumentos. La segunda forma tiene dos parámetros: argc, un número que describe el número de argumentos del programa (incluyendo el nombre del programa mismo), y argv, un puntero a un array de punteros, de argc elementos, donde el elemento argv[i] representa el i-ésimo argumento entregado al programa. En el tercer caso se añade la posibilidad de poder acceder a las variables de entorno de ejecución de la misma forma que se accede a los argumentos del programa, pero reflejados sobre la variable env.  El tipo de retorno de main es int. Al finalizar la función main, debe incluirse el valor de retorno (por ejemplo, return 0;, aunque el estándar prevé solamente dos posibles valores de retorno: EXIT_SUCCESS y EXIT_ERROR, definidas en el archivo cstddef), o salir por medio de la función exit. Alternativamente puede dejarse en blanco, en cuyo caso el compilador es responsable de agregar la salida adecuada.
  • 28. Constructores  Constructores  Véase también: Constructor (informática)  Son unos métodos especiales que se ejecutan automáticamente al crear un objeto de la clase. En su declaración no se especifica el tipo de dato que devuelven, y poseen el mismo nombre que la clase a la que pertenecen. Al igual que otros métodos, puede haber varios constructores sobrecargados, aunque no pueden existir constructores virtuales.  Como característica especial a la hora de implementar un constructor, justo después de la declaración de los parámetros, se encuentra lo que se llama "lista de inicializadores". Su objetivo es llamar a los constructores de los atributos que conforman el objeto a construir.  Cabe destacar que no es necesario declarar un constructor al igual que un destructor, pues el compilador lo puede hacer, aunque no es la mejor forma de programar.
  • 29. Destructores  Destructores  Véase también: Destructor (informática)  Los destructores son funciones miembro especiales llamadas automáticamente en la ejecución del programa, y por tanto no tienen por qué ser llamadas explícitamente por el programador. Sus principales cometidos son:  Liberar los recursos computacionales que el objeto de dicha clase haya adquirido en tiempo de ejecución al expirar éste.  Quitar los vínculos que pudiesen tener otros recursos u objetos con éste.  Los destructores son invocados automáticamente al alcanzar el flujo del programa el fin del ámbito en el que está declarado el objeto. El único caso en el que se debe invocar explícitamente al destructor de un objeto, es cuando éste fue creado mediante el operador new, es decir, que éste vive en memoria heap, y no en la pila de ejecución del programa. La invocación del destructor de un objeto
  • 30. Funciones miembro  Función miembro es aquella que está declarada en ámbito de clase. Son similares a las funciones habituales, con la salvedad de que el compilador realizara el proceso de Decoración de nombre (Name Mangling en inglés): Cambiará el nombre de la función añadiendo un identificador de la clase en la que está declarada, pudiendo incluir caracteres especiales o identificadores numéricos. Este proceso es invisible al programador. Además, las funciones miembro reciben implícitamente un parámetro adicional: El puntero this, que referencia al objeto que ejecuta