• Principais tipos de dados em C
– int : tipo de dados inteiros (exemplo: 1, -3, 100, -9, 18, etc.)
– float : tipo de dados reais (exemplo: 1.33, 3.14, 2.00, -9.0, 1.8, etc.)
• Ocupa 4 bytes em memória
– double : tipo de dados reais
• Ocupa 8 bytes em memória (mais precisão)
– char : tipo de dados alfanuméricos (caracteres) (a, z , B, #, *, +, T, 2, 5,?,etc)
• Ocupa um byte em memória
• Na realidade um caracter é equivalente a um número inteiro de 8bits.
• Os números inteiros que representam cada caracter encontram-se na
tabela ASCII.
Tipo de Dados em Linguagem C
1Universidade Metodista de Angola, Departamento de Engenharias
Código ASCII
2Universidade Metodista de Angola, Departamento de Engenharias
Tabela ASCII – usada para representar dados do tipo char
Variáveis
3Universidade Metodista de Angola, Departamento de Engenharias
• Sempre que desejarmos guardar um valor, que por qualquer razão não tenha valores fixos devemos usar variáveis.
• Uma variável é uma espaço em memória que pode conter a cada tempo um valor diferente.
• Regras gerais para atribuição de nomes às variáveis– Em C todas as variáveis utilizadas no programa devem ser declaradas
previamente.– O C é case-sensitive,(é sensível as letras maiúsculas e minúsculas –
exemplo: Engenharia ≠ EnGenHaria).– O nome das variáveis podem iniciar por uma letra (a,…z, A,…Z) ou
um underscore ( _ ). – As palavras reservadas descritas a seguir não podem ser usadas como
nome das variáveis.
auto bolean break casechar complex const continuedefault restrict do doubleelse enum extern floatfor goto if
int long registerreturn Short signed sizeofstatic Struct switch typedefunion unsigned void volatilewhile
Palavras reservadas em linguagem C
4Universidade Metodista de Angola, Departamento de Engenharias
• As palavras descritas na tabela são palavras que constituem a linguagem C, pelo que não podem ser usadas como nome de variáveis.
Palavras reservadas na linguagem C
Tipo de dados em C Significado Bits Bytes Range (intervalo) Interpretação
void void 0 0 Sem valor -
charGuarda um único
carácter numa variável
8 1 -128 à 127
int Números Inteiros 16 ou 32 2 ou 4 -32768 à 32767
float Números Reais 32 4 3.4E-38 à 3.4E38
double Números Reais 64 8 -1.7E-308 à 1.7E308
long int - 32 4 3.4E-38 à 3.4E38
unsigned char - 8 1 0 à 255
unsigned int - 16 ou 32 2 ou 4 0 à 65535
Tipo de Variáveis
5Universidade Metodista de Angola, Departamento de Engenharias
2 2;2 2
n n − +
2 2;2 2
n n − +
2 2;2 2
n n − +
20;2
n
20;2
n
2 2;2 2
n n − +
2 2;2 2
n n − +
• Sempre que quisermos guardar dados do tipo 1, -3, 100, -9, 18, 2000, 53068, 87012, devemos usar variáveis do tipo int.
• Sempre que quisermos guardar dados do tipo 1.33, 3.14, 2.00, -9.0, 1.8, devemos usar variáveis do tipo float ou double.
• Sempre que quisermos guardar dados do tipo ?, [, &, $,#, a, A, T, o, O, 0, 1,2,3,4,5,6,7,8,9, G, g, k, J,m, M devemos usar variáveis do tipo char.
• Sempre que quisermos guardar dados do tipo “ana maria”, “gustavo”, “universidade metodista”, “antonio jose, proc. numero 53068”, ”republica de Angola” devemos usar variáveis do tipo string.
– (estudaremos strings nos capítulos posteriores)
Tipo de Variáveis
6Universidade Metodista de Angola, Departamento de Engenharias
• Declaração de variáveis– A declaração é feita da seguinte forma: <tipo> <nome>
• Exemplo: int raio; double Nota_Aluno;int Raio; char c;float Media; int Nota1, Nota2, Media;
• Declaração de constantes– Usando a directiva #define a declaração de constantes é feita da seguinte maneira:
#define <nome da constante> <valor da constante>• Exemplo: #define PI 3.14159
#define EULER 2.718
• Inicialização de variáveis– Pode-se inicializar no momento da criação e em qualquer parte do programa.
• Exemplo: (na criação) int raio =3; int Nota1 = 18;(após criada) raio =4;
Nota1 = 12; etc
Tipo de variáveis
7Universidade Metodista de Angola, Departamento de Engenharias
• Em ciência de computação, uma estrutura de dados é um modo particular de armazenamento e organização de dados em um computador de modo que possam ser usados de forma eficiente.
• As estruturas de dados são destinadas a tarefas específicas.
• Exemplo:
– Árvores binárias (Binary Trees) são estrutura de dados indicadas para implementação de base de dados.
– Tabelas de dispersão (Hash Tables) são as destinadas para construção de compiladores (funções de indices).
Introdução as Estruturas de dados
8Universidade Metodista de Angola, Departamento de Engenharias
• Tipo de estruturas de dados
Introdução as Estruturas de dados
9Universidade Metodista de Angola, Departamento de Engenharias
Tipo de estruturas de dados
Designação em Inglês
Definição Cadeira
Vectores e Matrizes Arrays Estruturas Estáticas Programação I
Listas - Estruturas Dinâmicas Algoritmos e Estruturas de dados
Pilha - Estruturas/Listas do tipo LIFO (Last In First Out)
Algoritmos e Estruturas de dados
Fila - Estruturas/Listas do tipo FIFO (First In First Out)
Algoritmos e Estruturas de dados
Arvores Trees Estruturas Dinâmicas Algoritmos e Estruturas de dados
Tabela de dispersão Hash Table Estruturas Estáticas Algoritmos e Estruturas de dados
Grafos Graphs Estruturas Dinâmicas Algoritmos e Estruturas de dados
Estruturas de dados
10Universidade Metodista de Angola, Departamento de Engenharias
Antonio12318M
Soraia123419F
Edna89718F
Patricio234625M
Ref
Antonio12318M
Nome:Numero:Idade:Sexo:
Antonio12318M
Soraia123419F
Edna89718F
Patricio234625M
Ref
Registo (struct)•Serve para agrupar variáveis de diferente tipos•Permite guardar diferente tipo de dados (ex: int, float, char, etc)
Vector /Matriz (Array)•Permite agrupar dados do mesmo tipo•Exemplo: só inteiros (int), só reais (float), só caracters (char), só registos (struct)
Lista de dados•Estrutura de dados dinâmica
Novo elemento da listaRefRegisto inicializado
Definição de Registo ou struct
Vector de registos
Estrutura do tipo lista (lista de registos)
Estruturas de dados
11Universidade Metodista de Angola, Departamento de Engenharias
Ref
Fila - FIFO
remoçãoinserção
Pilha - LIFO
Ref
Tipo de Listas (estruturas de dados lineares e dinâmicas)
Listas Simples
Listas: Exemplos
12Universidade Metodista de Angola, Departamento de Engenharias
0 1 0 0 0 0 3 0 0 00 0 0 2 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 4 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 1 0 0 0 0 0 00 0 0 0 0 0 0 0 0 00 0 0 0 0 0 7 0 0 02 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
− − −
0 1
1
0 6
3
1 3
-2
3 4
-4
5 3
1
7 6
7
8 0
-2
Ref
Matriz Esparsa, 10 linhas 10 colunas•Tem muitos elementos com o valor zero.•O compilador pode não permitir criar a matriz com essa dimensão.
Representação da Matriz Esparsa por uma Lista•Lista Ligada com 7 nós.•Em cada elemento têm: o valor da célula
e os índices (i, j)Usando Listas melhora a utilização da Memória RAM do Computador.
2
4
0
3
5
2
-3
1
1
0
RefCoeficientes do Polnómio
Grau do Polinómio
Lista: Exemplos
13Universidade Metodista de Angola, Departamento de Engenharias
4 2( ) 2 5 3 1p x x x x= + − +
Pode-se representar um polinómio usando uma lista
Estruturas de dados
14Universidade Metodista de Angola, Departamento de Engenharias
1
2 6
3 4 5 7
8 9 10 11 12 13 14
No
Arestas, ligação, link
Raiz
Folhas
Arestas, ligação, link
Arvore – Tree•Sistema de ficheiros
Grafos (Representação de redes)•Redes eléctricas•Redes de computadores•Rede de estradas•Rede de esgotos
Exemplo de arvore
15Universidade Metodista de Angola, Departamento de Engenharias
antónio
bin
public
mkdir
ls
date
cd
libhomedev usr
Divice driversPrinters,
USB device drivers,etc
Musics
Docs
/ raiz
stdio.h
bininclude
math.h
gccSistema de ficheiros do Windows
Sistema de ficheiros do Unix/Linux
C:>
WINDOWS Users Program Files tmpOuther
Directories
Public Gustavo
My Pictures
My Documents
My Music
Todos os programasinstalados
Sistema de Ficheiros