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

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Ejercicio Pascal
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ejercicio Pascal  (Leído 2,356 veces)
BioHazardTM

Desconectado Desconectado

Mensajes: 8



Ver Perfil
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.


En línea

kaiserr

Desconectado Desconectado

Mensajes: 242


constancia y dedicacion


Ver Perfil
Re: Ejercicio Pascal
« Respuesta #1 en: 3 Enero 2012, 20:31 pm »

mmmm
y si utilizas por ejemplo:

Código:
write(a:5)

Con esto mueves el valor de a (en mi caso, en el tuyo el valor que quieras mover) 5 posiciones.
No domino mucho el lenguaje pero ahora mismo me pongo hacer el codigo a ver si me sale.
--------------------------------------------------------------------------

Rectifico:

Al haber 5 linias es posible que haya 5 columnas?, es decir, en el ejemplo que has puesto hay 5 linias pero solo utilizas 3 columnas

Código:
5
  4
    3
  2
1





« Última modificación: 3 Enero 2012, 20:54 pm por kaiserr » En línea

BioHazardTM

Desconectado Desconectado

Mensajes: 8



Ver Perfil
Re: Ejercicio Pascal
« Respuesta #2 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).
En línea

W0lFy


Desconectado Desconectado

Mensajes: 551



Ver Perfil WWW
Re: Ejercicio Pascal
« Respuesta #3 en: 5 Enero 2012, 10:43 am »

por que no cambias un poquito la funcion, te dejo una que se entiende mejor:
Código
  1. PROGRAM
  2. VAR
  3. a:integer;
  4.  
  5. PROCEDURE escrbirImpar(num:integer)
  6. VAR i,j,limite,cont:integer;
  7. BEGIN
  8. cont:=0;
  9. limite= num div 2 + num mod 2;
  10. FOR i := num DOWNTO 1 BEGIN
  11. cont = (i div limite) * (limite - (i Mod limite + 1)) + ((i Mod limite - 1) - (i div limite) * (i Mod limite - 1))
  12.    For j:= 1 To cont
  13.         print(' ');
  14.    println(i);
  15.    END;
  16. END;
  17.  
  18. BEGIN
  19. read(a);
  20. escrbirImpar(a);
  21.  
  22. END.




Pd. Habra algún error de compilación no recuerdo si los procedimientos ivan arriba o abajo de las variables... espero que te sirva :D
« Última modificación: 5 Enero 2012, 11:19 am por ¤¤¤K@NuTöM@N¤¤¤ » En línea

K@NuT0
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ejercicio en pascal
Ejercicios
esplu 2 4,200 Último mensaje 30 Noviembre 2009, 13:02 pm
por esplu
ejercicio de pascal « 1 2 »
Programación General
SXF 10 6,659 Último mensaje 9 Noviembre 2010, 23:38 pm
por Lunfardo
ejercicio Pascal, ayuda para terminarlo « 1 2 »
Programación General
manu3742 16 9,038 Último mensaje 6 Abril 2011, 20:40 pm
por d(-_-)b
pascal que se ha cortedo ejercicio
Programación General
manu3742 1 2,748 Último mensaje 14 Abril 2011, 16:14 pm
por Khronos14
Ayuda ejercicio en Pascal
Programación General
mardek 1 1,925 Último mensaje 1 Mayo 2013, 22:03 pm
por Ferno
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines