Upload
internet
View
110
Download
0
Embed Size (px)
CES-10 INTRODUÇÃO CES-10 INTRODUÇÃO À COMPUTAÇÃOÀ COMPUTAÇÃO
Aulas Práticas – 2013Aulas Práticas – 2013
Capítulo VII Capítulo VII
Variáveis Indexadas Variáveis Indexadas NuméricasNuméricas
Classificação das variáveis: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)
A A declaraçãodeclaração em C em C
int A[9];int A[9];
reserva na memória espaço contíguo de reserva na memória espaço contíguo de 9 9 inteirosinteiros para os para os 9 elementos9 elementos da variável da variável AA::
Então, Então, AA é uma variável indexada de é uma variável indexada de 9 9 elementoselementos do tipo do tipo intint
Em C, os Em C, os índicesíndices de toda variável de toda variável indexada indexada são numerados a partir de são numerados a partir de 00 ( (zerozero))
A[0], A[1], A[2], A[3], A[4], A[5], A[6], A[7], A[8]
A variável A variável AA da declaração anterior tem da declaração anterior tem apenas um índiceapenas um índice
Por essa razão ela é denominada Por essa razão ela é denominada variável variável indexada unidimensionalindexada unidimensional ou ou matriz matriz unidimensionalunidimensional ou simplesmente ou simplesmente vetorvetor
Supondo que o conteúdo dos elementos da Supondo que o conteúdo dos elementos da variável variável A A seja:seja:
A[0] = 35 A[1] = 14 A[2] = 7 A[3] = 87 A[4] = 2 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 A[5] = 21 A[6] = 14 A[7] = 63 A[8] = 16
Então, esta variável pode ter a seguinte Então, esta variável pode ter a seguinte representação gráficarepresentação gráfica::
A
Variáveis indexadas podem ser Variáveis indexadas podem ser multidimensionaismultidimensionais
Por exemplo, pelas declarações em CPor exemplo, pelas declarações em C
int M[7][10]; float X[4][8][5];int M[7][10]; float X[4][8][5];
MM é uma é uma variável indexada bidimensionalvariável indexada bidimensional ou ou matriz bidimensionalmatriz bidimensional ou simplesmente ou simplesmente matrizmatriz de 7 linhas por 10 colunas de de 7 linhas por 10 colunas de elementos do tipo elementos do tipo intint
X X é uma é uma matriz tridimensionalmatriz tridimensional de de 4 x 8 x 54 x 8 x 5 elementos do tipo elementos do tipo floatfloat
Seja a seguinte representação gráfica da Seja a seguinte representação gráfica da matriz matriz M(7x10)M(7x10) de elementos do tipo de elementos do tipo intint::
Nesta representação, por exemplo,Nesta representação, por exemplo,
M[0][9] = 81; M[3][5] = -108; M[1][8] = -M[0][9] = 81; M[3][5] = -108; M[1][8] = -83;83;
M
Programa 7.1: Vetor de 10 elementos nulosPrograma 7.1: Vetor de 10 elementos nulos
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, V[10] = {0};int i, V[10] = {0};
printf ("Vetor de 10 elementos nulos: ");printf ("Vetor de 10 elementos nulos: ");
printf ("\n\nDigite algo: "); printf ("\n\nDigite algo: ");
getch ();getch ();
printf ("\n\n");printf ("\n\n");
for (i = 0; i <= 9; i++) for (i = 0; i <= 9; i++)
printf ("%4d", V[i]);printf ("%4d", V[i]);
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();getch ();
}}
i varia de 0 a 9, escrevendo na mesma linha os valores de:
V[0], V[1], ... , V[9]
2
0 0 0 0
0 1 9
V
Copiar, salvar e executar
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n, V[10];int i, n, V[10];
printf ("Vetor de n elementos nulos:\n");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 < 1 || n > 10);} while (n < 1 || n > 10);
for (i = 0; i <= n-1; i++)for (i = 0; i <= n-1; i++)
V[i] = 0;V[i] = 0;
printf ("\n");printf ("\n");
for (i = 0; i <= n-1; i++) for (i = 0; i <= n-1; i++)
printf ("%4d", V[i]);printf ("%4d", V[i]);
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Programa 7.2: Vetor de n elementos nulos
Copiar, salvar e executar
n-10 0 0
0 1 9
V
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n, V[10];int i, n, V[10];
printf ("Vetor de n elementos nulos:\n");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 < 1 || n > 10);} while (n < 1 || n > 10);
for (i = 0; i <= n-1; i++)for (i = 0; i <= n-1; i++)
V[i] = 5;V[i] = 5;
printf ("\n");printf ("\n");
for (i = 0; i <= n-1; i++) for (i = 0; i <= n-1; i++)
printf ("%4d", V[i]);printf ("%4d", V[i]);
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Programa 7.3: Vetor de n elementos 5
Copiar, salvar e executar
n-15 5 5
0 1 9
V
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int i, n, V[10];int i, n, V[10];
printf ("Leitura e escrita de vetor\n\n");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 < 1 || n > 10); } while (n < 1 || n > 10);
printf ("\n\n");printf ("\n\n");
for (i = 0; i <= n-1; i++) {for (i = 0; i <= n-1; i++) {
printf ("Elemento %d: ", i);printf ("Elemento %d: ", i);
scanf ("%d", &V[i]);scanf ("%d", &V[i]);
}}
printf ("\n\nVetor V:\n\n");printf ("\n\nVetor V:\n\n");
for (i = 0; i <= n-1; i++) for (i = 0; i <= n-1; i++)
printf ("%4d", V[i]);printf ("%4d", V[i]);
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Programa 7.4: Leitura e escrita de vetor
Copiar, salvar e executar
n-1
0 1 9
V
Programa 7.5: Matriz 10 x 10 nulaPrograma 7.5: Matriz 10 x 10 nula
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int A[10][10] = {0}, i, j;int A[10][10] = {0}, i, j;
printf ("Matriz quadrada 10x10 nula: ");printf ("Matriz quadrada 10x10 nula: ");
printf ("\n\nDigite algo: "); getch ();printf ("\n\nDigite algo: "); getch ();
printf ("\n\n");printf ("\n\n");
for (i = 0; i <= 9; i++) {for (i = 0; i <= 9; i++) {
for (j = 0; j <= 9; j++)for (j = 0; j <= 9; j++)
printf ("%4d", A[i][j]);printf ("%4d", A[i][j]);
printf ("\n");printf ("\n");
}}
printf ("\n\nDigite algo para encerrar: ");printf ("\n\nDigite algo para encerrar: ");
getch ();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
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 9
0
1
2
9
A
Copiar, salvar e executar
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int A[10][10], i, j, m, n;int A[10][10], i, j, m, n;
printf ("Matriz m x n nula:\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 < 1 || m > 10 || n < 1 || n > 10);} while (m < 1 || m > 10 || n < 1 || n > 10);
for (i = 0; i <= m-1; i++)for (i = 0; i <= m-1; i++)
for (j = 0; j <= n-1; j++)for (j = 0; j <= n-1; j++)
A[i][j] = 0;A[i][j] = 0;
printf ("\n");printf ("\n");
for (i = 0; i <= m-1; i++) {for (i = 0; i <= m-1; i++) {
for (j = 0; j <= n-1; j++)for (j = 0; j <= n-1; j++)
printf ("%4d", A[i][j]);printf ("%4d", A[i][j]);
printf ("\n");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-10 0 0
0 0 0
0 0 0
0 1 9
0
1
m-1
9
A
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int A[10][10], i, j, n;int A[10][10], i, j, n;
printf ("Matriz n x n diagonal:\n");printf ("Matriz n x n diagonal:\n");
do {do {
printf ("\nDigite n (<= 10): "); scanf ("%d", &n);printf ("\nDigite n (<= 10): "); scanf ("%d", &n);
} while (n < 1 || n > 10);} while (n < 1 || n > 10);
for (i = 0; i <= n-1; i++)for (i = 0; i <= n-1; i++)
for (j = 0; j <= n-1; j++)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");printf ("\n");
for (i = 0; i <= n-1; i++) {for (i = 0; i <= n-1; i++) {
for (j = 0; j <= n-1; j++)for (j = 0; j <= n-1; j++)
printf ("%4d", A[i][j]);printf ("%4d", A[i][j]);
printf ("\n\n");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-17 0 0
0 7 0
0 0 7
0 1 9
0
1
m-1
9
A
Exercício 7.1: Colocar o número 27 na Exercício 7.1: Colocar o número 27 na diagonal, na primeira e última linha e na diagonal, na primeira e última linha e na primeira e última colunaprimeira 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
Exercício 7.2: Colocar o número 82 da Exercício 7.2: Colocar o número 82 da diagonal principal para baixo, obtendo diagonal principal para baixo, obtendo uma matriz triangular inferioruma 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
Exercício 7.3: Obter um triangulo de PascalExercí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
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int A[10][10], m, n, i, j;int A[10][10], m, n, i, j;
printf ("Leitura e escrita de matriz\n\n");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 < 1 || m > 10 || n < 1 || n > 10);} while (m < 1 || m > 10 || n < 1 || n > 10);
printf ("\n\n");printf ("\n\n");
for (i = 0; i <= m-1; i++) {for (i = 0; i <= m-1; i++) {
printf ("%d elementos da linha %d: ", n, i);printf ("%d elementos da linha %d: ", n, i);
for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]);for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]);
}}
printf ("\n\nMatriz A:\n\n");printf ("\n\nMatriz A:\n\n");
for (i = 0; i <= m-1; i++) {for (i = 0; i <= m-1; i++) {
for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]);for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]);
printf ("\n\n");printf ("\n\n");
}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Programa 7.8: Leitura e escrita de matriz
Copiar, salvar e executar
#include <stdio.h>#include <stdio.h>
#include <conio.h>#include <conio.h>
void main () {void main () {
int A[10][10], n, i, j;int A[10][10], n, i, j;
printf ("Leitura e escrita de matriz quadrada\n\n");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 < 1 || n > 10);} while (n < 1 || n > 10);
printf ("\n\n");printf ("\n\n");
for (i = 0; i <= n-1; i++) {for (i = 0; i <= n-1; i++) {
printf ("%d elementos da linha %d: ", n, i);printf ("%d elementos da linha %d: ", n, i);
for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]);for (j = 0; j <= n-1; j++) scanf ("%d", &A[i][j]);
}}
printf ("\n\nMatriz A:\n\n");printf ("\n\nMatriz A:\n\n");
for (i = 0; i <= n-1; i++) {for (i = 0; i <= n-1; i++) {
for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]);for (j = 0; j <= n-1; j++) printf ("%4d", A[i][j]);
printf ("\n\n");printf ("\n\n");
}}
printf ("\n\nDigite algo para encerrar: "); getch ();printf ("\n\nDigite algo para encerrar: "); getch ();
}}
Programa 7.9: Leitura e escrita de matriz quadrada
Copiar, salvar e executar
Exercício 7.4: Aumentar o Programa 7.9 Exercício 7.4: Aumentar o Programa 7.9 para mpara montar e escrever um vetor de ontar e escrever um vetor de números inteiros contendo o valor números inteiros contendo o valor absoluto do maior elemento em valor absoluto do maior elemento em valor absoluto de cada linha da matriz Aabsoluto de cada linha da matriz A
Exemplo: Exemplo: seja a seguinte matriz 5x5 de seja a seguinte matriz 5x5 de entrada: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 00 2 55 87 0
81 21 2 0 27 81 21 2 0 27
Saída para a matriz quadrada anterior de Saída para a matriz quadrada anterior de entrada:entrada:
Matriz A:Matriz A:
Elementos MaiorElementos Maior
----------------------------------------------------------------------------------------------------------------
Lin 0: -17 21 2 -8 -57 57Lin 0: -17 21 2 -8 -57 57
Lin 1: -1 64 -272 791 7 791Lin 1: -1 64 -272 791 7 791
Lin 2: -100 14 17 33 -10 100Lin 2: -100 14 17 33 -10 100
Lin 3: 0 2 55 87 0 87Lin 3: 0 2 55 87 0 87
Lin 4: 81 21 2 0 27 81Lin 4: 81 21 2 0 27 81
----------------------------------------------------------------------------------------------------------------
Exercício 7.5: Aumentar o programa do Exercício 7.5: Aumentar o programa do Exercício 7.4 para mExercício 7.4 para montar e escrever um ontar e escrever um vetor de números reais contendo a raiz vetor de números reais contendo a raiz quadrada dos módulos dos elementos da quadrada dos módulos dos elementos da diagonal principal da matriz Adiagonal principal da matriz A
Exemplo: Exemplo: Saída para a matriz quadrada Saída para a matriz quadrada anterior de entrada:anterior de entrada:
Matriz A:Matriz A:
Elementos MaiorElementos Maior
----------------------------------------------------------------------------------------------------------------
Lin 0: -17 21 2 -8 -57 57Lin 0: -17 21 2 -8 -57 57
Lin 1: -1 64 -272 791 7 791Lin 1: -1 64 -272 791 7 791
Lin 2: -100 14 17 33 -10 100Lin 2: -100 14 17 33 -10 100
Lin 3: 0 2 55 87 0 87Lin 3: 0 2 55 87 0 87
Lin 4: 81 21 2 0 27 81Lin 4: 81 21 2 0 27 81
----------------------------------------------------------------------------------------------------------------
RaizQ: 4.12 8.00 4.12 9.33 5.20RaizQ: 4.12 8.00 4.12 9.33 5.20
Exercício 7.6: Aumentar o programa do Exercício 7.6: Aumentar o programa do Exercício 7.5 para mExercício 7.5 para montar e escrever um ontar e escrever um vetor de números reais contendo a média vetor de números reais contendo a média aritmética aritmética dos elementos de cada coluna da dos elementos de cada coluna da matriz Amatriz A
Exemplo: Exemplo: Saída para a matriz quadrada Saída para a matriz quadrada anterior de entrada:anterior de entrada:
Matriz A:Matriz A:
Elementos MaiorElementos Maior
----------------------------------------------------------------------------------------------------------------
Lin 0: -17 21 2 -8 -57 57Lin 0: -17 21 2 -8 -57 57
Lin 1: -1 64 -272 791 7 791Lin 1: -1 64 -272 791 7 791
Lin 2: -100 14 17 33 -10 100Lin 2: -100 14 17 33 -10 100
Lin 3: 0 2 55 87 0 87Lin 3: 0 2 55 87 0 87
Lin 4: 81 21 2 0 27 81Lin 4: 81 21 2 0 27 81
----------------------------------------------------------------------------------------------------------------
RaizQ: 4.12 8.00 4.12 9.33 5.20RaizQ: 4.12 8.00 4.12 9.33 5.20
Media: -7.40 24.40 -39.20 180.60 -6.60Media: -7.40 24.40 -39.20 180.60 -6.60
Exercício 7.7: Aumentar o programa do Exercício 7.7: Aumentar o programa do Exercício 7.6 para mExercício 7.6 para montar e escrever um ontar e escrever um vetor de números reais contendo o desvio vetor de números reais contendo o desvio padrão padrão dos elementos de cada linha da dos elementos de cada linha da matriz Amatriz A
Exemplo: Exemplo: Saída para a matriz quadrada Saída para a matriz quadrada anterior de entrada:anterior de entrada:
Matriz A:Matriz A:
Elementos Maior DesvioElementos Maior Desvio
------------------------------------------------------------------------------------------------------------------------------------
Lin 0: -17 21 2 -8 -57 57 25.89Lin 0: -17 21 2 -8 -57 57 25.89
Lin 1: -1 64 -272 791 7 791 356.21Lin 1: -1 64 -272 791 7 791 356.21
Lin 2: -100 14 17 33 -10 100 47.44Lin 2: -100 14 17 33 -10 100 47.44
Lin 3: 0 2 55 87 0 87 35.92Lin 3: 0 2 55 87 0 87 35.92
Lin 4: 81 21 2 0 27 81 29.34Lin 4: 81 21 2 0 27 81 29.34
------------------------------------------------------------------------------------------------------------------------------------
RaizQ: 4.12 8.00 4.12 9.33 5.20RaizQ: 4.12 8.00 4.12 9.33 5.20
Media: -7.40 24.40 -39.20 180.60 -6.60Media: -7.40 24.40 -39.20 180.60 -6.60
Exercício 7.7: Aumentar o programa do Exercício 7.7: Aumentar o programa do Exercício 7.6 para mExercício 7.6 para montar um vetor de ontar um vetor de números reais contendo o desvio padrão números reais contendo o desvio padrão dos elementos de cada linha da matriz Ados elementos de cada linha da matriz A
Fórmula do desvio padrão Fórmula do desvio padrão SS dos elementos de dos elementos de um vetor um vetor VV de de nn elementos: elementos:
VVmediamedia é a média aritmética dos é a média aritmética dos nn elementos de elementos de VV
Exercício 7.8: AumentarExercício 7.8: Aumentar o programa do o programa do Exercício 7.7 para montar e escrever outra Exercício 7.7 para montar e escrever outra matriz B de inteiros e de dimensões iguais às matriz B de inteiros e de dimensões iguais às da matriz A, contendo os elementos de da matriz A, contendo os elementos de destaque da matriz Adestaque da matriz A
Um Um elemento de destaqueelemento de destaque numa matriz é um numa matriz é um elemento tal que seu valor absoluto é maior que os elemento tal que seu valor absoluto é maior que os valores absolutos de todos os seus vizinhosvalores absolutos de todos os seus vizinhos
Os elementos da matriz que não pertencem nem à Os elementos da matriz que não pertencem nem à sua primeira nem à sua última linha ou coluna têm sua primeira nem à sua última linha ou coluna têm 8 vizinhos8 vizinhos
Os elementos da primeira e última linha e coluna Os elementos da primeira e última linha e coluna têm têm menos de 8 vizinhosmenos de 8 vizinhos
0 1 2 3 4
0 -17 21 2 -8 -57
1 -1 64 -272
791
7
2 -100
14 17 33 -10
3 0 2 55 87 0
4 81 21 2 0 27
Exemplo: Exemplo: seja a matriz quadrada anteriorseja a matriz quadrada anterior
Os vizinhos de Os vizinhos de A[1][3] A[1][3] são:são:
A[0][2], A[0][3], A[0][4], A[1][2], A[1][4], A[2]A[0][2], A[0][3], A[0][4], A[1][2], A[1][4], A[2][2], A[2][3], A[2][4] [2], A[2][3], A[2][4]
A[1][3] = 791A[1][3] = 791 é um elemento de destaque é um elemento de destaque
0 1 2 3 4
0 -17 21 2 -8 -57
1 -1 64 -272
791
7
2 -100
14 17 33 -10
3 0 2 55 87 0
4 81 21 2 0 27
Exemplo: Exemplo: seja a matriz quadrada anteriorseja a matriz quadrada anterior
Os vizinhos deOs vizinhos de A[2][0] A[2][0] são são
A[1][0], A[1][1], A[2][1], A[3][0], A[3][1] A[1][0], A[1][1], A[2][1], A[3][0], A[3][1]
A[2][0] = -100A[2][0] = -100 é um elemento de destaque é um elemento de destaque
Exemplo: Exemplo: seja a matriz quadrada anteriorseja a matriz quadrada anterior
Os vizinhos deOs vizinhos de A[4][4]) A[4][4]) são são
= A[3][3], A[3][4], A[4][3] = A[3][3], A[3][4], A[4][3]
A[4][4] = 27A[4][4] = 27 não é um elemento de destaque não é um elemento de destaque
0 1 2 3 4
0 -17 21 2 -8 -57
1 -1 64 -272
791
7
2 -100
14 17 33 -10
3 0 2 55 87 0
4 81 21 2 0 27
0 1 2 3 4
0 -17 21 2 -8 -57
1 -1 64 -272
791
7
2 -100
14 17 33 -10
3 0 2 55 87 0
4 81 21 2 0 27
Exemplo: Exemplo: seja a matriz quadrada anteriorseja a matriz quadrada anterior
Seus elementos de destaque Seus elementos de destaque
Se A[i][j] for elemento de destaque Se A[i][j] for elemento de destaque
B[i][j] = A[i][j]B[i][j] = A[i][j]
Senão Senão
B[i][j] = 0B[i][j] = 0
Para montar a matriz B
Exercício 7.9: AlterarExercício 7.9: Alterar o programa do o programa do Exercício 7.8 para fazer a leitura da matriz Exercício 7.8 para fazer a leitura da matriz e sua escrita usando arquivos em discoe sua escrita usando arquivos em disco
Isto será visto em aulas teóricasIsto será visto em aulas teóricas
No No Lab 7Lab 7, o programa deverá fazer a , o programa deverá fazer a leituraleitura da da matriz e sua matriz e sua escritaescrita usando usando arquivosarquivos em disco em disco
Neste caso, como não haverá interação com o Neste caso, como não haverá interação com o operador, a leitura de dados não precisa ser operador, a leitura de dados não precisa ser amigável, mas a tela de execução deve amigável, mas a tela de execução deve – Exibir um título eExibir um título e– Indicar os arquivos onde se encontram a Indicar os arquivos onde se encontram a
matriz de entrada e os resultados (ver matriz de entrada e os resultados (ver próximo slide)próximo slide)