Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia Mecânica
Algoritmos e Lógica de Programação - 2021.1
UNIDADE 02
- A atividade é individual;
- A solução deve ser desenvolvida em linguagem C. Atenção às boas práticas
como: indentação, identificadores bem definidos, etc;
- Com esta avaliação você apenas poderá no MÁXIMO cem (100) pontos.
- Entrega:
- Google DOCs com o código;
- Vídeo (máximo 15min) com explicação e execução do código;
- Entregas parciais serão aceitas e pontuadas de acordo com rúbrica;
- Entregas em atraso: 20% de desconto na nota obtida
Assim, para calcular a média(1), a variância(2) e o desvio padrão(3) para população temos
as seguintes fórmulas:
O programa deve:
9. (10 pontos) A todo instante não aceitar opções diferentes das exibidas no menu,
apresentando mensagem de erro e possibilitando a escolha de uma nova opção.
//Thauã Marmo Bronzeado Lima 202111140028
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
float variancia(int n, float* vetor, float media);
float media(int n, float* vetor);
void exibir_erro(int codigo);
float desvio_padrao(float variancia2);
float variancia1(int n, float* vetor, float media);
int main(void) {
int opçao, tamanho, dados = 0, tipo_variancia = 0, posiçao_valor;
int i;
char resposta [0], opçao_saida[0], opçao_dados[0];
float *vetor, valor;
menu:
printf("1 - Cadastrar conjunto de dados\n");
printf("2 - Visualizar dados\n");
printf("3 - Editar dados\n");
printf("4 - Calcular variância e desvio padrão\n");
printf("5 - Excluir dados\n");
printf("(QUALQUER outra tecla para Finalizar)\n");
printf("Opção Escolhida: ");
scanf("%d", &opçao);
switch (opçao){
case 1 :
if(dados == 0){
do{
printf("Os dados são referentes a uma amostra ou população?(a
ou p)\n");
scanf("%s", resposta);
if(strcmp (resposta,"a") == 0){
tipo_variancia = 1;//amostra
}
else if(strcmp (resposta,"p") == 0){
tipo_variancia = 2;//populaçao
}
else{
exibir_erro(1);
}
}
while((tipo_variancia != 1)&&(tipo_variancia != 2));
do{
printf("Qual o tamanho do seu conjunto de dados?\n");
scanf("%d", &tamanho);
if(tamanho <= 0){
exibir_erro(5);
}
}
while(tamanho <= 0);
vetor = (float*) malloc(tamanho*sizeof(float));
if(vetor == NULL){
exibir_erro(4);
}
for(i = 0 ; i < tamanho ; i++){
printf("Digite o valor do elemento da posição [%d] : ", i);
scanf("%f", &vetor[i]);
}
dados = 1;
}
else{
exibir_erro(3);
}
break;
case 2 :
if(dados == 1){
for(i = 0 ; i < tamanho ; i++){
printf("Posição: [%d] - Valor: [%.1f]\n", i,
vetor[i]);
}
}
else{
exibir_erro(2);
}
break;
case 3 :
if(dados == 1){
for(i = 0 ; i < tamanho ; i++){
printf("Posição: [%d] - Valor: [%.1f]\n", i,
vetor[i]);
}
do{
printf("Informe a posição em que deseja trocar o valor:\n");
scanf("%d", &posiçao_valor);
if((posiçao_valor < 0)||(posiçao_valor > tamanho - 1)){
exibir_erro(5);
}
}
while((posiçao_valor < 0)||(posiçao_valor > tamanho - 1));