programac ao tipos vari aveis e express oes
play

Programac ao: Tipos, Vari aveis e Express oes Jos e Romildo - PowerPoint PPT Presentation

Programac ao de Computadores I Aula 05 Programac ao: Tipos, Vari aveis e Express oes Jos e Romildo Malaquias Departamento de Computac ao Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor e


  1. Programac ¸ ˜ ao de Computadores I Aula 05 Programac ¸ ˜ ao: Tipos, Vari´ aveis e Express˜ oes Jos´ e Romildo Malaquias Departamento de Computac ¸ ˜ ao Universidade Federal de Ouro Preto 2011-1 1/56

  2. Valores ◮ Valor ´ e uma entidade da linguagem que pode ser manipulada durante a execuc ¸ ˜ ao do programa atrav´ es de operac ¸ ˜ oes. ◮ Um valor representa um dado que pode ser processado. ◮ Exemplos: ◮ n´ umeros inteiros: 101, 453, 1231 ◮ textos: ”bom dia”, ”digite um n´ umero” 2/56

  3. Tipos ◮ Tipo ´ e um conjunto de valores que apresenta comportamento uniforme sob um conjunto de opreac ¸ ˜ oes. ◮ Os tipos resultam da classificac ¸ ˜ ao dos valores em categorias que levam em conta a sua representac ¸ ˜ ao na mem´ oria do computador, e as operac ¸ ˜ oes que podem ser realizadas com eles. ◮ Assim os n´ umeros inteiros formam um tipo, e seus valores podem ser manipulados atrav´ es de operac ¸ ˜ oes aritm´ eticas, por exemplo. ◮ J´ a as sequˆ ecias de caracteres (textos) formam outro tipo, e podem ser exibidas na tela, por exemplo. 3/56

  4. Tipos primitivos e tipos derivados ◮ Os valores de um tipo primitivo s˜ ao indivis´ ıveis, e o tipo n˜ ao depende de outros tipos. Exemplos: tipos num´ ericos e tipo dos caracteres. ◮ Os valores de um tipo derivado s˜ ao estruturas formadas por valores mais simples, e o tipo ´ e expresso em func ¸ ˜ ao de outros tipos. Exemplos: listas de inteiros, matriz de n´ umeros reais, registro de um usu´ ario da biblioteca. 4/56

  5. N´ umeros inteiros I ◮ N´ umeros inteiros com sinal: ◮ char ou signed char ◮ short ou signed short ◮ int ou signed int ou signed ◮ long ou signed long ◮ Na representac ¸ ˜ ao de complemento de 2 com n bits: 2 n n´ umero de valores poss´ ıveis − 2 n − 1 menor valor 2 n − 1 − 1 maior valor ◮ Por exemplo, numa representac ¸ ˜ ao de complemento de 2 com 32 bits: n´ umero de valores poss´ ıveis 4 . 294 . 967 . 296 − 2 31 = − 2 . 147 . 483 . 648 menor valor 2 31 − 1 = 2 . 147 . 483 . 647 maior valor 5/56

  6. N´ umeros inteiros II ◮ ´ E garantido que: ◮ n´ umero m´ ınimo de bits e maior valor: tipo n´ umero m´ ınimo de bits maior valor que ´ e garantido char 8 127 short 16 32.767 int 16 32.767 long 32 2.147.483.647 ◮ tamanho( char ) ≤ tamanho( short ) ≤ tamanho( int ) ≤ tamanho (long ) 6/56

  7. N´ umeros inteiros III ◮ N´ umeros inteiros sem sinal: ◮ unsiged char ◮ unsiged short ◮ unsiged int ou unsigned ◮ unsiged long ◮ Utiliza o mesmo n´ umero de bits que o inteiro com sinal correspondente. ◮ Na representac ¸ ˜ ao com n bits: 2 n n´ umero de valores poss´ ıveis menor valor 0 2 n − 1 maior valor ◮ Por exemplo, numa representac ¸ ˜ ao com 32 bits: n´ umero de valores poss´ ıveis 4 . 294 . 967 . 296 menor valor 0 2 32 − 1 = 4 . 294 . 967 . 295 maior valor 7/56

  8. N´ umeros inteiros IV ◮ Como escolher o tipo? ◮ Normalmente use int . ◮ Se precisar de valores grandes, use long . ◮ Se precisar economizar espac ¸o na mem´ oria, use short . ◮ Se valores negativos n˜ ao s˜ ao importantes, use o tipo sem sinal correspondente. ◮ Evite usar os tipos char para representar n´ umeros inteiros, pois costumam ser problem´ aticos. ◮ Se precisar de inteiros maiores que os fornecidos pelos tipos b´ asicos, use uma biblioteca de inteiros de precis˜ ao arbit´ aria . 8/56

  9. N´ umeros inteiros V ◮ Literais expressam diretamente um valor. ◮ Sistema de numerac ¸ ˜ ao: ◮ Decimal : sequˆ ecia de um ou mais d´ ıgitos decimais que n˜ ao comec ¸a com zero. ◮ Octal : sequˆ ecia de um ou mais d´ ıgitos octais comec ¸ando com 0. ◮ Hexadecimal : sequˆ ecia de um ou mais d´ ıgitos hexadecimais precedida de 0x. ◮ Literais sem sinal : acrescenta-se o sufixo u ou U. ◮ Literais long : acrescenta-se o sufixo l ou L. ◮ Exemplos: decimais 2011, 452, 324892 octais 0, 0632, 0234, 03100 hexadecimais 0x324, 0xA3, 0x400FBC01 sem sinal 2011u, 0234u, 0x420Bu longas 2011u, 0234u, 0x420Bu longas sem sinal 23423420ul, 02200174ul, 0x10A20Bul 9/56

  10. N´ umeros em ponto flutuante I ◮ Podem ser representados na mem´ oria por um bit de sinal, seguindo de uma mantissa (algarismos significativos), seguidos por um expoente de uma potˆ ecia de 2: ( − 1 ) sinal × mantissa × 2expoente Exemplo: 0 . 5 = ( − 1 ) 0 × 1 × 2-1 ◮ S˜ ao usados como aproximac ¸ ˜ oes para os n´ umeros reais. ◮ Existem trˆ es tipos que podem diferir na precis˜ ao (quantidade de algarismos significativos) e na faixa (expoente da potˆ ecia de 2). ◮ float ◮ double ◮ long double 10/56

  11. N´ umeros em ponto flutuante II ◮ Literal : ´ e formado por: ◮ uma parte inteira ◮ um ponto decimal ◮ uma parte fracion´ aria ◮ uma parte de expoente ◮ um sufixo ◮ as partes inteira e fracion´ aria s˜ ao formadas por d´ ıgitos decimais ◮ a parte de expoente ´ e formada por e ou E seguido de um sinal opcional ( + ou - ), seguido de um ou mais d´ ıgitos decimais ◮ a parte inteira ou a parte integral podem ser omitidas, mas n˜ ao ambas ◮ o ponto decimal ou a parte de expoente podem ser omitidas, mas n˜ ao ambas ◮ os sufixos f e F indicam o tipo float ◮ os sufixos l e L indicam o tipo long double ◮ se nenhum sufixo ´ e especificado, o literal ´ e do tipo double 11/56

  12. N´ umeros em ponto flutuante III ◮ Exemplos: 23.898e-7 , 43.736 , 32301. , .56 , 34E+87 , 0.612e102 12/56

  13. Caracteres I ◮ O tipo char ´ e utilizado para representar os caracteres: letras, d´ ıgitos decimais, sinais de pontuac ¸ ˜ ao e caracteres de controle. ◮ char ´ e um tipo num´ erico correspondente ao c´ odigo do caracter, por´ em deve-se evitar utiliz´ a-lo simplesmente como um inteiro muito pequeno . ◮ Normalmente utiliza-se a tabela ASCII estendida para codificac ¸ ˜ ao dos caracteres. 13/56

  14. Caracteres II 14/56

  15. Caracteres III ◮ Literais : Escreve-se o caracter entre ap´ ostrofos (tamb´ em chamados de aspas simples): ’A’ , ’+’ , ’!’ , ’#’ ◮ Sequˆ ecias de escape : ◮ forma especial de indicar o caracter ◮ comec ¸am com \ ’\n ’ nova linha ’\r ’ retorno de carro ’\t ’ tabulac ¸ ˜ ao horizontal ’\’’ o caracter ’ ’\"’ o caracter " o caracter \ ’\\’ o caracter cujo c´ odigo ´ e ddd, sendo ddd uma sequˆ ’\ddd ’ ecia de trˆ es d´ ıgitos decimais 15/56

  16. Cadeias de caracteres ◮ Uma string (ou cadeia de caracteres) ´ e uma sequˆ ecia de caracteres e pode ser usada como uma representac ¸ ˜ ao de um texto. ◮ Uma string ´ e representada na mem´ oria como uma sequˆ ecia de valores do tipo char . ◮ O final da sequˆ encia ´ e indicada pelo caracter nulo ’\0’ . ◮ O tipo das strings ´ e um tipo especial chamado ponteiro para caracteres , e ´ e escrito como char* . ◮ Ponteiros ser˜ ao estudados no decorrer do curso. ◮ Um literal string ´ e escrito colocando a sequˆ ecia de caracteres entre aspas. ◮ Exemplos: "abc" , "ana paula" , "bom dia\nBrazil" , "3+4 = 7" 16/56

  17. Vari´ aveis I ◮ V ARI ´ AVEL 17/56

  18. Vari´ aveis II ◮ Vari´ avel ´ e uma posic ¸ ˜ ao de mem´ oria , e usada para guardar um valor . ◮ Pode ser identificada atrav´ es de um enderec ¸o ou atrav´ es de um nome . ◮ ´ E caracterizada por um tipo , que define como a sequˆ encia de bits armazenada na vari´ avel ´ e interpretada. 18/56

  19. Vari´ aveis III 19/56

  20. Vari´ aveis IV ◮ O programador usa vari´ aveis nos algoritmos visando atingir os resultados esperados. 20/56

  21. Vari´ aveis V ◮ Escopo de uma vari´ avel ◮ ´ E o segmento de programa em que a vari´ avel pode ser usada. ◮ Comec ¸ ˜ ao da vari´ ¸a a partir da declarac avel. ◮ Termina no menor bloco contendo a declarac ¸ ˜ ao da vari´ avel. ◮ pode ser um bloco, uma rotina ou todo o programa (locais × globais) global (todos acessam) local(s´ o pertence a ele) 21/56

  22. Vari´ aveis VI ◮ Identificador ◮ Nome de vari´ aveis, func ¸ ˜ oes, r´ otulos e v´ arios outros objetos definidos pelo usu´ ario ◮ Constantes ◮ Identificadores que n˜ ao podem ter seus valores alterados durante a execuc ¸ ˜ ao do programa 22/56

  23. Vari´ aveis VII ◮ Alocac atica × Alocac ¸ ˜ ao est´ ¸ ˜ ao dinˆ amica ◮ Alocac ¸ ˜ ao est´ atica ◮ Reserva de espac ¸o de memoria antes da execuc ¸ ˜ ao ◮ Vari´ aveis locais e globais armazenadas de forma FIXA ◮ Necessidade de previs˜ ao de tamanho do espac ¸o (ex. vetor) ◮ Alocac ¸ ˜ ao dinˆ amica ◮ Reserva de espac ¸o de memoria em tempo de execuc ¸ ˜ ao ◮ Necessidade de func ¸ ˜ ¸ ˜ oes para alocac ao ◮ Uso de ponteiro para a ´ area reservada e crescimento dinˆ amico 23/56

  24. ¸ ˜ ao de vari´ Declarac aveis I ◮ Uma declarac ¸ ˜ ao de vari´ avel introduz uma nova vari´ avel para ser utilizada no programa. ◮ ´ E necess´ ario especificar o nome e o tipo da vari´ avel. ◮ O compilador se encarrega de gerar c´ odigo para alocar espac ¸o na mem´ oria para a vari´ avel. O tamanho em bits do espac ¸o alocado depende do tipo da vari´ avel. 24/56

  25. ¸ ˜ ao de vari´ Declarac aveis II ¸o de memoria utilizado pelas vari´ Espac aveis 25/56

Recommend


More recommend