You are on page 1of 35

MSc. Ing.

Ezzard Omar Alvarez Daz

REPRESENTACION DE DATOS
Presenta la forma como se representan los datos en

una computadora sustentados en conceptos de matemtica discreta y prueba los mismos utilizando los lenguajes de programacin C y C++.

Tipos de datos
Tipo Entero
Conjunto de los nmeros enteros positivos y negativos En la prctica estn limitados por el almacenamiento -> Overflow Operaciones bsicas: aritmticas, relacionales

Tipo Real
Conjunto de los nmeros reales positivos y negativos (parte entera y parte decimal separada por un punto) En la prctica estn limitados por el almacenamiento -> Overflow Operaciones bsicas: aritmticas, relacionales

Tipos de datos
Conjunto de valores junto con las operaciones sobre

esos valores Tipos elementales


Entero Real Carcter Lgico

Tipos de datos
Tipo carcter Conjunto de elementos de un conjunto de caracteres predefinidos o alfabeto (normalmente se utiliza el conjunto de caracteres ASCII) Generalmente se almacenan internamente como datos enteros (cdigo ASCII) Operaciones de conversin de enteros a caracteres y viceversa y relacionales Lgicos Valores entre 2 posibles, es decir, valores binarios (verdad/falso, si/no) En algunos lenguajes no se implementan sino que se consideran como verdad cualquier valor distinto de 0 Operaciones: operadores lgicos (AND, OR y NOT) Fundamentales para evaluar condiciones

Clases de Datos
Clase Entero

Representa valores discretos , conocidos generalmente como los int. Los enteros estndar tienen un rango de 32768 a 32767
Clase Entero short int o short int unsigned int long int or long unsigned long Tamao de bytes 1o2 2o4 2o4 4 4

Sizeof : devuelve el tamao en bytes del argumento (tipo de dato )

Representacin de Enteros
El tremendo crecimiento de las computadoras se debe

particularmente al hecho de que estos dispositivos fsicos son cada vez ms baratos y se distinguen por que manipulan dos estados a grandes velocidades. De hecho las computadoras son dispositivos que manipulan dos estados (0,1); es decir binario y tambin con representaciones en octal y hexadecimal los que son utilizados para la representacin de datos.

El siguiente programa en C++ calcula la representacin de algunos nmeros en base decimal, octal y hexadecimal para datos de tipo entero.
#include <iostream> #include <conio.h> int x[]={1,-1,256,360,512, 1024}; using namespace std; int main() { int i; for(i=0;i<sizeof(x)/sizeof(int);i++) { cout<<endl<<"En decimal " <<dec<<x[i]; cout<<endl<<"En hexadecimal "<<hex<<x[i]; cout<<endl<<"En octal " <<oct<<x[i]<<endl; } system ("PAUSE"); return 0; }

Clase flotante
Donde entero puede ser un digito decimal o una

secuencia de dgitos
Clase Entero float double long double Tamao de bytes 4 8 10 o 12

Float double long double

: reales de precisin simple : reales de precisin doble : reales de precisin extendida

NOTACION SIN SIGNO


La notacin sin signo es usada para representar

enteros no negativos. Esta notacin no soporta enteros negativos ni nmeros de punto flotante El 0 es el nico que est representado en notacin sin signo. C++ posee los siguientes tipos de notacin sin signo en sus programas.
- unsigned char 8 bits
- unsigned short 16 bits - unsigned int (tamao nativo de la mquina) - unsigned long (depende de la mquina)
NOTA: El nmero de bits para cada tipo puede ser dependiente del compilador.

Programa que muestra el rango de los enteros sin signo en C++


#include <iostream> #include <stdlib.h> #include <limits.h> using namespace std; int main() {

cout<<" RANGO DE LOS ENTEROS SIN SIGNO"<<endl; cout<<endl<<"Entero sin signo maximo "<<UINT_MAX; cout<<endl<<"Entero corto sin signo maximo "<<SHRT_MAX; cout<<endl<<"Entero largo sin signo maximo "<<LONG_MAX; cout<<endl<<"Caracter sin signo maximo "<<UCHAR_MAX; cout<<endl; system("PAUSE"); return 0;
}

