Algoritmos e Programação
_
Departamento de Informática
5 TIPOS DE DADOS
Todo o trabalho realizado por um computador é baseado na manipulação das
informações contidas em sua memória. De um modo geral estas informações podem ser classificadas em dois tipos:
•
Instruções - que comandam o funcionamento da máquina e determinam a maneira como devem ser tratados dos dados.
•
Dados - que correspondem à porção das informações a serem processadas pelo
computador.
5.1
CLASSIFICAÇÃO DOS DADOS DE ACORDO COM O TIPO
5.1.1 Dados Numéricos
•
Conjunto dos números naturais representados por N;
N = {0,1,2,3,4,5.....}
•
Conjunto dos números inteiros (Z);
Z = {...,-4,-3,-2,-1,0,1,2,3,4,...}
•
Conjunto dos números fracionários (Q);
Q = {p/q | p,q pertencem a Z}
•
Conjunto dos números reais (R);
_________________________________________________________________________________
Professor: Ivo Mário Mathias
16
Algoritmos e Programação
_
Departamento de Informática
Do ponto de vista do computacional (algorítmico) os dados numéricos representáveis num computador são divididos em apenas duas classes: inteiros e reais.
5.1.2 Dados Literais (Alfanuméricos)
Constituído por uma sequência de caracteres contendo letras, dígitos e/ou
símbolos especiais. Este tipo de dados é também chamado de alfanumérico, cadeia (ou cordão) de caracteres ou ainda do inglês string.
Usualmente, os dados literais são representados nos algoritmos e nas linguagens de programação pela coleção de caracteres, delimitada em seu início e
termino com o caracter aspas (") ou aspas simples - plicas (').
O comprimento ou tamanho de um dado literal é dado pelo número de caracteres nele contido (inclusive espaços em branco).
5.1.3 Dados Lógicos
A existência deste tipo de dado de certo modo é um reflexo da maneira como
os computadores funcionam. São também chamados de booleanos, em função da
significativa contribuição BOOLE à área da lógica matemática.
São usados para representar dois únicos valores lógicos possíveis: Verdadeiro/Falso - Sim/Não - 1/0 - True/False.
Exemplo de representação a ser adotada nos algoritmos:
.V. - valor lógico verdadeiro;
.F. - valor lógico falso;
_________________________________________________________________________________
Professor: Ivo Mário Mathias
17
Algoritmos e Programação
_
Departamento de Informática
5.1.4 Resumo
6 VARIÁVEIS
Uma variável é uma posição nomeada de memória, que é usada para guardar
um valor que pode ser modificado pelo programa. A todo o momento durante a execução de um programa os computadores estão manipulando informações representadas pelos diferentes tipos de dados. Para que não se "esqueça" das informações,
o computador precisa guardá-las em sua memória.
6.1
REPRESENTAÇÃO DA INFORMAÇÃO
6.1.1 Bit
Unidade básica da informação é o BIT (BInary digiT), é a porção de informação fornecida por um verdadeiro ou falso, uma resposta sim/não, como uma chave
liga/desliga, simbolicamente os dígitos 0 e 1 são utilizados.
6.1.2 Byte (octeto)
BYTE (BinarY TErm), constituído por um conjunto de oito bits. Desta forma é
possível representar 256 (28) combinações diferentes.
6.1.3 Nybble
Meio byte, constituído por 4 bits.
_________________________________________________________________________________
Professor: Ivo Mário Mathias
18
Algoritmos e Programação
_
Departamento de Informática
6.1.4 Kilobyte (KByte)
Um kbyte equivale a 1024 octetos ou bytes (8192 bits). O fato de corresponder a 1024 e não a 1000 se deve a que 1 kbyte é igual a 210 (base do sistema binário elevada a décima potência); além disso, essa correspondência faz com que o
kbyte seja múltiplo de 8.
6.1.5 Megabyte (MByte)
Equivale a 1.048.576 de bytes (octetos), ou seja 220 (base do sistema binário
elevada a vigésima potência), para representação de grande volume de memória.
6.1.6 Gigabyte (GByte)
Equivale a 1.073.741.824 bytes - 230 (base do sistema binário elevada a trigésima potência).
6.1.7 Terabyte (TByte)
Equivale a 1.099.511.627.776 bytes - 240 (base do sistema binário elevado a
quadragésima potência).
6.1.8 Petabyte (PByte)
Equivale a 1.125.899.906.842.624 bytes - 250 (base do sistema binário elevado a quinquagésima potência).
6.2
ARMAZENAMENTO DE DADOS NA MEMÓRIA
A memória de um computador pode ser vista como um conjunto ordenado de
células (bytes) cada uma identificada por um número inteiro positivo distinto, conhecido como endereço (ponteiro).
6.2.1 Armazenamento de Dados do Tipo Literal
Como cada dado do tipo literal é representado por um byte e como é possível
representar 256 (28) combinações diferentes surgiu a ideia de associar cada caracter a um número (código) diferente variando de 0 a 255 (256 possibilidades). Essa
convenção é representada na forma de uma tabela de mapeamento de caracteres e
números. O padrão universalmente aceito é o ASCII-(American Standard Code for
Information Interchange/Código Padrão Americano para Intercâmbio de informações).
_________________________________________________________________________________
Professor: Ivo Mário Mathias
19
Algoritmos e Programação
_
Departamento de Informática
Desse modo como cada informação do tipo literal é constituído por um byte, e
como seu tamanho é definido pelo comprimento (quantidade de caracteres/bytes),
para guardar um literal na memória do computador deve-se alocar (reservar) um espaço contíguo de memória igual ao seu comprimento.
6.2.2 Armazenamento de Dados do Tipo Lógico
São armazenados em um byte.
6.2.3 Armazenamento de Dados do Tipo Inteiro
Na maioria das linguagens de programação são armazenados em dois bytes
(28 x 28 = 216) 65536 possibilidades
(-32767, -32766, ..., -2,-1,0,1,2,..., 32766, 32767) – com sinal.
(0,1,2,..., 65534, 65535) – sem sinal.
Contudo existem linguagens de programação que admitem representar dados
do tipo inteiro em 4 ou 8 bytes, ditos inteiros longos ou estendidos.
6.2.4 Armazenamento de Dados do Tipo Real
Normalmente são armazenados em 4 bytes, porém existem linguagens de
programação que admitem o real estendido com 8 ou 16 bytes.
(28 x 28 x 28 x 28 = 232) 4.294.967.296 possibilidades
6.3
CONCEITO E UTILIDADE DE VARIÁVEIS
Variável é uma entidade destinada a guardar uma informação.
Basicamente uma variável possui três atributos:
•
Nome (identificação) - de uma forma geral as regras para criação de nomes de variáveis são as seguintes: deve começar necessariamente com
uma letra e não deve conter nenhum símbolo especial exceto a sublinha
(_).
•
Tipo de dado associado a mesma - inteiro, real, literal ou lógico.
•
Informação por ela guardada - único elemento que sofrerá alteração durante a execução de um programa.
_________________________________________________________________________________
Professor: Ivo Mário Mathias
20
Algoritmos e Programação
6.4
_
Departamento de Informática
DECLARAÇÃO DE VARIÁVEIS EM ALGORITMOS
Todas as variáveis utilizadas em algoritmos e programas devem ser definidas
antes de serem utilizadas, para permitir que o compilador ou interpretador reserve
espaço na memória para as mesmas.
Forma como declarar variáveis em algoritmos:
VAR <tipo_da_variável> : <nome_da_variável>;
ou
VAR <tipo_das_variáveis> : <lista_de_variáveis>;
Sintaxe:
•
A palavra-chave VAR deverá estar presente e será utilizada uma única
vez na declaração de um conjunto ou de uma ou mais variáveis;
•
Numa mesma linha poderão ser definidas uma ou mais variáveis do mesmo tipo; Para tal, deve-se separar os nomes das mesmas por vírgulas;
•
Variáveis de tipos diferentes devem ser declaradas em linhas diferentes.
Exemplo (formato C):
VAR
6.5
literal
: NOME[10];
inteiro
: IDADE;
real
: SALÁRIO;
lógico
: TEM_FILHOS;
MAPEAMENTO DE VARIÁVEIS NA MEMÓRIA
O computador não é capaz de trabalhar diretamente com nomes simbólicos
de variáveis, só consegue tratar de células de memória por meio do conhecimento
de seus endereços (ponteiros). Para intermediar esta situação o compilador ou interpretador monta uma tabela de símbolos. Exemplo:
Nome simbólico
Posição inicial
Tipo de dado
NOME
0
LITERAL[10]
IDADE
10
INTEIRO
SALÁRIO
12
REAL
TEM_FILHOS
16
LÓGICO
_________________________________________________________________________________
Professor: Ivo Mário Mathias
21
Algoritmos e Programação
_
Departamento de Informática
7 EXPRESSÕES
O conceito de expressão em termos computacionais esta intimamente ligado
ao conceito de expressão (ou fórmula) matemática, onde, um conjunto de variáveis
e constantes numéricas relacionam-se por meio de operadores aritméticos compondo uma fórmula que, uma vez avaliada, resulta num valor. Ou ainda, uma expressão é uma combinação de variáveis, constantes e operadores, e que, uma vez avaliada, resulta num valor.
Exemplo: Fórmula de cálculo da área de um triângulo.
ÁREA = 0,5 * (B * H);
Onde:
B, H → variáveis que respectivamente correspondem a base e altura;
7.1
0,5
→ constante;
*
→ operador de multiplicação.
OPERADORES
São elementos funcionais que atuam sobre os operandos.
De acordo com o número de operandos podem ser classificados em:
•
Binários - quando atuam sobre dois operandos. Exemplo os operadores
das operações aritméticas básicas (soma, subtração, multiplicação e divisão).
•
Unários - quando atuam sobre um único operando. Exemplo o sinal de (–)
na frente de um número, cuja função é inverter seu sinal.
Outra classificação é feita considerando-se o tipo de dado de seus operandos
e do valor resultante de sua avaliação, podendo ser: Aritméticos, lógicos e literais.
Existindo ainda um caso especial que são os operadores relacionais, que
permitem comparar pares de operandos de tipos iguais, resultando sempre num
valor lógico.
_________________________________________________________________________________
Professor: Ivo Mário Mathias
22
Algoritmos e Programação
7.2
_
Departamento de Informática
TIPOS DE EXPRESSÕES
Classificadas de acordo com o tipo de valor resultante de sua avaliação.
7.2.1 Expressões Aritméticas
São aquelas cujo resultado da avaliação é do tipo numérico, seja ele inteiro
ou real e somente o uso de operadores aritméticos e variáveis numéricas são permitidos.
No caso das variáveis numéricas os tipos podem ser inteiro ou real e ambos
podem ser combinados. Para o caso de uma expressão com tipos inteiros o resultado da avaliação também será do tipo inteiro, quando os dois tipos são combinados o resultado da avaliação é do tipo real.
7.2.1.1
Operadores aritméticos
Operador
Tipo
Operação
Precedência
+
Binário
Adição
4
–
Binário
Subtração
4
*
Binário
Multiplicação
3
/
Binário
Divisão
3
MOD
Binário
Resto de divisão
3
** ou ^
Binário
Exponenciação
2
Potenciação
SQRT
Unário
Raiz Quadrada
2
+
Unário
Manutenção de sinal
1
–
Unário
Inversão de sinal
1
Exemplo: Exponenciação em Linguagem C:
x = 24 à x = 2 ^ 4 à x = pow(2,4) ( #include <math.h> )
7.2.2 Expressões Lógicas
São aquelas cujo resultado da avaliação é um valor lógico (.V. ou .F.).
_________________________________________________________________________________
Professor: Ivo Mário Mathias
23
Algoritmos e Programação
_
Departamento de Informática
7.2.2.1 Operadores lógicos
Operador
Tipo
Operação
Precedência
.OU.
Binário
Disjunção
3
.E.
Binário
Conjunção
2
.NÃO.
Unário
Negação
1
7.2.2.2 Tabela-verdade dos operadores lógicos
A
B
.NÃO. A
.NÃO. B
A .OU. B
A .E. B
.V.
.V.
.F.
.F.
.V.
.V.
.V.
.F.
.F.
.V.
.V.
.F.
.F.
.V.
.V.
.F.
.V.
.F.
.F.
.F.
.V.
.V.
.F.
.F.
A
B
.NÃO. A
.NÃO. B
A .OU. B
(∨)
A .E. B
(∧)
1
1
0
0
1
1
1
0
0
1
1
0
0
1
1
0
1
0
0
0
1
1
0
0
7.2.2.3 Operadores relacionais
São aqueles usados para efetuar comparações e só podem ser feitas entre
variáveis de um mesmo tipo cujo resultado é sempre um valor lógico.
_________________________________________________________________________________
Professor: Ivo Mário Mathias
24
Algoritmos e Programação
_
Departamento de Informática
Tabela dos operadores relacionais em pseudocódigo:
Operador
Comparação
Precedência
=
Igual
2
<>
Diferente
2
<
Menor
1
<=
Menor ou igual
1
>
Maior
1
>=
Maior ou igual
1
7.2.3 Expressões Literais
São aquelas cujo resultado da avaliação é um valor literal. Os tipos de operadores variam de uma linguagem de programação para outra.
Um caso pode ser a concatenação de strings: toma-se duas strings e acrescenta-se (concatena-se) a segunda no final da primeira, algumas linguagens admitem o uso do operador (+). Exemplo: strings "REFRIGERA" + "DOR" = "REFRIGERADOR".
7.3
AVALIAÇÃO DE EXPRESSÕES
Expressões que apresentam apenas um único operador podem ser avaliadas
diretamente. No entanto, à medida que as mesmas vão-se tornando mais complexas com o aparecimento de mais de um operando numa mesma expressão é necessária a avaliação da mesma passo a passo, tomando um operador por vez. A
sequência de passos é definida de acordo com o formato geral da expressão, considerando-se a prioridade (precedência) de avaliação de seus operadores e a existência ou não de parênteses na mesma.
Regras essenciais:
1. Deve-se observar a prioridade dos operadores, conforme mostrado anteriormente: operadores de maior prioridade devem ser avaliados primeiro. Se houver empate com relação à precedência, então a avaliação se faz considerando-se a expressão da esquerda para direita.
_________________________________________________________________________________
Professor: Ivo Mário Mathias
25
Algoritmos e Programação
_
Departamento de Informática
2. Os parênteses usados em expressões têm o poder de "roubar" a prioridade dos
demais operadores, forçando a avaliação da subexpressão em seu interior.
3. Entre os quatro grupos de operadores existentes, a saber, aritmético, lógico, literal e relacional, há uma certa prioridade de avaliação: os aritméticos e literais devem ser avaliados primeiro; a seguir, são avaliadas as subexpressões com operadores relacionais e por último os operadores lógicos.
Exemplo: x = 2; y = 3,0.
(x * y + 1) + (x ^ y) / 2
(2 * 3 + 1) + (2 ^ 3) / 2
(6 + 1) + (8) / 2
7 + 4 = 11
7.4
PRIORIDADE (PRECEDÊNCIA) ENTRE TODOS OS OPERADORES
Operação
Precedência
Parênteses mais internos
1
Operadores aritméticos
2
Operadores relacionais
3
Operadores lógicos
4
_________________________________________________________________________________
Professor: Ivo Mário Mathias
26
Download

16 Todo o trabalho realizado por um computador é