jueves, 12 de abril de 2012

PREESENTACION

                                          REPUBLICA BOLIVARIANA DE VENEZUELA
 MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA
   MISION SUCRE. ALDEA CIUDAD ANGOSTURA
                     UNIDAD CURRICULAR: ALGORITMIA Y PROGRAMACION
              I TRIMESTRE. SISTEMA








 DATO Y ENTIDADES PRIMITIVAS









PROFESORA:                                                                                                                                         ALUMNA:
MANAURE, INGRID                                                                                                                             LOPEZ, AMERICA






CIUDAD BOLIVAR, 12 DE ABRIL DE 2012

DIFERENCIA ENTRE DATO E INFORMACION


1. Los Datos a diferencia de la información son utilizados como diversos métodos para comprimir la información a fin de permitir una transmisión o almacenamiento más eficaces.

2. Aunque para el procesador de la computadora hace una distinción vital entre la información entre los programas y los datos, la memoria y muchas otras partes de la computadora no lo hace. Ambos son registradas temporalmente según la instrucción que se le de. Es como un pedazo de papel no sabe ni le importa lo que se le escriba: un poema de amor, las cuentas del banco o instrucciones para un amigo. Es lo mismo que la memoria de la computadora. Sólo el procesador reconoce la diferencia entre datos e información de cualquier programa. Para la memoria de la computadora, y también para los dispositivos de entrada y salida (E/S) y almacenamiento en disco, un programa es solamente más datos, más información que debe ser almacenada, movida o manipulada.

3. La cantidad de información de un mensaje puede ser entendida como el número de símbolos posibles que representan el mensaje."los símbolos que representan el mensaje no son más que datos significativos.

4. En su concepto más elemental, la información es un mensaje con un contenido determinado emitido por una persona hacia otra y, como tal, representa un papel primordial en el proceso de la comunicación, a la vez que posee una evidente función social. A diferencia de los datos, la información tiene significado para quien la recibe, por eso, los seres humanos siempre han tenido la necesidad de cambiar entre sí información que luego transforman en acciones. "La información es, entonces, conocimientos basados en los datos a los cuales, mediante un procesamiento, se les ha dado significado, propósito y utilidad"




DATO

El dato es una representación simbólica (numérica, alfabética, algorítmica, entre otros.), un atributo o característica de una entidad. Los datos describen hechos empíricos, sucesos y entidades.

Los datos aisladamente pueden no contener información humanamente relevante. Sólo cuando un conjunto de datos se examina conjuntamente a la luz de un enfoque, hipótesiso teoría se puede apreciar la información contenida en dichos datos. Los datos pueden consistir en números, estadísticas o proposiciones descriptivas. Los datos convenientemente agrupados, estructurados e interpretados se consideran que son la base de la información humanamente relevante que se pueden utilizar en la toma decisiones, la reducción de la incertidumbre o la realización de cálculos.

En programación, un dato es la expresión general que describe las características de las entidades sobre las cuales opera un algoritmo.

TIPOS DE DATOS

· Caracter. Frecuentemente se les conoce como Char, porque generalmente los lenguajes de programación están en inglés. Este tipo de dato representa a los caracteres simples, como 'm'. Un tipo de dato complejo que se deriva del tipo caracter, es aquel que reúne más de un caracter y forma palabras o frases, se llama tipo cadena o string. Ejemplo: la variable nombreEmploado de tipo string puede alojar el dato ´Juancho Perineo´.



· Entero. Los enteros están entre los tipos de datos más utilizados en los lenguajes de programación. Hay diferentes clases de números enteros y difieren por el tamaño de ellos, incluyendo enteros cortos y enteros largos. Por ejemplo, en Java, los enteros cortos se alojan en 8 bits, mientras que los enteros de tipo largo, ocupan hasta 64 bits de longitud. Los números enteros son positivos y negativos, por ejemplo -2 y 11390. Notemos que no tienen punto decimal.



· Real. Los números reales son números con parte decimal, por ejemplo -2.0, 11390.0 y 12.45. Sin embrago, hay lenguajes de programación como NetLogo, que no hacen diferencia entre números enteros y reales cuando son exactos, como el caso de 1 y 1.0.



· Booleano. Los valores booleanos son valores lógicos y pueden ser falso o verdadero. En estos valores se indica el verdadero con el número 1 y el falso con el 0. Algunos lenguajes de programación, como C, prefieren poner un 0 cuando es falso y cualquier otra cosa cuando es verdadero. En el lenguaje de programación Scheme, los valores lógicos son #\t y #\f y no tienen significado numérico.

OPERADORES Y TIPOS


Son elementos que relacionan de forma diferente, los valores de una o mas variables y/o constantes. Es decir, los operadores nos permiten manipular valores.


EXPRESIONES

       Son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales.

 Por ejemplo:

a + (b + 3) / c



Cada expresión toma un valor que se determina tomando los valores de las variables y constantes implicadas y la ejecución de las operaciones indicadas. Una expresion consta de operadores y operandos.

TIPOS Y EVALUACION DE EXPRESIONES

