Advertisement
henriqueblobato

MMQ Pronto

Oct 31st, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.18 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #define N 2
  5. void recebePontos(float matriz[][N], int quantidade);
  6. float retornaA(float matriz[][N], int quantidade);
  7. float retornaB(float matriz[][N], int quantidade);
  8. float mediax(float matriz[][N], int quantidade);
  9. float mediay(float matriz[][N], int quantidade);
  10. void exibe(float matriz[][N], int quantidade);
  11. void exibeReta(float matriz[][N], int quantidade);
  12. void main(){
  13.     int numeroPontos;
  14.     float valores[10][N];
  15.     printf("Quantos pontos serao utilizados? ");
  16.     scanf("%i", &numeroPontos);
  17.     recebePontos(valores,numeroPontos);
  18.     exibe(valores, numeroPontos);
  19.     exibeReta(valores,numeroPontos);
  20.     system("pause");
  21. }
  22. float mediax(float matriz[][N], int quantidade){
  23.     float acumulador=0, media;
  24.     for(int i = 0; i < quantidade; i++){
  25.         acumulador += matriz[i][0];
  26.     }
  27.     media = acumulador/quantidade;
  28.     return media;
  29. }
  30. float mediay(float matriz[][N], int quantidade){
  31.     float acumulador=0, media;
  32.     for(int i = 0; i < quantidade; i++){
  33.         acumulador += matriz[i][1];
  34.     }
  35.     media = acumulador/quantidade;
  36.     return media;
  37. }
  38. void exibe(float matriz[][N], int quantidade){
  39.     printf("\nPontos:\n");
  40.     for(int j = 0; j < quantidade; j++){
  41.         printf("P%i: [%.3f, %.3f]\n", j, matriz[j][0], matriz[j][1]);
  42.     }
  43.     printf("\n");
  44. }
  45. float retornaA(float matriz[][N], int quantidade){
  46.     float dividendo=0, divisor=0, media;
  47.     media = mediax(matriz,quantidade);
  48.     for(int i = 0; i < quantidade; i++){
  49.         dividendo = dividendo + (matriz[i][0]-media)*matriz[i][1];
  50.     }
  51.     for(int i = 0; i < quantidade; i++){
  52.         divisor = divisor + pow(matriz[i][0]-media,2);
  53.     }
  54.     return dividendo/divisor;
  55. }
  56. float retornaB(float matriz[][N], int quantidade){
  57.     float y = mediay(matriz,quantidade);
  58.     float x = mediax(matriz,quantidade);
  59.     float a = retornaA(matriz,quantidade);
  60.     return y-(a*x);
  61. }
  62. void recebePontos(float matriz[][N], int quantidade){
  63.     printf("     X Y\n");
  64.     for(int i = 0; i < quantidade; i++){//Recebe os pontos
  65.         printf("P%i:  ", i+1);
  66.         scanf("%f %f", &matriz[i][0], &matriz[i][1]);
  67.     }
  68. }
  69. void exibeReta(float matriz[][N], int quantidade){
  70.     printf("RETA TEORICA: Y = %.3fX + %.3f\n\n", retornaA(matriz, quantidade), retornaB(matriz, quantidade));
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement