Ir ao conteúdo

Posts recomendados

Postado

Tendo um vetor de inteiros, (int gabarito[30]) que contém o resultado de uma prova com 30 questões objetivas, numeradas de 1 a 5, indicando qual é a opção correta para cada uma das questões da prova:

int gabarito[30] = {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4};

1)Escreva uma função que receba o vetor gabarito, e um vetor resposta (de inteiros com dimensão 31), sendo que a primeira informação do vetor é o RA do aluno, e as demais as respostas que foram atribuídas pelo aluno a cada questão da prova:

int prova[31] = {123456,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1};

Esta função deve devolver um número inteiro indicando a quantidade de acertos que há no vetor resposta:

int corrige_prova(int gabarito[], int prova[]);

2)Escreva uma função que recebe um número inteiro e uma string (por referência). O número inteiro é a quantidade de acertos que foi obtida na prova e a string deverá conter “Aprovado” se o número de acertos for maior ou igual a 15 ou “Reprovado” caso contrário.

void verifica_situação(int acertos, char situacao[]);

Utilizando as funções acima escreva um programa em linguagem C que mostre um relatório na tela da seguinte forma, a partir de dados de vetor gabarito e prova:

Gabarito...: {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4}

Respostas..: {2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1}

RA.........: 123456

Acertos....: 06

Resultado.: Reprovado

 

Sei como comparar qual é o menor ou maior, mas não sei fazer essa comparação entre os elementos de dois vetores, pesquisei muito sobre, mas não achei nada a respeito, alguém poderia me dar uma luz?

  • Obrigado 1
Postado

Neste caso como a questão pede uma contagem de acertos a unica maneira de fazer é percorrendo todo o vetor com um laço de repeticao e salvar em uma variavel a quantidade, pense em algo parecido com:

 

int count = 0;
for(int i = 0; i < 30; i++){
  if(prova[i+1] == gabarito[i])
     count++;
}

eu fiz essa adição no indice da prova para descosiderar o RA no começo do vetor.

depois disso para a questão 1 voce retorna count e para a questão 2 voce usa para checar a condição de aprovação

  • Curtir 2
Postado

@Larissa Maia

1 hora atrás, Larissa Maia disse:

Sei como comparar qual é o menor ou maior, mas não sei fazer essa comparação entre os elementos de dois vetores

Se sabe a definição de um vetor, então teria ao menos uma ideia de como trabalhar com ele: um conjunto de espaços de memória contíguos.

E veja, qualquer um desses elementos pode ser referenciado com o nome do vetor seguido pelo número de posição do elemento entre colchetes.

vet[0] - elemento de índice 0 (primeiro elemento)

vet[1] - elemento de índice 1 (segundo elemento)

Como acessar todos os elementos em sequência para fazer a comparação? Um loop, como mostrou o colega @Danilo Namitala .

Lembrando que sua função recebe o vetor gabarito e o vetor resposta.

 

Mostre o que tentou fazer até então.

  • Curtir 1
Postado

@devair1010 Está na questão amigo
 

Citação

 

1)Escreva uma função que receba o vetor gabarito, e um vetor resposta (de inteiros com dimensão 31), sendo que a primeira informação do vetor é o RA do aluno, e as demais as respostas que foram atribuídas pelo aluno a cada questão da prova:

int prova[31] = {123456,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1};

 

 

  • Curtir 1
Postado
8 minutos atrás, Larissa Maia disse:

@Danilo Namitala mas esse count eu chamo na 1 chamando a função "corrige_prova"? Porque não consegui evidenciar o numero de acertos...

O count voce vai cria dentro da sua função, ele que vai guardar o numero de acertos..

int corrige_prova( ... ) {
   int count = 0;
	/// faz a contagem como eu disse
	return count;
}

 

  • Curtir 1
Postado
3 horas atrás, Larissa Maia disse:

mas esse count eu chamo na 1 chamando a função "corrige_prova"? Porque não consegui evidenciar o numero de acertos...

O enunciado pede para a função retornar a quantidade de acertos. Essa quantidade será armazenada na variável count que será incrementada de acordo com isso, então ela deve ser declarada localmente na função que vai retornar o valor dela.

  • Curtir 3
Postado

Olá, tudo bem? Espero que esteja bem [...]

Em 03/04/2022 às 19:33, Larissa Maia disse:

pesquisei muito sobre, mas não achei nada a respeito

Sendo um exercício, espera-se que encontre no apontamento|livro|apostila anterior ele; lá estão|deverão estar somente os fundamentos, pois esse é o objetivo — avaliação de leitura.

Ou seja, uma responta deve os recursos (anteriormente) observados conforme o apontamento|livro|aula|grupo|site|app.

Alguns assuntos em linguagem c de programação de computadores usuais nos apontamentos para exercícios semelhantes são:

  1. Tipos básicos
  2. Tipo derivado: Vetor
  3. Instrução condicional
  4. Operador lógico e aritmético
  5. Laços de repetição
  6. Iteração sobre vetor
  7. Entrada/Saída (I/O) de informação no aplicativo de console (com nenhuma ou o mínimo de “interface” gráfica)

Extra: abstração e decomposição de problema. Pode ser que existam outros, porém sei que esses são o suficiente.

Em 03/04/2022 às 19:33, Larissa Maia disse:

Sei como comparar qual é o menor ou maior, mas não sei fazer essa comparação entre os elementos de dois vetores

  • 6. Iteração sobre vetor(es) 

 

🙂 

 

  • Curtir 1
  • mês depois...
Postado

/*

Gabarito...: {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4}
Respostas..: {2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1}
RA.........: 123456
Acertos....: 04
Resultado.: Reprovado

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int corrige_prova(int [], int []);
void verifica_situacao(int, char []);

int main()
{

    int gabarito[30] = {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4};
    int prova[31] = {345678,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1};
  int q, i;
  char situacao[10];
  
  q = corrige_prova(gabarito, prova);
  verifica_situacao(q, situacao);

    printf("\nGabarito...: {");
    for(i = 0;i < 30;i = i + 1)
      printf("%d,",gabarito[i]);
    printf("}");
    
    printf("\nRespostas..: {");
    for(i = 1;i < 31;i = i + 1)
      printf("%d,",prova[i]);
    printf("}");

    printf("\nRA.........: %d",prova[0]);
    printf("\nAcertos....: %02d",q);
    printf("\nResultado..: %s",situacao);

    return 0;
}

int corrige_prova(int gabarito[], int prova[])
{
    int i, q;
    for(i = 0, q = 0;i < 30;i = i + 1)
        if(gabarito[i] == prova[i+1])
            q = q + 1;
    return q;    
}

void verifica_situacao(int acertos, char situacao[])
{
    if(acertos >= 15)
        strcpy(situacao,"Aprovado");
      else    
        strcpy(situacao,"Reprovado");    
}
 

  • Curtir 1
Postado

 

Use o botão code como explicado no primeiro post desse forum. Veja a diferença:

 

/*
Gabarito...: {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4}
Respostas..: {2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1}
RA.........: 123456
Acertos....: 04
Resultado.: Reprovado

*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int corrige_prova(int [], int []);
void verifica_situacao(int, char []);

int main()
{

    int gabarito[30] = {1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4,1,2,3,5,4};
    int prova[31] = {345678,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1,2,3,4,5,1};
  int q, i;
  char situacao[10];
  
  q = corrige_prova(gabarito, prova);
  verifica_situacao(q, situacao);

    printf("\nGabarito...: {");
    for(i = 0;i < 30;i = i + 1)
      printf("%d,",gabarito[i]);
    printf("}");
    
    printf("\nRespostas..: {");
    for(i = 1;i < 31;i = i + 1)
      printf("%d,",prova[i]);
    printf("}");

    printf("\nRA.........: %d",prova[0]);
    printf("\nAcertos....: %02d",q);
    printf("\nResultado..: %s",situacao);

    return 0;
}

int corrige_prova(int gabarito[], int prova[])
{
    int i, q;
    for(i = 0, q = 0;i < 30;i = i + 1)
        if(gabarito[i] == prova[i+1])
            q = q + 1;
    return q;    
}

void verifica_situacao(int acertos, char situacao[])
{
    if(acertos >= 15)
        strcpy(situacao,"Aprovado");
      else    
        strcpy(situacao,"Reprovado");    
}

,

 

 

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!