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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con un programa en C++ (parece sencillo pero...) [RESUELTO!]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con un programa en C++ (parece sencillo pero...) [RESUELTO!]  (Leído 6,486 veces)
luxna

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda con un programa en C++ (parece sencillo pero...) [RESUELTO!]
« en: 24 Septiembre 2010, 19:09 pm »

Buenas a todos/as!

Bueno, resulta que soy nuevo en esto del C++, y en la universidad nos han pedido que hagamos el siguiente programa:

Entrar un numero entero y uno natural (-32 y 6) y dividirlos entre si. El cociente de la división puede dar negativo o positivo, pero nos piden que el valor del resto sea positivo. Así pues, el resto tiene que ser un valor absoluto... Como ejemplos de los resultados que se deben obtener:

32 / 6 ---> Cociente 5, Resto 2
-32 / 6 ---> Cociente -6, resto 4

Con lo que realmente tengo problemas es con el segundo ejemplo... El primero no hay problema. No consigo que me den esos valores (-6 y 4) y me han prohibido usar la biblioteca <math.h>.

Mi intento lo he estructurado de la siguiente manera:

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main(){
  5.  
  6. int a,b,q,r;
  7. cin >> a >> b;
  8. q=a/b;
  9. r=a%b;
  10. if (r < 0) {
  11. cout << q << " " << -r << endl; // Aquí creo que esta el error
  12. }
  13. else {
  14. cout << q << " " << r << endl;
  15. }
  16. }

Alguno/a puede ayudarme a solucionar este problema que viene determinado por el signo del resto?

Muchas gracias!!!


« Última modificación: 24 Septiembre 2010, 23:48 pm por luxna » En línea

criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Ayuda con un programa en C++ (parece sencillo pero...)
« Respuesta #1 en: 24 Septiembre 2010, 19:27 pm »

Buenas!

Si tenes que lograr que el resto de la division siempre sea positivo y no podes usar alguna funcion como Abs() (No se si C++ tendra la misma, no conozco el lenguaje), podrias tomar el valor devuelto y en caso de que fuese negativo, multiplicarlo por -1.

Un saludo ;)




En línea

Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Ayuda con un programa en C++ (parece sencillo pero...)
« Respuesta #2 en: 24 Septiembre 2010, 19:50 pm »

Prueba a usar un unsigned int para almacenar el resto. Eso debería solucionar tu problema ya que las variables de tipo unsigned no almacenan el signo.
En línea

ace332

Desconectado Desconectado

Mensajes: 66


Ver Perfil
Re: Ayuda con un programa en C++ (parece sencillo pero...)
« Respuesta #3 en: 24 Septiembre 2010, 23:03 pm »

Bueno amigo, para resolver el ejercicio que te dieron debes fijarte en la relación que hay entre Dividendo, Divisor, Cociente y Residuo:

Dividendo = Cociente*Divisor + Resto (Aqui siempre Resto < Cociente)

Ahora bien, si el resto nos da negativo debemos "positivisarlo"... pero el nuevo resto tambien debe cumplir con la relación anterior:

Dividendo = (Cociente -1)*Divisor + (Divisor + Resto)

Luego tenemos lo siguiente

Nuevo cociente: Cociente -1
Nuevo resto:    Divisor + Resto

El resto es solo cosa de programarlo  ;)

Saludos  :)
En línea

luxna

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda con un programa en C++ (parece sencillo pero...) [RESUELTO!]
« Respuesta #4 en: 24 Septiembre 2010, 23:48 pm »

Bueno amigo, para resolver el ejercicio que te dieron debes fijarte en la relación que hay entre Dividendo, Divisor, Cociente y Residuo:

Dividendo = Cociente*Divisor + Resto (Aqui siempre Resto < Cociente)

Ahora bien, si el resto nos da negativo debemos "positivisarlo"... pero el nuevo resto tambien debe cumplir con la relación anterior:

Dividendo = (Cociente -1)*Divisor + (Divisor + Resto)

Luego tenemos lo siguiente

Nuevo cociente: Cociente -1
Nuevo resto:    Divisor + Resto

El resto es solo cosa de programarlo  ;)

Saludos  :)


Lo tengo, ya me ha salido!!! Muchísimas gracias por vuestra ayuda!!!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Reducir imagen con photoshop...sencillo, pero no hay manera! « 1 2 »
Diseño Gráfico
nichihack 11 17,701 Último mensaje 7 Diciembre 2011, 20:31 pm
por nichihack
[RESUELTO] Hardware fantasma... AYUDA!! « 1 2 »
Windows
|Miguel| 11 8,562 Último mensaje 17 Octubre 2011, 20:08 pm
por |Miguel|
Ayuda con un sencillo programa
Programación C/C++
carepapa 2 2,445 Último mensaje 30 Mayo 2012, 04:43 am
por carepapa
ayuda programa muy sencillo de c++ [resuelto]
Programación C/C++
elkiy 2 2,662 Último mensaje 12 Mayo 2014, 09:26 am
por eferion
Parece drone, pero es una cámara voladora con grabación en 4K y seguimiento faci
Noticias
El_Andaluz 1 1,450 Último mensaje 27 Abril 2016, 04:48 am
por RevolucionVegana
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines