1
Fundamentos de Programação - 2014.2 - Prova 3
Fundamentos de Programação - Prova 3
Prof. Marco Polo
04 de dezembro de 2014
Inı́cio: 14:00 - duração: 2:00 horas
Questão 01: Equação do 2o grau
Escreva um programa em C que resolva a equação ax2 + bx + c = 0, através dos seguintes
passos:
(a) (2,0 pontos) Crie uma função chamada de Delta, que recebe como parâmetros três
números reais, k, p e q, e retorna o valor real p2 − 4kq.
(b)
(c)
(d)
(e)
A seguir, o programa deve
(0,5 pontos) Ler três números reais, a, b e c.
(1,0 pontos) Calcular o valor de ∆ da equação através da função Delta.
(0,5 pontos) Calcular as soluções das equações.
(1,0 pontos) Imprimir na tela o resultado. O programa deve mostrar na tela as soluções reais, se a equação possuir, ou então deve informar “A equaç~
ao n~
ao possui raiz real”,
se for o caso.
Questão 02: Tabela de funções
Escreva um programa em C que crie ou leia uma tabela de duas colunas, que representam x
e f (x) para uma dada função. Deve haver um menu para ler ou criar a tabela, e outro menu
para a escolha da função, que pode ser apenas f (x) = cos x, f (x) = ex ou f (x) = x2 . Dessa
forma, proceda da seguinte maneira:
(a) (0,5 pontos) O programa deve conter um menu funcional com as opções abaixo, no qual
o usuário deve digitar 1 para criar uma tabela e 2 para ler uma tabela.
1 - Criar arquivo com tabela de funç~
ao
2 - Ler arquivo com tabela de dados
(b) (0,5 pontos) Se o usuário escolher a opção 1, deve aparecer um submenu para a escolha
da função, da seguinte forma (onde o usuário deve digitar a, b ou c):
a - cos(x)
b - exp(x)
c - x*x
(c) (2,0 pontos) Uma vez escolhida a opção do submenu, o programa deve criar um arquivo,
de nome “tabela.txt”, que conterá uma tabela com duas colunas de números. A coluna
esquerda deve conter os valores de x, variando de 0 a 10, com passo de 0,1. A coluna da
direita deve conter os respectivos valores de f (x).
(d) (2,0 pontos) Se o usuário escolher a opção 2, o programa deve ler um arquivo chamado “dados.txt”, que contém uma tabela como a do item (c) (Suponha que o arquivo
“dados.txt” existe e está na mesma pasta do programa). Em seguida, o programa deve
mostrar na tela os dados contidos nesse arquivo.
Campus Ji-Paraná
Departamento de Fı́sica – UNIR
2
Fundamentos de Programação - 2014.2 - Prova 3
Questão 01
1
2
3
# include < stdio .h >
# include < math .h >
4
5
6
7
8
9
float Delta ( float k , float p , float q )
{
float d = p * p - 4* k * q ;
return d ;
}
10
11
12
main ()
{
float a , b , c , x1 , x2 , x , d ;
13
14
printf ( " Este programa resolve a equacao ax ^2 + bx + c = 0.
Digite os coeficientes :\ n \ n " ) ;
15
16
printf ( " a = " ) ; scanf ( " % f " , & a ) ;
printf ( " b = " ) ; scanf ( " % f " , & b ) ;
printf ( " c = " ) ; scanf ( " % f " , & c ) ;
17
18
19
20
d = Delta (a , b , c ) ;
21
22
printf ( " \ n " ) ;
23
24
if (d >0)
{
25
26
x1 = -b /(2* a ) + sqrt ( d ) /(2* a ) ;
x2 = -b /(2* a ) - sqrt ( d ) /(2* a ) ;
printf ( " x1 = %f , x2 = % f " , x1 , x2 ) ;
27
28
29
}
30
31
if ( d ==0)
{
x = -b /(2* a ) ;
printf ( " x = % f " , x ) ;
}
32
33
34
35
36
37
if (d <0)
38
printf ( " Nao existe raiz real " ) ;
39
40
}
Campus Ji-Paraná
Departamento de Fı́sica – UNIR
3
Fundamentos de Programação - 2014.2 - Prova 3
Questão 02
1
2
# include < stdio .h >
# include < math .h >
3
4
5
main ()
{
FILE * arquivo1 , * arquivo2 ;
char arq [30] , op1 , op2 , ch ;
int k ;
float x , y ;
6
7
8
9
10
printf ( " Tabelas de funç~
o es \ n \ n " ) ;
printf ( " 1 - Criar arquivo com tabela de funcoes \ n " ) ;
printf ( " 2 - Ler arquivo com tabela de dados \ n " ) ;
printf ( " \ n " ) ;
scanf ( " % s " , & op1 ) ;
11
12
13
14
15
16
if ( op1 == ’1 ’)
{
arquivo1 = fopen ( " tabela . txt " , " w " ) ;
17
18
19
20
printf ( " \ n " ) ;
printf ( " Escolha a funcao desejada :\ n \ n " ) ;
printf ( " a - cos ( x ) \ n " ) ;
printf ( " b - exp ( x ) \ n " ) ;
printf ( " c - x ^2\ n " ) ;
printf ( " \ n " ) ;
scanf ( " % s " , & op2 ) ;
21
22
23
24
25
26
27
28
for ( k =0; k <=100; k ++)
{
x = 0.1* k ;
if ( op2 == ’a ’) y = cos ( x ) ;
if ( op2 == ’b ’) y = exp ( x ) ;
if ( op2 == ’c ’) y = x * x ;
29
30
31
32
33
34
35
fprintf ( arquivo1 , " % f % f \ n " , x , y ) ;
36
}
fclose ( arquivo1 ) ;
37
38
}
39
40
if ( op1 == ’2 ’)
{
arquivo2 = fopen ( " dados . txt " , " r " ) ;
while (! feof ( arquivo2 ) )
{
ch = getc ( arquivo2 ) ;
printf ( " % c " , ch ) ;
}
fclose ( arquivo2 ) ;
}
41
42
43
44
45
46
47
48
49
50
51
}
Campus Ji-Paraná
Departamento de Fı́sica – UNIR
Download

3ª prova