Buscar

ALGORITMOS - aula_9

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
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais