Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
AULA 9 – Prof. LUIZ DI MARCELLO * ALGORITMOS – AULA 9 Prof. LUIZ DI MARCELLO Rio de Janeiro, 14 de Junho de 2011 AULA 8 – Prof. LUIZ DI MARCELLO * AULA 9 – Matrizes bidimensionais OBJETIVOS Construir programas usando matrizes bidimensionais além dos comandos/operadores/funções aprendidos nas aulas anteriores Usar matrizes de char em seus programas Listar vantagens no uso de matriz bidimensional Codificar programas na linguagem C++ usando matrizes bidimensionais AULA 8 – Prof. LUIZ DI MARCELLO * CONCEITOS: Matrizes bidimensionais Podemos entender uma matriz bidimensional como sendo um vetor de vetores uma vez que cada elemento é um vetor Na aula passada falamos que um dos caracteres que reservamos para um vetor de char é usado pela linguagem C++ para sinalizar o fim do vetor (\0). Por essa razão, usamos 31 no número de colunas do último exemplo AULA 8 – Prof. LUIZ DI MARCELLO * EXEMPLO: Matrizes bidimensionais Um professor tem seis alunos e de cada aluno guarda quatro notas. Você poderá dimensionar de duas formas. AULA 8 – Prof. LUIZ DI MARCELLO * ATRIBUIÇÃO: Matrizes bidimensionais AULA 9 – Prof. LUIZ DI MARCELLO * Declaração int vetor[5][6]; Entrada cin >> vetor[4][1]; Saída cout << vetor[4][1]; Atribuição vetor [4][1] = 10; DO INÍCIO AO FIM: Matrizes bidimensionais AULA 9 – Prof. LUIZ DI MARCELLO * Declaração char string[5][6]; Entrada cin >> vetor[4][1]; cin >> vetor[4]; Saída cout << vetor[4][1]; Atribuição vetor [4][1] = ‘X’; DO INÍCIO AO FIM: Matrizes bidimensionais AULA 9 – Prof. LUIZ DI MARCELLO * TODA STRING DEVE TERMINAR COM \0 int main () { char nome[5][6]; cout << "CARACTERE 1:"; cin >> nome[5][0]; O cout << "CARACTERE 2:"; cin >> nome[5][1]; L cout << "CARACTERE 3:"; cin >> nome[5][2]; A cout << nome [5] << "\n"; ??????? system ("pause"); } EXEMPLO: PARTE 1 AULA 9 – Prof. LUIZ DI MARCELLO * TODA STRING DEVE TERMINAR COM \0 int main () { char nome[5][6]; cout << "CARACTERE 1:"; cin >> nome[5][0]; O cout << "CARACTERE 2:"; cin >> nome[5][1]; L cout << "CARACTERE 3:"; cin >> nome[5][2]; A nome[5][3] = ‘\0’; cout << nome [5] << "\n"; OLA system ("pause"); } EXEMPLO: PARTE 2 AULA 9 – Prof. LUIZ DI MARCELLO * Faça um programa que leia valores reais para uma matriz 3 x 3 e exiba todos os elementos exceto os elementos da diagonal principal. Declarar uma matriz de inteiros 3 x 3 Loop aninhado Loop para exibir os elementos exceto quando a linha for igual a coluna OUTRO EXEMPLO AULA 9 – Prof. LUIZ DI MARCELLO * int main () { int matriz[3][3]; int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++){ cout << "("<<i<<","<<j<<")="; cin >> matriz[i][j]; } cout <<" FIM DA ENTRADA\n\n"; for(i=0;i<3;i++){ for(j=0;j<3;j++) if (i != j) cout <<matriz [i][j]; cout << "\t"; else cout << "X\t"; cout <<"\n"; } system ("pause"); OUTRO EXEMPLO AULA 8 – Prof. LUIZ DI MARCELLO * EXERCÍCIO 3: Tela 13 de 20 Construa um programa que armazene números reais em uma matriz de ordem 4 e exiba toda a matriz e os elementos que se encontram na diagonal principal. Matriz de ordem 4 significa dizer que é uma matriz quadrada, isto é, formada por quatro linhas e quatro colunas Elementos que se encontram na diagonal principal são aqueles que estão em posições cujo número da linha é igual ao número da coluna AULA 8 – Prof. LUIZ DI MARCELLO * EXERCÍCIO 3: Tela 13 de 20 Matriz de ordem 4 significa dizer que é uma matriz quadrada, isto é, formada por quatro linhas e quatro colunas Elementos que se encontram na diagonal principal são aqueles que estão em posições cujo número da linha é igual ao número da coluna AULA 8 – Prof. LUIZ DI MARCELLO * PARA QUE SERVE cin.getline( , ) ??? int main () { char string[17]; cout << “Entre com um nome: “; cin >> string; cout << string << “\n”; cin >> string; cout << string << “\n”; system (“pause”); } int main () { char string[17]; cout << “Entre com um nome: “; cin.getline (string,17); cout << string << “\n”; cin >> string; cout << string << “\n”; system (“pause”); } AULA 8 – Prof. LUIZ DI MARCELLO * 1. Matrizes bidimensionais não são Estruturas homogêneas. 1) Verdade. 2) Falso. 3) Não sei responder. 2. Se tivermos dois vetores reais de dimensões deferentes, podemos agrupá-los em uma matriz bidimensional com a dimensão do maior vetor. 1) Verdade. 2) Falso. 3. Quando precisarmos armazenar 30 nomes, deveremos dimensionar um matriz bidimensional de char. 1) Verdade. 2) Falso. REGISTRO DE FREQUÊNCIA AULA 8 – Prof. LUIZ DI MARCELLO * 4. Observe o trecho de programa abaixo e selecione a resposta correta. ... char nome[30] cout<<"\nNome e ultimo sobrenome: "; cin>>nome; ... 1) Armazena nome e sobrenome. 2) Armazena só o nome. 3) Dá mensagem de erro porque cin não pode ser usado com vetor de char. 4) NRA. REGISTRO DE FREQUÊNCIA AULA 8 – Prof. LUIZ DI MARCELLO * 5. Observe o trecho de programa abaixo e selecione a resposta correta ... for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x < y) cout<<num[x][y]<<”\t”; else cout]<<”\t”; cout<<”\n”; } ... Exibe todos os elementos da matriz num. 2) Só exibe os elementos fora da Diagonal Principal. 3) Exibe os números que se encontram no triângulo abaixo da Diagonal Principal. 4) NRA REGISTRO DE FREQUÊNCIA *
Compartilhar