18
ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 06 – ESTRUTURAS DE DADOS Prof. Thomás da Costa [email protected]

Algoritmos e Técnicas de Programação - Aula 06

Embed Size (px)

Citation preview

Page 1: Algoritmos e Técnicas de Programação - Aula 06

ANHANGUERA – 2016.2

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃOAULA 06 – ESTRUTURAS DE DADOS

Prof. Thomás da [email protected]

Page 2: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

ESTRUTURAS DE DADOS

Page 3: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

EstruturasO que é?:É um conjunto de variáveis que representam características de um determinado domínio ou de um tipo. A estrutura pode definir uma entidade e possui grande semelhança com registros de banco de dados. O agrupamento de variáveis pode ser de qualquer tipo, sendo denominado de membro da estrutura.

ESTRUTURAS DE DADOS

Page 4: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasExemplo:Quais são as informações de um Aluno para a Faculdade?• Nome.• Matrícula.• Série.• Turma.• Curso.

No exemplo acima temos a estrutura Aluno que contém as informações ou as características de um aluno. Muito semelhante a um registro de banco de dados.

Podemos dizer que em uma estrutura, estamos armazenando informações agrupadas logicamente.

Page 5: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasMais um exemplo:Quais as informações de um Funcionário para uma Empresa?• Nome.• Dados Pessoais.• Data de Admissão.• Cargo.• Salário.• Setor/Área de Atuação.

Vamos ver como fazer uma estrutura em C/C++ !!!

Page 6: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasEstruturas em C/C++:

struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

};

Nome da estrutura.

Palavra reservada que identifica uma

estrutura.

Membros da estrutura.

Chaves definem o início e o fim da estrutura.

Termina com ponto e vírgula.

Page 7: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

Memória:

Estruturas

Uma estrutura armazena vários tipos de dados e ocupa a memória de acordo com a quantidade de membros declarados na estrutura.

struct aluno{

char nome[255];

int ra;int serie;int turma;char

curso[100];};

Membro Bytes

char nome[255] 255

int ra 4

int serie 4

int turma 4

char curso[100] 100

TOTAL: 367

Page 8: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

Declarando uma variável do tipo Estrutura:

Estruturas

Existem 3 formas de declarar uma variável de estrutura:

struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

} aluno_anhanguera; struct aluno aluno_tecnologia; typedef struct aluno aluno_curso;

12

3

Page 9: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Acessando membros de uma estrutura:

Estruturas

Para acessar um membro de uma estrutura utilizamos o operador ponto (.)

ESTRUTURAS DE DADOS

Acessando um membro.

O membro “nome” da estrutura será impresso na tela

int main(){

printf("%d\n",sizeof(aluno_anhanguera.nome));}

Page 10: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

} aluno_anhanguera; struct aluno aluno_tecnologia; typedef struct aluno aluno_curso; int main(){

printf("%d\n",sizeof(aluno_anhanguera.nome));printf("%d\n",sizeof(aluno_anhanguera.ra));printf("%d\n",sizeof(aluno_anhanguera.serie));printf("%d\n",sizeof(aluno_anhanguera.turma));printf("%d\n",sizeof(aluno_anhanguera.curso));printf("%d\n",sizeof(aluno_anhanguera));

}

Page 11: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

int main(){

demo.caracter = 'A';demo.valor1 = 3.2;demo.valor2 = 6.7;demo.valor3 = 45;

printf("%c\n", demo.caracter);

printf("%.2lf\n", demo.valor1);

printf("%.2f\n", demo.valor2);

printf("%d\n", demo.valor3);}

Atribuindo valores para membros de uma função:

Estruturas

ESTRUTURAS DE DADOS

Atribuição de valores.

Page 12: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct demonstracao{

char caracter;double valor1;float valor2;int valor3;

} demo; int main(){

demo.caracter = 'A';demo.valor1 = 3.2;demo.valor2 = 6.7;demo.valor3 = 45;

printf("%c\n", demo.caracter);printf("%.2lf\n", demo.valor1);printf("%.2f\n", demo.valor2);printf("%d\n", demo.valor3);

}

Page 13: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <strings.h> struct demonstracao{

char string[100];int vetor_inteiro[10];double vetor_double[5];

} demo; int main(){

strcpy(demo.string, "Valor da String 1");

demo.vetor_inteiro[0] = 1;demo.vetor_inteiro[2] = 2;demo.vetor_double[4] = 5.6;

printf("%s\n", demo.string);printf("%d\n", demo.vetor_inteiro[0]);printf("%d\n", demo.vetor_inteiro[2]);printf("%.2lf\n", demo.vetor_double[4]);

}

Vetor de char usar strcpy.

Page 14: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct demonstracao{

char string[100];char caracter;int valor_inteiro;double valor_double;

} demo; int main(){

printf("Digite o valor da string:");fgets(demo.string, sizeof(demo.string), stdin);

printf("Digite os valores:");scanf(" %c", &demo.caracter);scanf("%d", &demo.valor_inteiro);scanf("%lf", &demo.valor_double);

printf("Valores digitados: %s, %c, %d, %.2lf", demo.string,demo.caracter,demo.valor_inteiro,demo.valor_double);

}

Page 15: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct aluno{

char nome[100];int ra;

} aluno_tecnologia; void imprimir_aluno(char nome[], int ra); int main(){

printf("Digite o nome do aluno:");fgets(aluno_tecnologia.nome, sizeof(aluno_tecnologia.nome), stdin);

printf("Digite o RA do aluno:");scanf("%d", &aluno_tecnologia.ra);

imprimir_aluno(aluno_tecnologia.nome, aluno_tecnologia.ra);

} void imprimir_aluno(char nome[], int ra){

printf("%s\n", nome);printf("%d\n", ra);

}

Page 16: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Resumo

ESTRUTURAS DE DADOS

• É definida pela palavra struct.• Possuem um nome.• Representa algum domínio, tipo ou uma entidade.• Os tipos de uma estrutura são agrupadas logicamente.• Composta de membros que são tipos de variáveis (int, double, float, char).• Seus membros são acessados utilizando o ponto (.)• Para atribuir valores (int, double, char e etc), utilizamos o operador igual (=), idêntico

a atribuição de uma variável.• Utilizamos o strcpy para atribuir um valor para um vetor de char.• O comando scanf funciona da mesma forma para os membros de uma estrutura.• Vetores também são acessado da mesma forma, através de seus índices.

Page 17: Algoritmos e Técnicas de Programação - Aula 06

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

Semestre concluído !!! Parabéns a todos !!!

THANKS FOR STUDYING

Page 18: Algoritmos e Técnicas de Programação - Aula 06

Obrigado !!!

ANHANGUERA – 2016.2