Você está na página 1de 9

30/3/2014 Metropole Digital

http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 1/9
Matemtica Aplicada
Professores autores
Umberto Souza da Costa
Natlia dos Santos Lucena Neta
Aula 7 Tipos de dados, variveis e constantes
Apresentao
Durante o processamento, um programa de computador precisa armazenar e manipular dados. Os dados de um programa so valores, como
uma cadeia de caracteres que representa o nome de um funcionrio ou um valor numrico que representa seu salrio bruto, e esses valores
precisam ser devidamente armazenados para permitir a realizao de diversas operaes para a produo de resultados.
O conjunto de instrues de um programa de computador determina precisamente quais so os dados de entrada esperados, qual
processamento ser realizado sobre esses dados e como o resultado produzido ser informado a quem o requisitou. Podemos citar, por
exemplo, um programa para o clculo do valor do Imposto de Renda de um funcionrio a partir do valor de seu salrio bruto.
Nesta aula, voc vai aprender sobre a representao dos dados armazenados e manipulados por programas de computador. Voc ver os
tipos de dados, que so conceitos muito importantes s linguagens de programao e estreitamente relacionados representao dos
valores de um programa por meio de suas variveis e constantes. Voc vai estudar tambm as operaes que so comumente realizadas
sobre os tipos de dados encontrados na maioria das linguagens de programao.

Objetivos

Ao final desta aula, voc ser capaz de:
entender a importncia dos tipos de dados para as linguagens de programao;
conhecer os tipos de dados e suas operaes comuns maioria das linguagens de programao;
entender os conceitos de varivel e constante e aplic-los a programas de computador.

Tipos de dados
Voc j deve ter ouvido algumas definies sobre o que um computador. Vejamos mais uma... O computador um dispositivo eletrnico
que, em seu nvel mais elementar, reconhece apenas dois estados elementares: a presena ou ausncia de sinais eltricos, ou, de forma
simples, um elemento que est ligado ou desligado. Por consequncia, todos os dados de um computador precisam ser representados
com base em um sistema de numerao binrio, onde apenas dois valores diferentes so distinguidos. Comumente, esses dois estados so
representados como 0 (zero) e 1 (um) e so chamados de dgitos binrios, ou simplesmente bit (binary digit), a menor unidade de informao
no computador.
Ento, voc pode perguntar: se apenas dois estados podem ser distinguidos no nvel mais elementar de um computador, como podemos
representar informaes to variadas, como documentos, imagens e sons? A reposta a essa pergunta simples: podemos representar um
imenso nmero de estados distintos por meio das diversas combinaes sobre conjuntos de bits. Agrupando bits, podemos distinguir um
nmero muito maior de estados, um para cada combinao possvel. Quanto mais bits utilizarmos em uma representao, maior o nmero de
combinaes possveis e um nmero maior de valores pode ser distinguido. Comumente, a unidade bsica de tratamento de dados um
agrupamento de 8 (oito) bits, conhecido como byte (binary term). Um byte com 8 (oito) bits capaz de representar combinaes distintas,
ou seja, 256 diferentes valores. Na memria de um computador, existe um endereo de memria especfico a cada byte, assim como cada
casa tem um nmero especfico em uma rua. Esse mecanismo capaz de identificar a localizao de uma representao de informaes
especficas. Contudo, por questes de eficincia, associamos endereos de memria a grupos de bytes, em vez de a um byte individual.
Geralmente, agrupamentos de 2, 4, 6 ou 8 bytes so associados a endereos distintos. Esse agrupamento de bytes conhecido como
palavra.
Portanto, todos os valores manipulados por um programa, sejam referentes aos dados de entrada, sada ou computao de resultados
intermedirios, so representados internamente no computador por meio de um agrupamento de bits, independente se o valor corresponde
a uma frase, a um nmero inteiro ou a um nmero real, por exemplo. Contudo, quando codificamos instrues em uma linguagem de
programao de alto nvel, existe distino entre valores de diferentes categorias, ou tipos. A maioria das linguagens de programao
categoriza valores com propriedades em comum em um tipo, da mesma forma que a Matemtica classifica elementos que possuem
propriedades em comum em um conjunto. Essa abordagem permite que as operaes sejam definidas sobre os valores de um tipo, tomando
como base o formato geral de representao interna dos valores do tipo, em termos de agrupamento de bits, da mesma forma que funes
matemticas so normalmente definidas para operar sobre valores gerais de um conjunto. Portanto, a classificao de valores em tipos
benfica s linguagens de programao porque permite estabelecer propriedades e clculos para todos os valores de um tipo de uma s
vez, em vez de ter que especificar a propriedade ou operao para cada valor individual. Por exemplo, o compilador de uma linguagem de
programao dever traduzir a operao de soma entre dois valores inteiros para a operao de soma entre agrupamentos de bits que
representam inteiros, independente dos valores especficos sobre os quais a soma deve ser desenvolvida.
Os tipos de dados oferecidos por uma linguagem de programao tm relao direta com a facilidade com que o programador cria seus
programas, pois quanto mais as estruturas de dados forem flexveis e adaptadas a um problema, mais natural e simples ser a soluo
proposta.
Os tipos de dados so comumente classificados em tipos de dados primitivos e tipos de dados estruturados. Um tipo de dado primitivo
aquele que no pode ser definido em termos de outro tipo mais simples. Como exemplos de tipos primitivos, citamos o tipo inteiro e o tipo
real. Por outro lado, um tipo de dado estruturado aquele construdo a partir de tipos mais simples. Os registros e os arranjos, construdos
a partir de campos e elementos mais simples, respectivamente, so exemplos de tipos de dados estruturados. Nas sees seguintes, voc
vai conhecer os tipos de dados primitivos e estruturados mais comuns.

