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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 [4] 5
31  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 28 Julio 2011, 23:53 pm
Algunos de los ejercicios del tema 2 te han quedado muy largos y poco simples, suponiendo que sean correctos, puesto que no los he mirado todos. Te pongo soluciones alternativas más cortas y simples, por lo menos a mi parecer.

Código
  1. //Problema 1
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main() {
  6.    int n;
  7.    cin >> n;
  8.    for (int i = 1; i <= n; ++i) {
  9.        cout << string(n - i, ' ');
  10.        for (int j = 0; j + 1 < i; ++j) cout << "* ";
  11.        cout << "*" << endl;
  12.    }
  13. }
  14.  
  15. //Problema 2
  16. #include <iostream>
  17. using namespace std;
  18.  
  19. void imprime(int n, int i) {
  20.    if (i == 1) cout << n%10 << endl;
  21.    else if (n/10 == 0) cout << -1 << endl;
  22.    else imprime(n/10, i - 1);
  23. }
  24.  
  25. int main() {
  26.    int n, i;
  27.    cin >> n >> i;
  28.    imprime(n, i);
  29. }
  30.  
  31. //Problema 3
  32. #include <iostream>
  33. using namespace std;
  34.  
  35. int main() {
  36.    string s;
  37.    cin >> s;
  38.    for (int i = 0; i < s.size() >> 1; ++i) {
  39.        if (i > 0) cout << ", ";
  40.        cout << s[i] << " + " << s[s.size() - 1 - i] << " = " << s[i] - '0' + s[s.size() - 1 - i] - '0';
  41.    }
  42.    if (s.size()&1) cout << ((s.size() > 1)?", ":"") << s[s.size()>>1];
  43.    cout << endl;
  44. }
  45.  
  46.  
  47. //Problema 4
  48. #include <iostream>
  49. using namespace std;
  50.  
  51. int main() {
  52.    int maxim = 0, act = 0;
  53.    char c, ant = '0';
  54.    while (cin >> c) {
  55.        if (c >= ant) ++act;
  56.        else {
  57.            maxim = max(maxim, act);
  58.            act = 1;
  59.        }
  60.        ant = c;
  61.    }
  62.    maxim = max(maxim, act);
  63.    cout << maxim << endl;
  64. }
  65.  
  66.  
  67. //Problema 6
  68. #include <iostream>
  69. using namespace std;
  70.  
  71. int mcd(int a, int b) {
  72.    if (a == b) return a;
  73.    return (a > b) ? mcd(a - b, b) : mcd(b - a, a);
  74. }
  75.  
  76. int main() {
  77.    int a, b;
  78.    cin >> a >> b;
  79.    cout << mcd(a, b) << endl;
  80. }
  81.  

Muchas gracias por las sugerencias, pero el problema es que estoy haciendo los ejercicios acorde a lo que llevo visto hasta ahora, por lo que, por ejemplo, aún no podría utilizar variables de tipo string. Pero me vienen muy bien tus soluciones para volver a comparar los ejercicios cuando haya dado todo el temario.
Reconozco que mi principal fallo es no saber hacer los algoritmos más cortos y eficientes, pero estoy trabajando en ello (aunque de todas formas solo me piden que funcionen, pero me convendría aprender a simplificar).

gracias!
32  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 28 Julio 2011, 21:13 pm
El segundo no lo entiendo:Porque el resultado seria 6 si "i" se encuentra en la posicion 0 ? o como?

El ejercicio pide que introduzcamos un numero (N) y una posición (i). Por tanto, fijándonos en el ejemplo, vemos que N=25064 e i=2, por lo que el resultado es 6. i es la posición en el número, empezando desde la derecha (i=1->resultado=4; i=3->resultado = 0). No sé si me he explicado bien...

Por cierto, le acabo de echar un vistazo a tu código del triángulo. Aunque en el ejercicio ponga de ejemplo N=5, el código debe realizarse para cualquier número, par o impar. Es que he visto que solo lo construye para los número impares  ;)
Y otra cosa, la altura es igual a N. Según tu código, la altura es N/2.

Gracias por intentarlo y postearlo, te animo a que le eches otro vistazo al código anterior y te animes con el ejercicio 2  :D
33  Programación / Programación C/C++ / Re: Sumar un porcentaje en: 24 Julio 2011, 18:45 pm
Código
  1. #include <iostream>
  2. using namespace std;
  3. double total (double, double);
  4. double iva2 = 18;
  5.  
  6. int main(){
  7.        double precio, iva;
  8.        cout << "Introduzca el precio: " ;
  9.        cin >> precio;
  10.        cout << "Introduzca el iva: " ;
  11.        cin >> iva;
  12.        if (iva > 0)
  13.                cout << total (precio,iva);
  14.        else
  15.                cout << precio+(precio*(iva2/100));
  16.  
  17.        return 0;
  18. }
  19.  
  20. double total ( double precio, double iva)
  21. {
  22.        double total = precio+(precio * (iva / 100));
  23.        return total;
  24. }

He quitado el stdafx.h, cambiado void main() por int main() y he añadido return 0 al final del main y no me da problema alguno...
34  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 24 Julio 2011, 16:46 pm
Ya está añadido el contenido del tema 2 y los ejercicios correspondientes. Mirar primer post.
35  Programación / Programación C/C++ / Re: Sumar un porcentaje en: 24 Julio 2011, 15:52 pm
total = precio + (precio*IVA/100);
36  Programación / Programación C/C++ / Re: hacer un procedimiento que calcule la base de un triangulo en: 23 Julio 2011, 17:41 pm
Define la variable area en la funcion.

EDIT: Vale, no me habia fijado en que la estabas definiendo xD
37  Programación / Programación C/C++ / Re: Programa de conversiones. ayuda por favor en: 23 Julio 2011, 16:56 pm
Bueno, pues intenta hacer un ejemplo facilito en un papel con el código de la función, paso por paso. Verás como lo entiendes rápidamente.

Y la conversión para hexadecimal es igual que las demás, lo único es que si el resto está entre 10 y 15, ha de sustituirse por A, B, C, D, E o F.
38  Programación / Programación C/C++ / Re: Programa de conversiones. ayuda por favor en: 23 Julio 2011, 16:11 pm
Sabes como hacerlo manualmente?? es decir, sabes convertir entre bases numéricas??
39  Programación / Programación C/C++ / Re: Reto Universidad [C++]. en: 23 Julio 2011, 13:51 pm
El ejercicio 7 es un juego, en el que juegan el humano contra el ordenador. El ordenador decide quien empieza y tienen que ir restando 1, 2 o 3 en turnos alternos hasta que ya no haya más objetos que coger. El que coge el último objeto, pierde.
Pues bien, con esas condiciones, tienes que desarrollar un algoritmo en el que SIEMPRE gane la máquina.
40  Programación / Programación C/C++ / Re: Programa de conversiones. ayuda por favor en: 23 Julio 2011, 00:53 am
¿Qué es lo que no entiendes del unsigned long conversor? ¿Lo que es o lo que hace?
Páginas: 1 2 3 [4] 5
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines