// ILP-010 (Prof. Dr. Silvio do Lago Pereira) //------------------------------------------------------------ // Exemplo 7 //------------------------------------------------------------ #include typedef struct { int dia; int mes; int ano; } Data; typedef struct { int codigo; char nome[21]; float salario; Data admissao; } Func; int main(void) { Func f; printf("Codigo..: "); scanf("%d%*c",&f.codigo); printf("Nome....: "); gets(f.nome); printf("Salario.: "); scanf("%f",&f.salario); printf("Admissao: "); scanf("%d/%d/%d",&f.admissao.dia, &f.admissao.mes, &f.admissao.ano); printf("Func....: %d %s %.2f %02d/%02d/%d\n", f.codigo,f.nome,f.salario, f.admissao.dia,f.admissao.mes,f.admissao.ano); return 0; } //------------------------------------------------------------ // Exemplo 8 //------------------------------------------------------------ #include typedef struct { int dia; int mes; int ano; } Data; typedef struct { int codigo; char nome[21]; float salario; Data admissao; } Func; int main(void) { Func f1 = {413,"Fred Barbosa",8750.00,{25,10,2017}}; Func f2 = f1; printf("f2 = {%d,%s,%.2f,{%d,%d,%d}}\n", f2.codigo,f2.nome,f2.salario, f2.admissao.dia,f2.admissao.mes,f2.admissao.ano); return 0; } //------------------------------------------------------------ // Exemplo 9 //------------------------------------------------------------ #include typedef struct { int dia; int mes; int ano; } Data; typedef struct { int codigo; char nome[21]; float salario; Data admissao; } Func; void reajuste(Func g) { g.salario *= 1.10; // altera apenas a copia da estrutura! printf("{%d,%s,%.2f,{%d,%d,%d}}\n", g.codigo,g.nome,g.salario, g.admissao.dia,g.admissao.mes,g.admissao.ano); } int main(void) { Func f = {295,"Ana Teixeira",6100.00,{5,9,2015}}; reajuste(f); reajuste(f); return 0; } //------------------------------------------------------------ // Exemplo 10 //------------------------------------------------------------ #include #include #include typedef struct { float x1; float x2; } Raizes; Raizes equacao(float a, float b, float c) { float d = pow(b,2) - 4*a*c; if( a==0 || d<0 ) { puts("Erro!"); abort(); } Raizes s = {(-b - sqrt(d))/(2*a),(-b + sqrt(d))/(2*a)}; return s; } int main(void) { Raizes r = equacao(1,-5,6); // x^2 - 5x + 6 = 0 printf("Raizes da equacao = {%.1f,%.1f}\n",r.x1,r.x2); return 0; } //------------------------------------------------------------ // Exemplo 11 //------------------------------------------------------------ #include #include typedef struct { int dia; int mes; int ano; } Data; typedef struct { int codigo; char nome[21]; float salario; Data admissao; } Func; void exibe(Func f) { printf("{%d,%s,%.2f,{%d,%d,%d}}\n", f.codigo,f.nome,f.salario, f.admissao.dia,f.admissao.mes,f.admissao.ano); } int main(void) { Func a = {295,"Ana Teixeira",6100.00,{5,9,2015}}; Func b = {102,"Catia Telles",7300.00,{3,8,2014}}; exibe(a.codigov[j+1] ) troca(v,j,j+1); } //------------------------------------------------------------ // Exercicio 7 //------------------------------------------------------------ int main(void) { Ponto a = le_ponto(1); Ponto b = le_ponto(2); printf("Distancia: %.1f\n",distancia(a,b)); return 0; } //------------------------------------------------------------ // Exercicio 8 //------------------------------------------------------------ int main(void) { Ponto v[4] = {{0,2},{2,2},{2,0},{0,0}}; printf("Perimetro: %.1f\n",perimetro(v,4)); return 0; } //------------------------------------------------------------ // Exemplo 13 //------------------------------------------------------------ #include typedef struct {int origem; int destino; } Via; int pertence(int x,int r[],int n) { for(int i=0; i