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

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

Page 2: CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo VII Variáveis Indexadas Numé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)

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

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]

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

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

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

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

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

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

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

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

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

#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

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

#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

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

#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

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

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

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

#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

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

#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

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

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

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

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

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

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

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

#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

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

#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

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

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

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

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

----------------------------------------------------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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)

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