Enviado em 28/11/2019 - 18:21h
Questão 19.18 do livro Aplicações cientificas em C++#include <iostream>
#include "Funcoes19018.h"
using namespace std;
int main (int argc, char *argv[]){
cout << "Programa para calcular e exibir o ponto mais próximo da origem do plano cartesiano usando classes" << endl;
cout << endl;
PONTO p1,p2;
Compare p3;
ponto p4;
int n;
double x, y;
cout << "Insira a quantidade de pontos que deseja calcular" << endl;
cout << "Quantidade = "; cin >> n;
while (n < 1 || n > 20)
{
cout << "Valor invalido!\n";
cout << "Tamanho = "; cin >> n;
}
for(int i = 0; i < n; i++)
{
cout << "Informe as coordenadas dos Pontos p" << i + 1 << ":" << endl;
cout << "x = "; cin >> x;
cout << "y = "; cin >> y;
cout << endl;
p.setXY(x,y);
p4[i] = p2.distancia(p1);
}
cout << "O ponto mais próximo da origem : p" << p3.comparar(p4) << endl;
return 0;
}
#include <cmath>
#include "Funcoes19018.h"
void PONTO::setXY(double x, double y)
{
this-> x = x;
this-> y = y;
}
double PONTO::getX()
{
return x;
}
double PONTO::getY()
{
return y;
}
double PONTO::distancia(PONTO p)
{
return sqrt(pow(x, 2) + pow(y, 2));
}
double Compare::comparar(PONTO &p)
{
double menor = p[0]; //Primeiro elemento
int indMe = 0;
for(int i = 1; i < 5; i++){ //Varia de 1 a n-1
if (p[i] < menor)
menor = p[i]; // Determina menor
indMe = i; //Indice do menor
}
return indMe;
}
#ifndef FIGURAS_19018_H
#define FIGURAS_19018_H
using namespace std;
class PONTO
{
private:
double x, y;
public:
void setXY(double x, double y);
double getX();
double getY();
double distancia(PONTO p);
};
typedef PONTO* ponto;
class Compare
{
public:
ponto v[20];
double comparar(PONTO &p);
};
#endif
Atenção a quem posta conteúdo de dicas, scripts e tal (1)
Manutenção de sistemas Linux Debian e derivados com apt-get, apt, aptitude e dpkg
Melhorando o tempo de boot do Fedora e outras distribuições
Como instalar as extensões Dash To Dock e Hide Top Bar no Gnome 45/46
Instalar a última versão do PostgreSQL no Lunix mantendo atualizado
Flathub na sua distribuição Linux e comandos básicos de gerenciamento
Instalando o FreeOffice no LMDE 6
Anki: Remover Tags de Estilo HTML de Todas as Cartas
Colocando uma opção de redimensionamento de imagem no menu de contexto do KDE
Desenvolvimento de um driver (10)
Não esta salvando as configurações de usuário. (3)
Quais Shell Scripts vocês usam? (5)
[Shell Script] Script para desinstalar pacotes desnecessários no OpenSuse
[Shell Script] Script para criar certificados de forma automatizada no OpenVpn
[Shell Script] Conversor de vídeo com opção de legenda
[C/C++] BRT - Bulk Renaming Tool
[Shell Script] Criação de Usuarios , Grupo e instalação do servidor de arquivos samba