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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  programando en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: programando en c  (Leído 3,816 veces)
megadethrust1

Desconectado Desconectado

Mensajes: 3


Ver Perfil
programando en c
« en: 22 Abril 2016, 02:37 am »

como podria hacer un rombo de asteriscos en c de dimension arbitraria pero en el eje x=0 poner "+" y el el punto (0,0) poner "&".




En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: programando en c
« Respuesta #1 en: 22 Abril 2016, 02:39 am »

movido... las preguntas de c, van en el subforo de c


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: programando en c
« Respuesta #2 en: 22 Abril 2016, 12:58 pm »

Cuál es la duda ? se nota es una tarea que te dieron pero igual te ayudo desde la algoritmica: un rombo esta formado por 4 lineas diagonales, y ......


- Cada linea se hace con un simple bucle (solo una variable de control de bucle)

- El punto final de una, es el punto inicial de la otra

- Las pendientes son -1 o +1 (o sea... subes +1 en Y por cada 1 de variacion de X o bajas 1 en Y)


* Hay formas incluso mas simples de hacerlo con solo 2 bucles
« Última modificación: 22 Abril 2016, 15:31 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: programando en c
« Respuesta #3 en: 22 Abril 2016, 14:38 pm »

¿Así?
Código:
&  *
+ ***
+*****
+ ***
+  *

¿O así?
Código:
& *
+***
+****
+***
+ *
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: programando en c
« Respuesta #4 en: 22 Abril 2016, 15:08 pm »

No queda claro si es lleno o vacio el rombo y lo que interpreto es que los ++++++ atraviesan el rombo al medio y el & esta justo en su centro (aunque tampoco esta bien especificado el origen de coordenadas)

MAFUS: trocaste el eje X con el Y
« Última modificación: 22 Abril 2016, 15:30 pm por boctulus » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: programando en c
« Respuesta #5 en: 22 Abril 2016, 15:35 pm »

Dice cuando x = 0.
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: programando en c
« Respuesta #6 en: 22 Abril 2016, 17:51 pm »

MAFUS Tenes toda la razon  ;D



Tengo poco tiempo... pero me pude poner un rato y lo saqué  :xD

Código
  1. int main(void) {
  2. int diag = 6;
  3.  
  4. make_board(diag+1,diag+1,' ');
  5.  
  6. // rombo
  7. line(diag/2,0,1,1,diag/2,'a');
  8. line(diag,diag/2,-1,1,diag/2,'b');
  9. line(diag/2,diag,-1,-1,diag/2,'c');
  10. line(0,diag/2,1,-1,diag/2,'d');
  11.  
  12. // linea para x=0
  13. yblock(0,0,diag+1,'+');
  14.  
  15. //centro
  16. yblock(0,0,1,'&');
  17.  
  18. render();
  19.  
  20. release();
  21.    return 0;
  22. }
  23.  


Uso una implementación similar a la del problema de la pirámide y la definicion de line() es esta:

Código
  1. // Las lineas pueden ser discontinuas con deltas <> -1,0,+1 (por diseño)
  2. void line(int x1, int y1, int delta_x, int delta_y, int len, char c = '*'){
  3.  

Otras implementaciones de lineas que me hice fueron para:

Código
  1. void sline(int x1,int y1, int x2, int y2, char c = '*');
  2. void xblock(int x, int y, int len, char c = '*');
  3. void yblock(int x, int y, int len, char c = '*')
  4.  

Obviamente todo se puede hacer con line() y no se necesita más pero para lineas verticales y horizontales usar yblock() y xblock() puede ser mas comodo.

Si lo tuviera que re-hacer, dejaria un cursor en la posicion final de cada punto, linea, figura dibujada para no tener que calcular a mano ese valor de nuevo como punto de inicio de otras subsiguientes.

Obviamente el programa no compila porque no lo posté completo haciendo caso a recomendaciones del staff
« Última modificación: 23 Abril 2016, 03:12 am por Eternal Idol » En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
megadethrust1

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: programando en c
« Respuesta #7 en: 22 Abril 2016, 20:18 pm »

No queda claro si es lleno o vacio el rombo y lo que interpreto es que los ++++++ atraviesan el rombo al medio y el & esta justo en su centro (aunque tampoco esta bien especificado el origen de coordenadas)

MAFUS: trocaste el eje X con el Y
En realidad queria un reloj de arena.
Ya hice mi codigo use for, if,else, pero quiero que en el eje x=0 imprima + y en el punto (0,0) imprima &.
En línea

HardForo

Desconectado Desconectado

Mensajes: 219


HardForo.com


Ver Perfil WWW
Re: programando en c
« Respuesta #8 en: 23 Abril 2016, 02:10 am »

Creo puedes hacer el reloj de arena más facil que con bucles, mirá aqui

Si le hago la funcion Pintar(), y borras y redibujas la pantalla.... hasta puede tener movimiento tu reloj de arena (que creo es lo que quieres hacer en ultimo caso)

Si lo miras...... la forma de trabajar se ha simplificado del todo
En línea

HardForo:  foro de Hardware y programación

Se buscan Mods y colaboradores *
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Programando server
Programación Visual Basic
amtapias 4 1,530 Último mensaje 4 Marzo 2006, 18:52 pm
por sch3m4
Programando para MS-DOS
Programación Visual Basic
Hendrix 0 1,081 Último mensaje 26 Agosto 2006, 12:39 pm
por Hendrix
Programando con gtk+
Programación C/C++
Khronos14 5 3,650 Último mensaje 6 Enero 2011, 18:54 pm
por paju1986
hp programando
Programación General
bengy 1 2,337 Último mensaje 5 Agosto 2011, 11:07 am
por Debci
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines