Buscar

ALGORITMOS - aula_8

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

AULA 8 – Prof. LUIZ DI MARCELLO
*
ALGORITMOS – AULA 8
Prof. LUIZ DI MARCELLO
Rio de Janeiro, 24 de Maio de 2011
AULA 8 – Prof. LUIZ DI MARCELLO
*
AULA 8 – Estruturas homegêneas
OBJETIVOS
Diferenciar estruturas homogêneas de estruturas heterogêneas
Construir programas usando matrizes unidimensionais (vetores) além dos comandos/operadores/funções aprendidos nas aulas anteriores
Usar o Teste de Mesa para acompanhar programas com vetores
AULA 8 – Prof. LUIZ DI MARCELLO
*
CONCEITOS: Revisão da matemática
Matriz é um arranjo de elementos dispostos em linhas e colunas
Toda matriz tem uma letra maiúscula como nome e, de forma subscrita, sua dimensão, isto é, o número de linhas (m) e de colunas (n) separadas pela letra “x” minúscula
Cada elemento é representado pela letra minúscula correspondente ao nome da matriz e, de forma subscrita, sua posição linha (m) / coluna (n)
AULA 8 – Prof. LUIZ DI MARCELLO
*
CONCEITOS: Matrizes unidimensionais
AULA 8 – Prof. LUIZ DI MARCELLO
*
CONCEITOS: Estruturas homogêneas
A estrutura homogênea é formada por elementos do mesmo tipo
Podemos dizer que uma matriz é um conjunto de variáveis, todas com o mesmo nome e só diferenciadas pela posição que ocupam nesse conjunto. Ou seja, uma coleção de variáveis do mesmo tipo
Como já vimos, quando uma matriz tem somente uma dimensão, chamamos de vetor, como na Matemática, ou array ou matriz unidimensional
Na linguagem C++, assim como em outras linguagens, essa dimensão que localiza a posição de uma variável vem entre um par de colchetes
AULA 8 – Prof. LUIZ DI MARCELLO
*
Alguns exemplos de 
declaração em C++
 Na linguagem C++, uma string é um vetor de caracteres terminado com um caracter nulo cujo valor inteiro é igual a zero (código ASCII igual a 0). O terminador nulo também pode ser escrito usando a convenção de barra invertida do C++ como sendo '\0'.
 Como precisamos reservar uma posição para o terminador, sempre iremos declarar o tamanho necessário mais um.
 Observe o armazenamento da variável 
universidade declarada com tamanho 8:
AULA 8 – Prof. LUIZ DI MARCELLO
*
Construa um programa que armazene valores reais em um vetor de 6 posições. Gere o vetor dobro.
Exercício 1: Tela 12 de 18 
AULA 8 – Prof. LUIZ DI MARCELLO
*
 Alguém lembrou de imprimir o vetor dobro?
 Que tal criarmos também um vetor metade?
 Que tal imprimirmos a posição 6 de cada um dos três vetores?
 Que tal imprimirmos o vetor original invertido?
Exercício 1: Novos desafios
AULA 8 – Prof. LUIZ DI MARCELLO
*
Uma empresa classifica seus funcionários de acordo com um índice de produtividade: (1) Excelente, (2) Bom e (3) Regular. Cada nível acrescenta um abono ao salário base do funcionário de acordo com a seguinte tabela:
	Excelente	40 % do salário base
	Bom	20 % do salário base
	Regular	5 % do salário base
Construa um algoritmo (e implemente em C++) que permita a entrada da matrícula, do salário base e a classificação de vários funcionários. Para cada funcionário deverão ser impressos a matrícula e seu novo salário. A entrada de dados termina quando se digita uma matricula não positiva.
Exercício 2
AULA 8 – Prof. LUIZ DI MARCELLO
*
int main ( )
{
 int matricula; 
 float salario;
 char indice;
 do {
 cout <<"Matricula: ";
 cin >> matricula;
 if (matricula > 0){
 cout << "Salario: R$ ";
 cin >> salario;
 cout <<"Indice : ";
 cin >> indice;
 
 switch (indice){
 case 'e': salario = salario * 1.4;
			break; 
 case 'b': salario = salario * 1.2;
			break;
 case 'r': salario = salario *1.05;
			break;
 default: cout << "Indice Invalido\n";
 }
 cout << "Matricula: "<< matricula ; 
	 cout <<" Salario: R$ " << salario << “\n"; 
 }
 } while (matricula> 0);
 system ("pause");
}
Exercício 2: Solução em C++
AULA 8 – Prof. LUIZ DI MARCELLO
*
Como resolver o exercício anterior gerando uma listagem no final com todos os funcionários?
Para cada funcionário seria necessário uma variável para a matricula, outra para o salário e mais uma para o índice.
Ficaria inviável ter tantas variáveis!!!
Que tal pensarmos numa solução utilizando matrizes???
Na próxima aula...
Exercício 2: Propondo melhorias
AULA 8 – Prof. LUIZ DI MARCELLO
*
1. Estruturas homogêneas são formadas por elementos que podem ter tipos diferentes:
1) Verdade. 2) Falso. 3) Não sei responder.  
2. Falar em Matriz unidimensional ou em Vetor tem o mesmo significado para Programação.
1) Verdade. 2) Falso.  
3. Posso usar vetores sem dimensioná-los.
1) Verdade. 2) Falso. 
REGISTRO DE FREQUÊNCIA
AULA 8 – Prof. LUIZ DI MARCELLO
*
4. Observe o programa abaixo e selecione a resposta correta:
#include <iostream> using namespace std; int main() {   int x,num[5];     for(x=0; x<4; x++)   {       std::cout<<"\nNumero: ";       std::cin>>num[x];   }    for(x=0; x<4; x++)     std::cout<<"\n"<<num[x];  std::cout<<"\n\n";  system("pause"); return 0; }
REGISTRO DE FREQUÊNCIA
1) Não compila porque falta: using namespace std; 2) Armazena e exibe três valores; 3) Armazena e exibe quatro 4 valores; 4) Não compila porque foi dimensionado para 5 elementos e só entraram 4.
AULA 8 – Prof. LUIZ DI MARCELLO
*
5. Observe o trecho de programa abaixo e selecione a resposta correta.
...  for(x=0; x<4; x++)    if(num[x] % 5==0)     cout<<"\n"<<num[x]; ...
Exibe todos os elementos do vetor num; 2) Só exibe os elementos múltiplos de 5; 3) 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