No. 28 de 56 de articulos. Practicas C

Articulos encontrados...

Prácticas y Ejercicios con Solución

Ejercicios : Cuadrado mágico de orden impar.

Ejercicios con solución y prácticas resueltas de programación en c,nuevos ejercicios de programación en lenguaje C. El enunciado de las prácticas y ejercicios que se plantea es el siguiente: un nuevo ejercicio propuesto por uno de nuestro seguidores del blog www.aprendoencasa.com que nos propone unos ejercicios o prácticas en la que se plantea especificar un número impar como constante y de esta forma crear lo que se denomina como un “Cuadrado Mágico”, un cuadrado mágico es una rejilla o cuadricula en la que se visualizan una cantidad impar de posiciones tanto en horizontal como en vertical, es decir 3×3, 5×5, etc. A continuación se rellenan las posiciones de dicha cuadricula empezando por el valor 1 y al terminar de rellenar la cuadricula se obtendrá que la suma tanto horizontal como vertical de una columna o fila suman los mismo.

Vuelvo a comentar que no es la única solución posible y que la forma de mejorar siempre estas prácticas es que aportéis vuestro granito de arena utilizando para ello los comentarios. Un saludo y gracias por vuestra visita.

Para realizar las practicas o consultar los ejercicios de programación resueltos has de pulsar sobre el enlace a continuación denominado “LEER EL ARTICULO COMPLETO”. Recuerda también darnos ánimos haciendo un clic en el botón google+1 de la columna izquierda o el que esta situado en la parte superior del articulo, así como recomendar la visita a nuestra página a tus amigos.

Ejercicios y practicas de programación en c resueltos o con solución

El ejercicio planteado es el siguiente:

Prácticas: Cuadrado mágico de orden impar.

Ejercicios y Practicas resueltas en lenguaje de programación en C

se plantea especificar un número impar como constante y de esta forma crear lo que se denomina como un “Cuadrado Mágico”, un cuadrado mágico es una rejilla o cuadricula en la que se visualizan una cantidad impar de posiciones tanto en horizontal como en vertical, es decir 3×3, 5×5, etc. A continuación se rellenan las posiciones de dicha cuadricula empezando por el valor 1 y al terminar de rellenar la cuadricula se obtendrá que la suma tanto horizontal como vertical de una columna o fila suman los mismo. La solución de los ejercicios que se plantean es la siguiente:

/*

  CUADRADO MAGICO DE ORDEN IMPAR

  ===============================

  WWW.APRENDOENCASA.COM

  WWW.APRENDOENCASA.ES

Nuevos ejercicios de programación con solución propuestos por un lector del
blog www.aprendoencasa.com, en esta ocasión las prácticas resueltas a realizar
consiste en especificar un número impar como constante y de esta forma crear lo
que se denomina como un "Cuadrado Mágico", un cuadrado mágico es una rejilla o
cuadricula en la que se visualizan una cantidad impar de posiciones tanto en
horizontal como en vertical, es decir 3x3, 5x5, etc. A continuación se rellenan
las posiciones de dicha cuadricula empezando por el valor 1 y al terminar de
rellenar la cuadricula se obtendrá que la suma tanto horizontal como vertical
de una columna o fila suman los mismo. Volver a comentar que seguro que existen
otros tipos de soluciones a los ejercicios aquí propuestos y estaré agradecido
si queréis realizar algún tipo de comentario o plantear alguna solución nueva
al ejercicio resuelto que aquí se plantea.

*/

// Inclusión de librería a utilizar en el programa
#include <stdio.h>
#include <stdlib.h>

// Constantes a utilizar en el programa

#define CUANTOS 3

// Función principal del programa

int main(int argc, char *argv[])

{

    // Creación de la matriz que contendrá los números
    // esta matriz se crea utilizando la constante creada
    // anteriormente, se ha de tener en cuenta que para que
    // funcione correctamente el programa la matriz ha de ser
    // cuadrada y de orden impar

    int Matriz[CUANTOS][CUANTOS];

    // Variable a utilizar como contador de números

    int contador=0;

    // Variables a utilizar para determinar la posición x e y en la matriz
    // almacenar las posiciones y los limites de la matriz

    int x=0;
    int y=0;
    int vx=0;
    int vy=0;

    // Número de números que hay que contar y limites de la matriz

    int limite=CUANTOS*CUANTOS;
    int limitex = CUANTOS - 1;
    int limitey = CUANTOS - 1;

    // Inicializar los valores de la matriz a 0

    for( x=0 ; x<CUANTOS ; x++)
    {
       for( y=0 ; y<CUANTOS ; y++ )
         {
              Matriz[x][y] = 0;
        }
    }

    // Establecer la posición x e y inicial de la matriz donde almacenar
    // el primer numero siendo en la primera fila posición central

    x = CUANTOS / 2;
    y = 0;

    // El primer numero se sitúa en la casilla central de la fila
    // superior de la matriz, a continuación el siguiente numero se
    // sitúa en la diagonal arriba derecha, es decir una posición
    // de fila mas alta y una posición de columna a la derecha, en
    // caso de ya estar ocupada la casilla se sitúa el numero correspondiente
    // debajo de la casilla de donde se partía inicialmente, si al
    // desplazarse por la matriz se superan los limites por algún sitio
    // se entra a la misma por el lado contrario, es decir si nos pasamos
    // de posición por la parte derecha de la matriz se empieza por la parte
    // izquierda de la misma, y así en todos los sentidos.

    // Bucle que se ejecuta el numero de casilla que contiene la matriz

    for(contador=1;contador<=limite;contador++)
    {
       // Asignar la posición del numero en la matriz

        Matriz[y][x] = contador;

        // Guardar la posición actual

        vx = x;
        vy = y;

        // Aumentar la posición de x si sobrepasa el limite derecho
        // situarla en el limite izquierdo

        x++;

        if( x > limitex ) x = 0;

        // Disminuir la posición de y, ya que se pretende avanzar en
        // diagonal

        y--;

        if( y < 0 ) y = limitey;

        // Se comprueba si la posición ya esta ocupada por un numero
        // si es así se vuelve a la posición original y se resitúa el
        // numero justo en la casilla inferior

        if (Matriz[y][x]>0)
        {
            // La casilla esta ocupada y se asigna el numero en la
            // casilla situada justo debajo de la casilla de donde procedía

            x = vx ;
            y = vy +1 ;
        }
    }

    // Visualizar la matriz
    printf("\nCUADRADO MAGICO - WWW.APRENDOENCASA.COM\n");
    for( x=0 ; x<CUANTOS ; x++)
    {
         for( y=0 ; y<CUANTOS ; y++ )
         {
              printf("|%3d|",Matriz[x][y]);
         }
         printf("\n");
    }
    printf("\nGRACIAS POR SU VISITA - WWW.APRENDOENCASA.ES\n\n");

 system("PAUSE");
  return 0;

}

El resultado del ejercicio una vez ejecutado es el que se muestra en la siguiente imagen, la cual muestra el cuadrado mágico en acción relleno con los números :

Ejercicios y prácticas resueltas de programación en c

Ejercicios y prácticas resueltas de programación en lenguaje c

Navegacion SeriesAnterior en la serie...Siguiente en la serie...

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies