Buscar

Aula 11 Estruturas homogêneas

Prévia do material em texto

CCT0001 - Introdução à Programação
Aula 11: Estruturas homogêneas
Introdução à Programação
AULA 11: Estruturas homogêneas
• 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)
Revisão de Matemática
Introdução à Programação
AULA 11: Estruturas homogêneas
Matrizes unidimensionais
Revisão de Matemática
Introdução à Programação
AULA 11: Estruturas homogêneas
Conceitos
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
Introdução à Programação
AULA 11: Estruturas homogêneas
Declaração
Alguns exemplos de declaração em C++
Linguagem C++
/* declarar um vetor para armazenar 15 idades */
Int idades[15];
/*declarar um vetor para armazenar 100 notas*/
Float notas[100];
/*declarar um vetor para armazenar o sexo de 30 pessoas*/
Char sexo[30];
Introdução à Programação
AULA 11: Estruturas homogêneas
Declaração
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:
Universidade
E S T A C I O \0
0 1 2 3 4 5 6 7
Introdução à Programação
AULA 11: Estruturas homogêneas
Construindo um vetor
Programa que armazena valores inteiros em um vetor de 6 posições e gera um 
vetor com o dobro de cada elemento
1 #include <iostream>
2 using namespace std;
3
4 int main(int argc, char** argv) {
5 int i, vetor [6], dobro [6];
6
7 for (i=0;i <6;i++){
8
9 cout<<"Qual o valor de vetor[”<<i<<“]? "<<endl;
10 cin>>vetor[i];
11 dobro[i]= vetor[i]*2;
11 }
12 for (i=0;i <6;i++){ 
13 cout<<“dobro[“<<i<<“] = “<< dobro[i]<<endl;
14 }
15 system (“pause”);
16 return 0;
17 }
Ambos valores ficam armazenados
Introdução à Programação
AULA 11: Estruturas homogêneas
Um tipo especial: string
int main ()
{
char nome[5];
cout << "ler um caractere:"; 
cin >> nome[0]; //ler um caractere: A
cout << nome [0] << "\n"; //A
cout << "ler um nome:";
cin >> nome[5]; //ler um nome: amor
cout << nome[5]<<"\n"; //amor
system ("pause");
}
Introdução à Programação
AULA 11: Estruturas homogêneas
Um tipo especial: string
int main ()
{
char nome[5];
cout << "CARACTERE 1:";
cin >> nome[0];  O
cout << "CARACTERE 2:";
cin >> nome[1];  L
cout << "CARACTERE 3:";
cin >> nome[2];  A
cout << nome [5] << "\n";  ???????
system ("pause");
}
TODA STRING DEVE TERMINAR COM \0
Introdução à Programação
AULA 11: Estruturas homogêneas
Um tipo especial: string
int main ()
{
char nome[5];
cout << "CARACTERE 1:";
cin >> nome[0];  O
cout << "CARACTERE 2:";
cin >> nome[1];  L
cout << "CARACTERE 3:";
cin >> nome[2];  A
nome[3] = ‘\0’;
cout << nome [5] << "\n";  OLA
TODA STRING DEVE TERMINAR COM \0
Introdução à Programação
AULA 11: Estruturas homogêneas
Exemplificando
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.
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:
Excelente40 % do salário base
Bom 20 % do salário base
Regular 5 % do salário base
Introdução à Programação
AULA 11: Estruturas homogêneas
Exemplificando
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");
}
Introdução à Programação
AULA 11: Estruturas homogêneas
Exemplificando
Como armazenar estes valores para gerar uma listagem no final? 
• Criaremos um vetor para matricula e um para avaliação e outro para o salário.
• Vamos estimar que a empresa tem no máximo 100 funcionários  precisaremos 
para dimensionar os vetores.
• Será preciso controlar dois parâmetros: a quantidade máxima e o término 
provocado pelo usuário
Introdução à Programação
AULA 11: Estruturas homogêneas
Exemplificando
int main ( )
{
int matricula[100], i=0, j=0; 
float salario[100], sal=0;
char índice[100];
do {
cout <<"Matricula: ";
cin >> matricula[i];
if (matricula[i] > 0){
cout << "Salario: R$ ";
cin >> salario[i];
cout <<"Indice : ";
cin >> índice[i];
i++;
}
} while (matricula[i]> 0 && i<100);
for (j=0; j <i; j++) {
cout << "Matricula: "<< matricula[j] << endl ;
switch (índice[j]){
case 'e': sal = salario[i] * 1.4;
break; 
case 'b': sal = salario[i] * 1.2;
break;
case 'r': sal = salario[i] *1.05;
break;
default: cout << "Indice Invalido\n";
}
cout <<" Salario: R$ " << salario << “\n"; 
}
system ("pause");
}

Continue navegando