es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Creando un diamante con un ancho y alto específicos en c (gnuplot)

Entonces estoy intentando hacer un programa que imprima las coordenadas de un rombo de ancho n y altura n y luego representar la figura que se hace con el programa con gnuplot. Ya tengo este código hecho, pero quiero hacerlo más fácil.

#include <stdio.h>

#include <stdlib.h>

#define DEF 10

int main()
{
float def_an, def_al, slope, i, j, height, width;
FILE *out = fopen ( “diamond.out”, “w” );

if(out==NULL)
{
    printf("Error de salida");
    return 1;
}

printf("Introduce la altura: "); 
scanf("%f", &height); 
printf("Introduce el ancho: "); 
scanf("%f", &width); 
def_al=(height/DEF);
def_an=(width/DEF);
slope=(height/width);


for(j=0;j<= height/2;j+=def_al) 
{ 
    for(i=((j-(height/2))/slope);i<=(((height/2)-j)/slope);i+=def_an) 
    {   
        printf("%.2f %.2f\n",i,j); 
        fprintf (out, "%.2f %.2f\n", i,j );
    } 
} 

for(j=(0-def_al);j>= -height/2;j-=def_al) 
{ 
    for(i=(((-height/2)-j)/slope);i<=((j-(-height/2))/slope);i+=def_an) 
    {   
        printf("%.2f %.2f\n",i,j); 
        fprintf (out, "%.2f %.2f\n", i,j );
    } 
} 

fclose(out);

return 0; 

}</stdlib.h></stdio.h>

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Programa para mostrar las coordenadas de un diamante de ancho y alto “n” y representar la figura con gnuplot

    Introducción

    En este código, estamos tratando de hacer un programa que muestre las coordenadas de un diamante de ancho “n” y alto “n” y represente la figura con gnuplot. El programa toma dos entradas: altura y ancho, y muestra las coordenadas correspondientes de los vértices del diamante.

    Explicación del código

    El código toma las entradas de altura y ancho, y calcula los valores predeterminados del ángulo y la pendiente utilizando macros predefinidas. Luego utiliza dos bucles, uno para la mitad superior del diamante y otro para la mitad inferior. En cada bucle, calculamos las coordenadas de los puntos que representan el diamante y las imprimimos en la consola y en un archivo llamado diamond.out.

    Código

    #include <stdio.h> 
    #include <stdlib.h> 
    #define DEF 10
    
    int main() 
    { 
        float def_an,def_al,slope,i,j,height,width; 
        FILE *out = fopen ( "diamond.out", "w" );
    
        if(out==NULL)
        {
            printf("Salida incorrecta");
            return 1;
        }
    
        printf("Introduce la altura: "); 
        scanf("%f", &height); 
        printf("Introduce el ancho: "); 
        scanf("%f", &width); 
    
        def_al=(height/DEF);
        def_an=(width/DEF);
        slope=(height/width);
    
        for(j=0;j<= height/2;j+=def_al) 
        { 
            for(i=((j-(height/2))/slope);i<=(((height/2)-j)/slope);i+=def_an) 
            {   
                printf("%.2f %.2f\n",i,j); 
                fprintf (out, "%.2f %.2f\n", i,j );
            } 
        } 
    
        for(j=(0-def_al);j>= -height/2;j-=def_al) 
        { 
            for(i=(((-height/2)-j)/slope);i<=((j-(-height/2))/slope);i+=def_an) 
            {   
                printf("%.2f %.2f\n",i,j); 
                fprintf (out, "%.2f %.2f\n", i,j );
            } 
        } 
        fclose(out);
        return 0; 
    } 
    

    Conclusión

    El código anterior toma dos entradas, altura y ancho, y calcula las coordenadas de un diamante utilizando dos bucles. También escribe la salida en un archivo llamado diamond.out. Podemos usar gnuplot para representar la figura utilizando las coordenadas generadas por este programa.</stdlib.h></stdio.h>

Comments are closed.