Concepto de la programacion.
En un sentido general, un programa es aquello que se planifica con la intención de ejecutarlo con posterioridad. Se utiliza el término en todas aquellas actividades en las que se requiera de una organización previa (un plan de vacaciones o de estudios, una estrategia empresarial, una propuesta de carácter político, una planificación para el entrenamiento físico...). En general, un programa es una síntesis explicativa de algo
Algunos se elaboran de manera rigurosa y sistemática (por ejemplo, aquellos que tienen que ver con el mundo empresarial) y otros son un breve resumen donde se ponen de relieve algunas pautas.
En cualquier caso, su desarrollo tiene un objetivo doble: prever una situación con anticipación e informar a los demás sobre algo. En español, existen varias palabras que actúan como sinónimos, tales como plan, proyecto, esquema, borrador o planteamiento. En los últimos años se ha acuñado un concepto equivalente, hoja de ruta.
La figura del programador va más allá de la computación

Todo programa tiene que ser diseñado por una persona o un equipo, es decir, por alguien que tenga la capacidad de organizar algo de manera eficaz. Así, quien programa es normalmente un experto en una materia. Si bien la palabra programador se utiliza en el ámbito de la informática y se refiere al técnico que organiza las instrucciones relacionadas con la computación, en la práctica hay " programadores " en todos los ámbitos, pues un entrenador deportivo, un profesor, un productor de cine o un cocinero son igualmente organizadores de sus respectivas actividades.
El cerebro como programa y la desprogramación mental
Nuestro cerebro actúa como un programa informático. Así, hay unas instrucciones y códigos biológicos con los que nacemos y con el aprendizaje y los hábitos de comportamiento vamos incorporando nuevas estrategias que nos permiten adaptarnos a la realidad. Los neurocientíficos sostienen que estamos programados para vivir en sociedad, para enamorarnos, para realizar ejercicio o para manipular la realidad que nos rodea.
Fases de resolución de problemas:
1. Identificar el problema. La solución de problemas y toma de decisiones comienza reconociendo que hay una situación que quiere solucionarse. Muchas veces un problema crece hasta que nos sorprende.
2. Describir el problema. En esta etapa es necesario recabar información para poder describir el problema de la manera más correcta y veraz, ayudado por técnicas como: análisis de datos, intercambio de ideas, análisis del campo de fuerza o análisis de la palabra clave.
3. Analizar la causa. Aquí se busca la causa original del problema. Identificar las fuerzas que contribuyen a que el problema empeore, clasificará entre las posibles causas y eliminará los efectos derivados de las mismas.
4. Soluciones opcionales. Su objetivo es completar una lista de alternativas concebibles. Lo que se busca son estrategias que se dirijan hacia la causa original y resuelvan el problema de una vez por todas.
5. Toma de decisiones. Es eliminar las peores alternativas y comparar las restantes unas con otras. El objetivo es encontrar una solución correcta utilizando un proceso práctico y científico. Tal vez exista una decisión correcta que, sin embargo, no funcionará a menos que todos los implicados la acepten.
6. Plan de acción. La mejor solución concebible y con la que todo mundo esté de acuerdo no resolverá ningún problema si no se pone en acción. En un plan de acción se detalla quién hará qué cosa y cuándo. Organiza las tareas a través de las cuales se implementará la decisión.
Por lo anterior, descrito podemos observar, que este método para la solución de problemas nos lleva desde encontrar la causa-raíz del problema hasta la eliminación del mismo, pero sobre todo con una conjunta acción del personal que integra un Centro de Reparación Automotriz. Creando trabajo en equipo y apoyando la mejora continua del lugar.
Análisis del problema informático
Cuando un usuario plantea a un programador un problema que resolver mediante su ordenador, por lo general ese usuario tendrá conocimientos más o menos amplios sobre el dominio del problema, pero no es habitual que tenga conocimientos de informática. Por ejemplo, un contable que necesita un programa para llevar la contabilidad de una empresa será un experto en contabilidad (dominio del problema), pero no tiene por qué ser experto en programación.
Del mismo modo, el informático que va a resolver un determinado problema puede ser un experto programador, pero en principio no tiene por qué conocer el dominio del problema; siguiendo el ejemplo anterior, el informático que hace un programa no tiene por qué ser un experto en contabilidad
Por ello, al abordar un problema que se quiere resolver mediante un ordenador, el programador e informático necesita de la experiencia del experto del dominio para entender el problema. Al final, si se quiere llegar a una solución satisfactoria es necesario que:
- El problema esté bien definido con el máximo detalle
- Las especificaciones de las entradas y salidas del problema, deben ser descritas también en detalle:
- ¿Qué datos son necesarios para resolver el problema?
- ¿Qué información debe proporcionar la resolución del problema?
Resolución de problemas de programación
La 'resolución de un problema' mediante un ordenador consiste en el proceso que a partir de la descripción de un problema, expresado habitualmente en lenguaje natural y en términos propios del dominio del problema, permite desarrollar un programa que resuelva dicho problema.
Este proceso exige los siguientes pasos:
- Análisis del problema.
- Diseño o desarrollo de un algoritmo.
- Transformación del algoritmo en un programa (codificación).
- Ejecución y validación del programa...
Los dos primeros pasos son los más difíciles del proceso. Una vez analizado el problema y obtenido un algoritmo que lo resuelva, su transformación a un programa de ordenador es una tarea de mera traducción al lenguaje de programación deseado.
Programación modular:
La programación modular es un paradigma de programación que consiste en dividir un programa en módulos o subprogramas con el fin de hacerlo más legible y manejable.
Se presenta históricamente como una evolución de la programación estructurada para solucionar problemas de programación más grandes y complejos de lo que esta puede resolver.

Al aplicar la programación modular, un problema complejo debe ser dividido en varios subproblemas más simples, y estos a su vez en otros subproblemas más simples. Esto debe hacerse hasta obtener subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con algún lenguaje de programación. Esta técnica se llama refinamiento sucesivo, divide y vencerás o análisis descendente (Top-Down).
Un 'módulo' es cada una de las partes de un programa que resuelve uno de los subproblemas en que se divide el problema complejo original. Cada uno de estos módulos tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de comunicación que también debe estar bien definida.

Si bien un módulo puede entenderse como una parte de un programa en cualquiera de sus formas y variados contextos, en la práctica se los suele tomar como sinónimos de procedimientos y funciones. Pero no necesaria ni estrictamente un módulo es una función o un procedimiento, ya que el mismo puede contener muchos de ellos. No debe confundirse el término "módulo" (en el sentido de programación modular) con términos como "función" o "procedimiento", propios del lenguaje que lo soporte.
¿Qué es la programación modular?
Los avances en la programación de computadoras han permitido crear hermosas y grandes aplicaciones, que no se pueden comparar a los primeros programas que se creaban en los años 1960’s y 1970’s. Sin embargo, las aplicaciones modernas requieren un mayor esfuerzo para ser desarrolladas y no es factible que una persona se encargue de todo el proceso, desde su concepción, análisis, desarrollo, implementación y puesta en marcha. Por ello, las empresas que se dedican al desarrollo de software trabajan en base a equipos de desarrollo, en donde a cada integrante se le asigna una etapa del proceso. A su vez, el equipo de desarrollo se compone de varios programadores que reciben los requisitos del sistema y trabajan en conjunto para implementarlo. Esto implica que la tarea de programación se distribuye a través de varios programadores.
Este paradigma parte del principio “divide y vencerás”, pues resulta más fácil resolver un problema complejo cuando se divide en partes manejables. Simplemente consiste en descomponer un problema complejo o grande en partes más pequeñas. Estas partes pequeñas reciben diferentes nombres como módulos, subprogramas, funciones, procedimientos y/o métodos. De forma general las llamaremos módulos y de manera específica orientada al lenguaje Java las llamaremos métodos.
Ventajas de la programación modular.
Las ventajas de la programación modular son:
- Reducir la complejidad del problema
- Reducir el tamaño del problema
- Favorecer el entendimiento del problema
- Facilitar la cooperación entre programadores
- Reutilizar código.
- Facilitan la lectura del código.
- Ayuda a ser más clara la lógica del programa [Julien Hennefeld]
- Protege contra efectos colaterales (destrucción accidental de datos de programa) [Julien Hennefeld]
- Permite plantear una solución completa del problema, para luego profundizar en los detalles.
- La depuración es más fácil de realizar ya que primero se corrigen errores en los módulos de nivel inferior.
Estrategias de programación
Para entender las estrategias del paradigma de la programación modular, debemos conocer un poco sobre los inicios de la programación.
La Programación Orientada a Objetos (POO, en español; OOP, según sus siglas en inglés) es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial.
Muchos de los objetos prediseñados de los lenguajes de programación actuales permiten la agrupación en bibliotecas o librerías, sin embargo, muchos de estos lenguajes permiten al usuario la creación de sus propias bibliotecas.
Está basada en varias técnicas del sexenio: herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento.
Su uso se popularizó a principios de la década de 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
Conceptos y características de algoritmos
domingo 24 tomas y Jefferson
¿Qué es un Algoritmo?
Se llama algoritmo a un conjunto ordenado y estructurado de instrucciones, pasos lógicos o reglas predefinidas, finitas y jerarquizadas, cuyos pasos sucesivos permiten llevar a cabo una tarea o resolver un problema, efectuando la toma de decisiones pertinente sin dudas ni ambigüedades
Los algoritmos son esquemas de pensamiento muy utilizados en la vida cotidiana. Algunos ejemplos son los manuales de usuario paso por paso o las guías operativas del software utilizadas en la programación y la computación como guías.
Sin embargo, no existe consenso respecto a una definición formal de lo que es. Esto no ha impedido su uso en las matemáticas desde tiempos inmemoriales hasta hoy.
Medios de expresión de un algoritmo
Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones son formas más estructuradas para representar algoritmos; no obstante, se mantienen independientes de un lenguaje de programación específico.
La descripción de un algoritmo usualmente se hace en tres niveles:
- Descripción de alto nivel. Se establece el problema, se selecciona un modelo matemático y se explica el algoritmo de manera verbal, posiblemente con ilustraciones y omitiendo detalles.
- Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que encuentran la solución.
- Implementación. Se muestra el algoritmo expresado en un lenguaje de programación específico o algún objeto capaz de llevar a cabo instrucciones.
También es posible incluir un teorema que demuestre que el algoritmo es correcto, un análisis de complejidad o ambos.
Pseudocodigo
El pseudocódigo (falso lenguaje, el prefijo pseudo significa falso) es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje natural con algunas convenciones sintácticas propias de lenguajes de programación, como asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar.
El pseudocódigo está pensado para facilitar a las personas el entendimiento de un algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una implementación. Programadores diferentes suelen utilizar convenciones distintas, que pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo, el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un entorno de programación específico, y es a la vez suficientemente estructurado para que su implementación se pueda hacer directamente a partir de él.
Así el pseudocódigo cumple con las funciones antes mencionadas para representar algo abstracto los protocolos son los lenguajes para la programación. Busque fuentes más precisas para tener mayor comprensión del tema.
Escritura de algoritmo
Un Algoritmo es una serie ordenada de instrucciones, pasos o procesos que llevan a la solución de un determinado problema. Los hay tan sencillos y cotidianos como seguir la receta del médico, abrir una puerta, lavarse las manos, etc; hasta los que conducen a la solución de problemas muy complejos
COMJUNTO DE CARACTERES
Todo método formal para la escritura de algoritmo necesita un conjunto de caracteres a partir de los cuales se exprese; En esta parte del mundo usamos los caracteres establecidos en la tabla de caracteres ASCII estándar (128 caracteres );
Caracteres alfabéticos (52 caracteres), todos son del idioma ingles:
ABCDEFGHIJKLMNOPQRSTUVWXYZ
Abcdefghijklmnopqrstuvwxyz
Dígitos decimales (10 caracteres)
0123456789
Caracteres especiales o de puntuación (32 caracteres)
!" # $ % & '( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
Caracteres de control (34 caracteres)
NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US SP DEL
Poner énfasis en los caracteres LF y CR porque lo usaremos mucho más adelante. Para su explicación se puede recurrir al funcionamiento de una "maquinilla" de escribir de los años 70.
La numeración de los caracteres se deja para explicar más adelante en el tema 5.4 del programa;
IDENTIFICADOR
Secuencia de caracteres alfabéticos (A...Z, a...z) y/o dígitos (0,1,...,9) y/o el carácter de subrayado ( _ ), que siempre deberá iniciar con un carácter alfabético.
#include<stdlib.h>
using namespace std;
int main(){
int n,suma=0,factorial=1;
cout<<"Digite el total de elementos a sumar: ";
cin>>n;
for(int i=1;i<=n;i++){
factorial *= i; //primero sacamos los factoriales
suma +=factorial; //luego los sumamos
}
cout<<"\nLa suma de factoriales es: "<<suma<<endl;
system("pause");
return 0;
}
Característica de un buen identificador:
Es descriptivo y asociativo, esto es, con sólo verlo sabemos lo que representa;
Uso de los identificadores:
Para nombrar elementos de trabajo en un algoritmo; No es posible implementar un sistema de procesamiento de información sin el uso de identificadores.
Ejemplos
válidos
SalarioSemanal
volumen_2
K
C
INC
No válidos
metro#4
%Tasa
e-mail@
[web
Xpeso$
LITERALES
Un literal es una secuencia de caracteres cuyo significado es explícitamente evidente y constante, esto es, no cambia mientras se desarrolla el algoritmo. Ejemplo de literales son: 123.4, 'F', "Estamos en inf-206 con ferreiras", - 0.045, true, 7431;
Otros nombres de los literales son "constantes explícitas" o "constantes manifiestas";
Todos los lenguajes formales de programación tiene sus propios tipos de literales;
Cada literal tiene un valor y un tipo de dato; El valor debe de estar dentro del rango establecido por el tipo; ( Ver más adelante en datos y tipos de tados );
Un literal no es un identificador, pero si puede tener un identificador asociado a él que lo representa.
Tipos de literales:
1) Numéricos
Secuencia de dígitos con o sin el carácter punto (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
Tipos de literales:
1) Numéricos
Secuencia de dígitos con o sin el carácter punto (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
a) Enteros
+-ddddddddd
Secuencia de dígitos sin el carácter punto (.) y sin el caracter coma (,), con o sin signo positivo o negativo; Si no tiene signo se asume que es positivo; Y, no escrito en notación exponencial.
Ejemplos:
123, -34, 100000000000
b) Reales
Secuencia de dígitos con el carácter punto decimal (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
Puede ser:
b.1.) Real de punto fijo
[+-]dddddd.ddddddd
Por ejemplo: 1.23, 3.4505, -0.00000456
b.2.) Real de punto flotante en notación exponencial normalizada
[+-]0.ddddddddd[Ee]+-ddd
Por ejemplo:
0.123E+12, 0.456e-23, -0.5637E+1235
Un literal es una secuencia de caracteres cuyo significado es explícitamente evidente y constante, esto es, no cambia mientras se desarrolla el algoritmo. Ejemplo de literales son: 123.4, 'F', "Estamos en inf-206 con ferreiras", - 0.045, true, 7431;
Otros nombres de los literales son "constantes explícitas" o "constantes manifiestas";
Todos los lenguajes formales de programación tiene sus propios tipos de literales;
Cada literal tiene un valor y un tipo de dato; El valor debe de estar dentro del rango establecido por el tipo; ( Ver más adelante en datos y tipos de tados );
Un literal no es un identificador, pero si puede tener un identificador asociado a él que lo representa.
Tipos de literales:
1) Numéricos
Secuencia de dígitos con o sin el carácter punto (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
Tipos de literales:
1) Numéricos
Secuencia de dígitos con o sin el carácter punto (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
a) Enteros
+-ddddddddd
Secuencia de dígitos sin el carácter punto (.) y sin el caracter coma (,), con o sin signo positivo o negativo; Si no tiene signo se asume que es positivo; Y, no escrito en notación exponencial.
Ejemplos:
123, -34, 100000000000
b) Reales
Secuencia de dígitos con el carácter punto decimal (.), sin el carácter coma (,) y con o sin signo positivo o negativo. Si no tiene signo se asume que es positivo;
Puede ser:
b.1.) Real de punto fijo
[+-]dddddd.ddddddd
Por ejemplo: 1.23, 3.4505, -0.00000456
b.2.) Real de punto flotante en notación exponencial normalizada
[+-]0.ddddddddd[Ee]+-ddd
Por ejemplo:
0.123E+12, 0.456e-23, -0.5637E+1235
EJERCICIOS DE CONVERSIÓN:
Convertir de notación científica
[+-]dddddX10[+-]dddd , a notación exponencial normalizada. La primera notación les debió hacer sido mostrada en sus estudios de bachillerato;
2) Carácter
Representa un carácter y se escribe en comillas simples; Ejemplo: 'F' , 'B', '@'
3) Cadena
Secuencia de caracteres encerrados entre comillas dobles; Ejemplo:
"Estamos en el tema 03 de inf-206"
4) Booleano: false ó true
Es un literal que tiene uno dos valores, esto es, o true (verdadero) o false (falso), escritos tal cual, esto es, ni entre comillas simples, ni entre comillas dobles.
Convertir de notación científica
[+-]dddddX10[+-]dddd , a notación exponencial normalizada. La primera notación les debió hacer sido mostrada en sus estudios de bachillerato;
2) Carácter
Representa un carácter y se escribe en comillas simples; Ejemplo: 'F' , 'B', '@'
3) Cadena
Secuencia de caracteres encerrados entre comillas dobles; Ejemplo:
"Estamos en el tema 03 de inf-206"
4) Booleano: false ó true
Es un literal que tiene uno dos valores, esto es, o true (verdadero) o false (falso), escritos tal cual, esto es, ni entre comillas simples, ni entre comillas dobles.
Representación gráfica de algoritmos
Las herramientas de programación utilizadas como lenguajes algorítmicos son:
· Pseudocódigo: es un lenguaje algorítmico, muy parecido al español pero más conciso que permite la redacción rápida del algoritmo.
· Diagramas de flujo: ha sido la herramienta de programación por excelencia, y aún hoy sigue siendo muy utilizada. Es fácil de diseñar pues el flujo lógico del algoritmo se muestra en un diagrama en lugar de palabras.
Es un lenguaje de pseudoprogramación, muy parecido a un lenguaje de programación. El pseudocódigo es muy fácil de utilizar, ya que es muy similar al español. Algunas palabras utilizadas en el pseudocódigo:
– Inicio
– Fin
– Leer
– Escribir
– Asignar (x← y+z)
Ejemplo Programa Calculo Área Rectángulo
1. Inicio
2. Leer; base, altura3. Área ← base x altura
4. Escribir; base, altura, área
5. Fin
Para desarrolar un pseudocodigo se necesita saber los tipos de datos que se deben tener :
entero: Subconjunto finito de los números enteros, cuyo rango dependerá del lenguaje en el que posteriormente codifiquemos el algoritmo y del ordenador.
El rango depende de cuantos bits utilice para codificar el numero, normalmente 2 byes.Para numeros positivos, con 16 se pueden almacenar 216
real: Subconjunto de los números reales limitado no sólo en cuanto al tamaño, sino también en cuanto a la precisión
Lógico: Conjunto formado por los valores Cierto y Falso. ‘1’ y ‘0’.
Carácter: Conjunto finito y ordenado de los caracteres que el Ordenador
Diagramas
Un diagrama de flujo utiliza símbolos estándar en el que cada paso del algoritmo se visualiza dentro del símbolo y en el orden en que estos pasos se ejecutan, se indica conectándolos con flechas llamadas líneas de flujo, ya que indican el flujo lógico del algoritmo.
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.
Pseudocódigo
En ciencias de la computación, y análisis numérico, el pseudocódigo1 (o lenguaje de descripción algorítmico) es una descripción de alto nivel compacta e informal2 del principio operativo de un programa informático u otro algoritmo.
Utiliza las convenciones estructurales de un lenguaje de programación real,3 pero está diseñado para la lectura humana en lugar de la lectura mediante máquina4, y con independencia de cualquier otro lenguaje de programación5. Normalmente, el pseudocódigo omite detalles que no son esenciales para la comprensión humana del algoritmo, tales como declaraciones de variables, código específico del sistema y algunas subrutinas. El lenguaje de programación se complementa, donde sea conveniente, con descripciones detalladas en lenguaje natural, o con notación matemática compacta. Se utiliza pseudocódigo pues este es más fácil de entender para las personas que el código del lenguaje de programación convencional, ya que es una descripción eficiente y con un entorno independiente de los principios fundamentales de un algoritmo. Se utiliza comúnmente en los libros de texto y publicaciones científicas que se documentan varios algoritmos, y también en la planificación del desarrollo de programas informáticos, para esbozar la estructura del programa antes de realizar la efectiva codificación.Es comúnmente utilizado por los programadores para omitir secciones de Código o para dar una explicación del paradigma que tomó el mismo programador para hacer sus códigos, esto quiere decir que el pseudocódigo no es programable sino facilita la programación.
El principal objetivo del pseudocódigo es el de representar la solución a un algoritmo de la forma más detallada posible, y a su vez lo más parecida posible al lenguaje que posteriormente se utilizará para la codificación del mismo.
No existe una sintaxis estándar para el pseudocódigo, aunque los ocho IDE's que manejan pseudocódigo tengan su sintaxis propia. Aunque sea parecido, el pseudocódigo no debe confundirse con los programas esqueleto que incluyen código ficticio, que pueden ser compilados sin errores. Los diagramas de flujo y UML pueden ser considerados como una alternativa gráfica al pseudocódigo, aunque sean más amplios en papel.
Funciones y operaciones
Cada autor usa su propio pseudocódigo con sus respectivas convenciones. Por ejemplo, la instrucción "reemplace el valor de la variable por el valor de la variable " puede ser representado como:
- asigne a el valor de
Las operaciones aritméticas se representan de la forma usual en matemáticas.
#include<iostream>
#include<conio.h>
using namespace std;
int main(){
float temperatura,suma_temperatura=0,temperatura_media;
float temperatura_alta=0,temperatura_baja=999;
for(int i=0;i<24;i+=4){ //vamos aumentando de 4 en 4 horas
cout<<"Digite la temperatura a las "<<i<<": ";
cin>>temperatura;
suma_temperatura += temperatura;
if(temperatura > temperatura_alta){
temperatura_alta = temperatura;
}
if(temperatura < temperatura_baja){
temperatura_baja = temperatura;
}
}
temperatura_media = suma_temperatura / 6; //entre 6 porque son 6 temperaturas al dia
cout<<"\nLa temperatura media del dia es: "<<temperatura_media<<endl;
cout<<"La temperatura mas alta es: "<<temperatura_alta<<endl;
cout<<"La temperatura mas baja es: "<<temperatura_baja<<endl;
getch();
return 0;
}
Diagrama de Flujos
El diagrama de flujo o flujograma o diagrama de actividades es la representación gráfica de un algoritmo o proceso. Se utiliza en disciplinas como programación, economía, procesos industriales y psicología cognitiva.
En Lenguaje Unificado de Modelado (UML), es un diagrama de actividades que representa los flujos de trabajo paso a paso. Un diagrama de actividades muestra el flujo de control general.
En SysML el diagrama ha sido extendido para indicar flujos entre pasos que mueven elementos físicos (p. ej., gasolina) o energía (p. ej., presión). Los cambios adicionales permiten al diagrama soportar mejor flujos de comportamiento y datos continuos.
Estos diagramas utilizan símbolos con significados 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 del proceso.
Normas de trabajo
Las siguientes son acciones previas a la realización del diagrama de flujo:
- 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
Descripción
En UML 1.x, un diagrama de actividades es una variación del diagrama de estado UNL donde los "estados" representan operaciones, y las transiciones representan las actividades que ocurren cuando la operación se termina.
El diagrama de mensajes de UML 2.0, mientras que es similar en aspecto al diagrama de actividades UML 1.x, ahora tiene semánticas basadas en redes de Petri. En UML 2.0, el diagrama general de interacción está basado en el diagrama de actividades. El diagrama de actividad es una forma especial de diagrama de estado usado para modelar una secuencia de acciones y condiciones tomadas dentro de un proceso.
La especificación del Lenguaje de Notificación Unificado (UNL) define un diagrama de actividad como:
“… una variación de los estados de una máquina, los cuales representan el rendimiento de las acciones o subactividades y las transiciones se provocan por la realización de las acciones o subactividades.”1
El propósito del diagrama de actividad es modelar un proceso de flujo de trabajo (workflow) y/o modelar operaciones.
Una Operación es un servicio proporcionado por un objeto, que está disponible a través de una interfaz.
Una Interfaz es un grupo de operaciones relacionadas con la semántica.
Tipos de diagramas de flujo
- Formato vertical: en él, el flujo y 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, aun 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.
- Diagrama de bloques de modelo matemático: es utilizado para representar sistemas físicos (reales). Cada uno de los bloques que componen el sistema físico es generalmente una simplificación de la realidad, lo que permite un tratamiento matemático razonable.
- Diagrama de bloques de procesos de producción: es un diagrama utilizado para indicar la manera en la que se elabora un producto, especificando la materia prima, la cantidad de procesos que se llevan a cabo y la forma en la que se representa el producto terminado.
Diagrama Nassi-Shneiderman
En programación de computadores un diagrama Nassi-Shneiderman (o NSD por sus siglas en inglés), también conocido como diagrama de Chapin12 es una representación gráfica que muestra el diseño de un programa estructurado. 3
Fue desarrollado en 1972 por Isaac Nassi y Ben Shneiderman. Este diagrama también es conocido como estructograma, ya que sirve para representar la estructura de los programas. Combina la descripción textual del pseudocódigo con la representación gráfica del diagrama de flujo.
Descripción
Basado en un diseño top-down (de lo complejo a lo simple), el problema que se debe resolver se divide en subproblemas cada vez más pequeños - y simples - hasta que solo queden instrucciones simples y construcciones para el control de flujo. El diagrama Nassi-Shneiderman refleja la descomposición del problema en una forma simple usando cajas anidadas para representar cada uno de los subproblemas. Para mantener una consistencia con los fundamentos de la programación estructurada, los diagramas Nassi-Shneiderman no tienen representación para las instrucciones GOTO.
Los diagramas Nassi-Shneiderman se utilizan muy raramente en las tareas de programación analítica. Su nivel de abstracción es muy cercano al código de la programación estructurada y ciertas modificaciones requieren que se redibuje todo el diagrama. .4
Los diagramas Nassi-Shneiderman son (la mayoría de las veces) isomórficos con los diagramas de flujo. Todo lo que se puede representar con un diagrama Nassi-Shneiderman se puede representar con un diagrama de flujo. Las únicas excepciones se dan en las instrucciones GOTO, break y continue.
Tipos de diagramas
Bloques de procesos El bloque de proceso representa el paso mas simple y no requiere ningún análisis específico.Cuando un bloque de proceso es encontrado, la acción dentro del bloque se realiza, y pasamos directamente al siguiente bloque
Bloques ramificados hay dos tipos de estos bloques. El primero y más sencillo de ellos es el bloque verdadero-falso el cual ofrece al programa dos caminos para tomar, dependiendo de si una determinada condición ha sido especificada. Estos bloques pueden ser usados como bucles que detienen el programahasta que una determinada condición se cumpla.



Comentarios
Publicar un comentario