Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estruturas Homogêneas Matrizes Unidimensionais (vetores) Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Construa um programa em C++ que deixe entrar com cinco números e exiba uma listagem contendo os números na primeira zona e os quadrados, na segunda zona. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 #include <iostream> #include <cstdlib> using namespace std; int main() { int num, x; for(x= 0; x<5; x++) { cout<<"\nNumero: "; cin>>num; } cout<<"\n\nNumero\tQuadrado\n"; for(x= 0; x<5; x++) cout<<"\n"<< num<<"\t"<< num* num; cout<<"\n\n"; system("pause"); } Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 O que aconteceu? Por que só saiu o último cinco vezes? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Você só tinha uma variável para armazenar o número. Precisa aprender matriz! Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 2 3 1 13 A4x1 2 3 1 13 A1x4 MATRIZES a11 a12 a13 ... a1n a21 a22 a23 ... a3n a31 a32 a33 ... a3n ... ... ... ... ... am1 am1 am2 ... amn Amxn Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 unidimensional bidimensional MATRIZES 2 3 1 13 A4x1 2 3 1 13 A1x4 a11 a12 a13 ... a1n a21 a22 a23 ... a3n a31 a32 a33 ... a3n ... ... ... ... ... am1 am1 am2 ... amn Amxn Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação – Multiplicar por um escalar 4 6 2 26 D4x1 2 3 1 13 A4x1 X 2 = Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação – Multiplicar por um escalar Aplicação: Gerar os novos salários Salarios 2415 1890 1155 2100 Nsalarios 2300 1800 1100 2000 X 1.05 = Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação – Somar duas matrizes 2 3 1 13 A 6 9 3 39 S + = 4 6 2 26 B Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação – Somar duas matrizes Loja 25 38 120 13 40 50 150 20 Total + = 15 12 30 7 Estoque Aplicação: Controle de material Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação: calcular média aritmética 4 5 6 10 A 6 6 7.5 7 M + / 2 = 8 7 9 4 B Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação: calcular média aritmética Aplicação: Média das duas maiores notas/ Média de vendas em um bimestre 4 5 6 10 A 6 6 7.5 7 M + / 2 = 8 7 9 4 B Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação: somar os elementos da matriz 4 5 6 10 A Soma = 25 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Operação: somar os elementos da matriz 4200 5800 3000 7000 Salarios Soma = 20000 Aplicação: Total da Folha de Pagamento Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Dimensionando Matriz - unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 int float double char long long int ... Dimensionando Matriz - unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Praticando Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 1) Guardar 10 idades. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 1) Guardar 10 idades. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 2) Duas notas e a média de 50 alunos. 1) Guardar 10 idades. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 2) Duas notas e a média de 50 alunos. 1) Guardar 10 idades. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 3) Matrícula e CR de 60 alunos. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 3) Matrícula e CR de 60 alunos. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 4) Sexo de 30 pessoas. 3) Matrícula e CR de 60 alunos. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 4) Sexo de 30 pessoas. 3) Matrícula e CR de 60 alunos. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 5) Nome de uma pessoa. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 5) Nome de uma pessoa. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 string nome; Não temos o tipo string? O tipo string é da Biblioteca string e armazena um conjunto de caracteres. Você poderá usá-lo. 5) Nome de uma pessoa. Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Vetor de tamanho 5 e do tipo inteiro de quatro bytes Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Vetor idades Vetor de tamanho 5 e do tipo inteiro de quatro bytes Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Vetor idades Vetor de tamanho 5 e do tipo inteiro de quatro bytes Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Por que a primeira variável tem deslocamento 0? Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 endereço-base + deslocamento * tamanho do tipo O nome de uma matriz corresponde ao primeiro endereço do conjunto de endereços da Memória Principal. Para localizarmos um elemento da matriz, usamos a fórmula abaixo. Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 10000 endereço-base + deslocamento * tamanho do tipo endereço-base Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 10000 endereço-base + deslocamento * tamanho do tipo Armazenamento na Memória Principal endereço-base + 2 * 4 = 1008 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 10000 endereço-base + deslocamento * tamanho do tipo Armazenamento na Memória Principal endereço-base + 2 * 4 = 1008 10008 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 10000 endereço-base + deslocamento * tamanho do tipo Armazenamento na Memória Principal endereço-base 10012 10016 10004 10008 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Então, conclui-se que 0 significa que não existe deslocamento em relação ao endereço-base? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Sim. Vou Provar! Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 & retorna endereço Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 & retorna endereço Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 E onde indicamos isso? Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Observe o vetor idades[5]. Ele é formado por cinco variáveis todas com nome, idades. Dentro de um par de colchetes, fica o deslocamento. Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Vetor de char Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Vetor de char Armazenamento na Memória Principal nome[1] = toupper(nome[1]); REnato Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 O \0(terminador nulo) serve para finalizar o vetor de char. Dessa forma, não se esqueçade acrescentar mais uma posição quando dimensionar um vetor de char. Vetor de char Armazenamento na Memória Principal Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Numérico ou vetor de char – unidimensional DECLARAÇÃO / ATRIBUIÇÃO Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Numérico ou vetor de char – unidimensional DECLARAÇÃO / ATRIBUIÇÃO Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Numérico ou vetor de char – unidimensional DECLARAÇÃO / ATRIBUIÇÃO Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Numérico ou char* de um caracter – unidimensional TRECHO de ENTRADA Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de ENTRADA Numérico ou char* de um caracter – unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de ENTRADA Vetor de char – unidimensional Uma palavra Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de ENTRADA Mais de uma palavra Vetor de char – unidimensional Uma palavra Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de ENTRADA Mais de uma palavra Vetor de char – unidimensional Uma palavra Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de ENTRADA Lembrete Não confunda vetor de char com o tipo(classe) string. string nome; Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Onde estão os [ ]? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 A matriz unidimensional de char(vetor de char) e a bidimensional têm um tratamento diferenciado. Isso significa que você dimensiona como unidimensional(vetor) e trata como variável simples ou dimensiona como bidimensional e trata como vetor. * Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de SAÍDA Numérico ou char* (Matriz Coluna) – unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de SAÍDA Numérico ou char* (Matriz Linha) – unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO de SAÍDA Vetor de char – unidimensional Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Um pouco sobre o vetor de char Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Um pouco sobre o vetor de char Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Um pouco sobre o vetor de char Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Um pouco sobre o vetor de char Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Juntando tudo Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 DECLARAÇÕES Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO DE ENTRADA Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 TRECHO DE SAÍDA Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Exercícios Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 1) Existe alguma palavra para declarar matrizes? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Não. 1) Existe alguma palavra para declarar matrizes? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Não. 1) Existe alguma palavra para declarar matrizes? 2) Em uma matriz posso armazenar dados numéricos e caracteres? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Não. 1) Existe alguma palavra para declarar matrizes? R: Não em matrizes homogêneas. 2) Em uma matriz posso armazenar dados numéricos e caracteres? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Não. 1) Existe alguma palavra para declarar matrizes? R: Não em matrizes homogêneas. 2) Em uma matriz posso armazenar dados numéricos e caracteres? 3) O que é o terminador nulo? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Não. 1) Existe alguma palavra para declarar matrizes? R: Não em matrizes homogêneas. 2) Em uma matriz posso armazenar dados numéricos e caracteres? R: É o caracter \0 que finaliza um vetor de char, colocado automaticamente e ocupando a última posição do vetor de char. 3) O que é o terminador nulo? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 4) Por que não devemos usar cin para ler para um vetor de char? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Porque no primeiro espaço, a leitura é abandonada . 4) Por que não devemos usar cin para ler para um vetor de char? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Porque no primeiro espaço, a leitura é abandonada . 4) Por que não devemos usar cin para ler para um vetor de char? 5) Qual o comando que deve ser usado, então? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Porque no primeiro espaço, a leitura é abandonada . 4) Por que não devemos usar cin para ler para um vetor de char? R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...); 5) Qual o comando que deve ser usado, então? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Porque no primeiro espaço, a leitura é abandonada . 4) Por que não devemos usar cin para ler para um vetor de char? 5) Qual o comando que deve ser usado, então? 6) Para que cin.ignore()? R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...); Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 R: Porque no primeiro espaço, a leitura é abandonada . 4) Por que não devemos usar cin para ler para um vetor de char? 5) Qual o comando que deve ser usado, então? R: Para ler um caracter do buffer e depois descartá-lo. R: Uma função é usada, combinada com cin, formando então, cin.getline(..., ...); 6) Para que cin.ignore()? Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013 Espero que goste Prof. ANITA LOPES Produzido em 2013 Prof. ANITA LOPES Produzido em 2013
Compartilhar