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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend