Buscar

Prova 2 - ICC

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 8 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 8 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

Prévia do material em texto

Prova 2 – Introdução a Ciência da Computação (Engª Elétrica) 
(2,5) 1) Você pediu que o estagiário, do setor de informática da empresa onde você 
trabalha, desenvolvesse um procedimento em C++ para multiplicar duas matrizes 
genéricas. Sinalize os erros de sintaxe e/ou lógica no código desenvolvido pelo 
estagiário e fornecido a seguir: 
template <class T> 
void mult_AbyB(vector<vector<T>> a, vector<vector<T>> b, 
vector<vector<T>> c) 
{ 
 c.resize(0) 
 for (unsigned int i=0, i<a.size(), i++) 
 { 
 c.resize(i+1) 
 for (unsigned int j=0, j<a[i].size(), j++) 
 { 
 double soma = 0.0 
 for (unsigned int k=0, k<a[i].size(), k++) 
 { 
 soma = soma + a[i][j]*b[k][j] 
 } 
 c[i].push_back(soma) 
 } 
 } 
} 
 
 
 
 
 
 
 
 
 
 
Reposta 1 
template <class T> 
void mult_AbyB(vector<vector<T>> a, vector<vector<T>> b , 
vector<vector<T>> & c) 
{ 
 c.resize(0); 
 for(unsigned int i=0; i<a.size(); i++) 
{ 
 c.resize(i+1); 
 for(unsigned int j=0; j<a[i].size(); j++) 
 { 
 double soma = 0.0; 
 for(unsigned int k=0;k<a[i].size();k++) 
{ 
 soma += a[i][k]*b[k][j]; 
 } 
 c[i].push_back(soma); 
 } 
 } 
} 
 
(2,5) 2) O mesmo estagiário, citado no enunciado da primeira questão desta prova, foi 
solicitado para escrever uma função em C++ que retornasse o valor do polinômio de 
grau n calculado para um dado valor real x, isto é, o valor de 
 𝑝(𝑥) = 𝑎0 + 𝑎1𝑥 + 𝑎2𝑥
2 + ⋯ + 𝑎𝑛𝑥
𝑛 
Considerando que os coeficientes 𝑎𝑖 = 0, 1, 2. . . 𝑛 do polinômio estejam armazenados 
em um vetor identificado por coef, identifique os possíveis erros de sintaxe e/ou de 
lógica no código apresentado pelo estagiário e fornecido a seguir: 
double p(double x, vector<double> & coef) 
{ 
 double produto = 0.0; 
 for (unsigned int i=0; i <= coef.size(); i++) 
{ 
 soma = soma + produtor * coef[i] 
 produto = produto * x 
 } 
 return (produto) 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Resposta 2 
double p(double x, vector<double> coef) 
{ 
 double produto = 1; 
 double soma = 0.0; 
 for(unsigned int i=0; i<coef.size(); i++) 
{ 
 soma += produto*coef[i]; 
 produto *= x; 
 } 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
(2,5) 3) Indique as modificações necessárias no procedimento imprimeVetor, fornecido 
abaixo, para exibir os elementos do vetor de entrada em uma mesma linha, separados 
por vírgula e um ponto final após o último elemento. 
template <class T> 
void imprimeVetor (vector <T> & v, ostream & saída) 
{ 
for (int i = 0; i < v.size(); i = i + 1) 
{ 
 saida << v[i] << endl; 
} 
} 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Resposta 3 
template <class T> 
void imprimeVetor(vector<T> & v, ostream & saida) 
{ 
 for(int i=0;i<v.size();i++) 
{ 
 saida<<v[i]; 
 if(i == v.size()-1) 
{ 
 saida<<"."; 
 } 
else 
{ 
 saida<<","; 
 } 
 } 
} 
(2,5) 4) O pseudocódigo fornecido a seguir descreve o algoritmo para calcular o máximo 
divisor comum de um par de números inteiros não-negativos. Escreva a 
implementação C++ deste pseudocódigo. 
FUNÇÃO mdc (i, j inteiros não-negativos) 
 DECLARE g inteiro não-negativo 
 g ← j 
 ENQUANTO (g não divide simultaneamente i e j) FAÇA 
 INÍCIO 
 g ← g – 1 
 FIM 
 RETORNE g 
FIM 
 
Resposta 4 
int mdc(unsigned int i,unsigned int j) 
{ 
 unsigned int g; 
 g=j; 
 while(i%g!=0 || j%g!=0) 
{ 
 g--; 
 } 
 return g; 
}

Continue navegando