Vous êtes sur la page 1sur 3

Turma: Eng.

Controle Automao
Disciplina: Linguagem de Programao
Data: 26 / 06 / 2012
Professor(a): Alessandra Aguiar Vilarinho
Aluno(a): _______________________________________________________________
1a Questo (35 pontos): Dado um polinmio na forma:

P(x) = anXn + an-1Xn-1 + + a2X2 + a1X1 + a0X0


onde an pertence aos reais e n um valor inteiro maior
ou igual a zero.
a) Defina um tipo para representar um termo de um polinmio, este tipo deve
armazenar o coeficiente an e o grau n. No programa principal declare um vetor deste
tipo e considere que o polinmio ter como maior grau o valor 19.
0
1
2
3
...
13
...
18
19
0

...

13

...

18

19

5.0

-1.0

3.0

0.0

0.0

-4.0

0.0

0.0

0.0

O vetor de registros acima representa o polinmio:


P(x) = -4X13 + 3X2 - X + 5
b) Faa uma funo que receba como parmetro um vetor de registro que representa
um polinmio p1 e preencha este vetor com os coeficientes do termos do polinmio.
Para ser mais abrangente, considere que o polinmio pode ter qualquer quantidade de
termos. O usurio dever informar os coeficientes, para auxili-lo nesta tarefa, emita
uma mensagem informando qual o coeficiente que o usurio dever informar.
Exemplo da mensagem:
Informe o coeficiente de grau 0
Informe o coeficiente de grau 1
e assim por diante para os demais graus do polinmio.
c) Faa uma funo que receba como parmetro um vetor de registro que representa
um polinmio p1 e um vetor de registro que representa outro polinmio p2. Esta
funo deve fazer com que o polinmio p2 seja o polinmio derivada do polinmio
p1. Para ser mais abrangente, considere que o polinmio pode ter qualquer
quantidade de termos.

d) Faa uma funo que retorne o valor do polinmio para um dado valor de x. Esta
funo recebe como parmetro o vetor de registro que representa o polinmio e o
valor de x e retorna o valor do polinmio para o dado valor de x. Para ser mais
abrangente, considere que o polinmio pode ter qualquer quantidade de termos.
e) Faa o programa principal que declare um vetor de registro que representa um
polinmio, lembre-se que o maior grau o 19, da conclui-se o tamanho deste vetor, e
invoque corretamente as funes implementadas nos itens anterires b), c) e d).
2a Questo (35 pontos): Faa um programa em C para imprimir uma tabela com o

ndice de afinidade existente entre cada moa e cada rapaz de um grupo de M moas
e um grupo de R rapazes (R <=50 M<=60).
Foi distribudo um questionrio de 100 perguntas, tais como:
1) Voc se incomoda se que seu parceiro(a) fume?
2) Voc gosta de msica sertaneja?
3) Voc gosta de cebola?

100) Voc torce para o flamengo?


Cada moa e cada rapaz pode responder com as letras S, N ou I:
S para SIM
N para NO
I para INDIFERENTE
O ndice de afinidade de um rapaz com uma moa dado pelo nmero de perguntas
que ambos deram a mesma resposta ou um deles respondeu INDIFERENTE.
O programa dever ler:
Os valores de R e M;
As 100 resposta de cada rapaz;
As 100 resposta de cada moa;
O programa dever imprimir:
Uma a tabela de afinidade Rapazes x Moas com o seguinte aspecto visual:
60

70

20

...

10

30

82

...

...

...

...

...

...

...

RxM
Onde pode-se ver que na linha 2 coluna 3 o valor 82 o ndice de afinidade entre o
Rapaz 2 e a Moa 3. O valor do ndice de afinidade entre um rapaz e uma moa pode
ser um valor entre 0 e 100.

3a Questo (25 pontos): O que o programa a seguir imprime, se voc informar como entrada
um nmero inteiro positivo entre 2 e 9 para a varivel cachorroQuente da funo main.
Escreva a sada COMPLETA e EXATA que este programa imprime.
Informe, no quadro abaixo, o valor escolhido por voc para a varivel cachorroQuente a fim de
testar este programa:
cachorroQuente
#include <stdio.h>
struct retangulo {
double base;
double altura;
};
double calculaArea(struct retangulo q){
return q.base * q.altura;
}
void calculaPerimetro(struct retangulo q, double * p){
* p = 2 * q.base + 2 * q.altura;
}
int main() {
int impares[10], i,cachorroQuente;
double p;
struct retangulo figuras[10];
/* Informe um valor inteiro entre 2 e 9 */
scanf("%d", & cachorroQuente);
for (i=0;i<20;i=i+2) {
impares[i/2] = i/2;
}
for (i=0;i<5;i++){
figuras[impares[i]].base = i + 1;
figuras[impares[i]].altura = (double) cachorroQuente;
}
for (i=0;i<5;i++){
printf("\nArea= %.2f", calculaArea(figuras[impares[i]]));
calculaPerimetro(figuras[impares[i]], &p);
printf("\nPerimetro= %.2f", p);
}
printf("\n");
return 0;
}

Vous aimerez peut-être aussi