Buscar

prova 05

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 36 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 36 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 9, do total de 36 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

Prévia do material em texto

1.Fazer uma função que a soma n primeiros termos da série abaixo:
2 2 4 6 10 16 26 . . .
#include<iostream>
using namespace std;
int fibo(int n)
{
int s,nt,a,b,c;
if(n==1)
s=2;
else if(n==2)
s=4;
else {
s=4 a=2;b=2;
for(nt=3;nt<=n;nt++)
{
c=a+b;
s=s+c;
a=b;
b=c;
}
}
return s;
}
2. Fazer uma função que calcule os dois maiores elementos divisíveis por 5 distintos de posição ímpar do vetor A(n<=100);
void vetor( int a[100],int n, int& m1, int& m2)
{
int i;
m1=0;m2=0;
for(i=0;i<n;i++)
if(i%2!=0 && a[i]%5==0)
if(a[i]>m1)
{
m2=m1;
m1=a[i];
}
eles if(a[i]>m2 && a[i]!=m1)
m2=a[i];
return;
}
3. Fazer uma função que calcule a porcentagem de elementos pares da penúltima linha da matriz e a soma dos elementos da segunda linha e os elementos da última coluna da matriz Bm*n(m<=20,n<=25);
void matriz(int b[20][25], int m,int n, float *porc, int *so)
{
int i,j,ne;
ne=0; *so=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
if(b[i][j]%2==0&&i==m-2)
ne++;
if(i==1 || j==n-1)
*so=*so+b[i][j];
}
*porc=ne*100/n;
}
4. Fazer um programa que:
. Ler um número de termos/chamar a primeira função por valor/mostrar o valor;
. Ler o número de elementos/gerar o vetor A/chamar a segunda função por referência/mostrar os vaores;
. Ler a ordem da matriz/gerar a matriz/chamar a terceira função por ponteiro/mostrar os valores.
 
int main()
{
int n,so,a[100],b[20][25],soma,ma1,ma2,i,j,m;
float porc2;
cout<<“\n digite o numero termos”;
cin>>n;
so=fibo(n);
cout<<“\n soma= “<<so;
cout<<“\n digite o numero de elementos”;
cin>>n;
for(i=0;i<n;i++)
{
cout<<“\n digite um numero inteiro”;
cin>>*(a+i); // cin>>a[i];
}
vetor(a,n,ma1,ma2);
cout<<“\n ma1= ”<<ma1;
cout<<“\n ma2= ”<<ma2);
cout<<“\n digite a ordem da matriz”;
cin>>m>>n;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cout<<“\n digite um numero inteiro”;
cin>>b[i][j];
}
matriz(b,m,n,&porc2,&soma);
cout<<“\n porc2= ”<<porc2;
cout<<“\n soma= ”<< soma;
}
Exe2:
1. Fazer uma função para calcular o valor do número (pi), com precisão de 0.0001, usando a série:
 
PI = 4 - 4/3 + 4/5 - 4/7 + 4/9 - . . .
Para obter a precisão desejada, adicionar apenas os termos cujo valor absoluto seja maior ou igual a 0.0001.
#include<iostream>
using namespace std;
float calcula()
{
int s,d,sinal;
s=0;d=1;sinal=1;
while(4/d>=0.0001)
{
s=s+(float)4*sinal/d;
d=d+2;
sinal=(-1)*sinal;
}
return s;
}
2. Fazer uma função de n(n<=60) notas que:
a) calcule a freqüência absoluta e a freqüência relativa de cada nota;
Obs: Os valores das notas inteiras variam (de 0 a 10)
 
Obs.: 1 - freqüência absoluta de uma nota e o número de vezes que ela aparece no conjunto de dados;
2 - freqüência relativa é a freqüência absoluta dividida pelo numero total de dados.
void vetor(int *nota,int n,int *fa, float *fr)
{
int i,aux;
for(i=0;i<11;i++)
fa[i]=0;
for(i=0;i<n;i++)
{
aux=nota[i];
fa[aux]=fa[aux]+1
}
for(i=0;i<11;i++)
fr[i]=fa[i]*100/n;
return;
}
3. Fazer uma função que calcule uma matriz modificada D(m,n+1), sendo que os elementos de (n+1)-és ima coluna são formados com o produto dos elementos da mesma linha a partir da matriz Cm*n(m<=20,n<=10).
 
Exemplo:
C
 
	2
	3
	4
	5
 
D
	2
	3
	6
	4
	5
	20
 
void matriz(float c[ ][10],float d[][11], int m,int n)
{
int i,j;
for(i=0;i<m;i++)
{
d[i][n]=1;
for(j=0;j<n;j++)
{
d[i][j]=c[i][j];
d[i][n]=d[i][n]*d[i][j];
}
}
return;
}
4. Fazer um programa que:
. Chamar a primeira função por valor/mostrar o valor;
. Ler o número de elementos/gerar o vetor/chamar a segunda função por referência/mostrar os valores;
. Ler a ordem/gerar a matriz/chamar a terceira função por ponteiros/mostrar os valores.
 
 
int main()
{
float so,fr[11],c[20][10],d[20][11];
int nota[60],fa[11],n,i,j;
so=calcula();
cout<<“\n pi= ”<<so;
cout<<“\n Digite o numero de notas”;
cin>>n;
for(i=0;i<n;i++)
{
cout<<“\n digite a nota variando de 0 a 10”;
cin>>*(nota+i);
}
vetor(nota,n,fa,fr);
for(i=0;i<11;i++)
cout<<“ “<<fa[i];
for(i=0;i<11;i++)
cout<<“ “<<fr[i];
cout<<“\n digite a ordem “;
cin>>m>>n;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cout<<“\n Digite um valor”;
cin>>c[i][j];
}
matriz(c,d,m,n):
for(i=0;i<m;i++)
for(j=0;j<=n;j++)
cout<<“\n d= “<<d[i][j];
}
1.Fazer uma função que escreva a soma dos n primeiros termos da série abaixo:
S= 3!/2 - 5!/5 + 7!/14 -9!/41 -. .
i=i+2
nu=nu*(i-1)*i
d=3*d-1
sinal=(-1)*sinal
s=s+nu*sinal/d
#include<iostream>
using namespace std;
float serie(int n)
{
int nu,nt,i,d,sinal;
float s;
s=0;i=3; nu=6; d=2; sinal=1;
for(nt=1;nt<=n;nt++)
{
s=s+nu*sinal/d;
i=i+2;
nu=nu*(i-1)*i;
d=3*d-1;
sinal=(-1)*sinal;
}
return s;
}
2ª. Fazer uma função que leia a idade, altura e o sexo. O último dado que não entrará tem idade igual a -1. Calcule:
· A porcentagem de mulheres com altura inferior a 1.67 e idade igual a 26 anos;
· Altura do homem de menor idade.
void calcula( float& porc, float& aux)
{
int id,nm,tm,mei
float alt;
char sexo;
tm=0;nm=0;mei=120;
cout<<“\n digite idade”;
cin>>id;
while(id!= -1)
{
cout<<“\n digite altura e sexo”;
cin>>alt>>sexo;
if(sexo==’f’)
{
tm++;
if(alt<1.67 && id==26)
nm++;
}
if(sexo==' m '&&id<mei)
{
mei=id;
aux=alt;
}
cout<<“\n digite idade e id=-1 exit”;
cin>>id;
}
porc=nm*100/tm;
return;
}
3ª. Fazer uma função que calcule um segundo vetor pegando os elementos divisíveis por 3 do vetor A(n<=100) lido;
void vetor(int *a,int n, int *b, int& k)
{
int i;
k=0;
for(i=0;i<n;i++)
if(a[i]%3==0)
{
b[k]=a[i];
k++;
}
return;
}
4ª. Fazer uma função que calcule a média dos elementos pares da diagonal secundária da matriz Cm*m(m<=20) e o menor elemento divisível por 5 acima da diagonal secundária.
void matriz(int c[][20],int m,float *med,int *me5)
{
int i,j,so,ne;
so=0;ne=0;*me5=100;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(i+j==m-1 && c[i][j]%2==0)
{
ne++;
so=so+c[i][j];
}
if(c[i][j]<*me5 && c[i][j] % 5 ==0 && i+j<m-1)
*me5 = c[i][j];
}
*med=so/ne;
return;
}
5.Fazer um programa que:
.Ler o número de termos/chamar a primeira função por valor/mostrar o valor;
.Chamar a segunda função por referência/mostrar os valores;
.Ler o número de elementos/gerar o vetor/chamar a terceira função por referência/mostrar o vetor;
.Ler a ordem da matriz/gerar a matriz/chamar a quarta função por ponteiros/mostrar os valores.
a
	a00
	a01
	a02
	a03
	a10
	a11
	a12
	a13
	a20
	a21
	a22
	a23
	a30
	a31
	a32
	a33
dp i=j
acdp i<j
abdp i>j
ds i+j=m-1
abds i+j>m-1
acds i+j<m-1
int main()
{
float s,porcf,auxh,media
int a[100],b[100],c[20][20],n,m,med5,i,j,k1;
cout<<“\n digite o numero de termos”;
cin>>n;
s=serie(n);
cout<<“\n soma= ”<<s;
calcula(porcf,auxh);
cout<<“\n porcf= <<”<<porcf;
cout<<“\n auxh= ”<<auxh;
cout<<“\n digite o numero de elementos”;
cin>>n;
for(i=0;i<n;i++)
{
cout<<“\n digite um numero inteiro”;
cin>>*(a+i)); //cin>>a[i];
}
vetor(a,n,b,k1);
for(i=0;i<k1;i++)
cout<<“ “<<b[i];
cout<<“\n digite a ordem”;
cin>>m;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
cout<<“\n digite um valor inteiro”;
cin>>c[i][j];
}
matriz(c,m,&media,&med5);
cout<<“\n media= ”<<media;
cout<<“\n med5= ”<<med5;
}
1. Fazer uma função que escreva a soma dos n primeiros termos da série abaixo:
S= 24! /2 – 26!/4 + 28!/10 – 210!/28 + . . .
i=i+2
e=e*(i-1)*i
d=3*d-2
sinal=(-1)*sinal
s=s+pow(2,e)*sinal/d
#include <iostream>
#include<math.h>
using namespace std;
float serie(int n)
{
int nt,e,i,sinal;
float s;
s=0; i=4; e=24; d= 2; sinal=1;
for(nt=1;nt<=n;nt++)
{
s=s+pow(2,e)*sinal/d;
i=i+2;
e=e*(i-1)*i;
d=3*d-2;
sinal=(-1)*sinal;
}
return s;
}
2. Fazer uma função que calcule um vetor pegando a soma dos elementos de cada linha da matriz Am*n(m<=20,n<=25);
void vetor(float a[][25],int m,int n, float *vet)
{
int i,j;
for(i=0;i<m;i++)
{
vet[i]=0;
for(j=0;j<n;j++)
vet[i]=vet[i] + a[i][j];
}
return;
}
3. Fazer uma função que calcule o produto dos elementos de valores entre 10 e 20 da diagonal secundária e o menor elemento ímpar acima da diagonal secundária da matriz Cm*m(m<=20);
void matriz(int c[][20],int m, int *prod , int *me)
{
int i,j;
*prod=1; *me=101;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(i+j==m-1 && c[i][j]>10 && c[i][j]<20)
*prod=*prod*c[i]j];
if(c[i][j]<*me&&c[i][j]%2!=0&&i+j<m-1)
*me=c[i][j];
}
return;
}
4. Fazer um programa que:
· Ler o númerode termos/chamar a primeira função por valor/mostrar o valor;
· Ler a ordem da matriz Am*n/Gerar a matriz/Chamar a segunda função por referência/Mostrar o vetor;
· Ler a ordem da matriz Cm*n/Gerar a matriz/Chamar a terceira função por ponteiro/mostrar os valores.
int main()
{
int n,c[20][20],i,j,m,produto,mei;
float s,a[20][25],vet[20];
cout<<”\n digite o numero de termos”;
cin>>n;
s=serie(n);
cout<<”\n soma= “<<s;
cout<<”\n Digite a ordem”;
cin>>m>>n;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
{
cout<<”\n Digite um valor”;
cin>>a[i][j];
}
vetor(a,m.n,vet);
for(i=0;i<m;i++)
cout<<vet[i]<<” “;
cout<<”\n digite a ordem”;
cin>>m;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
cout<<”\n Digite um num. Inteiro”;
cin>>c[i][j];
}
matriz(c,m,&produto,&mei);
cout<<”\n produto= “<<produto;
cout<<”\n mei = “<<mei;
}
1.13 - Funções recursivas
 
Uma função é dita recursiva se for definida em termos dela mesma. Isto é, uma função é recursiva quando dentro dela está presente uma instrução de chamada a ela própria.
 
Ex: 1 - Escrever uma função que calcula o fatorial de um número.
 
 
#include <iostream>
using namespace std;
int fatorial (int n)
{
int fat;
if (n<=1)
fat=1;
else fat= n*fatorial(n-1); 5*4*3*2*1=120
return fat;
}
int main()
{
int n,fat;
cout<<"\nDigite um numero inteiro";
cin>>n;
fat=fatorrial(n);
cout<<“\n fat= ”<<fat;
cout<<"\nAperte enter";
}
 
Quando o programa for executado a função fatorial será acessada repetidamente, uma vem em main e (n-1) vezes dentro dela mesma apesar do usuário não se preocupar com isso. Quando um programa recursivo é executado, as chamadas das funções recursivas não são executadas imediatamente. Elas são colocadas em uma pilha (stack) até que a condição de término da recursão seja encontrada. As chamadas da função são executadas, então, em ordem inversa, à medida que forem retiradas (popped off) da pilha. Quando uma expressão fatorial for avaliada recursivamente, as chamadas de função serão executadas da seguinte ordem:
 
n! = n*(n-1)!
(n-1)! = (n-1)*(n-2)!
(n-2)! = (n-2)*(n-3)!
 
2! = 2*1!
 
Os valores serão então devolvidos na seguinte ordem:
 
1! = 1
2! = 2*1! = 2*1 = 2
3! = 3*2! = 3*2 = 6
4! = 4*3! = 4*6 = 24
Ex2. 1. Fazer uma função que calcula soma de n;
#include <iostream>
using namespace std;
int soma(int n)
{
int s;
if(n==1)
s=0;
else s=n + soma(n-1);
return s;
}
2.Fazer um progrma que:
. Ler N/ chama a função recursiva/mostrar o valor.
int main()
{
int n,s;
cout<<“\n digite n”;
cin>>n;
s=soma(n);
cout<<“\n so= ”<<s;
}
 
Ex.2 - Imprime uma frase de ordem inversa a que foi lida.
 
#include <iostream>
#include <conio.h>
using namespace std;
void invert( )
{
char ch;
if ((ch=getche( ) )!= 'x')
invert( );
cout<<ch<<"\a";
}
 
int main()
{
cout<<"\n";
invert( );
cout<<"\n Aperte qualquer tecla";
}
 
Exemplos:
1ª. Escreva uma função para gerar uma tabela com os valores do seno de um ângulo em radianos, utilizando a série de Mca-Laurin truncada, apresentada a seguir:
 
Sen =  - /6 + /120 - /5040
Obs.: Os valores dos ângulos  devem variar de 0,0 a 6,3 inclusive 0 e 6,3 de 0,1 em 0,1.
#include<iostream>
#include<math.h>
using namespace std;
void mcalaurin()
{
float teta,seno;
teta=0;
while(teta<=6.3)
{
seno=teta -pow(teta,3)/6 +pow(teta,5)/120-pow(teta,7)/5040;
cout<<”\n teta= “<<teta<<” seno= “<<seno;
teta=teta+0.1;
}
return;
}
 
