Solucaoestr: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud |
imported>Fargoud |
||
| (2 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
| Linha 44: | Linha 44: | ||
return 0; | return 0; | ||
} | } | ||
=Exercício 2:= | |||
Programa que realiza operações aritméticas sobre números complexos | |||
#include <stdio.h> | |||
#include <math.h> | |||
struct tipo_ret { | |||
float x; | |||
float y; | |||
}; | |||
struct tipo_polar { | |||
float mod; | |||
float ang; | |||
}; | |||
struct tipo_ret somaret(struct tipo_ret, struct tipo_ret); | |||
struct tipo_ret subret(struct tipo_ret, struct tipo_ret); | |||
struct tipo_polar multpol(struct tipo_polar, struct tipo_polar); | |||
struct tipo_polar divpol(struct tipo_polar, struct tipo_polar); | |||
main() | |||
{ | |||
struct tipo_ret numret1, numret2, numret3; | |||
struct tipo_polar numpol1, numpol2, numpol3; | |||
int op; | |||
printf("\nPROGRAMA DE ARITMETICA COM COMPLEXOS: \n\n"); | |||
printf("Escolha a operacao: "); | |||
printf("\n\t1) Operacao de SOMA com complexos na forma RETANGULAR:"); | |||
printf("\n\t2) Operacao de SUBTRACAO com complexos na forma RETANGULAR:"); | |||
printf("\n\t3) Operacao de MULTIPLICACAO com complexos na forma POLAR:"); | |||
printf("\n\t4) Operacao de DIVISÃO com complexos na forma POLAR:"); | |||
printf("\n>: "); | |||
scanf("%d",&op); | |||
switch(op) | |||
{ | |||
case 1: printf("\n\nEntre com a primeira coordenada x:"); | |||
scanf("%f",&numret1.x); | |||
printf("\nEntre com a primeira coordenada y:"); | |||
scanf("%f",&numret1.y); | |||
printf("\n\nEntre com a segunda coordenada x:"); | |||
scanf("%f",&numret2.x); | |||
printf("\nEntre com a segunda coordenada y:"); | |||
scanf("%f",&numret2.y); | |||
numret3 = somaret(numret1, numret2); | |||
break; | |||
case 2: printf("\n\nEntre com a primeira coordenada x:"); | |||
scanf("%f",&numret1.x); | |||
printf("\nEntre com a primeira coordenada y:"); | |||
scanf("%f",&numret1.y); | |||
printf("\n\nEntre com a segunda coordenada x:"); | |||
scanf("%f",&numret2.x); | |||
printf("\nEntre com a segunda coordenada y:"); | |||
scanf("%f",&numret2.y); | |||
numret3 = subret(numret1, numret2); | |||
break; | |||
case 3:printf("\n\nEntre com a primeira coordenada de modulo:"); | |||
scanf("%f",&numpol1.mod); | |||
printf("\nEntre com a primeira coordenada de angulo:"); | |||
scanf("%f",&numpol1.ang); | |||
printf("\n\nEntre com a segunda coordenada de modulo:"); | |||
scanf("%f",&numpol2.mod); | |||
printf("\nEntre com a segunda coordenada de angulo:"); | |||
scanf("%f",&numpol2.ang); | |||
numpol3=multpol(numpol1, numpol2); | |||
break; | |||
case 4:printf("\n\nEntre com a primeira coordenada de modulo:"); | |||
scanf("%f",&numpol1.mod); | |||
printf("\nEntre com a primeira coordenada de angulo:"); | |||
scanf("%f",&numpol1.ang); | |||
printf("\n\nEntre com a segunda coordenada de modulo:"); | |||
scanf("%f",&numpol2.mod); | |||
printf("\nEntre com a segunda coordenada de angulo:"); | |||
scanf("%f",&numpol2.ang); | |||
numpol3 = divpol(numpol1, numpol2); | |||
break; | |||
default: printf("\n\nOperacao inexistente."); | |||
} | |||
} | |||
struct tipo_ret somaret(struct tipo_ret num1, struct tipo_ret num2) | |||
{ struct tipo_ret num3; | |||
num3.x = num1.x + num2.x; | |||
num3.y = num1.y + num2.y; | |||
printf("\n\nResultado: coordenada x = %.2f e coordenada y = %.2f", num3.x, num3.y); | |||
return num3; | |||
}; | |||
struct tipo_ret subret(struct tipo_ret num1, struct tipo_ret num2) | |||
{ struct tipo_ret num3; | |||
num3.x = num1.x - num2.x; | |||
num3.y = num1.y - num2.y; | |||
printf("\n\nResultado: coordenada x = %.2f e coordenada y = %.2f", num3.x, num3.y); | |||
return num3; | |||
}; | |||
struct tipo_polar multpol(struct tipo_polar num1, struct tipo_polar num2) | |||
{ struct tipo_polar num3; | |||
num3.mod = num1.mod * num2.mod; | |||
num3.ang = num1.ang + num2.ang; | |||
printf("\n\nResultado: modulo = %.2f e angulo = %.2f", num3.mod, num3.ang); | |||
return num3; | |||
}; | |||
struct tipo_polar divpol(struct tipo_polar num1, struct tipo_polar num2) | |||
{ struct tipo_polar num3; | |||
num3.mod = num1.mod / num2.mod; | |||
num3.ang = num1.ang - num2.ang; | |||
printf("\n\nResultado: modulo = %.2f e angulo = %.2f", num3.mod, num3.ang); | |||
return num3; | |||
}; | |||
Edição atual tal como às 10h06min de 21 de setembro de 2016
Exercício 1:
Programa para ler nomes e 3 notas de alunos, e imprimir medias
#include <stdio.h> #include <stdlib.h> #define NNOTAS 3 //numero de notas no bimestre #define NALUNOS 4 //numero de alunos na turma
struct Aluno {
char Nome[20];
int ID;
float Notas[NNOTAS];
} Turma[NALUNOS];
int main()
{ int i, j;
float media=0;
printf("\nLendo as notas dos alunos: \n");
for(i=0;i<NALUNOS;i++)
{
printf("\nEntre com o nome do %do. aluno: ", i+1);
scanf("%s",Turma[i].Nome);
for(j=0;j<NNOTAS;j++)
{
printf("Entre com a %da. nota do aluno %s: \n", j+1,Turma[i].Nome);
scanf("%f",&Turma[i].Notas[j]);
}
}
printf("\n\nCalculando as medias: ");
for(i=0;i<NALUNOS;i++)
{
printf("\nMEDIA do aluno: %s = ", Turma[i].Nome);
media = 0;
for(j=0;j<NNOTAS;j++)
media += Turma[i].Notas[j];
printf(" %.2f \n",media/NNOTAS) ;
}
return 0; }
Exercício 2:
Programa que realiza operações aritméticas sobre números complexos
#include <stdio.h>
#include <math.h>
struct tipo_ret {
float x;
float y;
};
struct tipo_polar {
float mod;
float ang;
};
struct tipo_ret somaret(struct tipo_ret, struct tipo_ret); struct tipo_ret subret(struct tipo_ret, struct tipo_ret); struct tipo_polar multpol(struct tipo_polar, struct tipo_polar); struct tipo_polar divpol(struct tipo_polar, struct tipo_polar);
main()
{
struct tipo_ret numret1, numret2, numret3;
struct tipo_polar numpol1, numpol2, numpol3;
int op;
printf("\nPROGRAMA DE ARITMETICA COM COMPLEXOS: \n\n");
printf("Escolha a operacao: ");
printf("\n\t1) Operacao de SOMA com complexos na forma RETANGULAR:");
printf("\n\t2) Operacao de SUBTRACAO com complexos na forma RETANGULAR:");
printf("\n\t3) Operacao de MULTIPLICACAO com complexos na forma POLAR:");
printf("\n\t4) Operacao de DIVISÃO com complexos na forma POLAR:");
printf("\n>: ");
scanf("%d",&op);
switch(op)
{
case 1: printf("\n\nEntre com a primeira coordenada x:");
scanf("%f",&numret1.x);
printf("\nEntre com a primeira coordenada y:");
scanf("%f",&numret1.y);
printf("\n\nEntre com a segunda coordenada x:");
scanf("%f",&numret2.x);
printf("\nEntre com a segunda coordenada y:");
scanf("%f",&numret2.y);
numret3 = somaret(numret1, numret2);
break;
case 2: printf("\n\nEntre com a primeira coordenada x:");
scanf("%f",&numret1.x);
printf("\nEntre com a primeira coordenada y:");
scanf("%f",&numret1.y);
printf("\n\nEntre com a segunda coordenada x:");
scanf("%f",&numret2.x);
printf("\nEntre com a segunda coordenada y:");
scanf("%f",&numret2.y);
numret3 = subret(numret1, numret2);
break;
case 3:printf("\n\nEntre com a primeira coordenada de modulo:");
scanf("%f",&numpol1.mod);
printf("\nEntre com a primeira coordenada de angulo:");
scanf("%f",&numpol1.ang);
printf("\n\nEntre com a segunda coordenada de modulo:");
scanf("%f",&numpol2.mod);
printf("\nEntre com a segunda coordenada de angulo:");
scanf("%f",&numpol2.ang);
numpol3=multpol(numpol1, numpol2);
break;
case 4:printf("\n\nEntre com a primeira coordenada de modulo:");
scanf("%f",&numpol1.mod);
printf("\nEntre com a primeira coordenada de angulo:");
scanf("%f",&numpol1.ang);
printf("\n\nEntre com a segunda coordenada de modulo:");
scanf("%f",&numpol2.mod);
printf("\nEntre com a segunda coordenada de angulo:");
scanf("%f",&numpol2.ang);
numpol3 = divpol(numpol1, numpol2);
break;
default: printf("\n\nOperacao inexistente.");
}
}
struct tipo_ret somaret(struct tipo_ret num1, struct tipo_ret num2)
{ struct tipo_ret num3;
num3.x = num1.x + num2.x;
num3.y = num1.y + num2.y;
printf("\n\nResultado: coordenada x = %.2f e coordenada y = %.2f", num3.x, num3.y);
return num3;
};
struct tipo_ret subret(struct tipo_ret num1, struct tipo_ret num2)
{ struct tipo_ret num3;
num3.x = num1.x - num2.x;
num3.y = num1.y - num2.y;
printf("\n\nResultado: coordenada x = %.2f e coordenada y = %.2f", num3.x, num3.y);
return num3;
};
struct tipo_polar multpol(struct tipo_polar num1, struct tipo_polar num2)
{ struct tipo_polar num3;
num3.mod = num1.mod * num2.mod;
num3.ang = num1.ang + num2.ang;
printf("\n\nResultado: modulo = %.2f e angulo = %.2f", num3.mod, num3.ang);
return num3;
};
struct tipo_polar divpol(struct tipo_polar num1, struct tipo_polar num2)
{ struct tipo_polar num3;
num3.mod = num1.mod / num2.mod;
num3.ang = num1.ang - num2.ang;
printf("\n\nResultado: modulo = %.2f e angulo = %.2f", num3.mod, num3.ang);
return num3;
};