Baixe o app para aproveitar ainda mais
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: Excelente 40 % 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"); }
Compartilhar