Tipos primitivos
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 2/9
Tipos primitivos
Os tipos primitivos de dados so atmicos, no sentido em que no podem ser decompostos em tipos mais simples. Alguns tipos primitivos
relacionam-se diretamente sua representao interna, como o caso dos nmeros inteiros. Outros tipos primitivos, como o tipo caractere,
precisam de um pequeno suporte de hardware ou software para serem representados internamente. Agora, voc ver com mais detalhes os
tipos primitivos numricos, caractere e booleano.

Tipos numricos
Os tipos numricos esto entre os primeiros implementados pelas linguagens de programao. A maioria das linguagens oferece tanto
representaes dos nmeros inteiros, , como representaes dos nmeros reais, . As representaes computacionais desses tipos so
apenas aproximaes desses conjuntos matemticos, que so infinitos, no podendo ser representados na memria do computador, que
finita. No caso dos nmeros reais, temos, tambm, apenas aproximaes das dzimas infinitas no peridicas.
A Tabela 1 mostra os principais operadores aritmticos, a forma como so representados e exemplos de como utiliz-los.
Tabela 1 Operadores aritmticos.
Operador Representao Exemplo
Menos unrio - -a
Potenciao ^ a^5
Multiplicao * a*5
Diviso / a/5
Mdulo (resto da diviso) % a%5
Adio + a + b
Subtrao - a b
Valores numricos podem tambm ser operandos de operadores relacionais. A Tabela 2 mostra os operadores relacionais mais comuns.
Tabela 2 Operadores relacionais
Operador Representao Exemplo
Comparao menor < a < 5
Comparao menor-igual a 5
Comparao maior > a > 5
Comparao maior-igual a 5
Comparao igual == a == 5
Comparao diferente != a != 5
Os operadores relacionais so utilizados para comparar valores, podendo ser aplicados sobre operandos numricos, alm de outros tipos.
Contudo, um operador relacional sempre produz um valor de tipo booleano, independente do tipo dos operandos comparados. Ainda nesta
aula, voc ver o tipo de dado booleano.

