capítulo vi – variáveis indexadas 6.1 – a necessidade de variáveis indexadas 6.2 – vetores...

Download Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações

Post on 17-Apr-2015

105 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • Slide 1
  • Captulo VI Variveis Indexadas 6.1 A necessidade de variveis indexadas 6.2 Vetores e matrizes 6.3 Aplicaes com vetores numricos 6.4 Aplicaes com matrizes numricas 6.5 Cadeias de caracteres 6.6 Aplicaes com vetores de cadeias de caracteres
  • Slide 2
  • 6.4 Aplicaes com Matrizes Numricas 6.4.1 Transformar uma matriz quadrada em sua transposta Matriz transposta de uma matriz quadrada aquela cujas linhas so as colunas da matriz original e cujas colunas so as linhas da mesma Matriz transposta de uma matriz quadrada aquela cujas linhas so as colunas da matriz original e cujas colunas so as linhas da mesma
  • Slide 3
  • Exemplo: Se o objetivo fosse apenas obter o resultado na tela: Se o objetivo fosse apenas obter o resultado na tela: for (i = 0; i < n; i++) { for (j = 0; i < n; j++) printf (%5d, A[j][i]); printf (\n);} Mas deseja-se transformar a original na transposta Mas deseja-se transformar a original na transposta Matriz quadrada 5 x 5 original Matriz transposta da original Escrevendo cada coluna numa linha da tela 12345 678910 1112131415 1617181920 2122232425 01234 0 1 4 3 2 16111621 27121722 38131823 49141924 510152025 01234 0 1 4 3 2 A
  • Slide 4
  • 12345 678910 1112131415 1617181920 2122232425 01234 0 1 4 3 2 A Operao bsica para a transformao: Trocar A[i][j] com A[j][i] Exemplo: se i = 2 e j = 3, Trocar A[2][3] com A[3][2]
  • Slide 5
  • 12345 678910 111213 14 15 1617 18 1920 2122232425 01234 0 1 4 3 2 A Operao bsica para a transformao: Trocar A[i][j] com A[j][i] Exemplo: se i = 2 e j = 3, Trocar A[2][3] com A[3][2] aux 14
  • Slide 6
  • 12345 678910 111213 18 15 1617 18 1920 2122232425 01234 0 1 4 3 2 A Operao bsica para a transformao: Trocar A[i][j] com A[j][i] Exemplo: se i = 2 e j = 3, Trocar A[2][3] com A[3][2] aux 14
  • Slide 7
  • 12345 678910 111213 18 15 1617 14 1920 2122232425 01234 0 1 4 3 2 A Operao bsica para a transformao: Trocar A[i][j] com A[j][i] Exemplo: se i = 2 e j = 3, Trocar A[2][3] com A[3][2] aux 14 Trocar (A[i][j], A[j][i]): aux = A[i][j]; A[i][j] = A[j][i]; A[j][i] = aux;
  • Slide 8
  • 12345 678910 1112131415 1617181920 2122232425 01234 0 1 4 3 2 A Para transformar toda a matriz: Percorr-la com 2 cursores i e j e Trocar (A[i][j], A[j][i]) O percurso no pode abranger toda a matriz!!! Porqu??? Sejam os comandos: for (i = 0; i < n; i++) for (j = 0; j < n; j++) Trocar (A[i][j], A[j][i]); que percorrem toda a matriz Quando (i, j) = (1, 3) Trocar (A[1][3], A[3][1]) Mais adiante, quando (i, j) = (3, 1) Trocar (A[3][1], A[1][3]) A troca anterior desfeita
  • Slide 9
  • 12345 678910 1112131415 1617181920 2122232425 01234 0 1 4 3 2 A Deve-se planejar o percurso de i e de j Para comear, a diagonal principal no precisa ser percorrida A parte acima dessa diagonal deve ser trocada com a parte abaixo dela
  • Slide 10
  • 1 2345 67 8910 111213 1415 16171819 20 2122232425 01234 0 1 4 3 2 A Os comandos: for (i = 0; i