Visualg
Pesquisas Acadêmicas: Visualg. Pesquise 862.000+ trabalhos acadêmicosPor: ads_jaqueline • 9/10/2013 • 886 Palavras (4 Páginas) • 1.377 Visualizações
Métodos Computacionais 2010/01
Aula Prática – Ponteiros, Funções
1. Escreva uma função chamada de potencia que calcula a potência entre dois números inteiros não negativos (base e expoente) passados como parâmetros e retorna este valor.
2. Faça um programa completo (função main e inclusão dos arquivos de cabeçalhos adequados) que utilize a função potencia. O programa deve ler a base e o expoente e imprimir o resultado.
3. Implemente a função raizes, que calcula as raízes de uma equação do segundo grau, do tipo ax2 + bx + c = 0. Essa função deve obedecer ao protótipo:
int raizes (float a, float b, float c, float * x1, float * x2);
onde a, b e c representam os coeficientes da equação, e x1 e x2 são ponteiros para as
variáveis onde devem ser guardadas as raízes da equação. A função deve retornar o
número de raízes reais que a equacão possui.
Observacões:
(a) Se as raízes forem reais e distintas, a função deve retornar 2.
(b) Se as raízes forem reais e iguais x1 = x2 e a função deve retornar 1.
(c) Se não existirem raízes reais, a função deve retornar 0.
(d) Para o cálculo da raiz quadrada de um número, utilize a função sqrt definida
na biblioteca padrão de funções do C. Essa função está definida no arquivo de
cabeçalhos math.h e tem o protótipo:
double sqrt (double n);
4. Faça um programa completo (função main e inclusão dos arquivos de cabeçalhos adequados) que utilize a função raizes. O programa deve ler os coeficientes da equação de 2º grau e imprimir as raízes caso existam. Se não houver raízes reais, deve ser impressa a mensagem “NÃO EXISTEM RAIZES REAIS PARA ESTA EQUAÇÃO”.
5. Escreva uma função que calcule a soma dos números pares e a soma dos números impares de 0 até um número inteiro n passado como parâmetro. A função deve se chamar somaParesImpares. Use passagem de parâmetros por referência em somaParesImpares para que outra função que chamá-la possa obter as duas somas.
6. Faça um programa completo (função main e inclusão dos arquivos de cabeçalhos adequados) que utilize a função somaParesImpares. O programa deve ler o inteiro n e imprimir a soma de todos os valores pares até n e a soma de toso os valores ímpares até n.
SOLUÇÕES
/* 1a e 2a QUESTÕES */
#include <stdio.h>
#include <stdlib.h>
unsigned int potencia(unsigned int base, unsigned int exp) {
unsigned int i,pot = 1;
for (i = 0; i < exp; i++)
pot = pot * base;
return pot;
}
int main()
{
unsigned int base, expoente, r;
printf("Digite 2 numeros nao negativos. ");
printf("O primeiro eh a base e o outro eh o expoente\n. ");
scanf("%u %u",&base,&expoente);
r = potencia(base,expoente);
printf("A potencia de %u elevado %u eh: %u \n" ,base, expoente,r);
system("PAUSE");
return 0;
}
/* 3a e 4a QUESTÕES */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int raizes(float a, float b, float c, float *x1, float *x2) {
float delta;
int numeroRaizes;
delta = (b*b) - (4*a*c);
if (delta < 0) {
...