next up previous
Next: About this document ...

MAC 115 - Introdução à Computação
INSTITUTO DE QUÍMICA - PRIMEIRO SEMESTRE DE 2000
Segunda Prova - 19 de junho de 2000


Nome do aluno:


Assinatura:




Instruções:
1.
Não destaque as folhas deste caderno.
2.
Preencha o cabeçalho acima.
3.
A prova pode ser feita a lápis. Cuidado com a legibilidade.
4.
A prova consta de 4 questões. Verifique antes de começar a prova se o seu caderno de questões está completo.
5.
Não é permitido o uso de folhas avulsas para rascunho.
6.
Não é permitido a consulta a livros, apontamentos ou colegas.
7.
Não é necessário apagar rascunhos no caderno de questões.

DURAÇÃO DA PROVA: 1 hora e 20 minutos

Questão Nota
1  
2  
3  
4  
Total  
1.
(Valor 3.0 pontos)
Simule a execução do programa abaixo.

#include <stdio.h>
#define MAX 5  
int f(int v[MAX], int n, int *y)
{
 int cont;
 *y = 0;
 cont = 0;
 while (n > 0){
    n = n - 1;
    if (v[n] > 0)
       cont = cont + 1;
    *y = *y + v[n];
    v[n] = v[n] - 1;
 }
 return(cont);
}
int main()
{
  int a, b, c, i;
  int v[MAX];
 
  a = 5; b = 3; c = -7; 
  v[0] = 23; v[1] = -1; v[2] = 4;
  printf("a = %d b = %d c = %d\n", a, b, c);
printf("v: ");
  for (i = 0; i < 3; i++) 
     printf("%d ", v[i]);
printf("\n");
  a = f(v, b, &c);
  printf("a = %d b = %d c = %d\n", a, b, c);
printf("v: ");
  for (i = 0; i < 3; i++) 
     printf("%d ", v[i]);
printf("\n");
  a = 5; b = 3; c = -7; 
  v[0] = 23; v[1] = -1; v[2] = 4;
  c = f(v, 3, &b);
  printf("a = %d b = %d c = %d\n", a, b, c);
printf("v: ");
  for(i = 0; i < 3; i++) 
    printf("%d ", v[i]);
printf("\n");
}




Simulação




Programa Principal

a b c i v Saída do programa
        0 1 2 3 4  
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   
                   



Função f

v n *y cont
       
       
       
       
       
       
       
       
       
       
       
       
       
       

2.
(valor 1.0+1.5+1.5 pontos)
a. Faça uma função Eprimo que recebe um número inteiro p> 0 e devolve 1 caso o número seja primo e 0 caso contrário.

b. Faça uma função Contadivisores que recebe um número inteiro x > 0 e devolve o número de divisores positivos que x tem.
Exemplo: O número 12 tem 6 divisores (1, 2, 3, 4, 6 e 12).

c. Faça um programa que leia um número inteiro n e n números inteiros e determina quais desses números são divprimos.

Dizemos que um número é divprimo se o número de divisores dele for primo.

Exemplo: O número 7 é divprimo, já que 7 tem 2 divisores, e 2 é primo. Já o número 12 não é divprimo, uma vez que 12 tem 6 divisores.

Utilize necessariamente as funções feitas nos itens anteriores.

3.
(Valor 3.0 pontos)
Dizemos que uma matriz real quadrada é diagonal dominante, se para cada uma de suas linhas, o maior elemento da linha estiver na diagonal.

Exemplo: A matriz A3 x 3 abaixo é diagonal dominante (os máximos das linhas estão em negrito):

\begin{displaymath}\left(\begin{array}{ccc}
\textbf{34.7} & 25.12 & 5.78 \\
1...
...5 \\
-12.7 & -13.76 & \textbf{-3.5} \\
\end{array} \right)
\end{displaymath}

Faça um programa que leia um número inteiro n e uma matriz de números reais An x n e determina se a matriz dada é diagonal dominante.

4.
(Valor 1.0 ponto)

Atenção: Nesta questão você receberá 1.0 ponto por qualquer resposta que der. Se você deixar a folha em branco, não receberá nenhum ponto.

Você pode (e deve) escrever o que pensa sem receio.

O que você achou desta disciplina? Faça um comentário geral a respeito das aulas, exercícios, provas, etc. Você considera se esta disciplina foi importante para sua formação como químico? Em que você acha que a disciplina deveria mudar para atender melhor às suas expectativas.




next up previous
Next: About this document ...
Carlos Eduardo Ferreira
2000-07-05