NOTACION DE MAGNITUDES CON SIGNO


Los nmeros en magnitud con signo se usan para

representar enteros positivos y negativos. La notacin de magnitud con signo no soporta nmeros en punto flotante. El rango de las magnitudes de notacin con signo es simtrico y el cero es el nico no representado.

Programa que muestra el rango de los enteros con signo en C++


#include <iostream> #include <stdlib.h> #include <limits.h> using namespace std; int main() { cout<<" RANGO DE LOS ENTEROS CON SIGNO"<<endl; cout<<"\nEntero con signo maximo "<<INT_MAX; cout<<"\nEntero con signo minimo "<<INT_MIN<<endl; cout<<"\nEntero corto con signo maximo "<<SHRT_MAX<<endl; cout<<"\nEntero largo con signo maximo "<<LONG_MAX; cout<<"\nEntero largo con signo minimo "<<LONG_MIN<<endl; cout<<"\nCaracter con signo maximo "<<SCHAR_MAX; cout<<"\nCaracter con signo minimo "<<SCHAR_MIN<<endl; system("PAUSE"); return 0; }

REPRESENTACION DE CARACTERES
Los caracteres (letras, dgitos, signos de puntuacin,

etc.) son representados en el sistema de caracteres ASCII , el cual es un conjunto que posee 256 cdigos (0,, 255), donde cada cdigo es 1 byte. Los primeros 128 cdigos ASCII son caracteres de control los cuales fueron de uso comn en las primeras mquinas. Como puede verse, los caracteres ASCII son ordinales y a cada carcter le corresponde un nmero.

Clase caracter
ASCII consta de 256 caracteres (0 255)
Clase caracter char unsigned char Tamao de bytes 1 1 Rango de Valores -128 a 127 0 a 255

#include<ctype,h> //para todo char toascii : convierte carcter a su valor ascii

Mayscula 65 90 Minscula 97 - 122

Programa que muestra los caracteres alfabticos tanto en maysculas como en minsculas y su correspondiente valor ASCII
#include <iostream> #include <stdlib.h> #include <ctype.h> using namespace std; int main() { char c; cout<<"\nCARACTERES ALFABETICOS EN MAYUSCULAS"<<endl; for (c='A'; c<='Z'; c++) cout<<c<<" = "<< toascii(c)<<"\t"; cout<<endl; cout<<"\nCARACTERES ALFABETICOS EN MINUSCULAS"<<endl; for (c='a'; c<='z'; c++) cout<<c<<" = "<< toascii(c)<<"\t"; cout<<endl<<endl; system("PAUSE"); }

Clase booleana
Todo objeto booleano solo posee uno de los valores:

true (verdadero) y false (falso); por convenio true = 1 y false = 0.

Clase enum
En C y C++ se pueden definir nuevos datos a partir

de la clusula enum. El formato es el siguiente : <enum> <identificador> (<lista de elementos>)


Ejemplo enum dias {lunes, martes, miercoles, jueves,

viernes, sabado, domingo}; dias dia Tipo de dato objeto o variable

Elementos de un algoritmo
Variables, constantes y expresiones
Estructuras de control Secuencial

Operacin de asignacin Operacin de entrada Operacin de salida

Condicional Repetitiva

Variables
Una variable es un objeto de datos que posee un valor

conocido por su nombre (identificador) Toda variable tiene un tipo asociado Su valor puede ser modificado pero en un instante dado slo contiene un valor determinado Es necesario declarar las variables al principio del algoritmo
Elegir el nombre mediante un identificador Determinar el tipo de datos que va a contener

Ejemplos
Sueldo: real Edad: entero Letra_nif: caracter

Variables, constantes y Tipos de datos


Las variables son abstracciones para manejar datos en un algoritmo.
Las variables hacen referencia a localizaciones

fsicas de memoria interna. a c Toda variable posee: un nombre, un tipo de dato. b 5 10 2 Ejemplo:

