Buscar

Lista2_Gabarito ESTRUTURA DE DADOS

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 6 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 6 páginas

Prévia do material em texto

Lista 2 – Gabarito 
 
1) Numa competição de ginástica, 18 ginastas estão participando das provas de trava, 
barras assimétricas e solo. 
 Construa uma matriz de struct que possa armazenar, para cada ginasta, os 
seguintes 
dados: número de inscrição e pontuação em cada prova. Ao final, deverá sair o 
número de inscrição e a pontuação em cada prova, uma em cada zona. 
 
Solução : 
 
#include <iostream> 
 
using namespace std; 
 
#define TAM 18 //define uma constante TAM com o valor 3 
 
struct ginasta 
{ 
 int numero, 
 pontuacao[3]; 
}; 
 
int main() 
{ 
 ginasta v[TAM]; 
 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Ginasta - " << (i+1) << " : " << endl; 
 cout << "Numero de inscricao : "; 
 cin >> v[i].numero; 
 cout << "Pontuacao em cada prova (1- trava | 2 - barras assimetricas | 3- solo) 
: " 
 << endl; 
 for (int j = 0; j < 3; j++) 
 { 
 cout << "Forneca a pontuacao da prova " << (j+1) << " : " ; 
 cin >> v[i].pontuacao[j]; 
 
 } 
 cout << endl; 
 } 
 cout << "Ginastas - inscricao e pontuacoes : " << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Ginasta - " << (i+1) << " : " << endl; 
 cout << "Numero de inscricao : " << v[i].numero 
 << "\tPontuacao na trava : " << v[i].pontuacao[0] 
 << "\tPontuacao nas assimetricas : " << v[i].pontuacao[1] 
 << "\tPontuacao no solo : " << v[i].pontuacao[2] << endl; 
 } 
 
 
 cout << endl; 
 system("pause"); 
} 
 
2) Tente fazer e pergunte em caso de dúvida. 
 
3) Construa um programa que armazene matricula e cr de 8 alunos em uma matriz de 
struct. 
 
Solução : 
 
#include <iostream> 
 
using namespace std; 
 
#define TAM 8 
 
//tipo 
 
struct aluno { 
 int matricula; 
 float cr; 
 }; 
 
 
int main() 
{ 
 aluno v[TAM]; 
 
 cout << "\tEntrada de dados" << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Forneca os dados do aluno no. " << (i+1) << " : " << endl; 
 cout << "Matricula ? "; 
 cin >> v[i].matricula; 
 cout << "CR ? "; 
 cin >> v[i].cr; 
 } 
 
 cout << "\t\nListagem dos alunos: " << endl << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Aluno de matricula = " << v[i].matricula << " - CR = " << v[i].cr << 
endl; 
 } 
 system("pause"); 
} 
 
 
 
4) Altere o exercício três de tal maneira que o trecho de entrada seja uma função. 
 
Solução : 
 
 
 
#include <iostream> 
 
using namespace std; 
 
//definindo constante - TAM (tamanho do vetor) 
#define TAM 8 
 
 
//tipo 
 
struct aluno 
{ 
 int matricula; 
 float cr; 
}; 
 
//Protótipo da função 
void obterDadosAlunos(aluno v[]); 
 
//Prog. principal 
int main() 
{ 
 aluno v[TAM]; 
 
 obterDadosAlunos(v); //chama a função 
 
 cout << "\t\nListagem dos alunos: " << endl << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Aluno de matricula = " << v[i].matricula << " - CR = " << v[i].cr << 
endl; 
 } 
 system("pause"); 
} 
 
//Definição da função 
void obterDadosAlunos(aluno v[]) 
{ 
 cout << "\tEntrada de dados" << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Forneca os dados do aluno no. " << (i+1) << " : " << endl; 
 cout << "Matricula ? "; 
 cin >> v[i].matricula; 
 cout << "CR ? "; 
 cin >> v[i].cr; 
 } 
} 
 
 
 
 
5) Altere o exercício quatro de tal maneira que o trecho de saída seja uma função. 
 
Solução : 
 
#include <iostream> 
 
using namespace std; 
 
//definindo constante - TAM (tamanho do vetor) 
#define TAM 8 
 
//tipo 
 
struct aluno 
{ 
 int matricula; 
 float cr; 
}; 
 
//Protótipos 
void obterDadosAlunos(aluno v[]); 
void imprimirDadosAlunos(aluno v[]); 
 
//Prog. principal 
int main() 
{ 
 aluno v[TAM]; 
 
 obterDadosAlunos(v); 
 
 imprimirDadosAlunos(v); 
 
 system("pause"); 
} 
 
//Definição da função 
void obterDadosAlunos(aluno v[]) 
 { 
 cout << "\tEntrada de dados" << endl; 
 for (int i = 0; i < TAM; i++) 
 { 
 cout << "Forneca os dados do aluno no. " << (i+1) << " : " << endl; 
 cout << "Matricula ? "; 
 cin >> v[i].matricula; 
 cout << "CR ? "; 
 cin >> v[i].cr; 
 } 
} 
 
void imprimirDadosAlunos(aluno v[]) 
{ 
 cout << "\t\nListagem dos alunos: " << endl << endl; 
 for (int i = 0; i < TAM; i++) 
 
 { 
 cout << "Aluno de matricula = " << v[i].matricula << " - CR = " << v[i].cr << 
endl; 
 } 
} 
 
 
6) Construa um programa que armazene nome e cr de 6 alunos em uma matriz de 
struct. 
 
7) Acrescente ao exercício seis, uma função converta todo o nome para letras 
maiúsculas(pode usar strupr) e acrescente espaços até que atinja ao tamanho 
definido por você menos um. 
 
Obs.: Tente fazer o no. 6 e o no.7. Em caso de dúvida, pergunte. A solução 
do no. 8 ajudará bastante. 
 
 
8) Altere o exercício sete, transformando o trecho de entrada e de o trecho de saída 
em funções. 
 
Solução : 
 
 
#include <iostream> 
 
using namespace std; 
 
//Definindo constante MAX 
#define MAX 2 
#define TAM_NOME 20 
 
//Tipo 
struct aluno { 
 char nome[TAM_NOME]; 
 float cr; 
 }; 
//Protótipos 
 
void obterFichasAlunos(aluno v[]); 
void imprimirFichasAlunos(aluno v[]); 
 
//Prog. principal 
int main() 
{ 
 aluno v[MAX]; 
 
 obterFichasAlunos(v); 
 imprimirFichasAlunos(v); 
 
 system("pause"); 
 
} 
 
 
 
//Definições das funções 
 
void obterFichasAlunos(aluno v[]) 
{ 
 
 cout << "Entrada de dados : " << endl; 
 for (int i = 0; i < MAX; i++) 
 { 
 cout << "Aluno " << (i+1) << endl; 
 cout << "Nome ? "; 
 cin.getline(v[i].nome,TAM_NOME); 
 cout << "CR ? "; 
 cin >> v[i].cr; 
 getchar(); // outra forma de limpar o buffer : cin.get(); 
 } 
} 
 
void imprimirFichasAlunos(aluno v[]) 
{ 
 
 cout << "Saida de dados : " << endl; 
 for (int i = 0; i < MAX; i++) 
 { 
 cout << "Aluno " << (i+1) << endl; 
 int comprimento = strlen(v[i].nome); 
 for (int conta = 1; conta <= TAM_NOME - 1 - comprimento; conta++) 
 strcat(v[i].nome," "); 
 cout << "O aluno " << strupr(v[i].nome) 
 << " possui CR = " << v[i].cr << endl; 
 
 } 
}

Outros materiais