elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda en resolver codigo
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda en resolver codigo  (Leído 3,846 veces)
Orlando.64

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Ayuda en resolver codigo
« en: 9 Octubre 2020, 05:34 am »

Karel se quedó de ver con 4 de sus amigos para hacer un trabajo en equipo. Para que todos se reunan, fijaron un punto de encuentro de tal forma que a todos les quede relativamente cerca. Una vez fijado dicho punto de encuentro, Karel notó algo muy poco peculiar: a partir del punto de encuentro, uno de sus amigos vive al norte, otro al sur, uno más al este y el último al oeste. Lo más misterioso de este asunto es que el que vive al norte está perfectamente alineado con quien vive al sur; y quien vive al oeste está perfectamente alineado con quien vive al este.

Sus 4 amigos tienen unas bicicletas especiales que van más rápido si no se les cambia la dirección. Todo esto ayuda convenientemente para que, el que vive al norte, solo tenga que viajar al sur sin desviarse para llegar al punto de encuentro; el que vive al oeste solo tiene que viajar al este sin desviarse para llegar al punto de encuentro y así respectivamente con los otros 2.

Problema
Karel no tiene idea donde será el punto de encuentro, pero tiene las coordenadas de donde viven sus amigos. Tu tarea consiste en imprimir las coordenadas del punto de encuentro.

Entrada
4 coordenadas (X, Y) separadas por un espacio (sin orden específico) y un salto de línea entre cada coordenada (TIP: cin al leer, ignora si son saltos de linea o espacios)

Salida
Una única línea con 2 números separados por un espacio, representando la coordenada (X, Y) del punto de encuentro

Ejemplo
Código:
Entrada   Salida
-2 2         1 2
 1 4
 6 2
 1 -1

Este es parte de mi código:

Código
  1. #include <iostream>
  2.  
  3. using namespace std ;
  4.  
  5. int main (){
  6.  
  7.     double  X1,Y1,X2,Y2,P, X3 , Y3 , X4, Y4, Q , R,S    ;
  8.      int A,  Z ;
  9.     cin>> X1 >> Y1 ;
  10.     cin>> X2 >> Y2 ;
  11.     cin>> X3 >> Y3 ;
  12.     cin>> X4 >> Y4 ;
  13.  
  14.     P= (X1 +  X2) / 2 ;
  15.  
  16.     Q= (Y1 + Y2) / 2  ;
  17.  
  18.     R =(X3 + X4) / 2 ;
  19.  
  20.     S=((Y3 +Y4 ) / 2) ;
  21.  
  22.     A = (P+R) / 2 ;
  23.  
  24.     Z = (Q + S ) / 2 ;
  25.  
  26.     cout <<A << "\t" <<   Z   <<endl ;
  27.  
  28. }


MOD: El código debe ir entre etiquetas de Código GeSHi indicando el lenguaje adecuado


« Última modificación: 9 Octubre 2020, 15:34 pm por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 1.008



Ver Perfil
Re: Ayuda en resolver codigo
« Respuesta #1 en: 9 Octubre 2020, 15:37 pm »

Las operaciones que realizas no tienen mucho sentido.

El punto que esté al norte y el que esté al sur, tendrán la misma coordenada X (llamémosla A).
El punto que esté al oeste y el que esté al este, tendrán la misma coordenada Y (llamémosla B).
El punto solución es: (A, B)


En línea

Código
  1. cout << "Todos tenemos un defecto, un error en nuestro código" << endl;
Loretz

Desconectado Desconectado

Mensajes: 117


Ver Perfil
Re: Ayuda en resolver codigo
« Respuesta #2 en: 10 Octubre 2020, 07:00 am »

Ya sé lo que es un Karel...

Y con respecto al programa este, debe haber mejores formas de resolverlo, seguramente, pero a mí me ha salido así, y no me disgusta:

Código
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <optional>
  5.  
  6. std::optional<double> find_comun(const std::vector<double>& coordenadas)
  7. {
  8.    for (const auto i : { 1, 2, 3 }) {
  9.        if (std::find(coordenadas.begin() + i, coordenadas.end(), coordenadas[i - 1]) != coordenadas.end()) {
  10.            return coordenadas[i - 1];
  11.        }
  12.    }
  13.    return {};
  14. }
  15.  
  16. int main()
  17. {
  18.    std::vector<double> abscisas;
  19.    std::vector<double> ordenadas;
  20.  
  21.    std::cout << "4 puntos (x, y):\n";
  22.    double x, y;
  23.    for (const auto i : { 0, 1, 2, 3 }) {
  24.        std::cin >> x >> y;
  25.        abscisas.push_back(x);
  26.        ordenadas.push_back(y);
  27.    }
  28.  
  29.    // el punto de encuentro será (abscisa_comun, ordenada_comun):
  30.    std::cout << "punto de encuentro = ("
  31.        << find_comun(abscisas).value_or(std::nan("")) << ", "
  32.        << find_comun(ordenadas).value_or(std::nan("")) << ")";
  33. }
« Última modificación: 10 Octubre 2020, 07:22 am por Loretz » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda a resolver dos ejercicios en c#
.NET (C#, VB.NET, ASP)
jugran28 4 4,699 Último mensaje 11 Agosto 2007, 01:05 am
por SeniorX
[C][?]Ayuda a resolver estos errores
Programación C/C++
Xcution 1 2,343 Último mensaje 1 Noviembre 2013, 20:50 pm
por vangodp
¿Se ve capaz de resolver el 'código McCormick'? Un misterioso asesinato trae ...
Noticias
wolfbcn 0 1,067 Último mensaje 8 Febrero 2016, 15:27 pm
por wolfbcn
Alguien puede ayudarme a resolver este código en C#
.NET (C#, VB.NET, ASP)
Aldoeeee 1 1,890 Último mensaje 6 Abril 2016, 06:27 am
por engel lex
No concigo resolver el código de error
.NET (C#, VB.NET, ASP)
Meta 9 5,381 Último mensaje 24 Abril 2021, 23:57 pm
por Meta
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines