Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - amchacon

#701
Cita de: eferion en  1 Julio 2013, 23:59 PM
Corrección: no está de más, antes de hacer una lectura del buffer de teclado asegurarse de que el usuario no ha escrito nada antes que pueda afectar a la lectura... como todo buffer almacena información y a no ser que la leas o descartes sigue ahí esperándote cual bomba de relojería.
Aún así no se podría aplicar en este caso (aquí no ha habido ninguna lectura de teclado).
#702
Código (cpp) [Seleccionar]
aux[f]=c;
La c va desde 0 a 20, de que te extrañas?

Usa el vector max que para eso lo puse, por cierto me equivoqué aquí

Código (cpp) [Seleccionar]
int max[5]={m1[0][0],m1[0][0],m1[0][0],m1[0][0],m1[0][0]};

Prueba lo siguiente:

Código (cpp) [Seleccionar]
int c,f;
int max[5];

for (f = 0; f <5;f++)
{
    max[f] = 0;
   
    for (c=1;c < 20;c++)
    {
         if (m1[f][c] > max[f])
              max[f] = m1[f][c]
}
#703
Cita de: feedf en  1 Julio 2013, 23:42 PMestaria recorriendo toda la matriz o estaria recorriendo CADA fila y guardando el maximo en el vector ?
Ambas afirmaciones son sinonimas (recorrer todas las filas de una matriz = recorrer toda la matriz).

Y si, guarda el máximo de cada fila en el vector Maximo.
#705
Cita de: Mackeli en  1 Julio 2013, 20:28 PM
Gracias.

En primer lugar, uso Dev-C++, más que por el idioma, que me apaño, porque Code:Blocks siempre me responde a la ejecución del programa con

Process terminated with status 1957557385 (0 minutes, 14 seconds)
Esa es una característica de depuración. Esto tiene como finalidad dos cosas:

- Evitar que el programa se cierre cuando termine (sin necesidad de poner pausas y esas cosas).
- Ver cuanto tiempo le ha llevado a tu programa.

Pero esto es exclusivo de Codeblocks, si abres el exe verás que este letrero no aparece.

(También se puede desactivar esta depuración en project -> project options -> build targets -> desmarca "pause execution in the end").

PD: ¿Hablas del letrero que te aparece dentro del programa no?

Cita de: Mackeli en  1 Julio 2013, 20:28 PMHe probado a cambiar

setbuf(stdin, NULL);

por

fflush(stdin);
fflush(stdin); es todavía peor. Es una aberración al estándar, funciona únicamente en Windows como "caso especial".

Cita de: Mackeli en  1 Julio 2013, 20:28 PMy ha funcionado, pero lo cierto es que es la primera vez. Antes los programas no esperaban al Enter para cerrarse a no ser que pusiera
¿? A mí me va perfecto esto:

Código (cpp) [Seleccionar]
#include <iostream>
#define PI 3.14
using namespace std;

int main (void)
{
   int numero = 10;

   cout << numero << " es el valor de la variable numero." << '\n';
   cout << "La primera letra de KILO es: " << 'K' << '\n';
   cout << PI << " es el valor de la constante pi.\n";
   cout << "((3+7)*2) = " << ((3+7)*2) << '\n';
   cout << "Hola a todos\n";

   cout << "\nPulse Intro para finalizar...";
   cin.get();

   return 0;
}


C++ no necesita limpieza de buffer ni esas bobadas que tenía C

Cita de: Mackeli en  1 Julio 2013, 20:28 PMYa sé que las dos funciones de cout son equivalentes y deberían funcionar. De hecho, al compilar no me dan errores ni Dev-C++ ni Code:Blocks con ninguna de las dos funciones, pero no se ejecutan. De ahí mi duda.
¿Que quieres decir con que no se ejecutan?

Cita de: Mackeli en  1 Julio 2013, 20:28 PMEl tema del endl en vez de \n ya lo había mirado, pero, al estar siguiendo las prácticas del libro, quería ser lo más fiel posible. Puedo cambiarlo como una mejora de estilo de todas formas.
Como veas, ambas cosas hacen lo mismo  ;)
#706
Lo primero es recomendarte que no uses DevCpp:
http://foro.elhacker.net/programacion_cc/iquestpor_que_no_deberias_usar_el_devcpp-t385150.0.html

Lo segundo:

Código (cpp) [Seleccionar]
setbuf(stdin, NULL);

Esto no es necesario.

Lo tercero esque:

Código (cpp) [Seleccionar]
cout << numero << " es el valor de la variable numero." << '\n';
cout << "La variable numero almacena: " << numero << '\n';


Ambas funciones son equivalentes y funcionan, asi que ese no es el error.

Por cierto yo pondría endl en vez \n:

Código (cpp) [Seleccionar]
cout << "La variable numero almacena: " << numero << endl;

Aunque el efecto es el mismo.
#707
Cita de: greycore en  1 Julio 2013, 15:15 PM
Si trabajas con notepad++, te recomiendo que selecciones la opción Vista > Mostrar símbolo > Mostrar espacios y tabulaciones.

La verdad es que me ha ayudado a resolver muchos quebraderos de cabeza, porque algunas veces cuando haces Copy & Paste o te despistas, metes una tabulación por allí en medio y ya tienes la fiesta montada.
Hey, muy cierto  ;-)

Gracias

Cita de: leosansan en  1 Julio 2013, 13:04 PMLo mejor en python es no abusar de las líneas en blanco, producen el efecto óptico de que todo va bien.
Poner todo junto me da sensación de ahogo xD

Cita de: leosansan en  1 Julio 2013, 13:04 PMP.D:Sigo con mi retirada temporal.[/size]
:-\
#708
Programación C/C++ / Re: for y do while
1 Julio 2013, 13:20 PM
Pues fíjate Eferion, eso último que has puesto no me convence nada. Hacer una iteración sobre una función me parece un desperdicio de rendimiento.

Sí es cierto que a la hora de pedir datos el rendimiento no es importante, pero es una manía mía ;)
#709
Solucionado, son los tabs de Notepad. Hay que sustituirlos por espacios.

En Configuración -> Preferencias -> Menú de Lenguaje -> Python -> Reemplazar por espacios

#710
Scripting / Duda python (error de sintaxis)
1 Julio 2013, 09:00 AM
Recien estoy empezando python, estaba traduciendo una función que tenía en C++:

Código (python) [Seleccionar]
def Resolver(Tablero):

    if Explora(Tablero,MAX,MAX) == False:
        return false;

    if Resuelto(Tablero) == True:
        return true;

    for j in range(9):
        for i in range(9):
            if Tablero[i][j] != None:
Valores = EncontrarPosibilidades(Tablero,i,j)

tablero = [None] * 9

for k in range(9):
tablero[k] = [None] * 9


                for it in Valores:

                    for k in range(9):
                        for l in range(9):
                            tablero[l][k] = Tablero[l][k]

                    tablero[i][j] = it

                    if (Resolver(tablero))
                   
                        for k in range(9)
                            for l in range(9)
                                Tablero[l][k] = tablero[l][k];

                        return true;
                   

               

return false;



Me marca un error en EncontrarPosibilidades(Tablero,i,j):



Lo cual no entiendo (¡Está identado!)