A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas.

Apresentações semelhantes


Apresentação em tema: "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas."— Transcrição da apresentação:

1 CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas

2 Classificação das variáveis: Variáveis Escalares Estruturadas Homogêneas – Variáveis Indexadas (arrays – em inglês) Heterogêneas – Estruturas (structs – em inglês)

3 A declaração em C A declaração em C int A[9]; reserva na memória espaço contíguo de 9 inteiros para os 9 elementos da variável A: Então, A é uma variável indexada de 9 elementos do tipo int Então, A é uma variável indexada de 9 elementos do tipo int Em C, os índices de toda variável indexada são numerados a partir de 0 (zero) Em C, os índices de toda variável indexada são numerados a partir de 0 (zero) A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]

4 A variável A da declaração anterior tem apenas um índice A variável A da declaração anterior tem apenas um índice Por essa razão ela é denominada variável indexada unidimensional ou matriz unidimensional ou simplesmente vetor Por essa razão ela é denominada variável indexada unidimensional ou matriz unidimensional ou simplesmente vetor Supondo que o conteúdo dos elementos da variável A seja: Supondo que o conteúdo dos elementos da variável A seja: A[0] = 35 A[1] = 14 A[2] = 7 A[3] = 87 A[4] = 2 A[5] = 21 A[6] = 14 A[7] = 63 A[8] = 16 Então, esta variável pode ter a seguinte representação gráfica: Então, esta variável pode ter a seguinte representação gráfica: A

5 Variáveis indexadas podem ser multidimensionais Variáveis indexadas podem ser multidimensionais Por exemplo, pelas declarações em C Por exemplo, pelas declarações em C int M[7][10]; float X[4][8][5]; M é uma variável indexada bidimensional ou matriz bidimensional ou simplesmente matriz de 7 linhas por 10 colunas de elementos do tipo int X é uma matriz tridimensional de 4 x 8 x 5 elementos do tipo float

6 Seja a seguinte representação gráfica da matriz M(7x10) de elementos do tipo int: Seja a seguinte representação gráfica da matriz M(7x10) de elementos do tipo int: Nesta representação, por exemplo, Nesta representação, por exemplo, M[0][9] = 81; M[3][5] = -108; M[1][8] = -83; M

7 Programa 7.1: Vetor de 10 elementos nulos #include #include void main () { int i, V[10] = {0}; printf ("Vetor de 10 elementos nulos: "); printf ("\n\nDigite algo: "); printf ("\n\nDigite algo: "); getch (); printf ("\n\n"); for (i = 0; i <= 9; i++) printf ("%4d", V[i]); printf ("\n\nDigite algo para encerrar: "); getch (); } i varia de 0 a 9, escrevendo na mesma linha os valores de: V[0], V[1],..., V[9] 2 0000 019 V Copiar, salvar e executar

8 #include #include void main () { int i, n, V[10]; printf ("Vetor de n elementos nulos:\n"); do { do { printf ("\nDigite n (<= 10): "); printf ("\nDigite n (<= 10): "); scanf ("%d", &n); scanf ("%d", &n); } while (n 10); } while (n 10); for (i = 0; i <= n-1; i++) V[i] = 0; printf ("\n"); for (i = 0; i <= n-1; i++) printf ("%4d", V[i]); printf ("\n\nDigite algo para encerrar: "); getch (); } Programa 7.2: Vetor de n elementos nulos Copiar, salvar e executar n-1 000 019 V

9 #include #include void main () { int i, n, V[10]; printf ("Vetor de n elementos nulos:\n"); do { do { printf ("\nDigite n (<= 10): "); printf ("\nDigite n (<= 10): "); scanf ("%d", &n); scanf ("%d", &n); } while (n 10); } while (n 10); for (i = 0; i <= n-1; i++) V[i] = 5; printf ("\n"); for (i = 0; i <= n-1; i++) printf ("%4d", V[i]); printf ("\n\nDigite algo para encerrar: "); getch (); } Programa 7.3: Vetor de n elementos 5 Copiar, salvar e executar n-1 555 019 V

10 #include #include void main () { int i, n, V[10]; printf ("Leitura e escrita de vetor\n\n"); do { do { printf ("\nDigite o n.o de elementos (<= 10): "); printf ("\nDigite o n.o de elementos (<= 10): "); scanf ("%d", &n); scanf ("%d", &n); } while (n 10); } while (n 10); printf ("\n\n"); for (i = 0; i <= n-1; i++) { printf ("Elemento %d: ", i); scanf ("%d", &V[i]); } printf ("\n\nVetor V:\n\n"); for (i = 0; i <= n-1; i++) printf ("%4d", V[i]); printf ("\n\nDigite algo para encerrar: "); getch (); } Programa 7.4: Leitura e escrita de vetor Copiar, salvar e executar n-1019 V

