Tipos de dados para uso em algoritmos

Operações relacionais e lógicas Operações Aritméticas variáveis Tipos de dados Estruturas Aninhadas algoritmos

Olá Pessoal!! No primeiro artigo da série aprendemos sobre como resolver problemas usando Algoritmo Passo a Passo. Antes de prosseguirmos para outras formas de representação de Algoritmos, apresentarei para vocês, neste segundo artigo, um tópico importante para desenvolvermos as nossas soluções: os tipos de dados. 

 

 

Tipos de Dados

 

Um tipo de dado nada mais que é algo do mundo real que pode ser representado computacionalmente. Por exemplo, os números que pertencem ao conjunto dos números inteiros, os números que pertencem ao conjunto dos números reais, letras, caracteres especiais, acentuação, pontuação, palavras, etc.

 

As linguagens de programação implementam formas de representar e manipular esses dados, que podem ser classificados em dois grandes grupos: os tipos de dados primitivos e os tipos de dados não primitivos. Os tipos de dados primitivos são os tipos básicos que devem ser implementados por todas as linguagens de programação, como os números reais, inteiros, booleanos, caracteres e strings. Os tipos de dados não primitivos, normalmente são os vetores, matrizes, classes, enumerações, etc., que costumam ser estruturas de dados mais complexas do que os tipos de dados primitivos.

 

De acordo com Francisco A. C. Pinheiro, um tipo de dado caracteriza um conjunto de valores, determinando a natureza, o tamanho, a representação e a faixa de representação. A natureza caracteriza o tipo representado, que pode ser, por exemplo, um caractere, um número inteiro, um número real ou uma cadeia de caracteres. O tamanho determina o tamanho (a quantidade) em bits necessário para armazenar os valores do tipo. A representação determina a forma como os bits armazenados devem ser interpretados. A Imagem ou faixa de representação determina a faixa de valores válidos para o tipo. A expressão usada para identificar um tipo de dado é chamada de especificador de tipo.

 

Nos slides encontram-se várias tabelas com a forma de representação dos dados primitivos para as linguagens Java e C, as mais utilizadas em todo o Brasil. Essas tabelas podem servir de referência para você quando for desenvolver software nestas linguagens:

 

  

 

Relação entre hardware e tipos de dados

 

Algo importante sobre os tipos de dados, e que quase ninguém se dá conta, é que eles devem primeiro ser possíveis de existirem, e de ser manipulados, pelo hardware. Isso significa que é o Hardware quem diz quais os tipos de dados primitivos que podem ser processados por uma máquina computacional. Vamos recordar algumas coisas importantes e bem básicas sobre microprocessadores.

 

Como todos nós sabemos, um microprocessador tem quatro unidades principais: entrada, saída, armazenamento e processamento. A unidade de processamento é composta por outras unidades funcionais, muitas delas na verdade, mas todo microprocessador tem as unidades funcionais básicas e essenciais, que são a unidade de controle (UC), a unidade lógica e aritmética (ULA), unidade de ponto flutuante (FPU) e os registradores.

 

A ULA é responsável por realizar os cálculos lógicos e aritméticos, então só é possível realizar adições, subtrações, comparações, multiplicações, entre outras operações matemáticas, em seu software, pois existe um hardware que faz isso. Se você quiser realizar a soma 15 + 10, em seu programa, você pode, pois existe um circuito digital, dentro do seu microprocessador, que faz isso.

 

O mesmo serve para a FPU, que trabalha com números de ponto flutuante, que é uma unidade funcional especifica para trabalhar com esse tipo de dado. Para os tipos de dados multimídia, como áudio, vídeo e imagem, também existem outras unidades funcionais para realizar a representação e o processamento desses tipos de dados específicos. E assim vai, portanto, os tipos de dados primitivos que podem ser implementados em uma Linguagem de Programação quaisquer, só são possíveis de existirem pois o Hardware o permite. Além disso, cada Linguagem de Programação pode representar e manipular esses tipos de formas diferente, entretanto, alguns desses tipos devem seguir um padrão, para haver menor impacto na compatibilidade. Java e C costumam seguir os padrões determinados pela IEEE, ISO/IEC, e outros órgãos reguladores.

 

Todos os tipos de dados primitivos devem ser representados de alguma forma em bits, de forma que os mesmos possam ser armazenados em memória, incluindo o seu sinal. Vocês notarão a palavra unsigned nos slides, que significa sem sinal, e signed, que significa sinal.

 

Um número inteiro normalmente é representado por 32 bits, e corresponde à faixa de valores de -2.147.483.648 (-231) a +2.147.483.648 (-231). Isso significa que, para cada número inteiro que você usar em seu programa, 32 bits da sua memória será reservada para esse número. Se você estiver usando 20 números inteiros em seu programa, você estará consumindo 640 bits da sua memória (20 * 32). Significa também que você pode armazenar qualquer número inteiro positivo ou negativo que esteja dentro da faixa de valores especificada. O mesmo serve para os tipos float, double, etc.

 

Hoje consumir memória não é um problema para microprocessadores, pois a temos em abundância, mas no começo da Computação, os programadores tinham que ficar atentos às quantidades de bits consumidas pelos seus tipos de dados, pois a memória era algo bem escasso. Os microcontroladores se encaixam nesse probleminha, pois sua memória é realmente bem mais curta que as memórias usadas com microprocessadores.

 

 

Conclusão

 

Assim pessoal, chegamos ao fim de mais um artigo. “Sem querer querendo” já entrei um pouco no assunto que discutirei no próximo artigo, que são variáveis e constantes. Esses assuntos, tipos de dados e variáveis e constantes são bem interligados, mas como vocês verão, existem outros detalhes a serem abordados.

 

Espero vocês no próximo artigo! Dúvidas podem deixar nos comentários.

 

 

Referências

 

FURGERI, Sérgio. Java 7: Ensino Didático. São Paulo: Érica, 2010.

SCHILDT, Hebert; SKRIEN, Dale. Programação com Java: Uma Introdução Abrangente. Porto Alegre: AMGH, 2013.

DEITEL, Harvey M.; DEITEL, PAUL J. Java Como Programar. Prentice Hall, 2010.

Francisco A. C. Pinheiro, Elementos de Programação em C, Bookman, 2012.

Outros artigos da série

<< Conceitos básicos de algoritmosVariáveis e Constantes >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Elaine Cecília Gatto
Bacharel em Engenharia de Computação. Mestre em Ciência da Computação. Doutoranda em Ciência da Computação. Co-fundarora e Líder das #GarotasCPBr. Pesquisadora Convidada no Grupo de Pesquisa: "Artes em Tecnologias Emergentes" do Programa de Pós Graduação em Design na UNESP Campus Bauru. Cantora, Docente no Magistério Superior, Geek, Nerd, Otaku e Gamer. Apaixonada por Michael Jackson, Macross, Rocky Balboa, Séries, Filmes, Cervejas e Vinhos. Mais informações sobre mim você encontra em: http://lattes.cnpq.br/8559022477811603.

5
Deixe um comentário

avatar
 
2 Comment threads
3 Thread replies
1 Followers
 
Most reacted comment
Hottest comment thread
5 Comment authors
Fábio SouzaElaine Cecília GattoGERSON RODRIGUESElaine Cecília GattoSouza Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
GERSON RODRIGUES
Visitante
GERSON RODRIGUES

Olá Elaine tudo bem,gostaria de ter aula de arduino mas em Botucatu não tem professor disso, trabalhei como técnico Eletrônico 25 anos, agora estou aposentado, mas gostaria de montar painéis digitais,enfim alguma coisa desse tipo para ocupar meu tempo,mas preciso antes disso ter conhecimento de programação de arduino, com o tempo vou me aprofundando mais no assunto de programação,gostaria de saber de você se pode me orientar sobre esse assunto,pois vi em seu site que você entende bem de computação , estou lendo sua matéria mas tem muitas coisas que não entendo precisa de uma pessoa que possa tirar minhas… Leia mais »

Fábio Souza
Visitante

Olá GERSON RODRIGUES sugiro que inicie pela serie de primeiros passos com Arduino: https://www.embarcados.com.br/serie/primeiros-passos-com-arduino/

Souza
Visitante
Souza

Próxima aula e lá vamos nós.

Elaine Cecília Gatto
Visitante
Elaine Cecília Gatto

=)