jueves, 8 de junio de 2017



Concepto de variable


Una variable es la expresión simbólica representativa de un elemento no especificado comprendido en un conjunto.
 Este conjunto constituido por todos los elementos o variables, que pueden sustituirse unas a otras es el universo de variables. 
Se llaman así porque varían, y esa variación es observable y medible.
Las variables pueden ser cuantitativas, cuando se expresan en números, como por ejemplo la longitud o el peso. Las variables cualitativas expresan cualidades, por ejemplo, designar con letras las preferencias de los estudiantes por sus materias de estudio.

Las variables continuas son las que pueden tener cualquier valor como el peso o la altura. Las discontinuas son las que tienen valores determinados, como por ejemplo, la cantidad de hijos de una familia.
Las variables dependientes, que constituyen el objeto de investigación, por ejemplo crecimiento y desarrollo de los niños, son las que se ven modificadas por las independientes, por ejemplo cierto producto alimenticio. Lo que queremos comprobar es si ese alimento estimula el crecimiento de los niños. La variable a estudiar es la dependiente, pues es los que observaremos, y se modificará de acuerdo al consumo de la variable independiente. Hay también variables extrañas que pueden influir como que además los niños practiquen deportes. En este caso conviene eliminarlas, suprimiendo por ejemplo la práctica del deporte en el período de estudio para no contaminar la investigación, ya que por ejemplo no sabremos si crecieron por el deporte o por el producto alimenticio.
En informática se usa el término variable para designar, en el lenguaje de programación, a un tipo de dato, al que se ha asignado un valor, que puede variar durante la ejecución del programa.


DEFINICIÓN DECONSTANTE

Constante es aquello que consta (que es manifiesto o está registrado) o que tiene constancia (certeza, perseverancia). Algo constante es durable, reiterado o persistente. Por ejemplo: “El esfuerzo constante del norteamericano lo llevó a una nueva victoria en el torneo”“Mi abuelo siempre me dice que para tener éxito en los negocios resulta indispensable ser constante y no rendirse jamás ante la adversidad”“Estudiantes de La Plata es el equipo argentino más constante de los últimos años”.
Expresiones matemáticas 
Las expresiones matemáticas constan de un conjunto de símbolos del alfabeto, que en una expresión matemáticaincluyen: Constantes y variables, existen diversas maneras de designar a este tipo de entidades: Números, que son un tipo de constantes.
Tabla de prioridades de operadores.
Lo que sigue es la lista de operadores de C, ordenados según su prioridad. En caso de que una expresión contenga más de un operador de igual prioridad, la evaluación se realizará según el orden que se indica en la columna central. Por ejemplo, si se encuentran dos operadores de desplazamiento (>> y <<), la evaluación se hará de izquierda a derecha. Pero si se encuentran dos operadores de suma con asignación (+=), entonces la evaluación se realizará de derecha a izquierda (se evalúa primero la expresión situada más a la derecha). 



Grupo de operadoresOrden de evaluaciónComentarios
() [] -> .de izquierda a derechaEste es el grupo de operadores con mayor prioridad.
! ~ ++ -- + - (tipo) * & sizeofde derecha a izquierdaLa refundición de tipos y sizeof son operadores unarios.
* / %de izquierda a derechaEl símbolo "%" denota el operador módulo, que produce el resto entero obtenido al dividir el primer operando por el segundo.
+ -de izquierda a derechaLos operadores aditivos tienen menor prioridad que los multiplicativos.
<< >>de izquierda a derechaEstos son los operadores de desplazamiento bit a bit (q.v.)
< <= > >=de izquierda a derecha
== !=de izquierda a derecha
&de izquierda a derechaEste operador y los dos siguientes realizan operaciones lógicas bit a bit, considerando bits individuales de sus operandos.
^de izquierda a derecha
|de izquierda a derecha
&&de izquierda a derechaEste operador y el siguiente producen resultados lógicos, pero no consideran bits individuales sino el valor global del operando.
||de izquierda a derecha
?:de derecha a izquierda
= += -= *= /= %= &= ^= |= <<= >>=de derecha a izquierda
,de izquierda a derechaEste es el operador de menor prioridad en C. Sirve para separar una colección de expresiones, que se irán evaluando de izquierda a derecha. El resultado es el producido por la expresión situada en último lugar (más a la derecha), y tiene por tanto el tipo y valor de esta última expresión. Se emplea a veces en expresiones de control; un ejemplo sería la cláusula de iniciación de un for o la cláusula de mantenimiento de iteración de un while.

Operadores matemáticos

Los operadores matemáticos básicos son los mismos que están disponibles en la mayoría de los lenguajes de programación: adición (+), substracción (-), división (/), multiplicación (*), y módulo (%; que produce el resto de una división entera). La división entera trunca el resultado (no lo redondea). El operador módulo no se puede utilizar con números con punto flotante.
C y C++ también utilizan notaciones abreviadas para efectuar una operación y una asignación al mismo tiempo. Esto se denota por un operador seguido de un signo igual, y se puede aplicar a todos los operadores del lenguaje (siempre que tenga sentido). Por ejemplo, para añadir 4 a la variable x y asignar x al resultado, se escribe: x += 4;.
Este ejemplo muestra el uso de los operadores matemáticos:
//: C03:Mathops.cpp
// Mathematical operators
#include <iostream>
using namespace std;

// A macro to display a string and a value.
#define PRINT(STR, VAR) \
  cout << STR " = " << VAR << endl

int main() {
  int i, j, k;
  float u, v, w;  // Applies to doubles, too
  cout << "enter an integer: ";
  cin >> j;
  cout << "enter another integer: ";
  cin >> k;
  PRINT("j",j);  PRINT("k",k);
  i = j + k; PRINT("j + k",i);
  i = j - k; PRINT("j - k",i);
  i = k / j; PRINT("k / j",i);
  i = k * j; PRINT("k * j",i);
  i = k % j; PRINT("k % j",i);
  // The following only works with integers:
  j %= k; PRINT("j %= k", j);
  cout << "Enter a floating-point number: ";
  cin >> v;
  cout << "Enter another floating-point number:";
  cin >> w;
  PRINT("v",v); PRINT("w",w);
  u = v + w; PRINT("v + w", u);
  u = v - w; PRINT("v - w", u);
  u = v * w; PRINT("v * w", u);
  u = v / w; PRINT("v / w", u);
  // The following works for ints, chars, 
  // and doubles too:
  PRINT("u", u); PRINT("v", v);
  u += v; PRINT("u += v", u);
  u -= v; PRINT("u -= v", u);
  u *= v; PRINT("u *= v", u);
  u /= v; PRINT("u /= v", u);
} ///:~
Operadores Aritméticos.

Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). 
Operadores Aritméticos 
+ Suma 
- Resta 
* Multiplicación 
/ División 

lunes, 29 de mayo de 2017

Conceptos de algoritmos

Algoritmos:
Conjunto de acciones o secuencias de operaciones ejecutadas en un determinado orden para resolver un problema.
Acción
Acontecimiento producido por un actor en un tiempo finito que produce un resultado definido y preciso y además genera cierta transformación.
Analizaremos la acción
Existen diferentes tipos de acciones:
  • Acción simple: Realizadas directamente
  • Acción compleja: No se pueden realizar directamente sino a través de una descomposición de acciones más simples.

Ejemplo de algoritmo de la vida cotidiana