int X;
Memoria RAM

Constantes
Objeto de datos que contiene un valor invariable

conocido por su identificador Es necesario inicializar las constantes al principio del algoritmo
Esto determina el tipo de la constante

Una constante puede ser un nmero entero, real(int,

float, double), un texto (string), un valor lgico (boolean).


Ejemplos
PI=3.14 SALUDO=Hola mundo MAXIMO=500 RESPUESTA=S

Identificadores
Un identificador es una secuencia de caracteres que permite identificar de forma nica a cada elemento/objeto de un algoritmo No todos los caracteres son vlidos por lo que normalmente se usan letras, dgitos y subrayado (_) El primer carcter debe ser una letra o subrayado Pueden tener cualquier longitud dentro del lmite que imponga el compilador Las palabras reservadas del lenguaje no pueden utilizarse como identificadores Algunos lenguajes no distinguen entre caracteres en maysculas y minsculas (Pascal, Modula-2) y otros s (C, Java) Reglas para crear identificadores o Usar solo letras, dgitos y subrayado o Usar minsculas para identificadores de variables o Usar maysculas para identificadores de constantes o Para identificadores de funciones con ms de una palabra usar subrayado para separar las palabras o maysculas para la primera letra de cada palabra (Ej. CalcularFechaNacimiento)

Operadores

En C++ existen diferentes tipos de operadores:


Operadores Aritmticos Operadores Relacionales Operadores Lgicos Operador de Asignacin

Clase 2

25

Operadores

Los operadores ARITMTICOS son:


SIGNIFICADO OPERADOR

Suma Resta Multiplicacin Divisin Mdulo (residuo)

+ * / %

5+2 5-2 5*2 5/2 5 %

7 3 10 2.5 2 1

Clase 2

26

Operadores

Los operadores RELACIONALES son:


SIGNIFICADO OPERADOR EJEMPLO

Mayor que Mayor o igual que Menor que Menor o igual que <= Igual que diferente de
Clase 2 27

> >= < 5<=2 == !=

5>2 5>=2 5<2 5=2 5<>2

Operadores

Los operadores LOGICOS son:


Negacin lgica Inclusin lgica (Y) Disyuncin lgica (O) Not And Or ! && ||

Clase 2

28

Operadores

Operador de ASIGNACION (=):


Sintaxis:

Variable = Expresion Variable: Cualquier nombre de variable Expresion: Cualquier literal numrico o alfanumrico, constante o expresin vlida. Primero se evala Expresion y el resultado se asigna a variable
29

Clase 2

Expresiones

Una EXPRESIN es cualquier combinacin vlida de operandos y operadores. Los operandos pueden ser literales (numricos, alfanumricos, lgicos), constantes, variables, funciones. Las expresiones pueden ser Aritmticas, Relacionales, Lgicas, carcter dependiendo de los operadores que se usan

Clase 2

30

Expresiones Aritmticas

Una expresin aritmtica es una expresin que puede ser evaluada como un nmero Llamada tambin Expresiones numricas Operandos: Literales numricos, Expresiones numricas, funciones numricas Operadores: Aritmticos Resultado: Valor numrico Ejemplo: Si A=2, entonces 5*A+2/A-3 8
31

Clase 2

Expresiones Relacionales

Llamada tambin Expresin de comparacin Operandos: Expresiones numricas alfanumricas Operadores: relacionales Resultado: Valor lgico (booleano) Ejemplo: Si A=2, entonces 5*A > 3

Clase 2

32

Expresiones Lgicas

Operandos: Expresiones relacionales lgicas Operadores: lgicos Resultado: Valor lgico (booleano) Ejemplo: Si A = 2 4*A > -1 And X2 = X && A True True And False Or False False

Clase 2

33

Precedencia de los operadores


Precedencia
()[] ! ++ -*/ % + << >> < <= > >= == != &
&& || ?:

Asociatividad
Izquierda a Derecha Derecha a Izquierda Derecha a Izquierda Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Izquierda a Derecha Derecha a Izquierda

Precedencia de los operadores

You might also like