11 Programa 7.5: Matriz 10 x 10 nula #include #include void main () { int A[10][10] = {0}, i, j; printf ("Matriz quadrada 10x10 nula: "); printf ("\n\nDigite algo: "); getch (); printf ("\n\nDigite algo: "); getch (); printf ("\n\n"); for (i = 0; i <= 9; i++) { for (j = 0; j <= 9; j++) printf ("%4d", A[i][j]); printf ("\n"); } printf ("\n\nDigite algo para encerrar: "); printf ("\n\nDigite algo para encerrar: "); getch (); } Para i = 0 j varia de 0 a 9, escrevendo na mesma linha os valores de: A[0][0], A[0][1],..., A[0][9] Depois o cursor do vídeo vai para a linha seguinte Para i = 1 j varia de 0 a 9, escrevendo na mesma linha os valores de: A[1][0], A[1][1],..., A[1][9] Depois o cursor do vídeo vai para a linha seguinte Para i = 2 j varia de 0 a 9, escrevendo na mesma linha os valores de: A[2][0], A[2][1],..., A[2][9] Depois o cursor do vídeo vai para a linha seguinte E assim por diante, para i = 9 j varia de 0 a 9, escrevendo na mesma linha os valores de: A[9][0], A[9][1],..., A[9][9] 2 0000 0000 0000 0000 019 0 1 2 9 A Copiar, salvar e executar

12 #include #include void main () { int A[10][10], i, j, m, n; printf ("Matriz m x n nula:\n"); do { do { printf ("\nDigite m e n (<= 10): "); printf ("\nDigite m e n (<= 10): "); scanf ("%d%d", &m, &n); scanf ("%d%d", &m, &n); } while (m 10 || n 10); } while (m 10 || n 10); for (i = 0; i <= m-1; i++) for (j = 0; j <= n-1; j++) A[i][j] = 0; A[i][j] = 0; printf ("\n"); for (i = 0; i <= m-1; i++) { for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]); printf ("\n"); } printf ("\n\nDigite algo para encerrar: "); getch (); printf ("\n\nDigite algo para encerrar: "); getch ();} Programa 7.6: Matriz m x n nula Copiar, salvar e executar n-1 000 000 000 019 0 1 m-1 9 A

13 #include #include void main () { int A[10][10], i, j, n; printf ("Matriz n x n diagonal:\n"); do { printf ("\nDigite n (<= 10): "); scanf ("%d", &n); printf ("\nDigite n (<= 10): "); scanf ("%d", &n); } while (n 10); } while (n 10); for (i = 0; i <= n-1; i++) for (j = 0; j <= n-1; j++) A[i][j] = 0; A[i][j] = 0; for (i = 0; i <= n-1; i++) A[i][i] = 7; for (i = 0; i <= n-1; i++) A[i][i] = 7; printf ("\n"); for (i = 0; i <= n-1; i++) { for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]); printf ("\n\n"); } printf ("\n\nDigite algo para encerrar: "); getch (); printf ("\n\nDigite algo para encerrar: "); getch ();} Programa 7.7: Matriz n x n diagonal Copiar, salvar e executar n-1 700 070 007 019 0 1 m-1 9 A

14 Exercício 7.1: Colocar o número 27 na diagonal, na primeira e última linha e na primeira e última coluna Exemplo: Exemplo: Matriz n x n moldura: Digite n (<= 10): 7 27 27 27 27 27 27 27 27 27 0 0 0 0 27 27 0 27 0 0 0 27 27 0 0 27 0 0 27 27 0 0 0 27 0 27 27 0 0 0 0 27 27 27 27 27 27 27 27 27

15 Exercício 7.2: Colocar o número 82 da diagonal principal para baixo, obtendo uma matriz triangular inferior Exemplo: Exemplo: Matriz n x n triangular inferior: Digite n (<= 10): 6 82 0 0 0 0 0 82 82 0 0 0 0 82 82 82 0 0 0 82 82 82 82 0 0 82 82 82 82 82 0 82 82 82 82 82 82

16 Exercício 7.3: Obter um triangulo de Pascal Exemplos: Exemplos: Triangulo de Pascal: Dimensao (<= 10): 7 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 Triangulo de Pascal: Dimensao (<= 10): 8 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 Os elementos da 1ª coluna e da diagonal principal são iguais a 1 Os elementos abaixo da diagonal principal, exceto os da 1ª coluna, são dados por: A[i][j] = A[i-1][j-1] + A[i-1][j] Os elementos acima da diagonal principal não são inicializados nem escritos

17 #include #include void main () { int A[10][10], m, n, i, j; printf ("Leitura e escrita de matriz\n\n"); do { do { printf ("\nDimensoes m e n (<= 10): "); printf ("\nDimensoes m e n (<= 10): "); scanf ("%d%d", &m, &n); scanf ("%d%d", &m, &n); } while (m 10 || n 10); } while (m 10 || n 10); printf ("\n\n"); printf ("\n\n"); for (i = 0; i <= m-1; i++) { printf ("%d elementos da linha %d: ", n, i); for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]); } printf ("\n\nMatriz A:\n\n"); for (i = 0; i <= m-1; i++) { for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]); printf ("\n\n"); } printf ("\n\nDigite algo para encerrar: "); getch (); } Programa 7.8: Leitura e escrita de matriz Copiar, salvar e executar

18 #include #include void main () { int A[10][10], n, i, j; printf ("Leitura e escrita de matriz quadrada\n\n"); do { do { printf ("\nDimensao n (<= 10): "); printf ("\nDimensao n (<= 10): "); scanf ("%d", &n); scanf ("%d", &n); } while (n 10); } while (n 10); printf ("\n\n"); printf ("\n\n"); for (i = 0; i <= n-1; i++) { printf ("%d elementos da linha %d: ", n, i); for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]); } printf ("\n\nMatriz A:\n\n"); for (i = 0; i <= n-1; i++) { for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]); printf ("\n\n"); } printf ("\n\nDigite algo para encerrar: "); getch (); } Programa 7.9: Leitura e escrita de matriz quadrada Copiar, salvar e executar

19 Exercício 7.4: Aumentar o Programa 7.9 para montar e escrever um vetor de números inteiros contendo o valor absoluto do maior elemento em valor absoluto de cada linha da matriz A Exemplo: seja a seguinte matriz 5x5 de entrada: Exemplo: seja a seguinte matriz 5x5 de entrada: -17 21 2 -8 -57 -17 21 2 -8 -57 -1 64 -272 791 7 -1 64 -272 791 7 -100 14 17 33 -10 -100 14 17 33 -10 0 2 55 87 0 0 2 55 87 0 81 21 2 0 27 81 21 2 0 27

20 Saída para a matriz quadrada anterior de entrada: Saída para a matriz quadrada anterior de entrada: Matriz A: Elementos Maior Elementos Maior-------------------------------------------------------- Lin 0: -17 21 2 -8 -57 57 Lin 1: -1 64 -272 791 7 791 Lin 2: -100 14 17 33 -10 100 Lin 3: 0 2 55 87 0 87 Lin 4: 81 21 2 0 27 81 --------------------------------------------------------

21 Exercício 7.5: Aumentar o programa do Exercício 7.4 para montar e escrever um vetor de números reais contendo a raiz quadrada dos módulos dos elementos da diagonal principal da matriz A Exemplo: Saída para a matriz quadrada anterior de entrada: Exemplo: Saída para a matriz quadrada anterior de entrada: Matriz A: Elementos Maior Elementos Maior-------------------------------------------------------- Lin 0: -17 21 2 -8 -57 57 Lin 1: -1 64 -272 791 7 791 Lin 2: -100 14 17 33 -10 100 Lin 3: 0 2 55 87 0 87 Lin 4: 81 21 2 0 27 81 -------------------------------------------------------- RaizQ: 4.12 8.00 4.12 9.33 5.20

22 Exercício 7.6: Aumentar o programa do Exercício 7.5 para montar e escrever um vetor de números reais contendo a média aritmética dos elementos de cada coluna da matriz A Exemplo: Saída para a matriz quadrada anterior de entrada: Exemplo: Saída para a matriz quadrada anterior de entrada: Matriz A: Elementos Maior Elementos Maior-------------------------------------------------------- Lin 0: -17 21 2 -8 -57 57 Lin 1: -1 64 -272 791 7 791 Lin 2: -100 14 17 33 -10 100 Lin 3: 0 2 55 87 0 87 Lin 4: 81 21 2 0 27 81 -------------------------------------------------------- RaizQ: 4.12 8.00 4.12 9.33 5.20 Media: -7.40 24.40 -39.20 180.60 -6.60

23 Exercício 7.7: Aumentar o programa do Exercício 7.6 para montar e escrever um vetor de números reais contendo o desvio padrão dos elementos de cada linha da matriz A Exemplo: Saída para a matriz quadrada anterior de entrada: Exemplo: Saída para a matriz quadrada anterior de entrada: Matriz A: Elementos Maior Desvio Elementos Maior Desvio------------------------------------------------------------------ Lin 0: -17 21 2 -8 -57 57 25.89 Lin 1: -1 64 -272 791 7 791 356.21 Lin 2: -100 14 17 33 -10 100 47.44 Lin 3: 0 2 55 87 0 87 35.92 Lin 4: 81 21 2 0 27 81 29.34 ------------------------------------------------------------------ RaizQ: 4.12 8.00 4.12 9.33 5.20 Media: -7.40 24.40 -39.20 180.60 -6.60

24 Exercício 7.7: Aumentar o programa do Exercício 7.6 para montar um vetor de números reais contendo o desvio padrão dos elementos de cada linha da matriz A Fórmula do desvio padrão S dos elementos de um vetor V de n elementos: Fórmula do desvio padrão S dos elementos de um vetor V de n elementos: V media é a média aritmética dos n elementos de V V media é a média aritmética dos n elementos de V

25 Exercício 7.8: Aumentar o programa do Exercício 7.7 para montar e escrever outra matriz B de inteiros e de dimensões iguais às da matriz A, contendo os elementos de destaque da matriz A Um elemento de destaque numa matriz é um elemento tal que seu valor absoluto é maior que os valores absolutos de todos os seus vizinhos Um elemento de destaque numa matriz é um elemento tal que seu valor absoluto é maior que os valores absolutos de todos os seus vizinhos Os elementos da matriz que não pertencem nem à sua primeira nem à sua última linha ou coluna têm 8 vizinhos Os elementos da matriz que não pertencem nem à sua primeira nem à sua última linha ou coluna têm 8 vizinhos Os elementos da primeira e última linha e coluna têm menos de 8 vizinhos Os elementos da primeira e última linha e coluna têm menos de 8 vizinhos

26 01234 0-17212-8-57 164-2727917 2-100141733-10 30255870 481212027 Exemplo: seja a matriz quadrada anterior Os vizinhos de A[1][3] são: Os vizinhos de A[1][3] são: A[0][2], A[0][3], A[0][4], A[1][2], A[1][4], A[2][2], A[2][3], A[2][4] A[1][3] = 791 é um elemento de destaque A[1][3] = 791 é um elemento de destaque

27 01234 0-17212-8-57 164-2727917 2-100141733-10 30255870 481212027 Exemplo: seja a matriz quadrada anterior Os vizinhos de A[2][0] são Os vizinhos de A[2][0] são A[1][0], A[1][1], A[2][1], A[3][0], A[3][1] A[2][0] = -100 é um elemento de destaque A[2][0] = -100 é um elemento de destaque

28 Exemplo: seja a matriz quadrada anterior Os vizinhos de A[4][4]) são Os vizinhos de A[4][4]) são = A[3][3], A[3][4], A[4][3] A[4][4] = 27 não é um elemento de destaque A[4][4] = 27 não é um elemento de destaque 01234 0-17212-8-57 164-2727917 2-100141733-10 30255870 481212027

29 01234 0-17212-8-57 164-2727917 2-100141733-10 30255870 481212027 Exemplo: seja a matriz quadrada anterior Seus elementos de destaque Seus elementos de destaque Se A[i][j] for elemento de destaque B[i][j] = A[i][j] Senão B[i][j] = 0 Para montar a matriz B

30 Exercício 7.9: Alterar o programa do Exercício 7.8 para fazer a leitura da matriz e sua escrita usando arquivos em disco Isto será visto em aulas teóricas Isto será visto em aulas teóricas No Lab 7, o programa deverá fazer a leitura da matriz e sua escrita usando arquivos em disco No Lab 7, o programa deverá fazer a leitura da matriz e sua escrita usando arquivos em disco Neste caso, como não haverá interação com o operador, a leitura de dados não precisa ser amigável, mas a tela de execução deve Neste caso, como não haverá interação com o operador, a leitura de dados não precisa ser amigável, mas a tela de execução deve – Exibir um título e – Indicar os arquivos onde se encontram a matriz de entrada e os resultados (ver próximo slide)

31


Carregar ppt "CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numéricas."

Apresentações semelhantes


Anúncios Google