·         EXPRESIONES LOGICAS

           El resultado de la evaluación de la expresión es un valor lógico (cierto o falso). Se construye mediante operadores relacionales y operadores lógicos.



Operadores lógicos

             Operan sobre operandos (constantes, variables, expresiones) de diferentes tipos (numéricos, caracteres) y dan como resultado un valor de tipo lógico (cierto o falso; 1 o 0).



Operacion Operador Alg. Op. C Exp. C

Igualdad = == a==b

Desigualdad ≠ != a!=b

Menor < < a<b

Menor Igual ≤ab

Mayor ab

Mayor Igual ≥ab


Operador Lógico

 Operan sobre operandos (constantes, variables, expresiones) de tipo lógico (cierto o falso) y evalúan a un valor de tipo lógico (cierto o falso).

Operación Op. Algebraico Op. C Exp.

C y lógico && a && b

o lógico || a || b

Negación ¬ ! !a




Expresiones Lógicas

Ejemplos

!(p && q) || s

p && q && s

(a || b) && (c || d)

a > 5 && !(b < c) || 3 <= d

(op < min) || (op > max)

(edad >= 18) && (edad <= 60)



Precedencia de los Operadores Lógicos


( ) Sub-expresiones encerradas entre paréntesis se evalúan primero (mayor nivel de precedencia).

!&&|| (menor nivel de precedencia)




·         EXPRESIONES ARITMETICAS

  Los operandos que intervienen en ella son numéricos, el resultado es numérico y los operadores son aritméticos.



La Operación Asignación



variable = expresión;



La sentencia de asignación es un modo de darle valores a una variable.

La expresión se evalúa y el resultado es asignado a la variable.

La sentencia de asignación modifica el contenido de una variable.



variable = valor constante; x = 3;

variable = variable; x = y;

variable = expresión; x = (y + 1)/2;



Ejemplos

a = b;

suma = 60;

¿ Cuál será el valor que tomará la variable D tras la  ejecución de las siguientes instrucciones ?

A = 12;

B = A + 5;

C = B - 2;

D = C + (A + B);


Operadores Aritméticos

Decremento (--)

Para n = 5, la ejecución de la sentencia

i = n--; // post-decremento

asigna el valor 5 a i y después decrementa el valor de n a 4.

i = 5

n = 4

La ejecución de la sentencia

i = --n; // pre-decremento

decrementa el valor de n a 3 y después asigna este valor a i.

n = 3

i = 3


Operador Incremento/ decremento

• Siempre que pueda, no utilice ++a; o --a; aunque son operaciones válidas.

• Puede utilizar incrementos/ decrementos en una expresión, por ejemplo

x =5 +y++;

Equivalente a

x =5 +y;

y++;

• Se utilizan sólo con variables enteras.



Los operadores +, -, *, /, se pueden usar con operandos (constante, variable o expresión) tanto enteros como reales.

La división de enteros da como resultado un entero.

17/5 = 3

El operador módulo (%) sólo puede ser utilizado con operandos enteros. La expresión a%b da como resultado el resto de la división entera de dos números

a y b.

17%5 = 2


Los operandos de una expresión aritmética deben satisfacer las siguientes reglas:

1. Si ambos operandos son de tipo entero entonces el resultado es de tipo entero.

2.  Si uno de los operandos o ambos operandos son de tipo real entonces el resultado es de tipo real.

3. Si la expresión evaluada da como resultado un valor de tipo entero y la variable a la cual se le va a asignar este valor es de tipo real, entonces el resultado será convertido automáticamente al tipo real antes de realizar la asignación.

4. Si la expresión evaluada da como resultado un valor de tipo real y la variable a la cual se le va a asignar este valor es de tipo entero, entonces el resultado será convertido automáticamente al tipo entero antes de realizar la asignación.

5.  En general los tipos de datos son promovidos, desde un tipo mas angosto hacia uno más amplio. Ej: de int a float.

6. Cuando hay conversiones de datos más grandes a datos más pequeños, ocurre un truncamiento de los bits mas significativos.



·         EXPRESIONES  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.

Si la propuesta es cierta, el resultado es true (un valor distinto de cero), si es falsa false (cero). C++ dispone de los siguientes:


<      Menor que

>      Mayor que

<=    Menor o igual que

>=    Mayor o igual que

==    Igual que  (identidad)

!=     Desigual que (desigualdad)



expresión-relacional  <   shift-expresion

expresión-relacional  >   shift-expresion

expresión-relacional  <=  shift-expresion

expresión-relacional  >=  shift-expresion

expresión-de-igualdad == expresión-relacional

expresión-de-igualdad != expresión-relacional



Todos ellos son operadores binarios (utilizan dos operandos), de los cuales, dos de ellos son de igualdad: == y !=, y sirven para verificar la igualdad o desigualdad entre valores aritméticos o punteros.  Estos dos operadores pueden comparar ciertos tipos de punteros, mientras que el resto de los operadores relacionales no pueden utilizarse con ellos.


Observe que los operadores == y != tienen una menor precedencia  que el resto de los operadores relacionales < y >, <= y >=.

El operador de desigualdad != tiene otra forma estándar de designación mediante la palabra clave not_eq

          Cualquiera que sea el tipo de los operandos, por definición, un operador relacional, produce un bool (true o false) como resultado, aunque en determinadas circunstancias puede producirse una conversión automática de tipo a valores int (1 si la expresión es cierta y 0 si es falsa).


Ejemplo de comprobación:


#include <iostream.h>

 int main() {

   float f = 12.1, g = 12.2;

   cout << "Tipo: " << typeid(f < g).name() << endl;

 }


Salida


Tipo: bool


En las expresiones relacionales E1 <operador> E2, los operandos deben cumplir alguna de las condiciones siguientes:

1.E1 y E2 son tipos aritméticos.

2.E1 y E2 son punteros a versiones cualificadas o no cualificadas de tipos compatibles.

3.Uno de ellos es un puntero a un objeto, mientras que el otro es un puntero a una versión cualificada o no cualificada de void.

4.Uno de los dos es un puntero, mientras que el otro es un puntero nulo constante.


Cuando se trata de tipos definidos por el usuario (que no cumplen las condiciones anteriores) estos operadores pueden ser sobrecargados de forma que puedan ser utilizados con dichos tipos.  


 Las expresiones relacionales evalúan mediante un operador si las expresiones que se encuentra al lado izquierdo y derecho del mismo cumplen con lo expresado por el operador, a esto también se le conoce como criterio de selección.


Expresión o valor 1 debe ser del mismo tipo de la expresión o valor dos, esto no significa que en ambos lados de la expresión deben existir valores equiparables es decir yo no puedo comparar el color azul con veinte unidades de azúcar, más adelante conoceremos otros tipos de datos diferentes a los numéricos y por tanto se hace esta precisión ahora.

Método para evaluar expresiones relacionales.

 Para obtener el resultado de False o True, es necesario lograr equipara el lado izquierdo y derecho de la expresión relacional, para tales efectos lo ideal es dejar un solo término tanto al lado derecho como al lado izquierdo de la expresión y realizar la comparación entre estos dos únicos términos.

 1. Identificar el lado derecho, el operador relacional y el lado izquierdo de la expresión. Para esto nos valemos del hecho, que una expresión relacional solo puede tener un operador relacional.

 2. Resolver la expresión del lado  izquierdo del operador relacional, en caso de que exista.

 3. Resolver de existir la expresión de lado derecho.

 4. Aplicar el criterio que define el operador en medio de la expresión relacional, de cumplirse retornar verdad, de lo contrario falso.



  • EVALUACIÓN DE EXPRESIONES

       Las expresiones son secuencias de constantes y/o variables separadas por operadores válidos.

Se puede construir una expresión válida por medio de:

1. Una sola constante o variable, la cual puede estar precedida por un signo + ó - .

2. Una secuencia de términos (constantes, variables, funciones) separados por operadores.


Además debe considerarse que:
        Toda variable utilizada en una expresión debe tener un valor almacenado para que la expresión, al ser evaluada, dé como resultado un valor. Cualquier constante o variable puede ser reemplazada por una llamada a una función.


Como en las expresiones matemáticas, una expresión en Pascal se evalúa de acuerdo a la precedencia de operadores. La siguiente tabla muestra la precedencia de los operadores:


Precedencia de operadores

5     -  (Menos unario)

4       Not

3      * / div mod and shl shr

2      + - or xor

1           = <> > < >= <=


Las reglas de evaluación para las expresiones son:
                                                
1. Si todos los operadores en una expresión tienen la misma precedencia, la evaluación de las operaciones se realiza de izquierda a derecha.

2. Cuando los operadores sean de diferentes precedencias, se evalúan primero las operaciones de más alta precedencia (en una base de izquierda a derecha), luego se evalúan las de precedencia siguiente, y así sucesivamente.

3. Las reglas 1) y 2) pueden ser anuladas por la inclusión de paréntesis en una expresión.



Ejemplos:

1. 3 + 2*5 {*,+}

4 + 10 =14

2. 20*4 div 5


{Igual prioridad de izquierda a derecha: *,div}

3. 80 div 5 = 16

3 - 5 * (20+(6/2))

3 - 5 * (20+(6/2)) = 3 - 5 * (20 + 3)



{paréntesis más interno}

= 3 - 5 * 23 {segundo paréntesis}

= 3 - 115 {Multiplicación}

= -112 {resta}            


Jerarquía de operadores
          El orden general de evaluación de los operadores de una expresión va de izquierda a derecha, con la excepción de las asignaciones que lo hacen de derecha a izquierda.


Podemos seguir las siguientes tres reglas de evaluación de expresiones:


(Regla 1) En todas las expresiones se evalúan primero las expresiones de los paréntesis más anidados (interiores unos a otros); y éstos modifican la prioridad según la cantidad de éstos, los cuales tienen que estar balanceados (el mismo número de paréntesis que abren debe ser igual al número de los paréntesis que cierran).

(Regla 2) Todas las expresiones se evalúan tomando en cuenta la jerarquía de los operadores.

(Regla 3) Todas las expresiones se evalúan de izquierda a derecha.