Tipo inteiro
O tipo inteiro o tipo primitivo numrico mais comum. Sem parte fracionria, o tipo inteiro caracterizado por sua faixa de valores
representveis, havendo verses dos inteiros com ou sem sinal. So comuns implementaes de inteiros, inteiros sem sinal e inteiros
longos. Um tipo inteiro com sinal representado internamente como uma sequncia de bits, em geral dois bytes, sendo o bit da extrema
esquerda utilizado para representar o sinal e os demais bits para representar o valor absoluto do nmero, normalmente em uma notao
conhecida como complemento de dois. Por exemplo, utilizando dois bytes os nmeros decimais e so representados na notao de
complemento de dois como e , respectivamente. No caso dos inteiros sem sinal, o bit que seria utilizado
para representao do sinal se destina tambm representao do valor absoluto do nmero. Em um inteiro sem sinal, apenas o zero e
valores positivos so representveis, correspondendo ao conjunto dos nmeros naturais, . Por fim, um inteiro longo um inteiro com sinal
onde mais bits so utilizados para representar o valor absoluto do nmero, permitindo a representao de valores absolutos maiores. Em
geral, um inteiro longo tem o dobro de bits em relao ao nmero de bits de um inteiro simples. A diversidade de tipos inteiros depende do
projeto da linguagem de programao e da arquitetura do computador para o qual o compilador ou interpretador da linguagem foi
projetado. Veja na Tabela 3 os exemplos de inteiros, tomando como base os inteiros oferecidos pelas linguagens C/C++:
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 3/9
Tabela 3 Valores de tipo inteiro na linguagem C
Tipo Tamanho em Bytes Faixa de Valores
Int 2 -32768 a 32767
unsigned int 2 0 a 65535
long int 4 -2.147.483.648 a 2.147.483.647
unsigned long int 4 0 a 4.294.967.295
Na Tabela 3, unsigned int corresponde a um inteiro simples sem sinal, enquanto unsigned long int corresponde a um inteiro longo sem sinal.
Note que o uso do bit de sinal como parte da representao do valor absoluto permite aproximadamente dobrar o nmero de valores
positivos representveis.
Na escrita do algoritmo sob a forma de pseudocdigo, o tipo inteiro identificado pela palavra reservada inteiro. Como o algoritmo uma
representao genrica, no existe a preocupao com o tamanho necessrio para armazenar esse tipo. Veja alguns exemplos de valores
do tipo inteiro: 5, -3 e 0.

Tipo flutuante
Os nmeros em ponto-flutuante correspondem ao conjunto dos nmeros reais, aqueles que abrangem os nmeros racionais e irracionais.
Para muitos nmeros reais, as representaes computacionais em ponto-flutuante so apenas aproximaes, como acontece com dzimas
peridicas e nmeros como , e pode haver prejuzo de exatido durante algumas operaes aritmticas, como em , supondo numerador
e denominador representados em ponto-flutuante.
Um valor em ponto-flutuante definido em termos de preciso e faixa. A preciso corresponde exatido de sua parte fracionria, medida
pelo nmero de bits empregados para represent-la, ao passo que a faixa de valores uma combinao dos valores do expoente e da
parte fracionria. Um nmero em ponto-flutuante geralmente representado pelo padro de ponto-flutuante IEEE 754. Nesse padro, um
bit representa o sinal, seguido de uma sequncia de bits que representa o expoente e outra sequncia de bits que representa o valor da
parte fracionria, conforme mostrado a seguir:
1 bit 8 bits 23 bits
sinal expoente Frao
Como acontece com os inteiros, a variedade de tipos flutuantes em uma linguagem de programao depende do projeto da linguagem e de
sua arquitetura alvo. Um tipo ponto-flutuante de preciso simples costuma ser armazenado em quatro bytes, enquanto os de preciso dupla
usam oito bytes.
Tabela 4 Valores de tipo flutuante na linguagem C
Tipo Tamanho em Bytes Faixa de Valores
float 4 -3.4E-38 a 3.4E+38
double 8 -1.7E-308 a 1.7E+308
Uma representao alternativa representao de nmeros reais oferecida pela linguagem Cobol, que armazena esses nmeros
utilizando a codificao BCD (Binary Coded Decimal), onde cdigos binrios so associados a cada dgito decimal individualmente, um dgito
por byte ou dois dgitos por byte, com o ponto decimal em uma posio fixa no valor. O Cobol uma linguagem de programao antiga, mas
ainda bastante utilizada em sistemas antigos ainda em operao.
Na escrita do pseudocdigo, os nmeros reais (tipo flutuante) so identificados unicamente pela palavra especial real e, assim como nos
inteiros, no existe a preocupao com o tamanho necessrio para armazenar esse tipo. Como exemplos de valores do tipo real, temos: 2,
-2, 0.8, -0.8, 3.71654 etc.

Tipo booleano
O tipo booleano certamente o tipo primitivo mais simples, pois possui apenas dois valores associados: true e false. Normalmente, o tipo
booleano empregado como sinalizador ou comutador para indicar a ocorrncia de certas condies ou para desviar o fluxo de execuo do
programa. Ainda que algumas linguagens de programao utilizem outros tipos para essas funes, como acontece com a linguagem C, o
uso do tipo booleano geralmente torna o programa mais compreensvel.
Como o tipo booleano apresenta apenas dois valores, somos tentados a pensar que esse tipo representado por meio de um nico bit.
Contudo, devido a questes de eficincia, o tipo booleano costuma ser representado na menor clula de memria eficientemente
enderevel, geralmente o byte.
Na escrita do algoritmo, o tipo primitivo booleano identificado pela palavra especial booleano e, assim como nos outros tipos, no existe a
preocupao com o tamanho necessrio para armazenar esse tipo. Nesse contexto, o tipo booleano pode assumir um dos valores: falso
ou verdadeiro.
A Tabela 5 mostra os operadores que podem ser utilizados sobre tipos booleanos.
Tabela 5 Operadores lgicos
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 4/9
Operador Representao Exemplo
Negao ! !a
Conjuno && a && b
Disjuno || a || b
Na Tabela 5, e representam variveis ou valores booleanos.

Tipo caractere
O tipo caractere corresponde aos smbolos alfanumricos armazenados como codificaes numricas. As codificaes mais conhecidas so a
ASCII (American Standard Code for Information Interchange) que utiliza os valores de 0 a 127 para codificar 128 diferentes caracteres, e a
Unicode, uma tabela de codificao de 16 bits que inclui caracteres da maioria das linguagens naturais. Em uma tabela de codificao, cada
caractere identificado com um cdigo correspondente, conforme trecho da tabela ASCII apresentado na Tabela 6 a seguir:
Tabela 6 Trecho da Tabela ASCII
Binrio Decimal Hexa Caractere
0100 0000 64 40 @
0100 0001 65 41 A
0100 0010 66 42 B
0100 0011 67 43 C
Alm dos smbolos visveis, essas tabelas de codificao incluem caracteres no imprimveis, utilizados para controle de impresso, como
tabulao e quebra de linha.
Valores do tipo caractere so comumente definidos entre aspas simples nas linguagens de programao. Por exemplo, o valor caractere
deve ser escrito como . Na escrita do pseudocdigo, o tipo caractere ser identificado pela palavra reservada caractere e seus valores
sero denotados entre aspas simples.

Atividade 1

1. O que um tipo de dado primitivo?
2. O que um tipo de dado estruturado?
3. A quantidade de alunos presentes a uma sala pode ser representado por um valor de tipo inteiro ou flutuante. Qual a
vantagem de representar esse nmero como um inteiro?
4. Imagine um programa que calcula o salrio total de um funcionrio levando em conta:
a. o total de horas trabalhadas (horas cheias);
b. o valor pago por hora trabalhada (em R$);
c. o valor do bnus para o melhor funcionrio do ms (em R$);
d. a indicao se o funcionrio ou no o melhor do ms (Sim/No).
Identifique os tipos envolvidos em cada um dos itens apresentados anteriormente.


Tipo string
Uma string uma cadeia de caracteres, sendo o tipo utilizado para representar valores textuais, como nomes, endereos etc. Em algumas
linguagens, as strings so representadas como arranjos unidimensionais cujos elementos so caracteres, enquanto em outras as strings
so oferecidas como um tipo bsico da linguagem. Em nossas aulas, adotaremos essa ltima abordagem.
Os caracteres que compem uma string correspondem aos smbolos da tabela de codificao utilizada pela linguagem de programao, mas
os valores strings so normalmente escritos como uma sequncia de caracteres envolvidos entre aspas duplas. Portanto, os valores e
so diferentes, pois o primeiro tem tipo caractere, enquanto o segundo do tipo string.
Em Portugol, o tipo string denominado como texto e seus valores so tratados conforme o exemplo seguinte, que mostra a declarao da
string nome, seguida da atribuio do valor Digital string:
var nome: texto
nome Digital
Na Tabela 7, voc ver as operaes mais comumente realizadas sobre o tipo string.
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 5/9
Tabela 7 Algumas operaes sobre strings
Operao Descrio
Inverso Retorna a string escrita na ordem inversa.
Comparao
Compara se duas strings so iguais, retornando 0 (zero)
em caso positivo.
Concatenao
Retorna a juno das duas strings, com a segunda string
comeando imediatamente aps o fim da primeira.

