Buscar

EP 8-F de Introdução à Programação 2016/01 Nota 80

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

ep8-F/.DS_Store
__MACOSX/ep8-F/._.DS_Store
ep8-F/EP 08.pdf
INF 01040 – Introdução à Programação
Exercícios
Entrega Programada 8
Entrega Programada 8 - F
Descrição: Rotacionando Matrizes
Seu programa deverá ler um número n (com 0 < n <= 5), e uma matriz A de ordem n. Ele então 
deverá ler uma série de comandos, dados por um único caractere (sem aspas):
“L” – rotacionar a matriz para a esquerda (sentido anti-horário)
“R” – rotacionar a matriz para a direita (sentido horário)
“P” – imprimir a matriz
“Q” – encerrar o programa
Notem que cada movimento de rotação deve ser gravado na matriz original. O comando P é o único
que não altera o conteúdo da matriz.
Dica: Para rotacionar cada elemento da matriz para a esquerda, você pode usar B[i, j] 
 A[j, n - i - 1]. Para rotacionar os elementos da matriz para a direita, você pode 
usar B[i, j]  A[n - j - 1, i]
Atenção: O programa deverá ser entregue pelo moodle.
__MACOSX/ep8-F/._EP 08.pdf
ep8-F/ep08.c
#include <stdio.h>
main ()
{
 char a;
 int i, j, n;
 int B[5][5];
 do
 {
 printf("Digite um numero inteiro que pertenca ao intevalo de 1 a 5:");
 scanf("%d", &n);
 }while (n<1||n>5);
 for(i=0; i<n; i++)
 {
 for(j=0 ;j<n; j++)
 {
 printf("Informe o valor da linha %d e da coluna %d: ", i+1, j+1);
 scanf("%d", &B[i][j]);
 }
 }
 printf("\n");
 for(i=0; i<n; i++)
 {
 printf("\n");
 for(j=0; j<n; j++)
 {
 printf("%02d \t", B[i][j]);
 }
 }
 while (a!='Q')
 {
 printf("\n\nE gira a matriz para a esquerda.\nD gira a matriz para a direita.\nP imprime a matriz.\nQ encerra o programa.\n Dados os comandos, digite o que voce deseja:");
 scanf(" %c", &a);
 switch(a)
 {
 case 'E':
 printf("\n");
 for(i=0; i<n; i++)
 {
 printf("\n");
 for(j=0; j<n; j++)
 {
 printf("%02d \t", B[j][n-i-1]);
 }
 }
 break;
 case 'D':
 printf("\n");
 for(i=0; i<n; i++)
 {
 printf("\n");
 for(j=0; j<n; j++)
 {
 printf("%02d \t", B[n-j-1][i]);
 }
 }
 break;
 case 'P':
 printf("\n");
 for(i=0; i<n; i++)
 {
 printf("\n");
 for(j=0; j<n; j++)
 {
 printf("%02d \t", B[i][j]);
 }
 }
 break;
 default:
 printf("\nModo invalido.");
 }
 }
}

Teste o Premium para desbloquear

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

Outros materiais