martes, 28 de agosto de 2012

Operadores Aritmeticos, Relacionales y Logicos

Aritmeticos

Los operadores aritméticos nos permiten, básicamente, hacer cualquier operación aritmética, que necesitemos (ejemplo: suma, resta, multiplicación, etc).

Operador Acción Ejemplo
$-$ Resta x = 5 $-$ 3; // x vale 2
$+$ Suma x = 2 $+$ 3; // x vale 5
$*$ Multiplicación x = 2 $*$ 3; // x vale 6
$/$ División x = 6 $/$ 2; // x vale 3
$\%$ Módulo x = 5 % 2; // x vale 1
$--$ Decremento x = 1; x$--$; // x vale 0
$++$ Incremento x = 1; x$++$; // x vale 2

Relacionales

Los operadores relacionales son símbolos que se usan para comparar dos valores.


Operador Nombre Ejemplo Significado
< menor que a<b a es menor que b
> mayor que a>b a es mayor que b
== igual a a==b a es igual a b
diferente ab a es diferente de b
<= menor que o igual a a<=5 a es menor que o igual a b
>= mayor que o igual a a>=b a es menor que o igual a b

Logicos

AND y OR trabajan con dos operandos y retornan un valor lógico basadas en las denominadas tablas de verdad. El operador NOT actúa sobre un operando. Estas tablas de verdad son conocidas y usadas en el contexto de la vida diaria, por ejemplo: "si hace sol Y tengo tiempo, iré a la playa", "si NO hace sol, me quedaré en casa", "si llueve O hace viento, iré al cine". Las tablas de verdad de los operadores AND, OR y NOT se muestran en las tablas siguientes:

El operador lógico AND
x y resultado
true true true
true false false
false true false
false false false

El operador lógico OR
x y resultado
true true true
true false true
false true true
false false false

El operador lógico NOT
x resultado
true false
false true

lunes, 27 de agosto de 2012

Definicion de Simbolos de Diagramas de Flujo


Nombre
Símbolo
Función
Inicio y Termino
Representa el inicio y fin de un programa.
Entrada
Cualquier tipo de introducción de datos en la memoria desde los periféricos o registro de información procesada en un periférico.
Proceso
Cualquier tipo de operación que pueda originar cambio de valor, formato o posición de la información almacenada en memoria, operaciones aritméticas, de transformaciones, etc.
Decisión
Indica operaciones lógicas o de comparación entre datos (normalmente dos) y en función del resultado de la misma determina (normalmente si y no) cual de los distintos caminos alternativos del programa se debe seguir
Conector Misma Página
Sirve para enlazar dos partes cualesquiera de un diagrama a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en la misma pagina del diagrama
Conector Pagina Siguiente
Sirve para enlazar dos partes cualesquiera de un diagrama a través de un conector en la salida y otro conector en la entrada. Se refiere a la conexión en otra pagina del diagrama
Indicador de dirección o línea de flujo
Indica el sentido de la ejecución de las operaciones
Salida
El dibujo representa un pedazo de hoja. Es usado para mostrar datos o resultados.

martes, 21 de agosto de 2012

Clasificación de Lenguajes de Programación

Definición:

1 Un lenguaje de programación es un lenguaje inventado para controlar una máquina
2 Lenguaje de programación es el conjunto de símbolos y palabras que permiten al usuario de una computadora darle instrucciones y órdenes para que la computadora los ejecute.

Tipos de lenguajes de programación:

1º El Lenguaje Máquina: es el lenguaje de programación que entiende directamente la computadora o máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir, el 0 y el 1.

Con estos dos únicos dígitos, conocidos como bits, forma lo que se conoce como  cadenas binarias (combinaciones de ceros y unos) son con las que se escriben las  instrucciones que el microprocesador de la computadora entiende nuestra peticiones. Fue el primer lenguaje de programación. Este tipo de lenguaje de programación dejo de utilizarse por su gran dificultad y por la facilidad para cometer errores.

2º Lenguajes de programación de bajo nivel: Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucedía con el lenguaje máquina. El lenguaje ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro mucho más parecido al de los seres humanos.

En este lenguaje se conoce como programa fuente a un programa de instrucciones
escrito en lenguaje ensamblador por el programador, y programa objeto es la  traducción a lenguaje máquina del programa fuente.

Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles  de aprender, son específicos de cada procesador, si nos llevamos el programa a otro computador será preciso reescribir el programa desde el comienzo.

3º Lenguajes de programación de alto nivel: Este tipo de lenguajes de programación son independientes de la máquina, lo podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender.

Los lenguajes de programación de alto nivel son más fáciles de aprender porque se usan palabras o comandos del lenguaje natural, como por ejemplo del inglés. Este es el caso del BASIC, el lenguaje de programación más conocido.

Existen muchos lenguajes de programación de alto nivel con sus diferentes  versiones. Por esta razón es difícil su tipificación, pero una clasificación muy  extendida desde el punto de vista de trabajar de los programas y la filosofía de su  creación es la siguiente:

Lenguaje imperativo

Un lenguaje imperativo es un tipo de lenguaje de programación. Es este tipo de lenguajes, las instrucciones se ejecutan unas tras otras, de manera secuencial, salvo cuando se encuentran estructuras de control condicionales o bucles. Hay declaración de variables, tipos y procedimientos, aunque esto varía notablemente en función del lenguaje utilizado, pues los hay que exigen las declaraciones mientras que otros permiten que esos elementos no sean declarados.

Ejemplo de programa en un lenguaje imperativo: Este sería el código de un programa que determina el factorial de un número en un lenguaje imperativo inventado:
  procedimiento factorial(entero n){
     entero resultado = 1;
     mientras (n > 0) {
        resultado = resultado * n;
        n = n - 1;
     }
     devuelve resultado;
  }
Este procedimiento (o función) recibe un número entero n. Declara una variable resultado que será el resultado final a devolver. Inicialmente, tiene como valor el 1. Después llega una estructura de control denominada bucle, que se ejecuta mientras la condición expresada entre los paréntesis (n > 0) sea cierta. Dentro del bucle se multiplica la variable resultado por n y el valor se deja de nuevo en resultado. La siguiente sentencia (n = n - 1) es necesaria para ir haciendo el factorial, así como para salir en algún momento del bucle. Por último, tras salir del bucle ya podemos devolver el valor final, que estará en la variable resultado.

Nótese que, si en un principio, la variable n es 0, no se entrará en el bucle al no ser cierta la condición, por lo que pasaría directamente a devolver la variable resultado, que tiene valor inicial 1 (0! = 1).

Lenguajes de programación imperativos: entre ellos tenemos el Cobol, Pascal, C y
Ada.

Lenguaje declarativo

Un lenguaje declarativo es un tipo de lenguaje de programación basado más en las matemáticas y en la lógica que los lenguajes imperativos, más cercanos estos al razonamiento humano. Los lenguajes declarativos no dicen cómo hacer una cosa, sino, más bien, qué cosa hacer. A diferencia de los imperativos, no suele haber declaración de variables ni tipos.

Ejemplo de un programa en un lenguaje declarativo: Este sería el código de un programa que determina el factorial de un número en un lenguaje declarativo inventado
  factorial(0) = 1
  factorial(n) = n*factorial(n-1)
 
Como se puede ver, el programa utiliza simplemente 2 líneas. En una está el "caso base", que nos dice que el factorial del número 0 es 1. La otra línea nos dice que el factorial de un número n es n por el factorial de n-1. Un ejemplo de ejecución sería: 

  factorial(3)? = 3*factorial(2) = 
3*2*factorial(1) = 3*2*1*factorial(0) = 3*2*1*1 = 6

Nótese que el caso base es necesario, sino el programa entraría en un bucle infinito, sin terminar jamás.

Lenguajes de programación declarativos: el Lisp y el Prolog.

Lenguajes de programación orientada a objetos

Los lenguajes de programación orientados a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar acciones. Entendiendo como objeto a las entidades que contienen datos. Permitiendo que los programas sean más fáciles de escribir, mantener y reutilizar.

Los objetos tienen toda la información (atributos) que los diferencia de otros pertenecientes a otra clase. Por medio de unos métodos se comunican los objetos de una misma o diferente clase produciendo el cambio de estado de los objetos. Esto hace que a los objetos se les trate como unidades indivisibles en las que no se separan la información ni los métodos usados en su tratamiento.

Este lenguaje tiene su origen en un lenguaje que fue diseñado por los profesores Ole-Johan Dahl y Kristen Nygaard en Noruega. Este lenguaje de programación orientado a objetos fue el “Simula 67” que fue un lenguaje creado para hacer simulaciones de naves.

Son lenguajes dinámicos en los que estos objetos se pueden crear y modificar sobre la marcha. Esta programación orientada a objetos (POO) tomo auge a mediados de los años ochenta debido a la propagación de las interfaces gráficas de usuarios, para lo que los lenguajes de programación orientados a objetos están especialmente dotados.

Entre los principales lenguajes de este tipo tenemos:
Ada, C++, C#, VB.NET, Clarion, Delphi, Eiffel, Java, Lexico (en castellano), Objective-C, Ocaml, Oz, PHP, PowerBuilder, Python, Ruby y Smalltalk.

No todos estos lenguajes son específicamente orientados a objetos. Sino que algunos de ellos se le han añadido extensiones orientadas a objetos.

Lenguajes de programación orientados al problema:
son aquellos lenguajes  específicos para gestión. Ejemplo MatLab, maple.

Lenguajes de programación naturales:
son los nuevos lenguajes que pretender  aproximar el diseño y la construcción de programas al lenguaje de las personas. pyton