Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
Aprendendo a Programar Programando em Linguagem C - FSM
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
int i;<br />
float Soma;<br />
Soma = 0;<br />
for (i = 0; i < t; i++)<br />
Soma = Soma + v[i];<br />
return (Soma/t);<br />
}<br />
main()<br />
{<br />
int i, Quant, NotasBoas;<br />
float *p, Med;<br />
Quant = ArmazenaNotas(p);<br />
Med = Media(p, Quant);<br />
NotasBoas = 0;<br />
for (i = 0; i < Quant; i = i + 1)<br />
if (p[i] > Med)<br />
NotasBoas = NotasBoas + 1;<br />
printf("Media das notas: %f \n", Med);<br />
printf("Notas maiores que a media: %d", NotasBoas);<br />
}<br />
2. Imagine que quiséss<strong>em</strong>os o desvio médio das notas do ex<strong>em</strong>plo anterior. Esta medida estatística é<br />
assim definida: o desvio de um el<strong>em</strong>ento <strong>em</strong> relação à média aritmética é a diferença entre o el<strong>em</strong>ento e a<br />
média aritmética da relação; o desvio médio é a média aritmética dos valores absolutos dos desvios.<br />
Pod<strong>em</strong>os então, como fiz<strong>em</strong>os acima, escrever uma função para calcular a média da relação de notas,<br />
armazenar os valores absolutos dos desvios <strong>em</strong> um vetor e utilizar a função que calcula a média para calcular<br />
a média destes valores absolutos.<br />
float DesvioMedio(float *v, int t)<br />
{<br />
int i;<br />
float *d;<br />
float Med;<br />
Med = Media(v, t);<br />
for (i = 0; i < t; i++)<br />
d[i] = abs(v[i] - Med);<br />
return(Media(d, t));<br />
}<br />
Observe que este ex<strong>em</strong>plo ilustra outra vantag<strong>em</strong> do uso de funções: a mesma função Media foi<br />
utilizada para determinação de médias de relações diferentes.<br />
3. Imagin<strong>em</strong>os agora que queiramos uma função que retorne o maior valor de uma relação armazenada<br />
<strong>em</strong> um vetor. Uma possível solução é supor que o maior valor procurado é o primeiro el<strong>em</strong>ento do vetor e,<br />
<strong>em</strong> seguida, percorrer o vetor comparando cada componente com o valor que, até o momento, é o maior,<br />
substituindo o valor deste maior el<strong>em</strong>ento quando se encontra uma componente maior que ele.<br />
float MaiorEl<strong>em</strong>ento(float *v, int t)<br />
{<br />
int i;<br />
float Maior;<br />
Maior = v[0];<br />
for (i = 1; i < t; i = i + 1)<br />
if (v[i] > Maior)<br />
Maior = v[i];<br />
return(Maior);<br />
}<br />
Observe que a função acima retorna o maior el<strong>em</strong>ento armazenado no vetor, mas não retorna a posição<br />
deste maior el<strong>em</strong>ento, o que <strong>em</strong> muitas situações é indispensável. Para isto é necessário um parâmetro com<br />
passag<strong>em</strong> por referência, como visto no capítulo anterior. Este parâmetro recebe o valor zero e <strong>em</strong> seguida o