2ª. Fazer uma função que calcule os dois menores elementos divisíveis por 5 distinos de posição ímpar;
 
void vetor(int *a,int n,int& m1,int& m2)
{
int i;
m1=100;m2=100;
for(i=0;i<n;i++)
if(i%2!=0 && a[i]%5==0)
if(a[i]<m1)
{
m2=m1;
m1=a[i];
}
else if(a[i]<m2&&a[i]!=m1)
m2=a[i];
return;
}
3ª. Fazer uma função que calcule o maior elemento par da diagonal secundária e o produto dos elementos ímpares abaixo da diagonal principal da matriz bm*m(m<=20);
 
void matriz(int b[][30],int m, int *map, int *prod)
{
int i,j;
*map=0; *prod=1;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(b[i][j]>*map && b[i][j]%2==0 && i+j==m-1)
*map=b[i][j];
if(b[i][j]%2!=0 &&i>j)
*prod=*prod*b[i][j];
}
return;
}
4. Fazer um programa que:
· Chamar a primeira função por valor;
· Ler o número de elementos/gerar o vetor/chamar a segunda função por referência/mostrar os valores;
· Ler a ordem/gerar a matriz/chamar a terceira função por ponteiros/mostrar os valores.
int main()
{
int i,j,n,m,a[100],b[30][30],maiorp,produto,ma1ma2;
mcalaurin();
cout<<”\n digite o numero de elementos”;
cin>>n;
for(i=0;i<n;i++)
{
cout<<”\n Digite um num. Inteiro”;
cin>>*(a+i);
}
vetor(a,n,ma1,ma2);
cout<<”\n ma1= “<<ma1;
cout<<”\n ma2= “<<ma2;
cout<<”\n Digite a ordem”;
cin>>m;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
cout<<”\n Digite um num inteiro”;
cin>>b[i][j];
}
matriz(b,m,&maiorp,&produto);
cout<<”\n maiorp = “<<maiorp;
cout<<”\n produto= “<<produto;
}
 
 
1ª. Fazer uma função que calcule a soma dos n primeiros termos da série:
 
3 3 4 5 7 10 15 . . .
#include<iostream>
using namespace std;
int fibo(int n)
{
int nt,a,b,c,so;
if(n==1)
so=3;
else if(n==2)
so=6;
else {
so=6;a=3;b=3;
for(nt=3;nt<=n;nt++)
{
c=a+b-2;
so=so+c;
a=b;
b=c;
}
return so ;
}
 
 
2ª.Fazer uma função que calcule que os três maiores elementos divisíveis por 5 distintos do vetor A(n<=100);
void vetor(int *a,int n, int& m1,int& m2,int& m3)
{
int i;
m1=0;m2=0;m3=0;
for(i=0;i<n;i++)
if(a[i]%5==0)
if(a[i]>m1)
{
m3=m2;
m2=m1;
m1=a[i];
}
else if(a[i]>m2&&a[i]!=m1)
{
m3=m2;
m2=a[i];
}
else if(a[i] >m3&&a[i]!=m1 &&a[i]!=m2)
m3=a[i];
return;
}
 
3ª. Fazer uma função que calcule o maior elemento par abaixo da diagonal secundária e a média de elementos ímpares da diagonal secundária da matriz bm*m(m<=20);
a
	a00
	a01
	a02
	a03
	a10
	a11
	a12
	a13
	a20
	a21
	a22
	a23
	a30
	a31
	a32
	a33
dp i=j
acdp i<j
abdp i>j
ds i+j=m-1
abds i+j>m-1
acds i+j<m-1
void matriz (int b[][20],int m, int *maip,float *med)
{
int i,j,so,ne;
so=0;ne=0;*maip=0;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
if(b[i][j]>*maip && b[i][j]%2==0 && i+j>m-1)
*maip=b[i][j];
if(i+j==m-1 && b[i][j]%2!=0)
{
so=so=b[i][j];
ne++;
}
}
*med=so/ne;
}
4º. Fazer um programa que:
 
