Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 1
Programa
Um programa pode ser visto como a especificao formal da soluo de um problema. programa = algoritmo + estruturas de dados onde: o algoritmo contm a lgica do programa e os dados so organizados em estruturas de dados.
Estrutura de dados
A qualidade da soluo de um problema depende, entre outros fatores, da forma como esto organizados os dados relevantes. Estruturas de dados so formas genricas de se estruturar informao de modo a serem registradas e processadas pelo computador. Ex.:
lista ordenada; vetores; rvores; grafos, etc.
Contudo estas s adquirem significado quando associadas a um conjunto de operaes, que visam, de um modo geral, manipullas (algoritmos).
Tipo de Dados
Embora os termos tipo de dado, estrutura de dados e tipo abstrato de dados em essncia se refiram aos mesmos objetos formais, eles so usados em contextos prprios. O termo tipo de dado usado no contexto de uma linguagem de programao (tipos primitivos) e est associado a um mtodo de interpretar um padro de bits.
Tipos de Dados
Define a forma como um dado deve ser armazenado ou recuperado, bem como os possveis valores que ele pode assumir e as operaes que podem ser efetuadas sobre os mesmos.
Exemplo em Pascal:
integer - permite valores inteiros e operaes de adio, multiplicao, subtrao e diviso; string - permite valores literais e operaes de concatenao;
Estruturas de dados so formas genricas de se estruturar informao de modo a serem registradas e processadas pelo computador. Contudo, estas s adquirem significado quando associadas a um conjunto de operaes, que visam, de um modo geral, manipul-las (algoritmos).
TAD em C
Uma boa tcnica de programao implementar os TADs em arquivos separados do programa principal. Para isso, geralmente separa-se a declarao e a implementao do TAD em dois arquivos:
NomeDoTAD.h: com a declarao NomeDoTAD.c: com a implementao
O programa ou outros TADs que utilizam o seu TAD devem dar um #include no arquivo.h
TAD:Exemplo
Implemente um TAD ContaBancaria, com os campos nmero e saldo onde os clientes podem fazer as seguintes operaes:
Iniciar uma conta com um nmero e saldo inicial Depositar um valor Sacar um valor Imprimir o saldo
ContaBancaria.c
#include <stdio.h> #include <ContaBancaria.h> void Inicializa(ContaBancaria* conta, int numero, double saldo) { (*conta).numero = numero; (*conta).saldo = saldo; } void Deposito(ContaBancaria* conta, double valor){ (*conta).saldo += valor; } void Saque(ContaBancaria* conta, double valor){ (*conta).saldo -= valor; } void Imprime(ContaBancaria conta){ printf(" Numero: %d \n", conta.numero); printf(" Saldo: %f \n", conta.saldo); }
int main(int argc, char *argv[]) { ContaBancaria conta1; Inicializa(&conta1,918556,300.00); printf("\n Antes da movimentacao: \n"); Imprime(conta1); Deposito(&conta1, 50.00); Saque(&conta1, 70.00); printf("\n Depois da movimentacao: \n"); Imprime(conta1); getch(); }
ContaBancaria.h
// definio do tipo typedef struct{ int numero; double saldo; }ContaBancaria; // cabealho das funes void Inicializa(ContaBancaria* conta, int numero, double saldo); void Deposito(ContaBancaria* conta, double valor); void Saque(ContaBancaria* conta, double valor); void Imprime(ContaBancaria conta);