Lista de Exercicios 01
AEDI
Instituto Federal de Educação, Ciência e Tecnologia do Ceará – IFET – CE
Campus Crato
Curso de Sistemas de Informação
Prof.: Talles Brito Viana
Disciplina: Algoritmos e Estruturas de Dados I
Discente: Maílson de Lima Pereira
25 de fevereiro de 2014, Crato – CE.
Questão 2: Se i e j são variáveis inteiras e p e q ponteiros para int, quais das seguintes expressões de atribuição são legais e quais são ilegais?
a) p = &i; Legal.
b) *q = &j; Ilegal. O correto seria q = &j.
c) p = &(*&i); Legal. A expressão corresponde a p = &i.
d) i = *&j; Inválida. Um ponteiro não pode ser atribuído como valor para uma variável.
e) q = *p;
Questão 6: Implemente uma função que calcule as raízes de uma equação do segundo grau, do tipo ax² + bx + c = 0. Essa função deve obedecer ao protótipo: int raizes(float a, float b, float c, float *x1, float *x2)
Essa função deve ter como valor de retorno o numero de raízes reais e distintas da equação. Se existirem raízes reais, seus valores devem ser armazenados nas variáveis apontadas por x1 e x2.
#include
#include
#include
int raizes (float a, float b, float c, float *x1, float *x2){ float delta; float rDelta; delta = pow(b, 2)-4*a*c; rDelta = sqrt(delta); if (delta == 0){ *x1 = (-b + rDelta)/(2*a); return 1; } else if (delta < 0){ return 0; } else { *x1 = (-b+rDelta)/(2*a); *x2 = (-b-rDelta)/(2*a); return 2; }
}
int main(void){ float a, b, c, x1, x2; int qtdRaizes; printf ("Entre com o valor de A na equacao: "); scanf ("%f", &a); printf ("Entre com o valor de B na equacao: "); scanf ("%f", &b); printf ("Entre com o valor de C na equacao: "); scanf ("%f", &c); printf("\n"); qtdRaizes = raizes(a, b, c, &x1, &x2); printf("Quantidade de raizes distintas da equacao = %d\n", qtdRaizes); printf("\n"); if (qtdRaizes == 1){ printf("So existe uma