60
Lógica de Programação Unimep/Pronatec 2° Semestre/2014 AULA 10 - Prof. André Bertoletti - [email protected]

Lógica de Programação - Unimep/Pronatec - Aula10

Embed Size (px)

Citation preview

Page 1: Lógica de Programação - Unimep/Pronatec - Aula10

Lógica de Programação

Unimep/Pronatec

2° Semestre/2014

AULA 10

- Prof. André Bertoletti -

[email protected]

Page 2: Lógica de Programação - Unimep/Pronatec - Aula10

Aula de hoje

• Vetores unidimensionais

• Vetores multidimensionais (Matrizes)

• Exercícios Portugol/C#

Page 3: Lógica de Programação - Unimep/Pronatec - Aula10

NÃO ESQUEÇA DA SUA Hora do Código

Acesse, identifique-se e faça os exercícios!

abre.ai/horadocodigo

Page 4: Lógica de Programação - Unimep/Pronatec - Aula10

Vetores

Quando precisamos guardar várias informações ao mesmo

tempo

Page 5: Lógica de Programação - Unimep/Pronatec - Aula10

Recordar é viver... O que é uma variável mesmo?!

Valor

Page 6: Lógica de Programação - Unimep/Pronatec - Aula10

Como funciona uma variável tradicional Numero 32

32

Page 7: Lógica de Programação - Unimep/Pronatec - Aula10

10

32

Como funciona uma variável tradicional Numero 10

Page 8: Lógica de Programação - Unimep/Pronatec - Aula10

Uma variável tradicional armazena apenas o último valor informado

10

Page 9: Lógica de Programação - Unimep/Pronatec - Aula10

E como resolver esta necessidade?! Armazenar diversos valores dentro

de uma mesma variável?

Page 10: Lógica de Programação - Unimep/Pronatec - Aula10

Conheça a variável do tipo VETOR

Page 11: Lógica de Programação - Unimep/Pronatec - Aula10

Conheça a variável do tipo VETOR

20

32

Page 12: Lógica de Programação - Unimep/Pronatec - Aula10

Existem dois tipos de Vetores

Unidimensionais e Multidimensionais

Page 13: Lógica de Programação - Unimep/Pronatec - Aula10

Vetor unidimensional

1 linha X

N colunas

Page 14: Lógica de Programação - Unimep/Pronatec - Aula10

Sintaxe de declaração de um vetor unidimensional

Tipo Nome[NumeroDeElementos]

Exemplos:

Inteiro Notas[10]

Texto Nomes[5]

Decimal Valores[11]

Page 15: Lógica de Programação - Unimep/Pronatec - Aula10

Declarando um vetor unidimensional

Inteiro Numeros[4] (em algoritmo)

inteiro Numeros[4] (em Portugol Studio)

int[] Numeros = new int[4]; (em C#)

Page 16: Lógica de Programação - Unimep/Pronatec - Aula10

Vetor multidimensional (Matriz)

N linhas X

N colunas

Page 17: Lógica de Programação - Unimep/Pronatec - Aula10

Sintaxe de declaração de um vetor multidimensional

Tipo Nome[NumeroDeLinhas,

NumeroDeColunas]

Exemplos:

Inteiro Notas[10,2]

Texto Nomes[5,5]

Decimal Valores[11,3]

Page 18: Lógica de Programação - Unimep/Pronatec - Aula10

Declarando um vetor multidimensional

Inteiro Numeros[3, 4] (em algoritmo)

inteiro Numeros[3][4] (em Portugol Studio)

int[,] Numeros = new int[3, 4]; (em C#)

Page 19: Lógica de Programação - Unimep/Pronatec - Aula10

Um vetor visto por dentro (unidimensional)

0 1 2 3

32 10 7 20

Elementos

Índices

Page 20: Lógica de Programação - Unimep/Pronatec - Aula10

Um vetor visto por dentro (multidimensional)

0 1 2 3

0 32 10 7 20

1 52 24 5 2

2 43 11 45 14

Elementos

Índices

Índ

ices

Page 21: Lógica de Programação - Unimep/Pronatec - Aula10

MAS ANTEÇÃO!!!

Page 22: Lógica de Programação - Unimep/Pronatec - Aula10

Cuidado com a “pegadinha” dos índices

Todo vetor inicia do índice 0 (zero) e termina com o índice [NumeroDeElementos] – 1

–Por exemplo:

//Abaixo temos um vetor de 4 posições já os seus respectivos elementos em cada posição

Inteiro Numeros[4] { 32, 10, 7, 20 }

//Código que exibe o primeiro elemento, ou seja, 32

Escreva(Numeros[0])

//Código que exibe o último elemento, ou seja, 20

Escreva(Numeros[3])

Page 23: Lógica de Programação - Unimep/Pronatec - Aula10

Vamos ver ao vivo!

Um exemplo em Portugol e C#

Page 24: Lógica de Programação - Unimep/Pronatec - Aula10

Dica importante!

Em algoritmos mais elaborados, como estes com Vetores e Matrizes, torna-se fundamental o uso da ferramenta de Depuração (Debug), para executar o

programa linha a linha e assim, compreender de forma mais clara o

funcionamento do seu código.

Page 25: Lógica de Programação - Unimep/Pronatec - Aula10

Lembretes de como depurar um código em Portugol Studio

Page 26: Lógica de Programação - Unimep/Pronatec - Aula10
Page 27: Lógica de Programação - Unimep/Pronatec - Aula10

Lembretes de como depurar um código

em C#

Page 28: Lógica de Programação - Unimep/Pronatec - Aula10
Page 29: Lógica de Programação - Unimep/Pronatec - Aula10

Mas qual a utilidade dos vetores?

Resolvendo um problema usando

esta técnica

Page 30: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V1

Escreva um programa que leia e armazene dez nomes de alunos.

Após a leitura, mostre a lista de nomes digitados, exibindo-os pela ordem inversa da digitação, ou seja, o ultimo aluno que foi lido deve ser o primeiro a ser exibido, e assim por diante.

Page 31: Lógica de Programação - Unimep/Pronatec - Aula10

Programador amador

Page 32: Lógica de Programação - Unimep/Pronatec - Aula10

Programador “querendo melhorar”

Page 33: Lógica de Programação - Unimep/Pronatec - Aula10

Programador “quase lá”

Page 34: Lógica de Programação - Unimep/Pronatec - Aula10

Programador Pronatec/Unimep

Page 35: Lógica de Programação - Unimep/Pronatec - Aula10

Programador Pronatec/Unimep (em C#)

Page 36: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V2

Escreva um programa que leia uma matriz 2x3 de números inteiros, e ao final, e no final, escreva quantos dos elementos digitados foram maiores do que 10 (dez).

Page 37: Lógica de Programação - Unimep/Pronatec - Aula10

Programador amador

Page 38: Lógica de Programação - Unimep/Pronatec - Aula10

Programador “querendo melhorar”

Page 39: Lógica de Programação - Unimep/Pronatec - Aula10

Programador “quase lá”

Page 40: Lógica de Programação - Unimep/Pronatec - Aula10

Programador Pronatec/Unimep

Page 41: Lógica de Programação - Unimep/Pronatec - Aula10

Programador Pronatec/Unimep (em C#)

Page 42: Lógica de Programação - Unimep/Pronatec - Aula10

Vamos treinar um pouco?!

Page 43: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V3

Faça um algoritmo que leia um vetor de 20 números inteiros. A seguir, encontre o menor elemento do vetor e a sua respectiva posição dentro do vetor, mostrando a seguinte frase: “O menor elemento do vetor é”, M, “e sua posição dentro do vetor é: ”, P.

Page 44: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V3 (em Algoritmo) 1. Inicio

2. Inteiro Numeros[20]

3. Para (Inteiro i de 0 até 19 passo 1)

4. Inicio

5. Ler(Numeros[i])

6. Fim

7. Inteiro P 0

8. Inteiro M Numeros[P]

9. Para (Inteiro i de 0 até 19 passo 1)

10. Inicio

11. Se (Numeros[i] < M)

12. Inicio

13. M Numeros[i]

14. P i

15. Fim

16. Fim

17. Escrever(“O menor elemento do vetor é ”, M, “ e sua posição dentro do vetor é: ”, P)

18. Fim

Page 45: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V3 (em Portugol Studio)

Page 46: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V3 (em C#)

Page 47: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V4

Escreva um algoritmo que leia dois vetores de 10 posições cada um e faça a multiplicação dos elementos de mesmo índice, colocando o resultado em um terceiro vetor. Ao final, mostre os elementos do vetor resultante.

Page 48: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V4 (em Algoritmo) 1. Inicio

2. Inteiro VetorA[10], VetorB[10], VetorResultado[10]

3. Para (Inteiro i de 0 até 9 passo 1)

4. Inicio

5. Ler(VetorA[i])

6. Ler(VetorB[i])

7. VetorResultado[i] VetorA[i] * VetorB[i]

8. Fim

9. Escrever(“O resultado da multiplicação entre os dois vetores é: “)

10. Para (Inteiro i de 0 até 9 passo 1)

11. Inicio

12. Escrever(VetorResultado[i])

13. Fim

14. Fim

Page 49: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V4 (em Portugol Studio)

Page 50: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V4 (em C#)

Page 51: Lógica de Programação - Unimep/Pronatec - Aula10

A saber! Na maioria das linguagens de programação, o tipo de dados string (texto) é considerado um vetor de caracteres, por exemplo, a frase “Bom dia” é um vetor de 7 posições do tipo caractere, contendo cada letra em índice específico.

Page 52: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V5

Tendo em vista a explicação do slide anterior, escrever um programa em C# que leia uma frase qualquer, e mostre esta mesma frase na ordem inversa.

Exemplo: o usuário digitou “O carro quebrado”, o programa irá exibir “odarbeuq orrac o”

Page 53: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V5 (em Algoritmo)

1. Inicio

2. Texto Frase

3. Ler(Frase)

4. Para (Inteiro i de Frase.Tamanho - 1 até 0 passo -1)

5. Inicio

6. Escrever(Frase[i])

7. Fim

8. Fim

Page 54: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V5 (em C#)

Page 55: Lógica de Programação - Unimep/Pronatec - Aula10

A saber! Dentro de uma matriz quadrada (mesmo número de linhas e colunas), a sua diagonal principal é representada pelos elementos onde o índice da linha é igual ao índice da coluna. Veja um exemplo:

0 1 2

0

1

2

Page 56: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V6

Tendo em vista a explicação do slide anterior, declare uma matriz 5 x 5 de números inteiros, e preencha com o valor 1 a diagonal principal, e com o valor 0 os demais elementos. Ao final, escreva a matriz obtida.

Page 57: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V6 (em Algoritmo) 1. Inicio

2. Inteiro Matriz[5, 5]

3. Para (Inteiro i de 0 até 4 passo 1)

4. Para (Inteiro j de 0 até 4 passo 1)

5. Se (i == j)

6. Matriz[i, j] = 1

7. Senão

8. Matriz[i, j] = 0

9. Escrever(“O resultado da matriz é: “)

10. Para (Inteiro i de 0 até 4 passo 1)

11. Para (Inteiro j de 0 até 4 passo 1)

12. Escrever(Matriz[i, j])

13. Fim

Page 58: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V6 (em Portugol Studio)

Page 59: Lógica de Programação - Unimep/Pronatec - Aula10

Exercício_V6 (em C#)

Page 60: Lógica de Programação - Unimep/Pronatec - Aula10

Por hoje é só...

Agora é hora de estudar!

Acesse mais exercícios aqui: http://abre.ai/exercicios-vetormatriz