FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 11) Prof. Alessandro Bernardo [email protected] http://bsi.k6.com.br FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores Na aula passada, foi visto vetor, que é uma estrutura de dados homogênea, ou seja, todos os campos dessa estrutura armazenam dados do mesmo tipo de dado. Além disso, os vetores são utilizados para armazenar dados de forma indexada, podendo então consultá-los da forma requerida pela aplicação. Dentre as aplicações do vetor, pode-se citar: • O armazenamento de dados para posterior aplicação; • A utilização em operações matemáticas utilizando vetores e matrizes; • A viabilidade de organização de dados. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores Nessa aula serão vistos os exemplos utilizando vetor mostrados abaixo: (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. (2) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá calcular e escrever no monitor, quantas notas ficaram acima e abaixo da média da turma. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. Para resolver esse primeiro exemplo, é necessário declarar um vetor cujo tamanho deve ser igual à quantidade de números que o usuário desejar. Para isso, deve-se declarar uma variável inteira e ler o seu valor do teclado. cout << "Insira o tamanho do vetor: “; O valor armazenado nessa variável int qtd; determinará o tamanho do vetor na cin >> qtd; sua declaração e também será utilizado na leitura dentro do laço for. double vet[qtd]; A declaração desse vetor e a leitura dos valores dos campos são mostrados ao lado. cout << "Insira " << qtd << " números: " << endl; for (int i = 0; i < qtd; i++) cin >> vet[i]; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. Depois de armazenados todos os valores, o programa deve incluir o algoritmo para calcular o maior número armazenado. Esse algoritmo baseia-se em comparação do maior valor com os campos do vetor. Esse algoritmo é mostrado e explicado no próximo slide. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. O algoritmo para calcular o maior, considerando que o vetor já possua os seus valores atribuídos (lidos), é mostrado no quadro abaixo. Nesse quadro observa-se que foi declarada uma variável maior do mesmo tipo do vetor. Essa variável também recebeu o valor do primeiro campo do vetor. Depois foi construído um laço for cujo contador i varia de 1 até qtd-1 (segundo campo até o último). Para cada valor de i, verifica-se se o valor vet[i] armazenado no vetor é maior que a variável double maior = vet[0]; maior. Se essa condição for verdadeira, então vet[i] possui um valor maior do que aquele armazenado em for (int i = 1; i < qtd; i++) maior. Por isso, a variável maior recebe o valor if (vet[i] > maior) armazenado em vet[i]. maior = vet[i]; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. Para calcular o menor valor, basta fazer a mesma coisa daquilo feito para calcular o maior mudando-se, entretanto, o sinal na condição. Dessa forma o programa completo fica da forma mostrada no próximo slide. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (1) Faça um programa que leia números reais do teclado, armazene-os em um vetor e depois escreva no monitor o maior e o menor número armazenado. A quantidade de números a ser inserida deve ser inserida inicialmente pelo usuário. cout << "Insira o tamanho do vetor: “; int qtd; cin >> qtd; double vet[qtd]; cout << "Insira " << qtd << " números: " << endl; for (int i = 0; i < qtd; i++) cin >> vet[i]; double maior = vet[0]; for (int i = 1; i < qtd; i++) if (vet[i] > maior) maior = vet[i]; double menor = vet[0]; for (int i = 1; i < qtd; i++) if (vet[i] < maior) menor = vet[i]; cout << “Maior valor: “ << maior << endl; cout << “Menor valor: “ << menor << endl; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (2) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá calcular e escrever no monitor, quantas notas ficaram acima e abaixo da média da turma. Para resolver esse primeiro exemplo, é necessário declarar um vetor cujo tamanho deve ser igual à quantidade de números que o usuário desejar. Para isso, deve-se declarar uma variável inteira e ler o seu valor do teclado. O valor armazenado nessa variável determinará o tamanho do vetor na sua declaração e também será utilizado na leitura dentro do laço for. Posteriormente, depois de lidas todas as notas, o programa deve calcular a média obtida pela turma, visto que a contagem de alunos será feita em função desse valor. O código até o cálculo da média da turma é mostrado no próximo slide. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (2) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá calcular e escrever cout << "Insira o tamanho do vetor: “; no monitor, quantas notas ficaram int qtd; acima e abaixo da média da turma. cin >> qtd; Depois da última linha do programa abaixo, deve-se então adicionar o algoritmo para contar quantas notas foram abaixo ou acima da média. Para isso, deve-se declarar dois contadores (do tipo int), inicializálos com zero e incrementá-los quando for encontrado uma nota acima ou abaixo da média. double vet[qtd]; cout << "Insira " << qtd << " números: " << endl; for (int i = 0; i < qtd; i++) cin >> vet[i]; double soma = 0; for (int i = 0; i < qtd; i++) soma += vet[i]; double media = soma/qtd; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (2) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá calcular e escrever no monitor, quantas notas ficaram acima e abaixo da média da turma. for (int i = 0; i < qtd; i++) soma += vet[i]; cout << "Insira o tamanho do vetor: “; double media = soma/qtd; int qtd; cin >> qtd; double vet[qtd]; cout << "Insira " << qtd << " números: " << endl; for (int i = 0; i < qtd; i++) cin >> vet[i]; double soma = 0; int qtdmaior = 0, qtdmenor = 0; for (int i = 0; i < qtd; i++) if (vet[i] >= media) qtdmaior++; else qtdmenor++; cout << “Acima da média: “ << qtdmaior << endl; cout << “Abaixo da média: “ << qtdmenor << endl; FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores Exemplo: (3) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá escrever quantos alunos foram aprovados, quantos foram reprovados, a maior nota, a menor nota e a média da turma. FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores (3) Faça um programa para ler as notas de uma turma, onde a quantidade de alunos deve ser escolhida pelo usuário. Essas notas devem ser armazenados em um vetor cujo tamanho deverá ser a quantidade de alunos. Além disso, o programa deverá escrever quantos alunos foram aprovados (nota >= 5,0), quantos foram reprovados, a maior nota, a menor nota e a média da turma. cout << "Insira o tamanho do vetor: “; int qtd; cin >> qtd; double vet[qtd]; int qtdapr = 0, qtdrep = 0; for (int i = 0; i < qtd; i++) if (vet[i] >= 5) qtdapr++; else qtdrep++; cout << "Insira " << qtd << " números: " << endl; for (int i = 0; i < qtd; i++) cin >> vet[i]; double soma = 0; for (int i = 0; i < qtd; i++) soma += vet[i]; double media = soma/qtd; double maior = vet[0], menor = vet[0]; for (int i = 1; i < qtd; i++) { if (vet[i] >= maior) maior = vet[i]; if (vet[i] < menor) menor = vet[i]; } // Ficou faltando escrever os resultados... FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Vetores Exercícios: (1) Faça um programa que leia os valores dos salários de funcionários de uma folha de pagamento. A quantidade de funcionários deve ser inserida pelo usuários. Esse programa, depois de lida os salários, ainda deverá calcular e escrever o valor total pago pela empresa para os funcionários, a diferença entre o maior e o menor salário, quantidade de pessoas que recebem menos de R$1000,00, a quantidade de pessoas que recebem de R$1000,00 a R$1999,99 e a quantidade de pessoas que recebem mais ou igual a R$2000,00.