Você está na página 1de 12

Algoritmo e Estrutura de Dados

Structs

Professores:
Paulo Rodrigues Milhorato
Roberto Luiz Nunes Filho
Variáveis
Até o presente momento foram usadas diversas
variáveis nos programas. Estas variáveis possuem
um tipo, exemplos:

Int – número inteiro


Float – Número real
Char – Caractere
Vetor – Conjunto de variáveis do mesmo tipo

Mas, se for preciso criar um grupo de variáveis com


tipos distintos, é possível?
Struct em C

Sim. Em C utilizamos as estruturas (structs).

Uma estrutura agrupa várias variáveis em apenas


uma. Funciona como uma ficha pessoal que tenha
idade, sexo e telefone. A ficha seria uma
estrutura.

A estrutura, então, serve para agrupar um


conjunto de dados não similares (heterogenios),
formando um novo tipo de dados.
Criando um Struct

Para se criar uma estrutura usa-se o comando


struct. Sua forma geral é:

struct nome_do_tipo_da_estrutura {
tipo_1 nome_1;
tipo_2 nome_2;
...
tipo_n nome_n;
};
Exemplo em C
Declarando um struct em C:
#include <stdio.h>
struct aluno {
int matricula;
int idade; Criando a estrutura (tipo)
char sexo;
};

int main(){
}
No exemplo acima, percebe-se que o struct foi criado acima
da função MAIN, pois o objetivo é utilizar a estrutura em todo
o meu algoritmo.
Criando Variável do TIPO
#include <stdio.h>
struct aluno {
int matricula; Criando a estrutura (tipo)
int idade;
char sexo;
};

int main(){
struct aluno a; Criando uma variável do tipo aluno
de nome "a”
}
Inserindo os dados
#include <stdio.h>
struct aluno {
int matricula;
int idade; Criando a estrutura (tipo)
char sexo;
};
int main(){
struct aluno a;
Inserindo os dados
a.matricula = 10;
No objeto a criado da
a.idade = 20;
estrutura
a.sexo = ‘M’;

system(“pause’);
return 0;
}
Programa com Struct
#include <stdio.h>
struct aluno {
int matricula;
int idade; Criando a estrutura (tipo)
char sexo;
};
int main(){
struct aluno a;
printf( “Digite o valor da matricula: “);
scanf (“%d”, &a.matricula);
printf(“Digite a idade: “);
Inserindo os dados
scanf (“%d”, &a.idade);
No objeto a criado da
printf(“Digite o sexo: “);
estrutura
scanf (“%c”, &a.sexo);
}
Diversas Variáveis
Mas se fosse necessário criar 10 alunos, como
ficaria?
#include <stdio.h>
struct aluno {
int matricula;
int idade; Criando dez variáveis do
char sexo; tipo aluno
};
int main(){
struct aluno a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
}

Esse é o método mais eficaz? Certamente não. Neste caso é


melhor usarmos vetores (Arrays) com o tipo aluno.
Diversas Variáveis (Array)
#include <stdio.h>
struct aluno {
int matricula;
int idade; Criando um vetor com 10 posições
char sexo;
};
int main(){ Inserindo os dados:
struct aluno a[10];

for (int i = 0; i < 10; i++){


printf(“Digite a matricula, idade e sexo: “);
scanf(“%d%d%c”, a[i].matricula, a[i].idade, a[i].sexo);
}
}
Exercício
1. Faça um programa que receba a nota final e o total
de faltas de 10 de alunos. Imprima:

a) A quantidade de alunos que obtiveram nota final


maior ou igual a 90
b) A quantidade de alunos que foram reprovados por
nota (nota menor que 70) ou por falta (quantidade de
faltas maior ou igual a 20).
c) A maior e a menor nota
d) A média de notas da turma
www.faculdadepitagoras.com.br