SlideShare ist ein Scribd-Unternehmen logo
1 von 29
El diagrama de flujo
es la representación
gráfica del algoritmo o proceso. Se utiliza
en disciplinas como la programación,
la economía, los procesos industriales y
la psicología cognitiva. Estos diagramas
utilizan símbolos con significados bien
definidos que representan los pasos del
algoritmo, y representan el flujo de
ejecución mediante flechas que conectan
los puntos de inicio y de fin de proceso.
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.
Si el nivel de detalle definido incluye
actividades menores, listarlas también.
Identificar y listar los puntos de decisión.
Construir el diagrama respetando la
secuencia cronológica y asignando los
correspondientes símbolos.
Asignar un título al diagrama y verificar
que esté completo y describa con exactitud
el proceso elegido.
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
en un ordenador, con un Ide como Free DFD.
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 descriptivo, mientras que los utilizados
son fundamentalmente representativos.
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 cursograma
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.
Cruz de Diagonales: Destrucción de Formularios.
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.
Una vez que se termina de escribir un programa, sea en ensamblador o en un
lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje
máquina.
Léxico y programación
La programación se rige por reglas y un
conjunto más o menos reducido de órdenes,
expresiones, instrucciones y comandos que
tienden a asemejarse a una lengua natural
acotada (en inglés); y que además tienen la
particularidad de una reducida ambigüedad.
Cuanto menos ambiguo es un lenguaje de
programación, se dice, es más potente. Bajo
esta premisa, y en el extremo, el lenguaje más
potente existente es el binario, con
ambigüedad nula (lo cual lleva a pensar así
del lenguaje ensamblador).
En los lenguajes de programación de alto nivel
se distinguen diversos elementos entre los
que se incluyen el léxico propio del lenguaje y
las reglas semánticas y sintácticas.
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)
Programación declarativa
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).
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, tras lo cual
la codificación (programación propiamente dicha) debería resultar inmediata.
Implantar (instalar) el programa. Consiste en poner el programa en
funcionamiento junto con los componentes que pueda necesitar (bases de datos,
redes de comunicaciones, etc.)
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 practican.
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 clases". En C++,
la expresión "C++" significa "incremento de
C" y se refiere a que C++ es una extensión
de C.
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.
Tamaños asociados
Según la máquina y el compilador que se utilice los tipos primitivos pueden
ocupar un determinado tamaño en memoria. La siguiente lista ilustra el
número de bits que ocupan los distintos tipos primitivos en la
arquitectura x86.
Otras arquitecturas pueden requerir distintos tamaños de tipos de datos
primitivos. C++ no dice nada acerca de cuál es el número de bits en un byte,
ni del tamaño de estos tipos; más bien, ofrece solamente las siguientes
"garantías de tipos":
•De acuerdo al estándar C99, un tipo char debe ocupar exactamente
un byte compuesto de un mínimo de 8 bits independientemente de la
arquitectura de la máquina.
•El tamaño reconocido de char es de 1. Es decir, sizeof(char) siempre
devuelve 1.
•Un tipo short tiene al menos el mismo tamaño que un tipo char.
•Un tipo long tiene al menos el doble tamaño en bytes que un tipo short.
•Un tipo int tiene un tamaño entre el de short y el de long, ambos inclusive,
preferentemente el tamaño de un apuntador de memoria de la máquina.
•Un tipo unsigned tiene el mismo tamaño que su versión signed.
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
El concepto de clase
Véase también: Clase (informática)
Los objetos en C++ son abstraídos
mediante una clase. Según el paradigma
de la programación orientada a objetos un
objeto consta de:
Identidad, que lo diferencía de otros
objetos (Nombre que llevara la clase a la
que pertenece dicho objeto).
Métodos o funciones miembro
Atributos o variables miembro
Un ejemplo de clase que podemos tomar
es la clase perro. Cada perro comparte
unas características (atributos). Su número
de patas, el color de su pelaje o su tamaño
son algunos de sus atributos. Las
funciones que lo hagan ladrar, cambiar su
comportamiento... esas son las funciones
de la clase.
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
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 que vive en
heap se realiza a través del operador delete o delete[]
para arreglos.
Digramas progr lengu mendez
Digramas progr lengu mendez

Weitere ähnliche Inhalte

Was ist angesagt?

Presentacion De Programacion
Presentacion De ProgramacionPresentacion De Programacion
Presentacion De ProgramacionDario Fernando
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.guestdf1874
 
Principios básicos de la informatica
Principios básicos de la informaticaPrincipios básicos de la informatica
Principios básicos de la informaticaJorge Alberto
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosnileyna
 
Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónTensor
 
Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGabriel Méndez
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmascritina26
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasdianis22
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasCAMINSUASTY
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmasmauro38
 

Was ist angesagt? (19)

Programación
ProgramaciónProgramación
Programación
 
Presentacion De Programacion
Presentacion De ProgramacionPresentacion De Programacion
Presentacion De Programacion
 
Programcion
ProgramcionProgramcion
Programcion
 
Introducción a la Programación.
Introducción a la Programación.Introducción a la Programación.
Introducción a la Programación.
 
Principios básicos de la informatica
Principios básicos de la informaticaPrincipios básicos de la informatica
Principios básicos de la informatica
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Fundamentos y Lógica de Programación
Fundamentos y Lógica de ProgramaciónFundamentos y Lógica de Programación
Fundamentos y Lógica de Programación
 
Programeichon de milagro
Programeichon de milagroProgrameichon de milagro
Programeichon de milagro
 
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
 
Glosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programasGlosario de conceptos de la creación de los programas
Glosario de conceptos de la creación de los programas
 
Diagrama hipo
Diagrama hipoDiagrama hipo
Diagrama hipo
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 
Principios de paradigmas
Principios de paradigmasPrincipios de paradigmas
Principios de paradigmas
 

Ähnlich wie Digramas progr lengu mendez

Diagrama de flujo y programacion
Diagrama de flujo y programacionDiagrama de flujo y programacion
Diagrama de flujo y programacionCriss Russo
 
Miguel guillen 4to b
Miguel guillen 4to bMiguel guillen 4to b
Miguel guillen 4to bangelordx
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informaticajackitor16
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informaticajackitor16
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informaticajackitor16
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informaticajackitor16
 
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
 
Descripción de un Algoritmo
Descripción de un AlgoritmoDescripción de un Algoritmo
Descripción de un AlgoritmoOGEA UPS
 
Introduccion a la informacion
Introduccion a la informacionIntroduccion a la informacion
Introduccion a la informacionPeter Mtz
 
3ra evaluacion, presentacion
3ra evaluacion, presentacion3ra evaluacion, presentacion
3ra evaluacion, presentacionfabiana733179
 
Programación EN INFORMATICA 3-4
Programación EN INFORMATICA 3-4Programación EN INFORMATICA 3-4
Programación EN INFORMATICA 3-4Carito Paz
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programazeta2015
 
Metodos calcular raices
Metodos calcular raicesMetodos calcular raices
Metodos calcular raicesnanaperdomo
 

Ähnlich wie Digramas progr lengu mendez (20)

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
 
Miguel guillen 4to b
Miguel guillen 4to bMiguel guillen 4to b
Miguel guillen 4to b
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
Jacky informatica
Jacky informaticaJacky informatica
Jacky informatica
 
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
 
Descripción de un Algoritmo
Descripción de un AlgoritmoDescripción de un Algoritmo
Descripción de un Algoritmo
 
Diagrama de flujo
Diagrama de flujoDiagrama de flujo
Diagrama de flujo
 
Introduccion a la informacion
Introduccion a la informacionIntroduccion a la informacion
Introduccion a la informacion
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Informatica
InformaticaInformatica
Informatica
 
3ra evaluacion, presentacion
3ra evaluacion, presentacion3ra evaluacion, presentacion
3ra evaluacion, presentacion
 
Programación EN INFORMATICA 3-4
Programación EN INFORMATICA 3-4Programación EN INFORMATICA 3-4
Programación EN INFORMATICA 3-4
 
Etapas del desarrolo de un programa
Etapas del desarrolo de un programaEtapas del desarrolo de un programa
Etapas del desarrolo de un programa
 
Programacion
ProgramacionProgramacion
Programacion
 
Metodos calcular raices
Metodos calcular raicesMetodos calcular raices
Metodos calcular raices
 
Passage
PassagePassage
Passage
 

Digramas progr lengu mendez

  • 2. es la representación gráfica del algoritmo o proceso. Se utiliza en disciplinas como la programación, la economía, los procesos industriales y la psicología cognitiva. Estos diagramas utilizan símbolos con significados bien definidos que representan los pasos del algoritmo, y representan el flujo de ejecución mediante flechas que conectan los puntos de inicio y de fin de proceso.
  • 3. 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.
  • 4. 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. Si el nivel de detalle definido incluye actividades menores, listarlas también. Identificar y listar los puntos de decisión. Construir el diagrama respetando la secuencia cronológica y asignando los correspondientes símbolos. Asignar un título al diagrama y verificar que esté completo y describa con exactitud el proceso elegido.
  • 5. 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 en un ordenador, con un Ide como Free DFD.
  • 6. 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 descriptivo, mientras que los utilizados son fundamentalmente representativos.
  • 7. 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).
  • 8. Simbología y normas del cursograma 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. Cruz de Diagonales: Destrucción de Formularios.
  • 9.
  • 10.
  • 11. 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.
  • 12. 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. Una vez que se termina de escribir un programa, sea en ensamblador o en un lenguaje de alto nivel, es necesario compilarlo, es decir, traducirlo a lenguaje máquina.
  • 13. Léxico y programación La programación se rige por reglas y un conjunto más o menos reducido de órdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad. Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente. Bajo esta premisa, y en el extremo, el lenguaje más potente existente es el binario, con ambigüedad nula (lo cual lleva a pensar así del lenguaje ensamblador). En los lenguajes de programación de alto nivel se distinguen diversos elementos entre los que se incluyen el léxico propio del lenguaje y las reglas semánticas y sintácticas.
  • 14. 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) Programación declarativa
  • 15. 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).
  • 16. 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, tras lo cual la codificación (programación propiamente dicha) debería resultar inmediata. Implantar (instalar) el programa. Consiste en poner el programa en funcionamiento junto con los componentes que pueda necesitar (bases de datos, redes de comunicaciones, etc.)
  • 17. 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 practican.
  • 18.
  • 19.
  • 20. 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.
  • 21. 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 clases". En C++, la expresión "C++" significa "incremento de C" y se refiere a que C++ es una extensión de C.
  • 22. 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.
  • 23. Tamaños asociados Según la máquina y el compilador que se utilice los tipos primitivos pueden ocupar un determinado tamaño en memoria. La siguiente lista ilustra el número de bits que ocupan los distintos tipos primitivos en la arquitectura x86. Otras arquitecturas pueden requerir distintos tamaños de tipos de datos primitivos. C++ no dice nada acerca de cuál es el número de bits en un byte, ni del tamaño de estos tipos; más bien, ofrece solamente las siguientes "garantías de tipos": •De acuerdo al estándar C99, un tipo char debe ocupar exactamente un byte compuesto de un mínimo de 8 bits independientemente de la arquitectura de la máquina. •El tamaño reconocido de char es de 1. Es decir, sizeof(char) siempre devuelve 1. •Un tipo short tiene al menos el mismo tamaño que un tipo char. •Un tipo long tiene al menos el doble tamaño en bytes que un tipo short. •Un tipo int tiene un tamaño entre el de short y el de long, ambos inclusive, preferentemente el tamaño de un apuntador de memoria de la máquina. •Un tipo unsigned tiene el mismo tamaño que su versión signed.
  • 24. 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
  • 25. El concepto de clase Véase también: Clase (informática) Los objetos en C++ son abstraídos mediante una clase. Según el paradigma de la programación orientada a objetos un objeto consta de: Identidad, que lo diferencía de otros objetos (Nombre que llevara la clase a la que pertenece dicho objeto). Métodos o funciones miembro Atributos o variables miembro Un ejemplo de clase que podemos tomar es la clase perro. Cada perro comparte unas características (atributos). Su número de patas, el color de su pelaje o su tamaño son algunos de sus atributos. Las funciones que lo hagan ladrar, cambiar su comportamiento... esas son las funciones de la clase.
  • 26. 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.
  • 27. 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 que vive en heap se realiza a través del operador delete o delete[] para arreglos.