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

#11
Bueno gracias por la ayuda  :¬¬ , de cualquier manera encontré el código como viene en el libro de soluciones aunque realmente no lo comprendo y estoy un poco frustrado porque mi compilador me da errores al ejecutarlo, utilizo "xcode".

#include <stdio.h>
#define TRUE 1
#define FALSE 0
#define MAX 100 /* the maximum number of commands */

/* function prototypes */
void getCommands( int commands[][ 2 ] );
int turnRight( int d );
int turnLeft( int d );
void movePen( int down, int a[][ 50 ], int dir, int dist );
void printArray( int a[][ 50 ] );

int main(int argc, const char * argv[])
{
    //Declaraciones
    int floor[ 50 ][ 50 ] = { 0 };
    int penDown = FALSE;
    int command;
    int direction = 0;
    int commandArray[MAX][ 2 ] = {0};
    int distance;
    int count = 0;
    //Fin Declaraciones
   
    getCommands( commandArray );
    command = commandArray[ count ][ 0 ];
   
    while(command!=9){
       
        switch (command) {
    case 2:
        penDown = TRUE;
        break; /* exit switch */
    case 3:
        direction = turnRight( direction );
        break; /* exit switch */
    case 4:
        direction = turnLeft( direction );
        break; /* exit switch */
    case 5:
        distance = commandArray[count][1];
        movePen( penDown, floor, direction, distance);
        break; /* exit switch */
    case 6:
        printf( "\nThe drawing is:\n\n" ); printArray( floor );
        break; /* exit switch */
        } /* end switch */
    command = commandArray[ ++count ][ 0 ];
} /* end while */
    return 0;
}/**************-FIN-DE-MAIN-***************/
void getCommands( int commands[][2]) {
    int i; /* counter */
    int tempCommand; /* temporary command holder */
   
   
    printf( "Enter command ( 9 to end input ): ");
    scanf( "%d", &tempCommand );
   
    /* recieve commands until -9 or 100 commands perform action */
    for(i=0;tempCommand!=9&&i<MAX;i++){ commands[ i ][ 0 ] = tempCommand;
        /* ignore comma after 5 is entered */
        if ( tempCommand == 5 ) {
            scanf( ",%d", &commands[ i ][ 1 ] );
        } /* end if */
        printf( "Enter command ( 9 to end input ): " );
        scanf( "%d", &tempCommand );
    }
    commands[ i ][ 0 ] = 9;
}/*   FIN DE GET COMMANDS  */
int turnRight( int d )
{
    return ++d > 3 ? 0 : d;
}
int turnLeft( int d ) {
    return --d < 0 ? 3 : d;
}
void movePen( int down, int a[][ 50 ], int dir, int dist ) {
    int i;
    int j;
    static int xPos = 0;
    static int yPos = 0;
   
    /* determine which way to move pen */
    switch(dir){
        case 0:
             for (j=1;j<=dist&&yPos+j<50;j++){
                 if (down) {
                a[xPos][yPos+j]=1;
                 } /* end if */
             }
            yPos += j - 1;
            break; /* exit switch */
           
        case 1: /* move down */
    /* move dist spaces or until edge of floor */
            for (i=1;i<=dist&&xPos+i<50;i++){
                if (down) {
                    a[xPos+i][yPos] =1;
                }
            }
            xPos += i - 1;
            break;
           
        case 2: /* move to the left */
            for (j=1;j<=dist&&yPos-j>=0;j++){
                if (down){
                    a[xPos][yPos-j]=1;
                } /* end if */
            }
            yPos -= j - 1;
            break; /* exit switch */
           
        case 3: /* move up */
            /* move dist spaces or until edge of floor */
            for (i=1;i<=dist&&xPos-i>=0;i++){
                if (down){
                    a[xPos-i][yPos]=1;
                } /* end if */
            }
            xPos -= i - 1;
            break; /* exit switch */
    }
}
void printArray( int a[][ 50 ] ) {
    int i; /* counter */
    int j; /* counter */
    /* loop through array */
    for ( i = 0; i < 50; i++ ) {
        /* loop through array */
        for ( j = 0; j < 50; j++ ) {
            putchar( a[ i ][ j ] ? '*' : ' ' );
        } /* end for */
        putchar( '\n' );
    } /* end for */
}


El código está simplemente copiado y como dije anteriormente me gustaría saber como es que esto.. if ( tempCommand == 5 ) {
scanf( ",%d", &commands[ i ][ 1 ] );
} /* end if */

ignora la coma pues lee la variable tempCommand pero ésta fue previamente escaneada y ahí luego luego viene mi problema al meter el 5 y la coma, si alguien me pudiera ayudar se lo agradecería para avanzar en mi aprendizaje.
#12
Hola, gracias por admitirme en el foro, tengo el siguente problema:
Estoy haciendo un ejercicio del libro de Deitel "Como programar en C/C++"
El ejercicio trata de hacer gráficos de tortuga, el problema lo tengo al hacer una función para introducir los comandos que se van a realizar, los comandos van en forma de número y el problema que tengo es que al introducir el comando '5' debo poner 5 una coma y el numero de movimientos, es decir que este comando sirve para mover la tortuga x movimientos por ejemplo si pongo "5,9" la tortuga se moverá 9 casillas, mi problema es que no entiendo como declarar el arreglo o como hacer que simplemente ignore la coma, ¿alguien sabe como podría solucionarlo? Gracias.

void guarda_comandos(int comands[COMANDOS]){
    int i, x;
   
    for (x = 0; i != 9 && x < COMANDOS; x++) {
        printf("Introduzca el próximo comando: ");
        scanf("%d", &i);
        comands[x] = i;
    }
    for (x = 0; x < COMANDOS && comands[x] != 0; x++) {
        printf("%d", comands[x]);
    }
}
#13
A mí me pasó exactamente lo que dices, encontré aplicaciones en mac con intenciones muy especiales que siempre estuve buscando en windows y es extraño que aunque existen menos usuarios para mac, sus aplicaciones son muy variadas y su interfaz por lo regular está mejor desarrollada, a mi desde un principio me encantó que mac tiene el "quicklook" vista rápida para ver una previsualización de fotos, videos, canciones, documentos, pdfs, txts, etc., en Windows para tener algo así necesitas descargarte algo como ACDSee o parecido mientras que en Mac ya viene por defecto, aparte desconozco si el ACDSee u otros gestores puedan tener una vista rápida de otra cosa que no sean fotos. El problema que encuentro en Mac es que ahora que tienen ganados los clientes del ipad e iphone se han centrado mas en ello que en mejorar el software de las computadoras y ahora simplemente las adaptan para que se parezcan lo mas posible a iOS, quien sabe que vaya a pasar en un futuro pero de que existe software muy bueno en Mac pues a mi opinión si, y mejor que lo que he podido encontrar en Windows y Linux, claro siempre habrá alguna que otra cosa que no se pueda transportar a Mac y necesites forzosamente Windows, de cualquier manera le tengo cariño a Windows por el tiempo que estuve con él pese a todos sus bugs y las ralentizaciones que experimenta.
#14
Cita de: chilenoide en 25 Octubre 2012, 01:39 AM
mira debe sumar las tres nota por EJ:

5.0+5.0+5.0=150-:-3=5.0 aprueba- me entiendes ahora con notas diferente

6.0+4.5+5.4=159-:-3=5.3 aprueba vez :D eso es facil esque soy nuevo en esot y no se aplicarlo ayuda porfa

Quieres que si el promedio es mayor o igual a 4.7 imprima en pantalla que aprobó?

if (califTotal >= 4.7) {
"Aprueba"
}
else "Reprueba";
´


Tu programa está enredado y la verdad yo no sé c++ apenas estoy estudiando c pero te sirve en c++ el código que te dí aquí arriba, claro, adaptandolo a c++ y a las variables de tu programa que son un chorizo  :silbar: