Buscar

02-Algoritmos-Tipos de Dados e Identificadores

Prévia do material em texto

Algoritmos
Tipos de Dados e Identificadores
MS. MARCOS ANDRÉ COSTA
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificadores
 Os objetos que usamos no nosso algoritmo são uma representação 
simbólica de um valor de dado. Assim, quando executamos a seguinte 
instrução:
Atribua o valor 2 ao objeto valor;
 O valor 2 fica associado ao objeto valor. Assim, cada vez que 
mencionamos o nome do objeto valor, nós estaremos referenciando, 
implicitamente, ao valor que foi associado a ele.
2
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificadores
 Isto torna o algoritmo mais prático, pois além de ser fácil lembrarmos de um 
nome do que de um valor de dado, o nome de um objeto permanece 
inalterada durante toda a execução de um algoritmo, ao passo que o valor a 
ele associado pode mudar com o dinamismo do algoritmo, como por 
exemplo:
Objetos x, y; 
início das ações:
atribua3 ao objeto x; 
calcule2 x e atribua o resultado ao objeto y; 
calcule4 y e atribua o resultado ao objeto x; 
fim das ações.
3
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificadores
 Note que os valores de x e y variam no decorrer da execução do 
algoritmo. O objeto x começa com o valor 3 e termina com o valor 24, e o 
y começa com um valor não definido e termina com 6.
 Note que não nos preocupa a variação de valores dos objetos, pois 
eles continuam a ter o mesmo nome.
4
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificadores
 Por este motivo, dizemos que os objetos de um algoritmo identificam 
valores a eles associados, e por isto, estes objetos são chamados de 
identificadores. 
 Como os nossos algoritmos têm como finalidade a comunicação do 
homem com a máquina (computador), podemos dizer, de uma 
forma grosseira, que um identificador do algoritmo será associado com 
uma célula de memória do computador, a qual armazenará o valor 
associado ao identificador.
 Ou seja, toda vez que mencionamos o nome do identificador no 
algoritmo, o computador irá "buscar", na célula de memória associada 
com o identificador, o valor armazenado e realizará a operação descrita 
no algoritmo.
5
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Semelhança
 Existe uma certa semelhança entre identificadores e variáveis 
matemáticas, logo é comum, em literaturas do gênero computacional 
encontrar, também, esta denominação para os identificadores. Mas 
queremos deixar claro que esta analogia nem sempre é possível, pois, 
considere a seguinte expressão matemática:
x = x + 1. 
 Esta expressão matemática não tem solução, pois qual é o número que é 
igual a ele mesmo somado em uma unidade.
6
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Entretanto...
 Computacionalmente esta expressão é válida, pois o significado 
semântico é diferente, o qual é: 
Calcule a expressão x + 1e atribua o resultado a x;
 Para o computador, isto significa: “recupere o valor que está armazenado na 
célula x some uma unidade e armazene o resultado na própria célula x”. 
 É importante deixar claro que um identificador (objeto) só pode armazenar 
um único valor por vez. E sempre armazenará o último valor que lhe for 
fornecido.
 Assim, se fizermos o identificador x receber o valor 100, e logo mais adiante 
atribuirmos ao mesmo identificador x o valor 50, a partir deste ponto o valor 
associado a x será 50.
7
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Por exemplo...
 Você deverá escolher os nomes dos identificadores que serão utilizados, 
mas devendo respeitar as seguintes regras na escolha dos nomes: 
1) Use somente letras e números na escolha dos nomes; 
2) O primeiro caractere do nome deve ser sempre uma letra; 
3) Não é permitido o uso de qualquer caractere especial (;,’, -, +, é, á, ., ?, 
espaço em branco) no nome de identificador.
Quais exemplos são aplicáveis?
8
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Atributos de um Identificador
9
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificador e o tipo do dado 
armazenado
 Um identificador, como já vimos, armazena um único valor de dado por 
vez. Mas, será que ele pode armazenar qualquer dado? 
 Os dados podem ter estruturas físicas diferentes na representação do 
seu valor. Vejamos, como exemplo. Os valores: 
1 1,00 0,1 x 10 + 1 
 representam a mesma grandeza, mas possuem estruturas de organização 
diferentes.
 Observe que estamos tratando somente com dados numéricos. Caso, 
resolvamos envolver outros tipos de dados (como dados caracteres, 
dados lógicos, dados cadeias de caracteres, entre outros) teríamos 
estruturas completamente diferentes.
10
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Identificador e o tipo do dado 
armazenado
 As células de memória do computador precisam ser compatíveis com o 
tipo da estrutura do dado que ela irá armazenar, e como vimos estas 
estruturas variam com o tipo dado.
 Isto quer dizer que, precisamos informar ao computador quais serão as 
células de memória que serão utilizadas e qual o tipo de dado que será 
armazenado na mesma. 
 A informação do tipo do dado armazenado na célula de memória tem outra 
função, que é a de definir quais serão as operações válidas que poderão ser 
aplicadas sobre o dado armazenado. Por exemplo: 
 Se o dado for numérico podemos fazer operações aritméticas (adição, 
subtração, multiplicação, divisão e exponenciação). 
 Caso, o dado seja uma cadeia de caracteres, poderemos efetuar uma 
operação de concatenação (juntar dois textos, armazenados em duas células de 
memória distintas em uma única célula de memória). 
11
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos de dados simples
12
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos Numéricos
 A princípio, podemos admitir a existência de dois grandes conjuntos 
de natureza numérica: o conjunto dos números reais e o conjunto dos 
números inteiros.
 Inteiros: os números inteiros podem ser positivos, negativos ou nulos e 
não possuem um componente decimal. Na notação matemática em 
forma de conjunto, poderíamos ter a seguinte representação:
Z = {..., -2, -1, 0, 1, 2,...}.
 Matematicamente, os números inteiros são compatíveis com os números 
reais, pois o conjunto dos reais contém o conjunto dos inteiros. Mas, a 
recíproca não é verdadeira, pois, nem todo número real é um inteiro, mas 
todo inteiro é um real.
13
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos Numéricos
 Adotaremos aqui, esta definição matemática. Todo identificador 
definido como real poderá receber um valor inteiro, mas os 
identificadores inteiros nunca poderão receber um valor real, mesmo 
que a parte fracionária do mesmo seja nula.
 Identificadores que forem deste tipo serão declarados como sendo do 
tipo inteiro.
14
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos Numéricos
 Reais: os números podem ser positivos, negativos ou nulos, e 
possuem, sempre, um componente decimal. Exemplificando alguns 
números reais:2,34 -3,14 0,0 34,0 -214,123 224x101 1000x10-4
 Computacionalmente, existem muitas diferenças na forma de 
armazenamento de números inteiros e reais. Geralmente, valores inteiros 
exigem um espaço de memória menor do que os reais.
 Identificadores que forem deste tipo serão declarados como sendo do 
tipo real.
15
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos de dados não numéricos
Os tipos simples não numéricos representam os conjuntos dos caracteres e dos valores lógicos(ou 
booleanos). 
 Caractere / literal / alfanumérico: o conjunto dos caracteres são formados por letras (de A a Z), 
dígitos (de 0 a 9) e caracteres especiais (~, ., ?, >, <, ...).
 As diferenças entre dados numéricos e caracteres estão na forma de armazenamento e nas 
operações legais que podem manipular dados. Podemos fazer operações aritméticas com os dados 
numéricos, mas estas operações não são permitidas para os caracteres. 
 Para diferenciar um dado numérico e um identificador de um caractere, utilizaremos sempre o dado 
caractere entre apóstrofes (’ ’). Assim poderíamos ter: 
8 é numérico 
'8' é caractere 
A é um identificador 
'A' é um caractere
 Identificadores que forem deste tipo serão declarados como sendo do tipo caractere. 
16
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos de dados não numéricos
 Identificadores que forem declaradas como sendo do tipo caractere 
poderão armazenar um único caractere. Para armazenar uma 
sequência de caracteres, criaremos a estrutura cadeia de caracteres, 
a qual, consideraremos aqui como sendo um tipo de dado 
estruturado, e por ser mais complexa a estudaremos mais adiante. Mas 
para diferenciar a duas estruturas, eis um exemplo: 
‘Z’ é um caractere 
‘ANA’ é uma cadeia de caracteres 
17
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Tipos de dados não numéricos
 Lógicos: o conjunto dos valores lógicos é formado, unicamente por duas 
possibilidades (falso e verdadeiro). Isto que dizer que, qualquer 
identificador que for declarado como sendo deste tipo, só poderá 
armazenar um destes valores. Os dados do tipo lógico são muito utilizados 
para controle do fluxo lógico do algoritmo.
 Os únicos operadores que podem manipular dados deste tipo são os 
