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


 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


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

Desconectado Desconectado

Mensajes: 1


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

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 por K-YreX » En línea

K-YreX
Moderador
***
Desconectado Desconectado

Mensajes: 755



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

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: 105


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

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 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 3,506 Último mensaje 11 Agosto 2007, 01:05
por SeniorX
¿Se ve capaz de resolver el 'código McCormick'? Un misterioso asesinato trae ...
Noticias
wolfbcn 0 417 Último mensaje 8 Febrero 2016, 15:27
por wolfbcn
Alguien puede ayudarme a resolver este código en C#
.NET (C#, VB.NET, ASP)
Aldoeeee 1 696 Último mensaje 6 Abril 2016, 06:27
por engel lex
(Duda-Ayuda) Resolver 2 codigos
Dudas Generales
american 8 2,938 Último mensaje 10 Diciembre 2016, 01:36
por Flamer
Ayuda para resolver el programa « 1 2 »
Programación C/C++
petit_cm 15 2,066 Último mensaje 31 Marzo 2017, 00:09
por ivancea96
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines