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] 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 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 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] 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 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 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):

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):

16 Exercício 7.3: Obter um triangulo de Pascal Exemplos: Exemplos: Triangulo de Pascal: Dimensao (<= 10): Triangulo de Pascal: Dimensao (<= 10): 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:

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: Lin 1: Lin 2: Lin 3: Lin 4:

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: Lin 1: Lin 2: Lin 3: Lin 4: RaizQ:

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: Lin 1: Lin 2: Lin 3: Lin 4: RaizQ: Media:

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: Lin 1: Lin 2: Lin 3: Lin 4: RaizQ: Media:

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 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 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

29 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