martes, 27 de marzo de 2018

PROGRAMACIÓN

¿Qué es un programa? 
Es un tipo de software que funciona como un conjunto de herramientas diseñado para realizar tareas y trabajos específicos en tu computador.
Mientras los sistemas operativos se encargan de hacer funcionar tu computador, los programas se presentan como herramientas para mejorar tu desempeño. Algunos ejemplos de estos programas o aplicaciones son los procesadores de texto, como Microsoft Word; las hojas de cálculo, como Excel ; y las base de datos, como Microsoft Access.
¿Qué es una APP?
Una App es una aplicación de software que se instala en dispositivos móviles o tablets para ayudar al usuario en una labor concreta, ya sea de carácter profesional o de ocio y entretenimiento, a diferencia de una webapp que no es instalable. El objetivo de una app es facilitarnos la consecución de una tarea determinada o asistirnos en operaciones y gestiones del día a día. 
¿Qué es un Lenguaje de Programación?
Es un idioma artificial diseñado para expresar computaciones que pueden ser llevadas a cabo por máquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para expresar algoritmos con precisión, o como modo de comunicación humana. Está formado de un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.
¿Cuántos tipos de Lenguaje de Programación hay? 
Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

Lenguaje de programación imperativo
Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.

No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

¿Qué es DevC++? 
Es un compilador y entorno de desarrollo para C/C++
Consiste en un editor de múltiples ventanas integrado con un compilador que nos permitirá una compilación, un enlace y una ejecución de aplicaciones rápida y de fácil uso.
C/C++ son lenguajes de programación, donde c++ fue creado para extender el lenguaje de programador C y así dar la posibilidad de usar manipulación de objetos.
¿Qué es una palabra reservada en un lenguaje de programación?
Las palabras reservadas son identificadores reservados predefinidos que tienen un significado especial y no se pueden utilizar como identificadores en sus programas, excepto si llevan delante el carácter @ como prefijo. Así, por ejemplo @for es un identificador válido, pero no for ya que es una palabra reservada.  
¿Qué es una librería? 
Las bibliotecas contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc.
Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos y como imaginarás existen muchísimas librerías disponibles y todas con una función especifica.
¿Cuántos tipos de librería tiene DevC++?
Fstream: Permite la munipulación de archivos desde el programador, tanto leer como escribir en ellos.
Iosfud: Contienen declaraciones adelantadas de todas las plantillas de flujo y sus typedets estándar. 
List: Parte de la STL relativa a los contenedores tipo lista, lista doblemente enlazada.
Math: contiene los prototipos de las funciones, otras definiciones para el uso y manupulación de funciones matemáticas.
Memory: utilidades relativas a la gestion de memoria incluyendo asignadores y punteros inteligentes.
New: Manejo de memoria dinámica
Numeric: Parte de la libreria numerica de la STL relativa a operaciones numericas.
Ostream: Algoritmos estándar para los flujos de salida
Queve: Parte de la STL relativa a contenedores tipo que ve (Colas de Objeto)
Studio: Contiene los prototipos de las funciones macros, para para utilidades de uso general.
String: Parte de la STL relativa a contenedores tipo string, una generalización de las cadenas alfanuméricas para albergar cadenas de   objetos, pues eliminan muchas de las dificultades que generan las char.
Typcinto: Mecanismo de identificación de tipo en tiempo de ejecución.

Vector: Parte de la STL relativa a los contenedores tipo vector, una generación de las matrices unidimencionales.
Tipos de datos en DevC++
De momento sólo veremos los tipos fundamentales, que son: void, char, int, float y double, en C++ se incluye también el tipo bool. También existen ciertos modificadores, que permiten ajustar ligeramente ciertas propiedades de cada tipo; los modificadores pueden ser: short, long, signed y unsigned, y pueden combinarse algunos de ellos. También veremos en este capítulo los tipos enumerados, enum.
Tipos de operadores en DevC++
OPERADORES ARITMÉTICOS
Los operadores aritméticos se usan para realizar cálculos y operaciones con números reales y punteros. Básicamente permiten hacer cualquier operación aritmética que se necesite.
OPERADORES RELACIONALES 
Los operadores relacionales, también denominados operadores binarios lógicos y de comparación, se utilizan para comprobar la veracidad o falsedad de determinadas propuestas de relación (en realidad se trata respuestas a preguntas). Las expresiones que los contienen se denominan expresiones relacionales. Aceptan diversos tipos de argumentos, y el resultado, que es la respuesta a la pregunta, es siempre del tipo cierto/falso, es decir, producen un resultado booleano.
OPERADORES LÓGICOS
 Los operadores lógicos producen un resultado booleano, y sus operandos son también valores lógicos o asimilables a ellos (los valores numéricos son asimilados a cierto o falso según su valor sea cero o distinto de cero). Por el contrario, las operaciones entre bits producen valores arbitrarios. 
OPERADORES DE BITS 
 Los operadores de movimiento son operadores a nivel de bits, y lo que hacen es convertir una determinada cantidad a su equivalente en bits para posteriormente realizar un desplazamiento de dicho valor.

Ejemplo de programa en DevC++ 



Programa que calcule la suma de dos números.

 
#include <stdio.h>
void main(){
         int X,Y,Z;
         printf("Por favor, introduzca un numero:  ");
         scanf("%d",&X);
         printf("Ahora, inserte otro:  ");
         scanf("%d",&Y);
         Z=X+Y;
         printf("\nEl resultado es %d\n",Z);
}

Lenguaje de programación de Windows 10 
Se puede utilizar Visual C++ para escribir una gran variedad de programas que se ejecutan en un equipo con Windows (x86, x64 o ARM), en un servidor Windows, en la nube o en Xbox. Los programas de C++ bien escritos son rápidos, eficaces, económicos en cuanto al consumo eléctrico y capaces de sacar el máximo partido de dispositivos de varios núcleos, procesos generales en la unidad de procesamiento de gráficos (GPGPU) y otros avances recientes en hardware.

Existen varias categorías de aplicaciones de Windows que se pueden desarrollar con Visual C++. Estas categorías tienen distintos modelos de programación o de aplicación, lo que significa que usan diferentes bibliotecas y API que proporcionan acceso a la plataforma y proveen la interfaz de usuario.
  • Aplicaciones universales de Windows. La tercera categoría de aplicaciones de Windows se introdujo con Windows 8 y continúa siendo compatible con Windows 10. Estas aplicaciones suelen denominarse “aplicaciones de Windows” e incluyen tanto aplicaciones de escritorio como móviles destinadas a diversos dispositivos. Pueden escribirse en C++/CX, que es un dialecto de C++ compatible con el desarrollo de Windows en tiempo de ejecución, o también en C++ estándar con COM mediante la biblioteca de Windows en tiempo de ejecución (WRL). Estas aplicaciones se diseñaron originalmente para ejecutarse a pantalla completa, aunque en Windows 10 los usuarios tienen la opción de ejecutarlas en una ventana del escritorio. Estas aplicaciones están pensadas para dispositivos táctiles, pero pueden usarse fácilmente con el mouse si así lo prefieren los usuarios o si no se dispone de pantalla táctil. Se distribuyen desde la Tienda Windows, hecho que llevó a llamarlas “Aplicaciones de la Tienda Windows”.

jueves, 23 de noviembre de 2017

Algoritmo y diagramas de flujo

                     a) Bloques que se utilizan para construir diagramas de flujo

Representación del símbolo                                                        Explicación del símbolo

    Se utiliza para marcar el inicio y el fin del diagrama del flujo
    Se utiliza para introducir los datos de entrada. Expresa lectura
   Representa un proceso. En su interior se colocan asignaciones,                                                               operaciones aritméticas, cambios de valor de celdas en                                                                            memoria, etc.  
Se utiliza para representar una decisión. En su interior se                                                                       almacena una condición, y, dependiendo del resultado, se sigue                                                               una de las ramas o caminos alternativos. 
   Se utiliza para representar una decisión múltiple. En                                                su interior se almacena un selector, y, dependiendo                                                 del valor de dicho selector, se sigue por una de las                                                   ramas o caminos alternativos.
    Se utiliza para representar la impresión de un resultado. Expresa                                                           escritura.
     Expresa la dirección del flujo de diagrama.
       Expresa conexión dentro de una misma página. 
               Representa conexión entre páginas diferentes.
       Se utiliza para expresar un módulo de un problema, subproblema,                                                           que hay que resolver antes de continuar con el flujo normal del                                                              diagrama.

            b) Reglas para la construcción de diagrama de flujo 
  1. Todo diagrama de flujo debe tener un incoo y un fin.
  2. Las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser rectas: verticales u horizontales.
  3. Todas las líneas utilizadas para indicar la dirección del flujo del diagrama deben ser conectadas. La conexión puede ser a un símbolo que exprese lectura, proceso, decisión, impresión, conexión o fin del diagrama. 
  4. El diagrama de flujo debe construirse de arriba hacia abajo (top-down) y de izquierda a derecha (right to left).
  5. La notación utilizada en el diagrama de flujo debe ser independiente del lenguaje de programación. La solución presentada se puede escribir posteriormente en diferentes lenguajes de programación. 
  6. Al realizar una tarea compleja, es conveniente poner comentarios que expresen o ayuden a entender lo que hayamos hecho. 
  7. Si la construcción del diagrama de flujo requiriera más de una hoja, debemos utilizar los conectores adecuados y enumerar las páginas correspondientes.
  8. No puede llegar más de una línea a un símbolo determinado. Resultado de imagen para diagramas de flujo

jueves, 24 de agosto de 2017

Fundamentos de programación



¿Qué se entiende por solución de problemas?
El proceso de solucionar problemas implica una serie de capacidades y habilidades del pensamiento que es importante desarrollar y evaluar en la preparación académica.

La resolución de problemas es una actividad cognitiva que consiste en proporcionar una respuesta-producto a partir de un objeto o de una situación.

Una de las capacidades más importantes en la resolución de problemas es la de hacer preguntas que permitan surgir de un conflicto y sortear la dificultad, algunas preguntas pueden servir para identificar el problema, otras para buscar alternativas, etc.

Recuperado de: hadoc.azc.uam.mx/evaluacion/solucion.htm 

Solución de problemas según Polya
Para resolver un problema se necesita:
Paso 1: Entender el problema
¿Cuál es la incógnita?, ¿Cuáles son los datos?
¿Cuál es la condición? ¿Es la condición suficiente para determinar la incógnita? ¿Es insuficiente? ¿Redundante? ¿Contradictoria?
Paso 2: Configurar un plan
¿Te has encontrado con un problema semejante? ¿O has visto el mismo problema planteado en forma ligeramente diferente?
¿Conoces algún problema relacionado con éste? ¿Conoces algún teorema que te pueda ser útil? Mira atentamente la incógnita y trata de recordar un problema que sea familiar y que tenga la misma incógnita o una incógnita similar.
He aquí un problema relacionado al tuyo y que ya has resuelto ya. ¿Puedes utilizarlo? ¿Puedes utilizar su resultado? ¿Puedes emplear su método? ¿Te hace falta introducir algún elemento auxiliar a fin de poder utilizarlo?
¿Puedes enunciar al problema de otra forma? ¿Puedes plantearlo en forma diferente nuevamente? Recurre a las definiciones.
Si no puedes resolver el problema propuesto, trata de resolver primero algún problema similar. ¿Puedes imaginarte un problema análogo un tanto más accesible? ¿Un problema más general? ¿Un problema más particular? ¿Un problema análogo? ¿Puede resolver una parte del problema? Considera sólo una parte de la condición; descarta la otra parte; ¿en qué medida la incógnita queda ahora determinada? ¿En qué forma puede variar? ¿Puedes deducir algún elemento útil de los datos? ¿Puedes pensar en algunos otros datos apropiados para determinar la incógnita? ¿Puedes cambiar la incógnita? ¿Puedes cambiar la incógnita o los datos, o ambos si es necesario, de tal forma que estén más cercanos entre sí?
¿Has empleado todos los datos? ¿Has empleado toda la condición? ¿Has considerado todas las nociones esenciales concernientes al problema?
Paso 3: Ejecutar el plan
Al ejercutar tu plan de la solución, comprueba cada uno de los pasos
¿Puedes ver claramente que el paso es correcto? ¿Puedes demostrarlo?
Paso 4: Examinar la solución obtenida
¿Puedes verificar el resultado? ¿Puedes el razonamiento?
¿Puedes obtener el resultado en forma diferente? ¿Puedes verlo de golpe? ¿Puedes emplear el resultado o el método en algún otro problema?
Recuperado de:www.glc.us.es/~jalonso/vestigium/el-metodo-de-polya-para-resolver-problemas/ 