operadores relacionais (<>, <, =, ...) e os operadores lógicos(E, OU, NÃO), 
os quais serão inseridos posteriormente. 
 Identificadores que forem deste tipo serão declarados como sendo do 
tipo booleano ou lógico.
18
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Declaração do tipo do identificador 
 A declaração do tipo do identificador deve ser feita na seção de declaração dos objetos que serão utilizadas no 
algoritmo. Esta declaração deve ser feita com a seguinte sintaxe: 
Objetos identificador : tipo; 
 Caso haja mais de um identificador com o mesmo tipo no mesmo algoritmo, poderemos declará-los da seguinte 
forma: 
Objetos identificador1, identificador2, identificador3: tipo;
 Supondo que em um algoritmo, tenhamos os identificadores i1, i2e i3do tipo inteiro e c1, c2 do tipo caractere e b do 
tipo booleano e r do tipo real, teríamos a seguinte declaração dos tipos dos objetos: 
Objetos i1, i2, i3 : inteiro; 
cl, c2 : caractere; 
b : booleano; 
r : real; 
 Uma das dificuldades de definição de tipo de um identificador ocorre quando temos que declará-lo como sendo de um 
tipo numérico, pois o mesmo poderá ser do tipo real ou inteiro. 
19
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Exemplos
 Exemplo de números inteiros: 
 número de pessoas convidadas para uma festa; 
 um número par ou ímpar; 
 um número primo; 
 idade de uma pessoa (geralmente é tratada como inteiro); 
 quantidade de mercadorias em estoque. 
 Exemplos de números reais: 
 o peso de uma pessoa (em Kg); 
 percentual; 
 nota de uma avaliação; 
 média aritmética; 
 preço de um produto. 
20
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Dúvidas
 Existem situações em que podemos ficar em dúvida quanto ao tipo 
de resultado esperado em uma expressão, como por exemplo:
 a raiz quadrada de um número inteiro 
 a divisão entre dois números inteiros 
 Se quisermos calcular a raiz quadrada de 4, matematicamente, podemos 
admitir que o resultado é do tipo inteiro, mas se calcularmos a raiz quadrada 
de 5, o resultado obtido será do tipo real. Logo, qual deverá ser a tipo do 
identificador que receberá o resultado desta expressão?
21
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Dúvidas
 Quando houver alguma possibilidade do resultado de uma expressão ser 
do tipo real, o identificador que receberá o resultado da mesma deverá 
ser sempre do tipo real, pois os inteiros estão contidos nos reais, assim, 
se atribuirmos um valor inteiro a um identificador real nenhum erro 
ocorrerá, mas a recíproca não é verdadeira.
22
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Valores dos dados
 Os dados são os valores que serão armazenados em células de memória e 
que poderão ser acessados por referência aos identificadores, respectivos, 
associados com estas células. 
 Assim, se tivermos os identificadores i, r, c e b como sendo inteiro, real, 
caractere e booleano, respectivamente, e atribuirmos a estes 
identificadores os valores de dados 100; 3,14, 'Z' e falso, teríamos a seguinte 
configuração:
 Se executarmos a ação informe o valor de r o resultado obtido será 3,14, 
pois este valor está associado com o identificador r. Assim, qualquer 
referência que fizermos a um identificador, estaremos, implicitamente, nos 
referenciando ao valor do dado associado ao mesmo. 
23
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Exercício
 Dados dois números inteiros, diferentes de zero, faça um algoritmo que 
calcule a razão entre os mesmos.
 Dados dois números inteiros, diferentes de zero, faça um algoritmo que 
calcule a multiplicação entre os mesmos.
 Dados dois números inteiros, diferentes de zero, faça um algoritmo que 
calcule cada número ao quadrado e some seus resultados como 
resposta.
 Faça um algoritmo que peça 5 números reais e que informe a média 
destes.
24
mailto:mcostax@santoangelo.uri.br
30-002 – Algoritmos - Ms. Marcos André Costa – mcostax@santoangelo.uri.br
Exercício
ae(n1, n2); 
as(razão); 
Objetos n1, n2 : inteiro; 
razão : real; 
inicio das ações:
conheça dois valores inteiros diferentes de zero e atribua-os a n1e a 
n2, respectivamente; 
calcule a expressão n1/n2 e atribua o resultado ao identificador razão; 
informe o valor armazenado no identificador razão; 
fim das ações.
25
mailto:mcostax@santoangelo.uri.br

Continue navegando