· Ler o número de termos/chamar a primeira função por valor/mostrar o valor;
· Ler o número de elementos/gerar o vetor/chamar a segunda função por referência/mostrar os valores;
· Ler a ordem/gerar a matriz/chamar a terceira função por ponteiro/mostrar os valores.
 
int main()
{
int i,j,m,n,so,a[100],b[20][20],ma1,ma2,ma3,maiorp;
float media;
cout<<”\n Digite o num de termos”;
cin>>n
so=fibo(n);
cout<<”\n soma= “<<so;
cout<<”\n Digite o num de elemenos”;
cin>>n;
for(i=0;i<n;i++)
{
cout<<”\n digite um num inteiro”;
cin>>*(a+i);
}
vetor(a,n,ma1,ma2,ma3);
cout<<”\n ma1= “<<ma1;
cout<<”\n ma2= “<<ma2;
cout<<”\n ma2= “<<ma2;
cout<<”\n Digite a ordem”;
cin>>m;
for(i=0;i<m;i++)
for(j=0;j<m;j++)
{
cout<<”\n Digite um num inteiro”;
cin>>b[i][j];
}
matriz(b,m,&maiorp,&media);
cout<<”\n maiorp= “<<maiorp;
cout<<”\n media= “<<media);
}
 
 
Simulado
1ª. Fazer uma função que calcule a soma dos n primeiros termos da série:
S=4!/2 – 6!/4 + 8!/10 – 10!/28 + . . .
i=i+2
nu=nu*(i-1)*i
d=3*d -2
sinal=(-1)*sinal
s=s+nu*sinal/d
#include<iostream>
using namespace std;
float serie(int n)
{
int nt,nu,d,i,sinal;
float s;
s=0;i=4;nu=24;d=2;sinal=1;
for(nt=1;nt<=n;nt++)
{
s=s+nu*sinal/d;
i=i+2;
nu=nu*(i-1)*i;
d=3*d -2;
sinal=(-1)*sinal;
}
return s;
}
2ª. Fazer uma função que calcule um vetor a partir do produto dos elementos de cada linha da matriz am*n(m<=20,n<=25);
void vetor(float a[20][25], int m,int n, float *vet)
{
int i,j;
for(i=0;i<m;i++)
{
vet[i]=1;
for(j=0;j<n;j++)
vet[i]=vet[i]*a[i][j];
}
return;
}
3ª. Fazer uma função que calcule a porcentagem de elementos de valores superiores a média da matriz bm*n(m<=20,n<=25);
void matriz( float b[20][25],int m.int n, float *porc)
{
int i,j,nesm;
float med,so;
so=0;nesm=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
so=so+ b[i][j];
med=so/(m*n);
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(b[i][j]>med)
nesm++;
*porc=nesm*100/(m*n);
return;
}
4º. Fazer um programa que:
· Ler o número de termos da série/chamar a primeira função por valor/mostrar o valor;
· Ler o número de elementos/gerar o vetor/chamar a segundafunção por referência/mostrar o vetor;
· Ler a ordem da matriz/gerar a matriz/chamar a terceira função por ponteiro/mostrar o valor;
int main()
{
int i,j,n,m;
float a[20][25],b[20][25],vet[20],porcent,soma;
cout<<”\n Digite o num de termos”;
cin>>n;
soma=serie(n);
cout<<”\n soma= “<<so;
cout<<”\n Digite a ordem”;
cin>>m>>n;
for(i=0;i<m;i++)
for(j=0;i<n;j++)
{
cout<<”\n Digite um valor”;
cin>>a[i][j];
}
vetor(a,m,n,vet);
for(i=0;i<m;i++)
cout<<” “<<vet[i];
cout<<”\n Digite a ordem”;
cin>>m>>n;
for(i=0;i<m;i++)
for(j=0;i<n;j++)
{
cout<<”\n Digite um valor”;
cin>>b[i][j];
}
matriz(b,m,n,&porcent);
cout<<”\n porcent= “<<porcent;
}

Outros materiais