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]
1  Programación / Programación General / Re: Ejercicio Pascal en: 4 Enero 2012, 11:26 am
Lo que pasa es que en el ejemplo que he puesto los espacios también los cuento como columnas (las dos columnas en blanco).
2  Programación / Programación General / Ejercicio Pascal en: 1 Enero 2012, 23:41 pm
Buenas noches, tengo un problema con un ejercicio de Pascal, el ejercicio consiste en escribir un programa que a partir de un número entero impar, forme figuras de este tipo:
Código:
Número = 5

5
  4
    3
  2
1

Tengo todo el ejercicio hecho, pero me falta una parte, si hay 5 filas y 5 columnas, ¿cuál sería el número de espacios en función de las filas, que debería poner?
Código
  1. PROGRAM P04_8;
  2. USES    CRT;
  3. VAR     N, i, j, k, cont: integer;
  4. BEGIN
  5.        Write('Introduce un numero positivo impar: ');
  6.        Read(N);
  7.  
  8.        FOR i := 1 TO N DO
  9.                cont := 0;
  10.                FOR j := 1 TO N DO
  11.                        BEGIN
  12.                                IF (j MOD 2 <> 0) AND (cont = 0) THEN
  13.                                        BEGIN
  14.                                                IF (i <> 1) THEN
  15.                                                        BEGIN
  16.                                                                k := ;   <------ k = Numero de espacios antes del numero, para la fila actual
  17.                                                                REPEAT
  18.                                                                        BEGIN
  19.                                                                                Write(' ');
  20.                                                                                k := k - 1;
  21.                                                                        END;
  22.                                                                UNTIL k = 0;
  23.                                                        END;
  24.                                                Write(N - i + 1);
  25.                                                cont := cont + 1;
  26.                                        END;
  27.                                IF (cont <> 0) THEN Write(' ');
  28.                        END;
  29.  
  30. READKEY;
  31. END.

No se si me he explicado bien.
3  Programación / Programación C/C++ / Re: Hacer un programa que responda preguntas en: 22 Diciembre 2011, 16:31 pm
Para que cuando introduzcas un número distinto de 1 o 2 te escriba un mensaje tienes que poner esto:
Código
  1. switch (dia) {
  2.              case 1:
  3.                   printf("Lunes\n");
  4.                   break;
  5.              case 2:  
  6.                   printf("Martes\n");
  7.                   break;
  8.      default:
  9.   printf("Introduce un numero valido\n");
  10.                   break;
  11.                   }

En 'default' pones las instrucciones que quieres que se ejecuten cuando no se introduzca ninguno de los números anteriores.

Sobre la segunda pregunta: no se pueden evaluar strings en C, puedes evaluar numeros y letras.
Para evaluar letras:
Código
  1. char dia;
  2. printf("Elige un dia: \n");
  3. scanf("%c" , &dia);
  4. switch (dia) {
  5. case 'A': printf("Lunes\n");
  6.  break;
  7. case 'B': printf("Martes\n");
  8.  break;
  9. default: printf("Introduce una letra valida");
  10. }

Mira esta página si quieres ver como evaluar cadenas: http://foro.elhacker.net/programacion_cc/iquestse_puede_hacer_switch_a_una_cadena_de_caracteres-t215028.0.html

Saludos
4  Informática / Hardware / Re: ¿Cuál es la pieza de tu ordenador que más aprecias? en: 21 Diciembre 2011, 22:50 pm
La pieza más preciada, el procesador, Intel Core2Quad Q6600.
5  Programación / Programación C/C++ / Re: Hacer un programa que responda preguntas en: 21 Diciembre 2011, 21:45 pm
Hola preython, lo que necesitas para tu programa es una instrucción 'switch' o un conjunto de instrucciones 'if' anidadas.

Mira está pagina que explica de forma fácil la sentencia 'switch': http://www.bloginformatico.com/sentencia-switch-lenguaje-de-programacion-c.php

Si no quieres usar un 'switch', podrías hacer algo parecido a esto:
Código
  1. int main(void)
  2. {
  3.  int op;
  4.  
  5.  printf("Introduce una opcion: \n");
  6.  scanf("%d", &op)
  7.  
  8.  if (op = 1) printf("Respuesta 1");
  9.  if (op = 2) printf("Respuesta 2");
  10.  if (op = 3) printf("Respuesta 3");
  11.  
  12.  if (op != 1) && (op != 2) && (op != 3) printf("No se encuentra la respuesta");
  13.  
  14.  return 0;
  15. }

Te recomiendo que mires un poco está página: http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Instrucciones_de_control

Saludos.
6  Programación / ASM / Re: Problema con sufijos en ASM de AT&T en: 20 Diciembre 2011, 15:08 pm
Gracias por responder Eternal Idol, al final lo he solucionado ensamblando y linkeando por separado para una máquina de 32 bits que es como he aprendido a programar.

Código
  1. as --32 -o power.o power.s
  2. ld -m elf_i386 -o power power.o
7  Programación / ASM / [SOLUCIONADO]Problema con sufijos en ASM de AT&T en: 20 Diciembre 2011, 13:46 pm
Hola buenas, tengo un problema al ensamblar un programa escrito en ensamblador con sintaxis de AT&T en un ordenador Linux de 64 bits.
El problema es que al ensamblar con:
Código
  1. gcc -nostartfiles -g -o power power.s

Me da estos errores:
Código:
power.s: Assembler messages:
power.s:10: Error: operand type mismatch for `push'
power.s:17: Error: operand type mismatch for `pop'
power.s:24: Error: operand type mismatch for `push'
power.s:45: Error: operand type mismatch for `pop'

Si pongo pushb, pushw, pushl o pushq no se soluciona el problema.
A ver si me podéis ayudar.


Este es mi programa fuente:
Código
  1. .section .data
  2. .section .text
  3. .globl _start
  4. _start:
  5. push $3
  6. push $2
  7. call power
  8. add $8, %esp
  9.  
  10. push %eax
  11.  
  12. push $2
  13. push $5
  14. call power
  15. add $8, %esp
  16.  
  17. pop %ebx
  18. add %eax, %ebx
  19. mov $1, %eax
  20. int $0x80
  21.  
  22. .type power, @function
  23. power:
  24. push %ebp
  25. mov %esp, %ebp
  26. sub $4, %esp
  27.  
  28. mov 8(%ebp), %ebx
  29. mov 12(%ebp), %ecx
  30.  
  31. mov %ebx, -4(%ebp)
  32.  
  33. power_loop_start:
  34. cmp $1, %ecx
  35. je end_power
  36. mov -4(%ebp), %eax
  37. imul %ebx, %eax
  38. mov %eax,-4(%ebp)
  39. dec %ecx
  40. jmp power_loop_start
  41.  
  42. end_power:
  43. mov -4(%ebp), %eax
  44. mov %ebp, %esp
  45. pop %ebp
  46. ret
  47.  
8  Informática / Software / Re: Problema SYSINFO.OCX no está registrado en: 6 Diciembre 2011, 15:49 pm
Hola lamaruja, tienes que registrar el archivo ActiveX (.OCX).

Abre una consola de Windows (cmd.exe) y utiliza el siguiente comando:

Código:
Regsvr32 C:\Windows\System32\SYSINFO.OCX

Espero que te ayude ^^
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines