Buscar

Desafio de Programação: Quadrado Mágico em C

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

AVALIACAO FORMATIVA 10
PROGRAMACAO DE COMPUTADORES
Alunas: Sara Oliveira e Julia Storino
DESAFIO 1 - Quadrado magico 
Objetivo:
projetar um algoritmo e codifica-lo em linguagem C que seja capaz de gerar um quadrado 
magico de ordem 4x4, e que a soma de linhas e colunas seja 34.
Algoritmo:
Algoritmo
{Declaracao de variaveis}
Declare matrizA[0:4; 0:4], i, j, numero numerico
{Atribuicao de valores}
Para i ← 0 ate 4 passo 1 faca
Para j ← 0 ate 4 passo 1 faca
matrizA[0:4; 0:4] ← 0
Fim para
Fim para
numero ←0
{Primeiro passo}
Para i ← 0 ate 4 passo 1 faca 
Para j ← 0 ate 4 passo 1 faca
numero ← numero+1
se i=j || I+J=3
matrizA[i,j] ← numero
fim-se
Fim para
Fim para
{Segundo passo}
numero ← 0
Para i ← 4 ate 0 passo 1 faca
Para j ← 4 ate 0 passo 1 faca 
numero ← numero+1
se matrizA[i][j]=0
matrizA[i,j] ← numero
fim-se
Fim para
Fim para
{Impressao}
Para i ← 0 ate 4 passo 1 faca
Para j ← 0 ate 4 passo 1 faca
Imprima matrizA[i,j]
Fim para
Fim para
Fim Algoritmo
Texto em C
#include <stdio.h>
int main() {
 // declaracao de variaveis
 int matA[4][4], i, j, numero;
 // atribuicao
 for (i=0;i<4;i++)
 { for (j=0;j<4;j++)
 {
 matA[i][j]=0;
 numero=0; }
 }
 numero=0;
 // primeiro passo
 for (i=0;i<4;i++)
 { for (j=0;j<4;j++)
 {
 if (i==j || i+j==3)
 { numero=numero+1;
 matA[i][j]=numero;
 }
 else numero=numero+1;
 }
 }
 // segundo passo
 numero=0;
 
 for (i=3;i>-1;i--)
 { for (j=3;j>-1;j--)
 { numero=numero+1;
 if (matA[i][j]==0)
 matA[i][j]=numero;
 }
 }
 // impressao
 for (i=0;i<4;i++)
 { for (j=0;j<4;j++)
 {
 printf("%4d", matA[i][j]);
 if (j==3)
 {
 printf("\n\n");
 }
 }
 }
}
Testes
 1 15 14 4
 12 6 7 9
 8 10 11 5
 13 3 2 16
Program ended with exit code: 0

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando