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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Re: Programa de gráficos de tortuga en: 31 Octubre 2012, 04:33 am
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".

Código
  1. #include <stdio.h>
  2. #define TRUE 1
  3. #define FALSE 0
  4. #define MAX 100 /* the maximum number of commands */
  5.  
  6. /* function prototypes */
  7. void getCommands( int commands[][ 2 ] );
  8. int turnRight( int d );
  9. int turnLeft( int d );
  10. void movePen( int down, int a[][ 50 ], int dir, int dist );
  11. void printArray( int a[][ 50 ] );
  12.  
  13. int main(int argc, const char * argv[])
  14. {
  15.    //Declaraciones
  16.    int floor[ 50 ][ 50 ] = { 0 };
  17.    int penDown = FALSE;
  18.    int command;
  19.    int direction = 0;
  20.    int commandArray[MAX][ 2 ] = {0};
  21.    int distance;
  22.    int count = 0;
  23.    //Fin Declaraciones
  24.  
  25.    getCommands( commandArray );
  26.    command = commandArray[ count ][ 0 ];
  27.  
  28.    while(command!=9){
  29.  
  30.        switch (command) {
  31.    case 2:
  32.        penDown = TRUE;
  33.        break; /* exit switch */
  34.    case 3:
  35.        direction = turnRight( direction );
  36.        break; /* exit switch */
  37.    case 4:
  38.        direction = turnLeft( direction );
  39.        break; /* exit switch */
  40.    case 5:
  41.        distance = commandArray[count][1];
  42.        movePen( penDown, floor, direction, distance);
  43.        break; /* exit switch */
  44.    case 6:
  45.        printf( "\nThe drawing is:\n\n" ); printArray( floor );
  46.        break; /* exit switch */
  47.        } /* end switch */
  48.    command = commandArray[ ++count ][ 0 ];
  49. } /* end while */
  50.    return 0;
  51. }/**************-FIN-DE-MAIN-***************/
  52. void getCommands( int commands[][2]) {
  53.    int i; /* counter */
  54.    int tempCommand; /* temporary command holder */
  55.  
  56.  
  57.    printf( "Enter command ( 9 to end input ): ");
  58.    scanf( "%d", &tempCommand );
  59.  
  60.    /* recieve commands until -9 or 100 commands perform action */
  61.    for(i=0;tempCommand!=9&&i<MAX;i++){ commands[ i ][ 0 ] = tempCommand;
  62.        /* ignore comma after 5 is entered */
  63.        if ( tempCommand == 5 ) {
  64.            scanf( ",%d", &commands[ i ][ 1 ] );
  65.        } /* end if */
  66.        printf( "Enter command ( 9 to end input ): " );
  67.        scanf( "%d", &tempCommand );
  68.    }
  69.    commands[ i ][ 0 ] = 9;
  70. }/*   FIN DE GET COMMANDS  */
  71. int turnRight( int d )
  72. {
  73.    return ++d > 3 ? 0 : d;
  74. }
  75. int turnLeft( int d ) {
  76.    return --d < 0 ? 3 : d;
  77. }
  78. void movePen( int down, int a[][ 50 ], int dir, int dist ) {
  79.    int i;
  80.    int j;
  81.    static int xPos = 0;
  82.    static int yPos = 0;
  83.  
  84.    /* determine which way to move pen */
  85.    switch(dir){
  86.        case 0:
  87.             for (j=1;j<=dist&&yPos+j<50;j++){
  88.                 if (down) {
  89.                a[xPos][yPos+j]=1;
  90.                 } /* end if */
  91.             }
  92.            yPos += j - 1;
  93.            break; /* exit switch */
  94.  
  95.        case 1: /* move down */
  96.    /* move dist spaces or until edge of floor */
  97.            for (i=1;i<=dist&&xPos+i<50;i++){
  98.                if (down) {
  99.                    a[xPos+i][yPos] =1;
  100.                }
  101.            }
  102.            xPos += i - 1;
  103.            break;
  104.  
  105.        case 2: /* move to the left */
  106.            for (j=1;j<=dist&&yPos-j>=0;j++){
  107.                if (down){
  108.                    a[xPos][yPos-j]=1;
  109.                } /* end if */
  110.            }
  111.            yPos -= j - 1;
  112.            break; /* exit switch */
  113.  
  114.        case 3: /* move up */
  115.            /* move dist spaces or until edge of floor */
  116.            for (i=1;i<=dist&&xPos-i>=0;i++){
  117.                if (down){
  118.                    a[xPos-i][yPos]=1;
  119.                } /* end if */
  120.            }
  121.            xPos -= i - 1;
  122.            break; /* exit switch */
  123.    }
  124. }
  125. void printArray( int a[][ 50 ] ) {
  126.    int i; /* counter */
  127.    int j; /* counter */
  128.    /* loop through array */
  129.    for ( i = 0; i < 50; i++ ) {
  130.        /* loop through array */
  131.        for ( j = 0; j < 50; j++ ) {
  132.            putchar( a[ i ][ j ] ? '*' : ' ' );
  133.        } /* end for */
  134.        putchar( '\n' );
  135.    } /* end for */
  136. }

El código está simplemente copiado y como dije anteriormente me gustaría saber como es que esto..
Código
  1. if ( tempCommand == 5 ) {
  2. scanf( ",%d", &commands[ i ][ 1 ] );
  3. } /* 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  Programación / Programación C/C++ / Programa de gráficos de tortuga en: 30 Octubre 2012, 06:00 am
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.

Código
  1. void guarda_comandos(int comands[COMANDOS]){
  2.    int i, x;
  3.  
  4.    for (x = 0; i != 9 && x < COMANDOS; x++) {
  5.        printf("Introduzca el próximo comando: ");
  6.        scanf("%d", &i);
  7.        comands[x] = i;
  8.    }
  9.    for (x = 0; x < COMANDOS && comands[x] != 0; x++) {
  10.        printf("%d", comands[x]);
  11.    }
  12. }
13  Foros Generales / Noticias / Re: ¿Por qué Windows no tiene (casi) aplicaciones atractivas? en: 26 Octubre 2012, 04:43 am
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  Programación / Programación C/C++ / Re: Ayuda con programa calculador de promedio en C++ en: 25 Octubre 2012, 02:22 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ó?

Código:
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:
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines