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 - MAFUS

#1491
Cuando puedas sube el código. :)
#1492
No te funciona porque a la primera iteración, la primera comparación,  ya retornas de la función. Solo comparas el primer elemento.
return termina la función sí o sí.
Debes rehacer la función.

Recomendación: establece una variable con un valor tal que indica que la función ha tenido éxito en ver que los dos arrays son iguales.
Empieza a realizar la comparación de forma iterativa.
Si encuentras que en algún momento son diferentes cambias el valor de la anterior variable y sales del bucle.
Retorna ek valor.
#1493
Programación C/C++ / Re: Programa en C
2 Enero 2016, 21:24 PM
Los lenguajes interpretados pasan por un interprete que es un programa compilado bajo cierta arquitectura y S.O., por eso, siempre que exista un interprete ese código funcionará.
En cambio en un programa compilado el código es específico de una arquitectura y S.O. Si llevas el programa a otro procesador que no sea compatible va a fallar por diferencias en el código máquina, aunque los dos corran el mismo S.O. Si compilas en para un mismo procesador, pero los S.O. son diferentes tampoco va a funcionar por las diferencias intrínsecas de los propios SS.OO. (llamadas al sistema, la forma en que se preparan las llamadas a las funciones y como se llaman,  estructuras internas, etc.)
#1494
Es por la precedencia de los operadores. En tu caso lo que hacías era apuntar a una zona de memoria a la que el S.O. te deniega el acceso, incrementabas la dirección del puntero.
Usa parentesis para hacer lo que quieres, o varia la posición del ++, según como deba trabajar tu código en una sentencia compleja:
(*algo)++
o
++*algo
En una sentencia simple de incremento como la que buscas puedes usar la forma que quieras.
#1495
La lógica que he usado ha sido esta:
Leo la primera línea del archivo y la guardo en un array.
La recorro en busca  de dos números.
Al primero lo convierto de carácter a su valor y se lo doy a filas.
Hago lo mismo con las columnas.
Leo la segunda línea del archivo y la guardo en el array usado anteriormente.
Recorro el array en busca de números, a medida que los voy encontrando los convierto al valor que representan y los voy sumando.
Si la suma todos esos números es diferente a filas x columnas o hay 0 flias o hay 0 columnas, paro el programa e informo al usuario que el archivo tiene datos erróneos.
Si todo está bien creo otro array de números de tamaño filas x columnas.
Recorro de nuevo el array que contiene una copia de la segunda línea del archivo.
Por cada número que hay hago lo siguiente:
    En un bucle de tantos pasos como indica el número:
        Incluir en el segundo array un vacío o lleno, según si el valor de una variable (k) es 0 o 1.
        Aumentar el índice del segundo array.
    Fuera del buce anterior, pero aún dentro de lo que se hace por cada número complemento el valor de (k).
Una vez construido el array el resto del código es que te he mostrado.
#1496
Los recuadros son construidos según los números del archivo. Se puede hacer desde 1x1 hasta 9x9. Solo te he puesto el código de como dibujar la tabla. El trabajo de crearla y llenarla es anterior a todo esto.
#1497
Mira la librería SDL. Esta librería está pensada para hacer programas multimedia. El crear una imagen con texto encima con posición, tamaño, color que quieras, etc. Incluso con letras diseñadas por ti mismo.
Eso sí, se hace un uso extensivo de punteros por lo que espera un poco hasta llegar y comprender esa parte   ;)
#1498
Algo de código... Está hecho en C ya que de C++ sé casi nada  ;D

Variables:
car es char. Sirve para poner los marcadores de filas y columnas (a b c d...)
i y j son int. Me sirven para saber en que fila y columna estoy
k es un int. Me sirve para marcar si estoy en la última fila.
array es un array de caracteres. Tiene los asteriscos y espacios tal y como
    los distribuye el archivo.
lleno es una constante de caracter. Es el caracter usado para representar
    un cuadrado negro.

/* Imprimo los identificadores de columna */
    car = 'a';
    printf("   ");
    for(i = 0; i < columnas; ++i)
        putchar(car + i);
    printf("\n  ");
    /* Imprimo el borde superior */
    for(i = 0; i < columnas + 2; ++i)
        putchar(lleno);
    /* Imprimo cada una de las filas de la tabla junto
     * con los identificadores de fila donde sea necesario
     * y los bordes horizontales de la tabla */
    car = 'a';
    printf("\n%c ", car++);
    putchar(lleno);   
    for(i = j = k = 0; i < filas * columnas; ++i) {
        putchar(array[i]);
        ++j;
        if(j == columnas) {
            j = 0;
            /* Tengo en cuenta el numero de columna que estoy
             * para cambiar a la siguiente linea */
            printf("%c\n", lleno);
            k++;
            if(k != filas)
                printf("%c %c", car++, lleno);
        }
    }
    /* Imprimo el borde inferior de la tabla */
    printf("  ");
    for(i = 0; i < columnas + 2; ++i)
        putchar(lleno);
    puts("");
#1499
Algunas cosillas:

El uso de gets te puede llevar a problemas si introducen un dato mas largo de lo que puedes alojar.

Para usaro getch() debes introducir la cabecera conio.h, que es una librería que solo usa el compilador de Borland, aunque hay librerías independientes que ofrecen compatibilidad, no está bien visto el usarla. Está tan mal vista o mas que goto.

fflush(stdin) es muy mal hábito. No tendrá el efecto deseado en muchos compiladores, por lo que debes encontrar otra forma de vaciar el buffer.



La función IntroNota() está mal diseñada. Pides la cantidad de alumnos con cant_alum, pero no haces nada con ella. Regresas un dato de tipo alumno, rellenado con las notas, eso sí, pero que no tiene nombre y con esto machacas al alumno que está en main(): ahora tendrá las notas, pero los nombres, apellidos y los nombres de las materias son sustituidos por basura.
Posibles soluciones: punteros y pasar el alumno por referencia, pero no has aprendido a usarlos aún.  Podrías hacer un array de alumnos global, pero entonces no podrías indicar en tiempo de ejecución cuántos alumnos tienes. Tu única solución, por ahora, es que el código para introducir las notas esté dentro de main() así el programa te funcionará.
#1500
Te va a gustar la música de Two Steps From Hell. Todo es música épica. En youtube tienen mucho puesto.