Tipos estruturados
Os tipos de dados estruturados recebem esse nome porque so construdos a partir da aplicao de construtores de tipos a tipos mais
simples. A possibilidade de utilizar construtores de tipos importante porque permite ao programador definir novos tipos devidamente
voltados soluo do problema tratado. Abordaremos dois tipos de dados estruturados em nossa discusso: os arranjos e os registros.

Arranjos
Os arranjos so um tipo de dado estruturado caracterizado como um agregado de dados homogneo, isto , um tipo de dado construdo
como um agrupamento de elementos de mesmo tipo. Os arranjos tm relao direta com as matrizes da Matemtica, discutidas em nossa
quarta aula (Matrizes). Da mesma forma como acontece com as matrizes matemticas, um arranjo pode ter uma ou mais dimenses, cada
uma delas relacionada a um ndice. De forma geral, um arranjo de dimenses corresponde a uma matriz de dimenses, necessitando de
ndices para identificar um de seus elementos individualmente.
Na maioria das linguagens de programao, os elementos de um arranjo podem assumir qualquer um dos tipos vlidos, desde que todos os
elementos do arranjo possuam o mesmo tipo. Por outro lado, os ndices so normalmente valores numricos ordinais, comumente inteiros.
Geralmente, os ndices de um arranjo iniciam-se em um ou zero, embora certas linguagens deixem essa deciso para o programador, que
fica responsvel por escolher a faixa de ndices a utilizar em cada programa. Para simplificar seu aprendizado e torn-lo coerente com o que
voc viu acerca das matrizes matemticas, assumiremos que os ndices se iniciam em um, sem prejuzo para a generalidade desse estudo.
Apresentamos, na Figura 1, exemplos de arranjos com uma, duas e trs dimenses.
(a) Arranjo (b) Arranjo (c) Arranjo
Figura 1 Exemplos de arranjo com uma (a), duas (b) e trs (c) dimenses.
Na Figura 1, voc pode ver que os ndices que identificam a primeira dimenso aparecem em vermelho, a segunda dimenso em azul e a
terceira dimenso em verde. Quando listamos os ndices de um arranjo, devemos apresent-los na ordem correspondentes a suas
dimenses. Portanto, os elementos , e mostrados na Figura 1 correspondem, respectivamente, aos elementos , e .
Note que identifica o elemento localizado na segunda linha e terceira coluna do arranjo , enquanto identifica o elemento
localizado na primeira linha, terceira coluna e primeiro nvel de profundidade de .
Os elementos de um arranjo so armazenados em posies adjacentes na memria do computador, independente de quantas dimenses o
mesmo envolve. Os ndices do arranjo so utilizados pelo compilador ou interpretador da linguagem de programao para indicar como
calcular o endereo de cada elemento em relao ao endereo da posio onde comea o armazenamento do conjunto de dados referente
ao arranjo.
Os arranjos so muito teis quando precisamos armazenar dados de mesmo tipo e que tm relao entre si, permitindo uma forma de
acesso adequada que se mostrar muito adaptada s estruturas de repetio, conforme veremos nas prximas aulas. Como exemplo de
situao onde os arranjos se mostram adequados, considere o problema de armazenar as notas de todos os alunos de uma turma com
alunos em uma determinada avaliao para posteriormente calcular a mdia da turma nesta avaliao. As notas podem ser inicialmente
armazenadas em um arranjo com elementos, uma nota em cada posio do arranjo. Posteriormente, as notas armazenadas nesse arranjo
podero ser facilmente acessadas, uma a uma, pelo procedimento de clculo da mdia utilizando uma estrutura de repetio. As matrizes
possuem diversas outras aplicaes, incluindo aplicaes complexas como previso do tempo.
Na escrita do algoritmo em pseudocdigo, os arranjos so identificados pelas palavras reservadas arranjo de, seguidas do nmero de
posies por dimenso e do tipo dos dados que neles sero armazenados. Veja os exemplos a seguir:
var Vet : arranjo de 10 inteiro
var Mat : arranjo de 25 10 caractere
var Opcoes : arranjo de 2 texto [Inserir", Sair"]
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 6/9
Os arranjos que voc acabou de ver definem, na ordem em que so mostrados, um arranjo unidimensional de 10 inteiros (Vet), um arranjo
bidimensional de caracteres com 25 linhas e 10 colunas (Mat), e um arranjo unidimensional de strings com 2 posies, j inicializadas,
(Opcoes). Os programadores geralmente se referem aos arranjos unidimensionais simplesmente como vetores e aos arranjos bidimensionais
como matrizes. Por exemplo, os programadores geralmente se referem a um arranjo unidimensional de elementos inteiros simplesmente
como um vetor de inteiros, enquanto um arranjo bidimensional de elementos flutuantes seria chamado de uma matriz de flutuantes.

Registros
Os registros, tambm conhecidos como estruturas, definem um tipo de dado estruturado que pode armazenar dados de tipos variados,
sendo, portanto, considerado um agrupamento de dados potencialmente heterogneo. Os elementos que compem um registro so
organizados em campos: cada elemento de dado que compe o registro encontra-se associado a um campo do registro, que possui um
nome de campo associado utilizado para identific-lo individualmente. Diferente dos arranjos, onde os elementos componentes so
identificados com base apenas em sua posio dentro do agrupamento de dados, um elemento de um registro identificado com base no
nome de seu campo.
Os registros so muito teis quando precisamos armazenar e manipular dados que se encontram relacionados entre si, mas que possuem
tipos diferentes. Por exemplo, as informaes pertinentes a um aluno, como nome, matrcula, notas individuais nas trs avaliaes, e mdia
em uma disciplina podem ser representadas com sucesso por meio da seguinte declarao de estrutura:
Observe que essa declarao apenas cria um novo tipo, o tipo . Suponha que representa uma instncia desse tipo, ou seja,
um nome especfico associado a um conjunto de valores do tipo . O acesso aos campos de ser realizado por meio da seguinte
sintaxe:
onde corresponde ao nome do campo que desejamos acessar. Por exemplo, as seguintes instrues definem o acesso aos campos
e da estrutura , de tipo :
Em relao ao armazenamento, os campos de um registro se localizam em posies de memria adjacentes, como acontece com os arranjos.
Contudo, o clculo do endereo de deslocamento de cada campo em relao ao incio do registro varia de acordo com o tipo associado a
cada campo. Mas, voc no precisa se preocupar com isso, pois esse clculo ser feito automaticamente pelo compilador ou interpretador da
linguagem de programao a partir do acesso que voc definir com base nos nomes dos campos do registro.

Atividade 2


1. Diferencie os tipos de dados estruturados arranjo e registro.
2. Quando devemos utilizar um tipo arranjo? E quando devemos utilizar um tipo registro?
3. Imagine um programa que manipule a representao de uma classe com cinco alunos. Cada aluno dessa classe
representado pelas seguintes informaes:
a. nome completo;
b. matrcula;
c. nota.
Identifique os tipos envolvidos em cada um dos itens apresentados anteriormente. Em seguida, crie um tipo para representar
cada um dos alunos e um tipo para representar a prpria classe.
4. Foi realizada uma pesquisa entre 500 habitantes de certa regio. De cada habitante, foram coletados os dados: CPF,
idade, sexo, salrio e nmero de filhos. Crie a estrutura de dados adequada para armazenar essas informaes.


Variveis e constantes
Na Matemtica, uma varivel utilizada para representar um valor desconhecido, tipicamente conhecido como incgnita da expresso,
podendo assumir qualquer valor do conjunto ao qual a varivel pertence. comum vermos expresses como , onde a varivel
representa um valor inteiro desconhecido.
Nas linguagens de programao, uma varivel representa um valor qualquer de um determinado tipo, o tipo da varivel. Na maioria das
linguagens de programao, uma varivel identificada por um nome associado ao espao de memria reservada para o armazenamento
de dados de um determinado tipo, funcionando como uma abstrao de uma clula de memria. Ao dizer que uma varivel uma abstrao
de um espao de memria, queremos dizer que uma varivel se comporta como um nome associado a um espao de memria do
computador. Como tipos de dados diferentes tm diferentes formatos e demandam diferentes tamanhos de armazenamento, o tamanho do
espao de memria reservado a uma varivel depender do tipo da varivel, geralmente informado durante a declarao da varivel:

30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 7/9
var i: inteiro
var media: real
var acertou: booleano
var letra: caractere
var titulo: texto

O nome de uma varivel deve ser escolhido com prudncia, de forma a ser significativo, fazendo com que a leitura de seu identificador
naturalmente lembre a funo ou uso da varivel, facilitando assim o entendimento do cdigo do programa. Se quisermos ler o valor
associado a uma varivel, basta escrevermos o nome dessa varivel na expresso onde seu valor deve ser considerado. Por outro lado, o
valor associado a uma varivel pode ser alterado por meio de uma instruo conhecida como atribuio ():
i -2
media 5.6
acertou verdadeiro
letra n
titulo Aula 07
Atribuir um valor a uma varivel corresponde a armazenar o valor atribudo ao espao de memria associado quela varivel. Como esse
espao de armazenamento pode armazenar apenas um valor de determinado tipo a cada momento, uma atribuio substitui o valor
anteriormente armazenado.

Observe este exemplo:
(1) var a, b, c: inteiro 0
(2) a b + 6
(3) c 3 * a
(4) b (c - a)*2
(5) a b/a
Voc capaz de mostrar qual o valor de cada uma das variveis ao fim do algoritmo? Acompanhe a tabela a seguir com os valores ao fim de
cada linha:
Linha a b c
1 0 0 0
2 6 0 0
3 6 0 18
4 6 24 18
5 4 24 18
Viu como as variveis se comportam? Inicialmente, todas as variveis, a, b e c estavam com valor inicial zero e com o decorrer das operaes
esses valores foram atualizados.

Ento, voc pode perguntar: e o que uma constante de uma linguagem de programao? Essas constantes funcionam de maneira
semelhante s constantes matemticas. Podemos tomar a expresso que define a rea de um crculo como exemplo:
onde a rea e o raio do crculo so representados pelas incgnitas e , enquanto tem sempre o valor . Da mesma forma, uma
constante de um programa um nome associado a um valor que no muda ao longo do tempo de execuo do programa. Constantes so
bastante teis por simplificar o trabalho do programador, permitindo que um nome seja usado em lugar do valor explcito. Por exemplo,
podemos usar a constante para representar cada uma das ocorrncias do valor em um programa. Alm disso, as constantes
permitem que o cdigo seja alterado com rapidez e sem esforo, pois a redefinio do valor de uma constante requer apenas a alterao de
sua instruo de definio, mas o novo valor associado ser considerado por todas as instrues que referenciam a constante. Um bom
exemplo desse uso seria o de uma constante que representa o nmero de alunos de uma turma: uma simples redefinio do valor da
constante afetar todas as computaes realizadas com base em .
Em nosso pseudocdigo, a definio de constantes ser realizada da seguinte forma:
cte MSN: texto Ola, mundo!
escreva (MSN)
onde constante MSN, introduzida pela palavra especial cte, uma constante do tipo string e que representa o valor Ol, mundo!.
Tanto as variveis como as constantes tm um tipo associado e armazenam apenas valores desse tipo. Contudo, o valor da constante
definido no incio do programa e permanece o mesmo at o fim da execuo do programa, no podendo ser atribudo, enquanto o valor de
uma varivel pode ser alterado sempre que necessrio.
Os identificadores das variveis e constantes devem ser formados atendendo a algumas regras simples:
conforme discutimos, os identificadores devem ser significativos. O identificador deve remeter o leitor ao contexto da varivel ou
constante;
os identificadores podem ser formados por letras, algarismos e o caractere '_', no podendo ser iniciados por algarismos;
os identificadores no podem ser palavras especiais da linguagem de programao utilizada. Uma palavra especial quando seu uso
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 8/9
os identificadores no podem ser palavras especiais da linguagem de programao utilizada. Uma palavra especial quando seu uso
j se destina identificao de um elemento/componente da linguagem de programao. Por exemplo, em Portugol as palavras var,
arranjo e booleano no podem ser utilizadas para nomear variveis ou constantes, pois elas j tm emprego bem definida.
Desde que respeitemos as regras acima, podemos criar padres adicionais que facilitem a compreenso do cdigo produzido. Como
exemplo, muitos programadores costumam identificar as constantes com letras maisculas, facilitando seu reconhecimento no cdigo.

