TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Estruturas de Dados

Por:   •  27/3/2016  •  Trabalho acadêmico  •  2.997 Palavras (12 Páginas)  •  322 Visualizações

Página 1 de 12
  1. Estrutura de Dados
  1. Conceitos
  1. Alocação de Memória: Qualquer programa precisa de memória para “rodar”. Ao iniciar um programa, o sistema operacional aloca espaço para a execução. Mas se o espaço inicial não for suficiente é preciso alocar memória em tempo de execução.
  2.   Ponteiros em C: Trabalhar com ponteiro pode, a princípio, parecer bem confuso. Mas quando entendemos o conceito para o uso de ponteiro facilita a situação.

Ponteiro é uma variável como qualquer outra e também precisa ter um tipo primitivo para sua declaração (int, float, char). A questão que pode mais nos confundir é sua aplicação. Uma das aplicações é para vetores e matrizes (principalmente de strings) como veremos mais adiante.

Literalmente um ponteiro “aponta” para outra variável do mesmo tipo, ou seja, no ponteiro contém o endereço da variável apontada.

Para ficar menos confuso vamos usar um exemplo prático de uso de ponteiro:

int num;/* Declara uma variável do tipo inteiro.*/

int *pnum;/* Declara um ponteiro do tipo inteiro com o uso do * (asterisco).*/

num = 15;/* Atribui 15 a num.*/

pnum = #/* Atribui o endereço (&) de num a pnum.*/

*pnum = 20;/* Lê-se: conteúdo de pnum recebe.*/

Se mandarmos imprimir a variável num, esta terá o valor 20, pois o ponteiro para num alterou o valor de num.

  1.  Estruturas de dados e C: Estruturas são conjuntos de dados formados a partir de dados já existente na linguagem C. São usadas para definirem uma classe de problemas a serem resolvidos, e também para definirem um tipo abstrato de dado para implementação.

Duas estruturas conhecidas em C são o vetor e a estrutura (struct) que veremos adiante. Através destas estruturas podemos criar estruturas mais complexas para resolver problemas igualmente complexos.

  1.  Vetores em C: Vetor é uma estrutura de dados que pode ser unidimensional que segundo () é “um conjunto finito e ordenado de elementos homogêneos”.

Por finito quer dizer que existe um limite para a quantidade de elementos do vetor; por ordenados quer dizer que há uma sequência para os elementos começando sempre em zero e terminando no total de elementos - 1; por homogêneo quer dizer que os elementos são do mesmo tipo.

  1.  Implementando vetores unidimensionais: A seguir, temos uma declaração em C para um vetor unidimensional, int vet[10], ou seja, declaramos um vetor de 10 elementos do tipo inteiro. Então, são alocadas dez posições consecutivas na memória com espaço para conter todos os elementos inteiros deste vetor.

O vetor nada mais é que um ponteiro que aponta para o índice zero. A notação vet[i] é equivalente à *(vet+i).

  1.  Operações com strings de caracteres: Uma string é um vetor de caracteres. O final de uma string é representado pelo caracter NULL.  Para especificar uma constante string os caracteres devem estar entre aspas duplas (ou aspas simples para um único caracter).

Vamos fazer algumas operações usando strings.

Declarando a string globalmente temos:

char string[10];

/* Encontrar o tamanho da string.*/

strlen(string);/* Retorna um inteiro com a quantidade de caracteres contidos em string.*/

/* Concatenação.*/

strcat(string1, string2);/* Coloca a string2 em sequência da string1.*/

  1.  Estruturas em C: Diferentemente do vetor onde todos os elementos são do mesmo tipo, a estrutura (struct) pode conter elementos de tipos distintos. Cada item é conhecido como membro.

Exemplo de uma declaração de estrutura:

struct aluno

{

        char nome[20],

        endereço[50],

        ra[10];

        int idade;

};

Note que há dois tipos de membros, int e char, e por isso essa estrutura é chamada de heterogênea.

  1.  Implementando estruturas: Usando o exemplo do tópico anterior, para acessar um membro da struct aluno, devemos declarar uma variável deste tipo e, então fazer o acesso. Por exemplo, para acessar o membro idade devemos fazer assim:

struct aluno nAluno;/* Declara uma variável do tipo struct aluno.*/

nAluno.idade = 15;/* Insere o valor 15 dentro do membro idade.*/

Para leitura e escrita de todos os membros fazemos como acima.

  1. Alocação Estática de Memória

                Quando a alocação de memória é feita no momento da compilação dizemos que é estática, pois seu tamanho não se altera durante a execução do programa.

        Exemplo: int vet[10];/* É alocado espaço para dez elementos inteiros.*/

  1. Implementação da estrutura aviao

        Código fonte da estrutura aviao. Arquivo.cpp enviado por e-mail.

#include

#include

#include

#include

#include

/* Criação da estrutura aviao.*/

typedef struct{

   char modelo[15],

        fabricante[15],

        motor[15];

   int passageiros,

       comprimento,

       altura,

       velocidade,

       altitude;

}aviao;

aviao airplane;/* Variável do tipo aviao.*/

void cadastra(aviao *n_cadastro);/* Cadastra um avião.*/

void exibe(aviao *n_mostra);/* Mostra os dados do avião.*/

int main()

{

   setlocale(LC_ALL, "Portuguese");

   char op;

   system("cls");

   puts("CADASTRO DE AERONAVES!\n");

   printf("(1)Cadastrar\n(2)Exibir\n(3)Sair\n\nOpção: ");

   op = getche();

   switch(op){

      case '1':

         system("cls");

         puts("Menu cadastrar!\n");

         cadastra(&airplane);

         system("cls");

         puts("Cadastro efetuado!\n\n");

         system("pause");

         main();

      case '2':

         system("cls");

         puts("Menu exibir!\n");

         exibe(&airplane);

         puts("\n");

         system("pause");

         main();

      case '3':

         system("cls");

         puts("**** Encerrando aplicação! *****");

         Sleep(3000);

         exit(1);

...

Baixar como (para membros premium)  txt (15.8 Kb)   pdf (348 Kb)   docx (52.2 Kb)  
Continuar por mais 11 páginas »
Disponível apenas no TrabalhosGratuitos.com