# data[].attributes.body
Un problema computacional  es una serie de hechos o circunstancias que dificultan la consecución de un determinado objetivo. si Este problema debe resolverse para lograr el objetivo.

# data[].attributes.body
Un dato es la mínima unidad de información representada de manera simbólica (numérica, alfabética,
algorítmica, espacial, etc.) de un atributo o variable cuantitativa o cualitativa.

# data[].attributes.body
Fases de un algoritmo
1- Definición de variables
2- Inicialización de variables
3- Lectura de datos
4- Cálculos
5- Salida

# data[].attributes.headline
Describe cada una de las etapas presentes en la metodología de resolución de problemas computacionales:

# data[].attributes.subject
Describe cada una de las etapas presentes en la metodología de resolución de problemas computacionales:

# data[].attributes.body
1.- IDENTIFICACIÓN DEL PROBLEMA:
Es importante fijar con claridad, exactitud y precisión del problema que vamos a tratar. De este modo que
este paso es el más importante, dado que si no sabemos qué problema tenemos mucho menos sabremos
cómo resolverlo.
2.- ANALISIS DEL PROBLEMA: Identificado el problema tendremos, que estudiar, mediante técnicas informáticas, las características y las posibles soluciones del problema. Es ponernos del lado del
ordenador y realizarnos preguntas como:
 ¿Qué datos o resultados se esperan?
 ¿Son correctos los datos de entrada que he suministrado?
 ¿Es adecuado el procesamiento de esos datos?
3.- ELECCION DE LA MEJOR ALTERNATIVA: Una vez analizado el problema, seguramente
tendremos varias alternativas para poder solucionarlo, es aquí, donde según nuestra experiencia y juicio
debemos elegir la que produzca los resultados que esperamos en el menor tiempo y al mejor costo.
4.- DIAGRAMACIÓN: Es bien sabido que las cosas gráficas nos sirven para entender mejor las cosas y
para no perder cierta secuencia. En este caso particular no será la excepción. Haremos pues, un diagrama
de flujo, es decir, la representación gráfica de una secuencia lógica de pasos a cumplir por el computador para producir un resultado esperado.
Una vez elaborado el diagrama de flujo, podremos pasar dicha información a un lenguaje entendible por
nosotros, en palabras de nuestro idioma, como si platicáramos con la computadora. Esto es a lo que le
llamamos pseudocódigo.
5.- LA PRUEBA:
Y como todo, para saber si nuestro diagrama y/o pseudocódigo está funcionando correctamente, hay que
probarlo. Dicha prueba la conocemos como “Prueba de escritorio” la cual consiste en que damos diferentes datos de entrada al programa y seguimos la secuencia indicada en el diagrama, hasta obtener
los resultados deseados. Esta prueba nos permitirá realizar los ajustes que sean necesarios, o bien, validar que nuestro código es correcto.
6.- CODIFICACION Y TRANSCRIPCION:
Ya que hemos verificado y probado el programa, es entonces cuando viene la codificación y la transcripción, es decir, colocamos cada paso de nuestro diagrama de flujo en una instrucción o sentencia, utilizando un lenguaje que el computador reconoce. Se guarda en memoria para que la computadora pueda leerlo y entenderlo.
7.- COMPILACIÓN:
Este paso es la transformación a lenguaje máquina (el lenguaje que maneja la computadora) a partir de nuestro pseudocódigo o código fuente. El compilador realizará un análisis léxico, eliminando información
innecesaria del código fuente como son los espacios en blanco y comentarios. Después realizará un análisis
sintáctico haciendo un árbol de derivación, es decir, convierte el texto en otras estructuras (comúnmente
árboles) más útiles para el posterior análisis y para organizar la jerarquía implícita de la entrada.
8.- PRUEBAS EN EL ORDENADOR:
Normalmente los compiladores nos dan un archivo ejecutable, por ejemplo .exe en el caso de Windows, este programa ya está en lenguaje máquina y podemos ejecutarlo, haremos una prueba similar a la prueba
de escritorio. Analizando los posibles resultados, como son:
 La lógica del programa está bien, pero tiene errores sencillos. En este caso tendremos que corregirlo, bien modificando algunas instrucciones o añadiendo nuevas.
 Hay errores en la lógica del programa. De ser así, tendremos que regresar hasta nuestro diagrama de flujo para volver a analizarlo y hacer las correcciones pertinentes.
 Existen errores demasiado graves. Nos llevará mucho más atrás en nuestro programa, es decir, estaremos replanteando el problema y buscando nuevamente soluciones para continuar con los demás pasos.
 No hay errores y los resultados son los esperados. En hora buena, en este caso podemos guardar nuestro
