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

Slides:



Advertisements
Apresentações semelhantes
Funções em C.
Advertisements

Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 04 Aquiles Burlamaqui UERN
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Introdução à Computação - Jorge Macêdo
Programando com Threads em C
Introdução a Programação
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
1 Estruturas de Controle Márcia J. N. Rodrigues Lucena Especialização em Técnicas e Ferramentas de Apoio à Decisão Departamento.
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Capítulo 10 Arrays. 2Capítulo 10 – Arrays Arrays Introdução Tipo do array Tamanho do array Preenchendo o array Varrendo um array Array com 2 dimensões.
PROGRESSÃO ARITMÉTICA P.A.
Grupo Paralelismo – Unesp RC
FORTRAN 90 Denise Yumi Takamura.
Vetores Variável Composta Homogênea Unidimensional
Vetores (2) Continuação.
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Agregado Homogêneo e Heterogêneo
CE-262 Ontologia e Web Semântica Prof. José M Parente de Oliveira
CES-11 LAB 03 Bitmap Quadtree
Capítulo VII – Tipos Enumerativos e Estruturas 7.1 – Tipos enumerativos 7.2 – A necessidade de estruturas 7.3 – Manipulação dos campos de uma estrutura.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo III Comandos de Controle.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
1.3 – Interpretadores – Compiladores versus Interpretadores
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo III Declarações e Comandos de Atribuição.
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Capítulo VI – Variáveis Indexadas
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Capítulo XI Noções de Estruturas de Dados.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo XI Encadeamento de Estruturas por Ponteiros.
Capítulo IX – Ponteiros 9.1 – Introdução 9.2 – Relação entre ponteiros e variáveis indexadas 9.3 – Alocação dinâmica de memória 9.4 – Variáveis indexadas,
Exemplo: ordenação de uma lista pelo Selection-Sort:
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
ALOCAÇÃO DINÂMICA DE MEMÓRIA
TE 043 CIRCUITOS DE RÁDIO-FREQÜÊNCIA
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Marco Antonio Montebello Júnior
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Curso de Programação em C++
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
Computação Gráfica Geometria de Transformações
Introdução Ciência da Computação estudo de algoritmos –ÊNFASE ao estudo de DADOS armazenamento manipulação refinamento (a partir de dados cru) estrutura.
Matrizes e Funções - Continuação
Fundamentos de Programação 1
Ponteiros.
VETORES, STRINGS E MATRIZES
Estruturas de Decisão Permitir testes para decidir acções alternativas: if if - else switch (?:) Operador Condicional MF.
Vetor de Ponteiros Exemplo de Alocação. Escrever Vetor de Vetores de floats int main() { int i, k, n; float **vetor; // vetor de vetores int *tamanho;
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
1 Ponteiros Ponteiros são variáveis que guardam localizações em memória. A declaração de uma variável ponteiro x para um dado tipo type é type *x; Essa.
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Construção de Algoritmos AULA 04
PROGRAMAÇÃO I PONTEIROS.
Seminário 1: Revisão de C
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Estruturas de Dados Aula 5: Matrizes
Declarando e Chamando Funções
 São utilizadas para dividir um código maior (mais complexo) em partes menores (mais simples).  Quando uma mesma tarefa é realizada várias vezes em um.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo VII Variáveis Indexadas Numéricas.
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013
Revisão Luis Antonio Tavares
Fundamentos de Programação 1 Slides 7 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Funções”
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Transcrição da apresentação:

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

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

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

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

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

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

#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

#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

#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

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

#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

#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

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

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

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

#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

#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

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:

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:

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:

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:

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:

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

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

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

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

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

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

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)