Atividade 3

1. Defina, com suas prprias palavras, os seguintes termos:
identificador;
constante;
varivel.
2. Qual a utilidade das variveis?
3. uando devemos utilizar uma constante em vez de uma varivel?


Assim, sabemos que os tipos de dados, as variveis e as constantes so elementos fundamentais na construo de programas. A
diversidade de tipos de dados e de mecanismos para a construo de novos tipos pelos programadores surgiu com o objetivo de facilitar o
trabalho do programador e aumentar sua produtividade. A facilidade com que os programadores executam suas tarefas depende de quo
bem os tipos de dados coincidem com o espao de problema do mundo real. Portanto, o conhecimento dos tipos de dados e das
representaes de seus valores em constantes e variveis essencial ao programador.

Leituras complementares
Para complementar seu estudo sobre os tipos de dados, variveis e constantes, consulte estas fontes:
NETTO, Jos L. M. Rangel. Tipos de dados. Disponvel em: <http://www-di.inf.puc-rio.br/~rangel/lp/LP4.PDF>. Acesso em: 25 fev. 2010.
Neste documento, voc encontrar mais informaes sobre os tipos de dados estruturados, chamados pelo autor de tipos definidos pelo
usurio. Ateno: a notao utilizada nos algoritmos diferente da nossa, embora possa ser entendida sem dificuldade.
AMARAL, Fernando. Algoritmos: conceitos gerais. Disponvel em: <http://www.prof2000.pt/users/famaral/ig/tlp/conceitos.htm>. Acesso em:
25 fev. 2010.
Aqui, voc pode conhecer mais sobre os tipos de dados e operadores aritmticos, relacionais e lgicos.

Resumo
Nesta aula, voc aprendeu sobre os principais tipos de dados, tanto bsicos quanto estruturados. Para cada tipo apresentado, voc
conheceu os principais operadores e sua representao em Portugol, notao empregada para escrever nossos algoritmos em
pseudocdigo. O contedo aprendido hoje ser muito til nas aulas seguintes, quando aprenderemos mais a respeito dos algoritmos e de
seus elementos essenciais.

Autoavaliao
1. Quais so os principais tipos de dados primitivos? D um exemplo de cada um deles.
2. Quais so os principais tipos de dados estruturados? D um exemplo de cada um deles.
3. Indique os nomes de variveis que so vlidos. Justifique os nomes invlidos.
a. soma
b. media_final
c. R$
d. texto
e. 2dias
f. prova 1
g. lado.do.terreno
4. Identifique o tipo mais adequado para cada uma das constantes abaixo:
a. 199
b. 199
c. 1.99
d. -1.99
e. s
f. s
5. Escreva um algoritmo em pseudocdigo, que declare um vetor de 10 elementos inteiros e, em seguida, atribua ao elemento de
ndice o valor . Em seguida, escreva o valor armazenado na posio de ndice 10 do vetor.
6. Defina um registro capaz de armazenar as seguintes informaes sobre um aluno: nome, data de nascimento, CPF, matrcula,
curso e coeficiente de rendimento.
Referencias
MEDINA, M.; FERTIG, C. Algoritmos e programao: teoria e prtica. So Paulo: Novatec, 2006.
30/3/2014 Metropole Digital
http://www.metropoledigital.ufrn.br/aulas/disciplinas/mat_aplicada/aula_07.html 9/9
PUGA, S.; RISSETTI, G. Lgica de programao e estruturas de dados com aplicaes em Java. So Paulo: Pearson Prentice Hall, 2003.
SEBESTA, Robert W. Conceitos de linguagens de programao. 5. ed. Porto Alegre: Bookman, 2003.

Voltar Imprimir Topo