Hoy observaran  un ejemplo de un algoritmo de la vida cotidiana
Entrada
Tornillo.
Taladro.
Palo roto.
Mesa Rota.
Palo nuevo.
Remplazo de el palo de la mesa.
Proceso
1.- Tomar la mesa rota y acomodarla en el suelo, de tal manera que puedas observar el daño o la ruptura de la mesa.(boca abajo)
2.-Ir por el taladro
3.-Dirigirse hacia la mesa con el taladro
4.-Toma el taladro y desatornillar el palo roto de tal manera que puedas quitar el palo roto.
5.-Quitar el palo roto y dejarlo en el suelo a un lado de la mesa.
6.-Dejar el taladro en el suelo, a un lado de la mesa
7.-Dirígete hacia donde esta el palo nuevo y el tornillo.
8.-Toma ambos.
9.-Dirigirte hacia la mesa.
10.-Cuando llegues a la mesa deja el tornillo a un lado.
11.-Coloca el palo nuevo sobre la parte donde estaba el palo roto.
12.-Deja el palo nuevo sobre la parte donde estaba el palo roto  donde se colocaba el palo roto en la mesa.
13.-Toma el tornillo.
14.- Colócalo sobre la parte donde se desatornillo el palo roto.
15.-Toma el taladro.
16.-coloca el taladro sobre el tornillo en el punto donde se desatornillo el palo roto.
17.-Comienza a enroscar el tornillo en el palo nuevo donde se colocaba en palo roto antes de desatornillar lo hasta ajustarlo adecuada mente.
18.-Cuando termines de enroscar lo deja el taladro a un lado.
19.-Coloca la mesa de manera adecuada.
20.-Tomar el palo roto,el tornillo viejo, el taladro y ponerlos en su lugar.(guardar)
21.-Colocar lo mesa en su lugar
Salida
Mesa reparada

Fases de la programacion

Fases de la programación
*Definición de el problema: Requiere que el problema sea definido y comprendido claramente para que pueda ser analizado con todo detalle.
*Análisis de el problema: El propósito el análisis de un problema es ayudar al programador para llegar a una cierta comprensión de la naturaleza de el problema. El problema debe estar bien definido si se desea llegar a una solución satisfactoria.
*Entrada: Son todos los datos que hay que ingresar para la resolución de el problema.
*Proceso: Son los diferentes procedimientos en los cuales se usaran los datos proporcionados por el usuario en el paso anterior para resolver el problema.
*Salida: La resolución de el problema
*Diseño de la solución: Una computadora no tiene la capacidad para solucionar mas que cuando se le proporcionan los sucesivos pasos a realizar.
estos pasos sucesivos que indican las instrucciones a ejecutar por la maquina constituyen, como ya sabemos el algoritmo.
*Codificación: Es el algoritmo traspasado a la computadora a través de un lenguaje de programación.
*Compilación y ejecución:Compilación, el lenguaje de programación seleccionado revisa que ya no halla errores en el código fuente.
Ejecución,ejecutar el programa después de ser compilado.
*Verificación y pruebas: Revisar que el programa de los resultados que el usuario quiere,hay que revisar si hay algún error el cual puede ser de tipo lógico,de semántica o ejecución.
*Depuración: Corregir los errores encontrados en la etapa anterior, si se hubiese algún error se tiene que regresar hasta la etapa que sea necesaria para que la solución se la que el usuario requiere.
*Documentación: Son todos los comentarios,referencia desde que se dio el problema hasta que se encontró la solución.
*Capacitación: Una ves que tenemos los manuales viene la capacitación de usuarios, como no a todos les interesa lo mismo porque hay diferentes tipos de usuarios, se tienen que dividir de acuerdo a sus conveniencias.
*Implantación o complementación del sistema: Hay diferentes formas de implementar el sistema:
depende de el tamaño de el sistema si existiera se tiene que poner el nuevo y quitar el que ya estaba.
Trabajar primero con el sistema viejo(Si aun existe), y después empezar a trabajar con el nuevo.
*Mantenimiento: El mantenimiento preventivo es que hagamos lo posible por no caer en errores , la actualización si el usuario tiene la necesidad de quitar o poner algo;téngase en cuenta que  cuando surge mantenimiento tenemos que volver a hacer todos los pasos anteriores revisando que todas las condiciones sean favorables al rededor de el sistema.


Características de los algoritmos

CARACTERÍSTICAS DE LOS ALGORITMOS
 - Finitos: Debe acabar en algún momento.
- Eficientes: Deben ocupar la mínima memoria y minimizar el tiempo de ejecución.
- Legibles: El texto que lo describe debe ser claro, tal que permita entenderlo y leerlo fácilmente.
- Modificables: Estarán diseñados de modo que sus posteriores modificaciones sean fáciles de realizar, incluso por programadores diferentes a sus propios autores.
- Modulares: La filosofía utilizada para su diseño debe favorecer la división del problema en módulos pequeños. -
Único punto de entrada, único punto de salida: A los algoritmos y a los módulos que lo integran se entra por un sólo punto, inicio, y se sale por un sólo punto también, fin. LA ESTRUCTURA GENERAL PARA LA RESOLUCIÓN INFORMÁTICA DE UN PROBLEMA SERÁ LA SIGUIENTE:
 1.- Análisis del problema: Haremos un estudio previo de la tarea a realizar. Si nos la dan verbalmente, haremos preguntas hasta tener claro lo que se ha de hacer, es decir, hasta obtener la escritura detallada de todas las especificaciones
. Si la tarea nos la dan por escrito, podemos comenzar subrayando palabras o frases decisivas, escribiendo al margen ideas y dudas, o cualquier otra cosa que nos ayude a concretar especificaciones, además de realizar verbalmente todas las preguntas que den respuesta a nuestras dudas.
 2.- Escribir en pseudocódigo el programa principal: Empezaremos dividiendo el problema en módulos más sencillos, hasta llegar a un nivel de detalle razonable utilizando nombres con significado para ellos. Si de momento no sabemos resolver alguno de estos módulos, no debemos preocuparnos pensemos que alguien nos lo resolverá o que mañana tendremos una idea genial para solucionarlo y sigamos adelante con nuestro diseño, tal vez tengamos la suerte de encontrarlo ya hecho. Recordemos que si los problemas son razonablemente pequeños, como ocurrirá en los primeros temas no será necesaria esta división en subtareas del problema.
 3.- Escribir en pseudocódigo los módulos restantes: Escribiremos cada uno de los módulos, detallando la secuencia de instrucciones que deben realizar, en el caso de que los hubiera.
4.- Lectura del pseudocódigo: Recorrer el algoritmo escrito en pseudocódigo inspeccionando, reordenando, detectando y corrigiendo errores, revisando todo lo que sea necesario, incluso será posible que haya que planificar algún cambio.
 No hay que tener miedo a empezar de nuevo si fuera necesario.
5.- Seguir la traza: Haremos la prueba del algoritmo siguiendo la traza con los datos elegidos como juego de ensayo. Observaremos los resultados minuciosamente, tratando de detectar y corregir los errores si estos resultados no son los esperados.
6.- Documentación: Una vez diseñado y bien estructurado un algoritmo, la siguiente actividad a desarrollar, sumamente importante en programación, es producir programas bien documentados, para que se cumplan los objetivos básicos, que los programas sean legibles, comprensibles y fácilmente modificables. La documentación incluye descripciones, comentarios, especificaciones, incluso un breve manual de uso si el algoritmo es suficientemente extenso.
 Tenemos dos tipos de documentación en el desarrollo de algoritmos bien diseñados: a) Documentación externa: Incluye la escritura de información que es exterior al cuerpo del algoritmo. Puede incluir, además de todas las especificaciones detalladas, una explicación extensa del desarrollo del algoritmo y de las modificaciones sufridas. Deben añadirse igualmente descripciones detalladas del problema, de los módulos que lo componen, adjuntando un diagrama jerárquico del diseño descendente y por último un manual de usuario donde se explicará al cliente (o al profesor en su defecto) como debe usarse el programa.
 Esta documentación debe adjuntarse sólo en el caso de que los algoritmos sean suficientemente grandes, lo que se consideran aplicaciones informáticas de cierta envergadura, divididas en varios programas.
 b) Documentación interna: Incluye la escritura de información que se suministra con el cuerpo del algoritmo. Estará formada por comentarios, código autodocumentado e impresión agradable del texto del pseudocódigo.