programa en memoria y utilizarlo cuando lo necesitemos.
9.- DOCUMENTACION ADICIONAL:
Teniendo nuestro programa completo y correcto, es bueno guardar una copia de nuestro código fuente, y diagramas para la futura mejora o mantenimiento del mismo.

# data[].attributes.headline
¿Cuáles son los operadores que utilizamos en un algoritmo?

# data[].attributes.subject
¿Cuáles son los operadores que utilizamos en un algoritmo?

# data[].attributes.body
Operadores Aritméticos: permiten la realización de operaciones matemáticas con las variables y constantes.
+ - * / % (módulo)
Operadores Relacionales: se utilizan para establecer una relación entre dos valores.
Compara dos valores entre sí y produce un resultado verdadero o falso.
> < = >= <=
Operadores Lógicos: se utilizan para establecer relaciones entre valores lógicos. Estos valores son resultado
de una expresión relacional.
And, Or, Not, (a<b) and (b<c)

Ejemplo: Diagrama para calcular el mayor de dos números

# data[].attributes.headline
Define: Variable, Constante, Acumulador y Contador.

# data[].attributes.subject
Define: Variable, Constante, Acumulador y Contador.

# data[].attributes.body
Variable: son estructuras de datos que pueden cambiar de contenido a lo largo de una ejecución de
un programa.
Superficie: Base*Altura
Constante: Es un valor que no puede ser alterado durante la ejecución de un programa.
Pi= 3,1415926
Contador: es una variable auxiliar que cuenta las veces que se pasa por ella.
Cont= Cont + 1
Acumulador: es una variable auxiliar cuya misión es almacenar resultados sucesivos.
Acum= Acum + N

# data[].attributes.body
Un algoritmo:es un conjunto ordenado y finito de operaciones simples a través del cual podemos hallar la solución a un problema.

# data[].attributes.headline
Describe los principales Tipos de datos.

# data[].attributes.subject
Describe los principales Tipos de datos.

# data[].attributes.body
Los principales tipos de datos son:
 Números enteros
El tipo int (del inglés integer, que significa enteros) permite representar números enteros: -9, -8, -
7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5 ,6 , 7, 8, 9 y sus combinaciones.
 Números reales
El tipo float permite representar números reales. Los números reales literales se escriben separando
la parte entera de la decimal con un punto. Por ejemplo: 3.56
Otra representación es la notación científica, en la que se escribe un factor y una potencia de diez
separados por una letra e, por ejemplo: -2.45E4
 Números complejos
El tipo complex permite representar números complejos.
Los números complejos tienen una parte real y una imaginaria. La parte imaginaria es denotada
agregando una j inmediatamente después de su valor.
Ejemplo: 3 + 9 j
2.4 + 2.7 j
 Valores lógicos
Los valores lógicos True y False (verdadero y falso) son de tipo bool, que representa valores
lógicos.
El nombre bool viene del matemático George Boole, quien creó un sistema algebraico para la
lógica binaria. Por lo mismo, a True y False se les llama Valores booleanos.
 Texto
A los valores que representan texto se les llama strings, y tienen el tipo str.
Los strings literales pueden ser representados con texto entre comillas simples o comillas dobles..
Ejemplo:  ́ejemplo uno ́
“ejemplo dos”
Los strings que difieren en mayúsculas y minúsculas, o en espacios, son distintos.
 Nulo
Existe un valor llamado None (en inglés, ninguno) que es utilizado para representar casos en que
ningún valor es válido, o para indicar que una variable todavía no tiene un valor que tenga sentido.
El valor None tiene su propio tipo, llamado NoneType, que es diferente al de todos los demás
valores.