Prévia do material em texto
Tipos de Dados Primitivos Tipos de Dados Primitivos Leopoldo França leopoldofrancaneto@gmail.com Arquitetura: � Computadores Digitais � Representação Binária � Bits � Bytes (conjunto de 8 bits) � Memória principal � Codificação � Aritmética Computacional Tipos Básicos: � Números � Inteiros � Reais � Caracteres � Lógicos � Cadeia de Caracteres (vetor de caracteres) Tipos Básicos �Representações �Operações Tipos básicos (Inteiros) (I) C/C++ � int ( 16 bits ) � Variação: -32768..+32767 � unsigned int ( 16 bits ) � Variação: 0..65535 � short int ( 16 bits ) � Variação: -32768..+32767 Tipos básicos (Inteiros) (II) C/C++ � long ( 32 bits ) � Variação: -2.147.483.648..+2.147.483.647 � unsigned long ( 32 bits ) � Variação: 0..4.294.967.295 Tipos básicos (Reais) C/C++ � float( 32 bits - Precisão simples) � Variação:-3,4E-38.. +3,4E+38 � double ( 64 bits - Precisão dupla) � Variação:-1,7E-308.. +1,7E+308 � long double ( 80 bits ) � Variação:-3,4E-4932.. +1,1E+4932 Tipos básicos (Caractere e Lógico) C/C++ � char ( 8 bits ) � Variação: -128..+127 � unsigned char ( 8 bits ) � Variação: 0..255 � wchar_t ( 16 bits sem sinal) � Variação: 0.. 65535 � bool ( 8 bit - tipo lógico ) � Variação: true ou false Tipos básicos (Inteiros) JAVA � byte ( 8 bits ) � Variação: -128...+127 � short ( 16 bits ) � Variação: -32768...+32767 � int ( 32 bits ) � Variação: -2.147.483.648...+2.147.483.647 � long ( 64 bits ) � Variação: -9.223.372.036.854.775.808... +9.223.372.036.854.775.807 Tipos básicos (Reais) JAVA � float( 32 bits - Precisão simples) � Variação:-3,4E-38... +3,4E+38 � double ( 64 bits - Precisão dupla) � Variação:-1,7E-308... +1,7E+308 Tipos básicos (Caractere e Lógico) JAVA � char( 16 bits sem sinal) � Variação: 0... 65535 � Inclui UNICODE ( alfabetos latino, grego, cirílico, ideogramas japoneses, etc ) � boolean ( 1 bit - tipo lógico ) � Variação: true ou false Operadores Trabalha-se com quatro conjuntos de operadores: � básicos � aritméticos � relacionais � lógicos e binários Operadores básicos . referência a método, função ou atributo de um objeto , separador de identificadores ; separador de declarações e comandos [ ] declarador de matrizes e delimitador de índices { } separador de blocos e escopos locais ( ) precedência de operadores, listas de parâmetros Operadores aritméticos (I) + adição x=x + 3 - subtração x=x - 3 / divisão x=y / 4 * multiplicação x=y * 4 % resto da divisão x=y % 5 ++ incremento de 1 x++ ++x -- decremento de 1 x-- --x Operadores aritméticos (II) += atribuição aditiva x+=3 Tem o mesmo efeito de x=x+3 -= atribuição subtrativa x-=3 *= atribuição multiplicativa x*=3 /= atribuição divisiva x/=3 %= atribuição de resto x%=3 Operadores relacionais = = igual x = = y != diferente x!=y > maior x>y < menor x<y >= maior ou igual x>=y <= menor ou igual x<=y Operadores lógicos e binários (I) ~ negação bit a bit ~x >> shift right x>>3 >>>shift right sem sinal x>>>3 << shift left x<<3 >>=atribuição c/ shift right x>>=3 <<= atribuição c/ shift left x<<=3 >>>=atribuição c/ shift right x>>>=3 sem sinal Operadores lógicos e binários (II) & and lógico bit a bit x&y | or lógico bit a bit x|y ^ xor lógico bit a bit x^y &= atribuição com & x&=y |= atribuição com | x|=y ^= atribuição com ^ x^=y Operadores lógicos e binários (III) ? : if-then-else lógico x=((y>3)?5:6) || or dinâmico (x>y) || (z>=6) && and dinâmico (x>y) && (z<4) ! not dinâmico !(x>y) Precedência de operadores ( ) [] . ; , ++ -- ! * / % + - >> << >>> > < >= <= == != & ^ | && || ?: = Aumenta prioridade de resolução Diminui prioridade de resolução Dúvidas ? Prof. Leopoldo França leopoldofrancaneto@gmail.com Exercício: � Ler uma coleção de N valores inteiros, lidos através do teclado. Computar e exibir a MÉDIA ARITMÉTICA dos inteiros da coleção cujos valores estão compreendidos entre K e L, com K< L, ambos lidos através do teclado. � Exemplo : Coleção: { 3, 5, 1, 4, 0, 13, 9, 7, 5, 11, 8, 6, 12 }; N=13; K=4; L=9; Então: MÉDIA = ( 5 + 7 + 5 + 8 + 6 ) / 5 = 6.2