PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL

FACULDADE DE INFORMÁTICA

DEPARTAMENTO DE FUNDAMENTOS DA COMPUTAÇÃO

 

PROGRAMAÇÃO PARA ENGENHARIA I  -  TURMA 340

PROF. EDUARDO AUGUSTO BEZERRA       16/10/2002       PROVA P2

 

NOME DO ALUNO : _________________________________________________________

 

1. Fazer um programa em C que calcula e escreve a média ponderada com peso 1,0 para os valores ímpares e peso 2,0 para os valores pares situados no intervalo [13 .. 77]. (4,0 pontos)

 

 

2. Qual o valor das variáveis “idade”, “salario” e “peso” após a execução do programa abaixo. (2,0 pontos)

 

int main(){

   int i, idade, matricula;

   float peso, salario;

   char sexo;

  

   printf("Idade:");

   scanf("%d", &idade);

   printf("\nSalario:");

   scanf("%f", &salario);

   printf("\nEntre com o ultimo digito de sua matricula:");

   scanf("%d", &matricula);

   while (matricula < 100){

      sexo = '1';

      idade = matricula + 10;

      if (idade > 9)

           matricula = matricula + idade + 70;

      peso = idade * 2.0;

      peso = idade * 2.0 + peso;

      salario = idade + peso;

   }

   printf("\nIdade = %d", idade);

   printf("\nSalario = %f", salario);

   printf("\nPeso = %f", peso);

}

 

 

3. Escrever um programa em C que informe se um valor fornecido pelo usuário é trimo. Um número trimo possui três divisores: ele mesmo; um (1); e um terceiro valor (menor que o número). O programa deverá ficar em laço solicitando a entrada de valores, e informando para cada número se o mesmo é trimo. O programa deverá encerrar quando o usuário entrar com o valor zero (0). ATENÇÃO!! A única saída (mensagem) do programa deverá ser É TRIMO. Nenhuma outra saída é permitida. (4,0 pontos)

 

 

“A compreensão do enunciado faz parte da avaliação”

 

Boa prova!

 

 

 

1. Versao 1.0

 

int main(){

   int ini = 13, acum = 0, acumd = 0;

 

   while (ini < 76){

      acum = acum + ini + 2 * (ini + 1);

      acumd = acumd + ini + ini + 1;

      ini = ini + 2;

   }

   acum = acum + ini;

   acumd = acumd + 77;

   printf ("\nMedia ponderada = %f\n", (float)acum/(float)acumd);

   return (0);

}

 

1. Versao 2.0

 

int main(){

   int ini = 13, acum = 0, acumd = 0;

 

   while (ini <= 77){

      if (ini % 2 == 0)

         acum = acum + 2 * ini;

      else

         acum = acum + ini;

      acumd = acumd + ini;

      ini = ini + 1;

   }

   printf ("\nMedia ponderada = %f\n", (float)acum/(float)acumd);

   return (0);

}

 

2. WHILE

 

Matricula

0

1

2

3

4

5

6

7

8

9

Idade

90

92

94

96

98

100

102

104

106

108

Salario

450.0

460.0

470.0

480.0

490.0

500.0

510.0

520.0

530.0

540.0

Peso

360.0

368.0

376.0

384.0

392.0

400.0

408.0

416.0

424.0

432.0

 

3. TRIMO

 

int main(){

   int c, m, i;

   printf("\nEntre com um valor inteiro: ");

   scanf("%d", &m);

   while (m > 0){

      c = 2;

      for (i = 2; i <= (m / 2); i++)

         if (m/i == (float)m/(float)i)

            c++;

      if (c == 3)

         printf("\n %d eh trimo.", m, c);

      printf("\nEntre com um valor inteiro: ");

      scanf("%d", &m);

   }

   return (0);

}