tipo de dados em linguagem c -...

15
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 1 Universidade Metodista de Angola, Departamento de Engenharias

Upload: trinhdan

Post on 05-Dec-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

• 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

Page 2: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

Código ASCII

2Universidade Metodista de Angola, Departamento de Engenharias

Tabela ASCII – usada para representar dados do tipo char

Page 3: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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.

Page 4: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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

Page 5: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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 − +

Page 6: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

• 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

Page 7: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

• 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

Page 8: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

• 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

Page 9: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

• 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

Page 10: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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)

Page 11: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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

Page 12: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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.

Page 13: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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

Page 14: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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

Page 15: Tipo de Dados em Linguagem C - web.ist.utl.ptweb.ist.utl.pt/.../Programacao_I_Cap_3_Tipo_de_dados_variaveis_e... · podem iniciar por uma letra (a,…z, A,…Z) ou um underscore (

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