tipos de dados em linguagem c - sistemas de informação ... · 3 exemplo: vamos implementar um...

4

Click here to load reader

Upload: hoangkhue

Post on 12-Nov-2018

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tipos de Dados em Linguagem C - Sistemas de Informação ... · 3 Exemplo: Vamos implementar um tipo abstrato de dados – TAD, por meio de uma estrutura de dados, chamada contaBancaria

1

Tipos de Dados em Linguagem C A linguagem C contém quatro tipos básicos de dados , também conhecidos como tipos primitivos: int, float , char e double. Na maioria dos computadores, esses quatro t ipos são nativos no hardware da máquina. Uma declaração de variável em C especifica dois it ens:

• Primeiro: A quantidade de armazenamento que deve ser reservada para os objetos declarados com esse tipo. Por exemplo, uma variável do tipo int precisa ter espaço suficiente para armazenar o maior valor inteiro possível.

• Segundo: Ela especifica como os dados representados por strings de bits devem ser interpretados. Os mesmos bits numa posição específica de armazenamento podem ser interpretados como um inteiro ou um número de ponto flutuante, resultando em dois valores numéricos totalmente diferentes.

A declaração de variável serve para reservar espaç o na memória para um objeto do tipo especificado e que o objeto nessa posição de memória pode ser acessado por meio do identificador (nome) da variável declarada. Exemplo:

int tamanho = 10; Estrutura De Dados em Linguagem C Os tipos primitivos disponíveis na linguagem C nem sempre são suficientes para representar os dados em um algoritmo. É necessário construir novos tipos, deno minados de "tipos estruturados", a partir da composição de tipos primitivos. Estes novos tipos têm uma estrutura (es trutura de dados) que define como estes dados estarão organ izados. A estrutura de dados criada a partir de tipos primi tivos é tão importante quanto as estruturas de controle, ou seja, o próprio algoritmo. Usando a terminologia de N. Wirt h, podemos dizer: "programa = algoritmo + estrutura de dados".

Tipo da variável Identificador (nome) da variável

Objeto (valor) armazenado na memória

Page 2: Tipos de Dados em Linguagem C - Sistemas de Informação ... · 3 Exemplo: Vamos implementar um tipo abstrato de dados – TAD, por meio de uma estrutura de dados, chamada contaBancaria

2

Exemplo: Vamos imaginar que precisamos de um tipo de dado p ara definir uma conta bancária. Infelizmente não há tip os primitivos na linguagem C que definam uma conta ban cária. Portanto, precisamos criar um novo tipo (estrutura de dado) para criar um tipo contaBancaria. typedef struct { int numeroConta; double saldoConta; char senhaConta[32]; } contaBancaria; /* declaração de variáveis do tipo contaBancaria */ contaBancaria conta1, conta2; Tipo Abstrato de Dados - TAD Embora os termos "tipo de dado", "estrutura de dad os" e "tipo abstrato de dados" em essência se refiram a os mesmos objetos formais, eles são usados em contexto s próprios. O termo "tipo de dado" é usado no contexto de uma linguagem de programação (tipos primitivos) e está associado a um método de interpretar um padrão de b its. O termo "tipo abstrato de dado" (TAD) é a especificação matemática de um conjunto de dados e das operações que podem ser executadas sobre esses dado s. O TAD define o que cada operação faz, mas não como faz. Por fim, "estrutura de dados" é uma forma concreta de se implementar um TAD, ou seja, uma representação computacional do modelo matemático em questão. Uma boa prática é implementar os tipos abstratos d e dados em arquivos separados do programa principal. Para isso, deve-se separar a declaração da implementação em dois arquivos: Com extensão .h (para as declarações) Com extensão .c (para a implementação)

Page 3: Tipos de Dados em Linguagem C - Sistemas de Informação ... · 3 Exemplo: Vamos implementar um tipo abstrato de dados – TAD, por meio de uma estrutura de dados, chamada contaBancaria

3

Exemplo: Vamos implementar um tipo abstrato de dados – TAD, por meio de uma estrutura de dados, chamada contaBancar ia com os campos número e saldo. Onde os clientes podem fa zer as seguintes operações:

• Iniciar uma conta com um número e saldo inicial; • Depositar um valor; • Sacar um valor; • Imprimir o saldo;

contaBancaria.h /* definição do tipo contaBancaria */ typedef struct { int numero; double saldo; } contaBancaria; /* Definição das funções (operações) */ void inicializa(contaBancaria* conta, int numero, double saldo); void deposito(contaBancaria* conta, double valor); void saque(contaBancaria* conta, double valor); void imprime(contaBancaria conta);

contaBancaria.c #include <stdio.h> #include "contaBancaria.h" void inicializa(contaBancaria *conta, int numero, double saldo) { /*quando a variável é ponteiro pode-se usar a -> */ conta->numero = numero; conta->saldo = saldo; } void deposito(contaBancaria *conta, double valor){ /*quando a variável é ponteiro pode-se usar a notaç ão (*conta). */ (*conta).saldo += valor; } void saque(contaBancaria *conta, double valor){ (*conta).saldo -= valor; } void imprime(contaBancaria conta){ /* quando a variável não é ponteiro, deve-se usar a penas "." */ printf( "Numero: %d \n" , conta.numero); printf( "Saldo: %f \n" , conta.saldo); }

Page 4: Tipos de Dados em Linguagem C - Sistemas de Informação ... · 3 Exemplo: Vamos implementar um tipo abstrato de dados – TAD, por meio de uma estrutura de dados, chamada contaBancaria

4

Programa Principal (main.c) #include <stdio.h> #include "contaBancaria.h" int main( int argc, char *argv[]) { contaBancaria conta1; inicializa(&conta1,918556,300.00); printf( "\n Antes da movimentação: \n" ); imprime(conta1); deposito(&conta1, 50.00); saque(&conta1, 70.00); printf( "\n Depois da movimentação: \n" ); imprime(conta1); getch(); }