Professional Documents
Culture Documents
Aula tema: Estruturas de controle: Seleo. Estruturas de controle: Iterao. Exerccios. Vetores, matrizes e cadeia de caracteres. Esta atividade importante para que voc desenvolva sua habilidade em trabalhar com vetores como estrutura de dados, implementando-os corretamente.
1. Passo 1
Por precauo o gerente do projeto pediu que a equipe realizasse a implementao de uma instncia menor do problema, de forma a testar e validar a soluo para ento aplic-la ao problema completo. Por isso a equipe dever usar para testes o Real e o Euro. As cotaes dirias, referentes a um ms, devero ser armazenadas num vetor. Considerem o perodo de um ms (30 dias) para calcular a mdia, o menor e maior valor da cotao da moeda. O cdigo deve conter comentrios que detalhem as variveis usadas, os testes e loops realizados pelo algoritmo.
Resoluo Passo 1
#include<stdio.h> #include<stdlib.h>
int main() { float moeda,vetmoeda[30],media,valor,maior,menor; /*declarao das variaveis*/ maior=0; //variavel que recebera o maior valor menor=999999;
1
//variavel que recebera o menor valor media=0; //variavel que recebera a media valor=0; //variavel que recebe o calculo realizado eque sera enviado a matriz int x,y,i; printf("1 - Real \n2 - Euro \n\n"); printf("Digite a moeda que sera convertida:"); scanf("%d",&x); printf("\nDigite para qual moeda sera convertida:"); scanf("%d",&y); if (x==y) { printf("\n\nVc Selecionou a mesma Moeda!!"); } if (x==1&&y==2)//Real Para Euro { for(i=0;i<30;i++) /*lao que ira repetir os dias para armazenameno na matriz*/ { printf("digite o valor de RS:\n"); scanf("%f",&moeda); valor=moeda*0.433957204; printf("O valor em Euro e de E:%.2f",valor); vetmoeda[i]=valor; media = media + valor; if(valor<menor) {
menor=valor; } if(valor>maior) { maior=valor; } } for(i=0;i<30;i++) //lao que ira imprimir os vetores { printf("\nDia %d Valor E%.2f",i+1,vetmoeda[i]); } printf("\nA media da cotacao e E %.2f",media/30); printf("\nA menor cotacao e E%.2f",menor); printf("\nA maior cotacao e E%.2f",maior); }
if(x==2&&y==1)//Euro para real { for(i=0;i<30;i++) /*lao que ira repetir os dias para armazenameno na matriz*/ { printf("\ndigite o valor de E:"); scanf("%f",&moeda); valor=moeda*2.287; printf("\nO valor em Euro e de E:%.2f",valor);
vetmoeda[i]=valor; media = media + valor; if(valor<menor) { menor=valor; } if(valor>maior) { maior=valor; } } for(i=0;i<30;i++) //lao que ira imprimir os vetores { printf("\nDia %d Valor RS%.2f",i+1,vetmoeda[i]); } printf("\nA media da cotacao e RS %.2f",media/30); printf("\nA menor cotacao e RS%.2f",menor); printf("\nA maior cotacao e RS%.2f",maior); } getch(); }
1. Passo 2
Para mostrar que o algoritmo desenvolvido, no Passo 1 dessa Etapa, funciona corretamente, a equipe dever apresentar testes numricos (pelo menos trs testes oriundos de base de dados distintas) que validem a soluo proposta.
4
Resoluo Passo 2
Execuo
Etapa 2
Aula tema: Estruturas de controle: Iterao. Exerccios. Vetores, matrizes e cadeia de caracteres. Esta atividade importante para que voc exercite o uso de matrizes, implementandoas em C e verifique o uso de estrutura de dados distintas.
2. Passo 1
O algoritmo implementado na Etapa 1 do segundo Desafio dever ser ampliado de forma a apresentar a mdia, o menor e maior valor das cotaes de todas as moedas que o aplicativo suportar. Definam uma matriz como estrutura para guardar as informaes das cotaes dirias de cada moeda, sendo que as linhas devero corresponder moeda e as colunas aos dias do ms. Para identificao de cada moeda, usem um vetor, sendo que a posio do vetor em que uma moeda est alocada corresponda linha da matriz que contm suas cotaes dirias.
Resoluo Passo 1
#include<stdio.h>
#include<stdlib.h>
int main()
float moeda[4],valor,matriz[4][30],total,media,maior,menor; 7
int x,y,i,j,n;
media=0;
maior=0;
menor=99999999999999999;
moeda[0]=1.00;
//real
moeda[1]=1.5790;
//dolar americano
moeda[2]=1.6277;
//dolar canadense
moeda[3]=2.2740;
//Euro
for(i=0;i<4;i++)
{ do
printf("1 - Real \n2 - Dolar Americano \n3 - Dolar Canadense \n4 - Euro \n\n");
scanf("%d",&x);
x = x-1;
scanf("%d",&y);
y = y-1;
for(i=0;i<30;i++)
printf("digite o valor:\n");
scanf("%f",&valor);
total=(valor*moeda[x])/moeda[y];
matriz[y][i]=total;
if(total<menor)
menor=total;
if(total>maior) 9
maior=total;
for(i=0;i<30;i++)
printf("\nvalor %.2f",matriz[y][i]);
scanf("%d",&n);
}while(n!=2);
getch();
10
2.Passo 2
Outra solicitao feita pelo diretor da agncia que o aplicativo mostre a mdia, maior e menor valor da cotao de uma moeda dentro de perodos prdefinidos. Na Tabela 1 constam os perodos que devero ser adicionados ao algoritmo e as informaes que devero ser apresentadas.
Ms completo
11
importante que o algoritmo permita que o usurio escolha o perodo que quer verificar a mdia, menor e maior cotao da moeda. Mas, alm disso, dever permitir a escolha de todas as estatsticas. A equipe dever apresentar o pseudocdigo do algoritmo que foi alterado para atender o solicitado nesse Passo.
Resoluo Passo 2
#include<stdio.h>
#include<stdlib.h>
int main()
float moeda[4],valor,matriz[4][30],total,media,maior,menor;
int x,y,i,j,n;
media=0;
maior=0;
menor=99999999999999999;
moeda[0]=1.00;
//real
moeda[1]=1.5790;
//dolar americano
12
moeda[2]=1.6277;
//dolar canadense
moeda[3]=2.2740;
//Euro
for(i=0;i<4;i++)
{ do
printf("1 - Real \n2 - Dolar Americano \n3 - Dolar Canadense \n4 - Euro \n\n");
scanf("%d",&x);
x = x-1;
scanf("%d",&y);
y = y-1;
for(i=0;i<30;i++)
13
printf("digite o valor:\n");
scanf("%f",&valor);
total=(valor*moeda[x])/moeda[y];
matriz[y][i]=total;
if(total<menor)
menor=total;
if(total>maior)
maior=total;
for(i=0;i<30;i++)
{ 14
printf("\nvalor %.2f",matriz[y][i]);
scanf("%d",&n);
}while(n!=2);
for(y=0;y<4;y++)
media=0;
maior=0;
menor=99999999999999999;
for(i=0;i<10;i++)
15
total =matriz[y][i];
if(total<menor)
menor=total;
if(total>maior)
maior=total;
media=0; 16
maior=0;
menor=99999999999999999;
for(i=10;i<20;i++)
total =matriz[y][i];
if(total<menor)
menor=total;
if(total>maior)
maior=total;
17
media=0;
maior=0;
menor=99999999999999999;
for(i=20;i<30;i++)
total =matriz[y][i];
if(total<menor)
menor=total;
if(total>maior)
{ 18
maior=total;
n=0;
do
scanf("%d",&y);
scanf("%d",&j);
19
scanf("%d"&x);
media=0;
maior=0;
menor=99999999999999999;
for(i=j;i<x;i++)
total =matriz[y][i];
if(total<menor)
menor=total;
if(total>maior)
maior=total;
} 20
scanf("%d",&n);
}while(n!=2);
getch();
21