Solución de un problema expresado como algoritmo 
La función logarítmica en base a es la función inversa de la función exponencial en base a. Es claro, viendo la gráfica de la función exponencial, que ella tiene inversa. Esta función inversa tiene una notación propia: loga. Los valores de esta función vienen dados por loga(x). Del concepto de función inversa, sabemos que ( ) 1 y f x − = si y sólo si x = f ( y). Puntualicemos entonces la definición de logaritmo Definición.- Sea a>0, a ≠ 1. El logaritmo de x con base a se define como y= loga(x) si y sólo si ay =x, siempre y cuando x>0. Observaciones: 1.- Conviene recordar siempre al loga(x) como el exponente al que hay que elevar la base para que se produzca el número x. Por ejemplo 32 =9, entonces 2 es el logaritmo de 9 en base 3: log39=2. 2.-Los logaritmos en base 10 son conocidos como logaritmos decimales, En este caso se suprime el subíndice en la notación, esto es: log10(x)=log(x). En el caso que la base sea el número e, el logaritmo se escribe como ln(x) para representar el logaritmo en base e de x y se lo llama logaritmo natural de x 3.- El logaritmo sólo está definido para los números estrictamente positivos. El dominio de la función logarítmica y= loga(x) es el conjunto (0,∞). Recuerde que el rango de la función exponencial es (0,∞). 4.- y= loga(x) es conocida como la forma logarítmica y ay =x la forma exponencial. En ocasiones es útil pasar de la forma exponencial a la logarítmica y viceversa. 5.- De la propia definición, si sustituimos y en la expresión exponencial obtenemos que a x x a = log Si ahora sustituimos x en la expresión logarítmica resulta que 
log ( ) y y = a a

Recuperado de: www.ciencias.ula.ve/matematica/publicaciones/guias/servicio_docente/primeras/tema14.pdf

¿Qué es un algoritmo?

Un Algoritmo, se puede definir como una secuencia de instrucciones que representan un modelo de solución para determinado tipo de problemas. O bien como un conjunto de instrucciones que realizadas en orden conducen a obtener la solución de un problema. Por lo tanto podemos decir que es un conjunto ordenado y finito de pasos que nos permite solucionar un problema.
Los algoritmos son independientes de los lenguajes de programación. En cada problema el algoritmo puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje de programación.

Recuperado de: http://conceptodefinicion.de/algoritmo/

Resultado de imagen para ejemplos de algoritmos graciososResultado de imagen para ejemplos de algoritmos graciososImagen relacionada

¿Cómo comprobar la solución a un problema? 


La resolución de problemas en general, y mediante sistemas de ecuaciones en este caso particular, es un proceso complejo para el que, desgraciada o afortunadamente (según se mire), no hay reglas fijas ni resultados teóricos que garanticen un buen fin en todas las ocasiones.

De todas formas, si hay algo que ayuda en cualquier caso a llevar a buen puerto la resolución de un problema es el orden. Por ello, hay que ser metódico y habituarse a proceder de un modo ordenado siguiendo unas cuantas fases en el desarrollo de dicha resolución.

Las cuatro fases que habrá que seguir para resolver un problema son:
1. Comprender el problema.
  • Leer detenidamente el enunciado.
  • Hacer un gráfico o un esquema que refleje las condiciones del problema.
  • Identificar los datos conocidos y las incógnitas.
2. Plantear el problema.
  • Pensar en las condiciones del problema y concebir un plan de acción,
  • Elegir las operaciones y anotar el orden en que debes realizarlas.
  • Expresar las condiciones del problema mediante ecuaciones.
3. Resolver el problema.
  • Resolver las operaciones en el orden establecido.
  • Resolver las ecuaciones o sistemas resultantes de la fase 2.
  • Asegurarse de realizar correctamente las operaciones, las ecuaciones y los sistemas.
4. Comprobar la solución.
  • Comprobar si hay más de una solución.
  • Comprobar que la solución obtenida verifica la ecuación o el sistema.
  • Comprobar que las soluciones son acordes con el enunciado y que se cumplen las condiciones de éste.

Recuperado de: thales.cica.es/rd/Recursos/rd99/ed99-0045-01/secciones/problemas.html