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

Post on 26-Jul-2015

170 views 5 download

Transcript of Lógica de Programação - Unimep/Pronatec - Aula08

Lógica de Programação

Unimep/Pronatec

2° Semestre/2014

AULA 08

- Prof. André Bertoletti -

apbertolet@unimep.br

Aula de hoje

• Conhecendo uma nova linguagem de programação

• Estruturas de repetição

• Exercícios Portugol/C#

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

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

abre.ai/horadocodigo

E se você pudesse escrever e executar programas escritos

em Português?

Conheça a linguagem Portugol

Uma IDE da linguagem Portugol

http://abre.ai/portugolide (http://www.dei.estt.ipt.pt/portugol)

Portugol IDE: Veja como é simples

Depurando e executando o seu código linha a linha na Portugol IDE

Vamos ver ao vivo!

Portugol IDE

Quer aprender mais sobre a Portugol IDE ?

Vídeos: http://abre.ai/videos-portugolide

(https://www.youtube.com/user/programandodozero/videos)

Apostila: http://abre.ai/apostila-portugolide

(GoogleDrive da Turma, Pasta Lógica de Programação -> Apostilas)

Mais uma IDE da linguagem Portugol

http://abre.ai/portugolstudio (http://univali-l2s.github.io/Portugol-Studio-Site)

O Portugol Studio também é simples

Depurando e executando o seu código linha a linha na Portugol Studio

Vamos ver ao vivo!

Portugol Studio

Quer aprender mais sobre a Portugol Studio?

Vídeos: http://abre.ai/videos-portugolstudio

(https://www.youtube.com/user/portugolstudio/videos)

Documentação: Help da própria IDE (tecla F1)

Compare lado a lado e perceba as diferenças

Algoritmo Portugol IDE

Portugol Studio C#

Escala de compreensão das linguagens de programação

Mais próximas do ser humano

Mais próximas da máquina

Algoritmo Portugol Studio

Portugol IDE C#

Estruturas de repetição

(laços/loops)

Quando um trecho de código precisa ser executado diversas vezes

Por que usar estruturas de repetição • Até agora só criamos programas que executam

apenas uma vez

• Muitos problemas requerem um mecanismo de repetição, no qual algum cálculo ou seqüência de instruções é repetida, muitas vezes, usando diferentes condições

• Cada repetição é chamada de iteração ou passagem pelo laço

• CUIDADO! Se a sua condição lógica não for bem pensada, seu programa pode não entrar no laço, ou pior, entrar em loop infinito

São três comandos de repetição

1. Enquanto (while)

– Laço de repetição quando deseja fazer o teste lógico no começo

2. Faça enquanto (do while)

– Laço de repetição quando deseja fazer o teste lógico no final

3. Para (for)

– Laço utilizado quando se conhece o número de vezes que deverá repetir

Exercício_R1

Criar um programa que mostre o texto “Bom dia” 12 vezes na tela.

Exercício_R1 – Resolução em Algoritmo (sem estruturas de repetição)

1. Inicio

2. Escrever(“Bom dia”)

3. Escrever(“Bom dia”)

4. Escrever(“Bom dia”)

5. Escrever(“Bom dia”)

6. Escrever(“Bom dia”)

7. Escrever(“Bom dia”)

8. Escrever(“Bom dia”)

9. Escrever(“Bom dia”)

10. Escrever(“Bom dia”)

11. Escrever(“Bom dia”)

12. Escrever(“Bom dia”)

13. Escrever(“Bom dia”)

14. Fim

Resolvendo o problema com a

estrutura de repetição Enquanto

Com o teste lógico no começo

Exercício_R1 - Resolução em Algoritmo (usando o comando Enquanto)

1. Inicio

2. Inteiro Contador

3. Contador <- 1

4. Enquanto (Contador <= 12)

5. Inicio

6. Escrever (“Bom dia”)

7. Contador <- Contador + 1

8. Fim

9. Fim

Exercício_R1 - Resolução no Portugol IDE (usando o comando Enquanto)

Exercício_R1 - Resolução no Portugol Studio (usando o comando Enquanto)

Exercício_R1 - Resolução no C# (usando o comando Enquanto)

Resolvendo o problema com a

estrutura de repetição Faça Enquanto

Com o teste lógico no final

Exercício_R1 - Resolução em Algoritmo (usando o comando Faça Enquanto)

1. Inicio

2. Inteiro Contador

3. Contador <- 1

4. Faça

5. Escrever (“Bom dia”)

6. Contador <- Contador + 1

7. Enquanto (Contador <= 12)

8. Fim

Exercício_R1 - Resolução no Portugol IDE (usando o comando Faça Enquanto)

Exercício_R1 - Resolução no Portugol Studio (usando o comando Faça Enquanto)

Exercício_R1 - Resolução no C# (usando o comando Faça Enquanto)

Resolvendo o problema com a

estrutura de repetição Para

Com o teste lógico no final

Exercício_R1 - Resolução em Algoritmo (usando o comando Para)

1. Inicio

2. Inteiro Contador

3. Para (Contador de 1 ate 12 passo 1)

4. Inicio

5. Escrever (“Bom dia”)

6. Fim

7. Fim

Exercício_R1 - Resolução no Portugol IDE (usando o comando Para)

Exercício_R1 - Resolução no Portugol Studio (usando o comando Para)

Exercício_R1 - Resolução no C# (usando o comando Para)

Vale lembrar!

Operação completo Operação

resumida (C#) O que faz

Contador = Contador + 1 Contador++ Incrementa 1 na variável Contador

Contador = Contador - 1 Contador-- Decrementa 1 na variável Contador

Contador = Contador + 3 Contador+=3 Incrementa 3 na variável Contador

Contador = Contador - 4 Contador-=4 Decrementa 4 na variável Contador

Contador X Acumulador

• Dizemos que uma variável é considerada contador, quando é utilizada para controlar quantas vezes um determinado trecho de programa foi executado

• Uma variável é identificada como acumulador quando é utilizada para acumular um valor dentro de um laço. Por exemplo, podemos acumular um determinado valor até chegar ao nível desejado dentro de um laço e somente sair deste laço quando o nível for atingido.

Exercício_R2

Numa determinada pré-escola, existe uma regra que diz o seguinte: uma turma de alunos só pode ser fechada quando soma das idades destes alunos for maior que 20. Portanto, criar um programa que leia diversas idades de alunos e vá acumulando suas idades. Quando este acumulo passar de 20, deverá encerrar o programa e mostrar as seguintes informações:

1) Quantos alunos foram lidos

2) Qual é a idade acumulada destes alunos lidos

Exercício_R2 Resolução em Algoritmo

1. Inicio

2. Inteiro IdadeDoAluno

3. Inteiro IdadesAcumuladas <- 0

4. Inteiro ContadorDeAlunos <- 0

5. Enquanto (IdadesAcumuladas <= 20)

6. Inicio

7. Ler(IdadeDoAluno)

8. IdadesAcumuladas <- IdadesAcumuladas + IdadeDoAluno

9. ContadorDeAlunos <- ContadorDeAlunos + 1

10. Fim

11. Escrever(ContadorDeAlunos)

12. Escrever(IdadesAcumuladas)

13. Fim

Exercício_R2 Resolução Portugol IDE

Exercício_R2 Resolução no Portugol Studio

Exercício_R2 Resolução em C#

Vamos treinar um pouco?!

Lista de Exercícios

Resolva os exercícios a seguir em Algoritmo, Portugol ou C#

Exercício_R3

Escreva um programa que leia um numero qualquer e exiba a tabuada deste número digitado.

Exercício_R3 Resolução em Algoritmo

1. Inicio

2. Inteiro Numero, Resultado, Contador

3. Ler(Numero)

4. Para (Contador de 1 ate 10 passo 1)

5. Resultado Numero * Contador

6. Escrever(Resultado)

7. Proximo

8. Fim

Quando as variáveis forem do mesmo

tipo, é possível declará-las todas numa única linha

Exercício_R3 Resolução em Portugol IDE

Exercício_R3 Resolução em Portugol Studio

No Portugol Studio, o

comando para() aceita que a variável de

contador seja declarada e inicializada dentro do

próprio comando.

Exercício_R3 Resolução em C#

No C#, o comando for() também aceita que a variável

de contador seja declarada e inicializada dentro do

próprio comando.

Exercício_R4

Escreva um programa que leia um numero positivo qualquer e exiba a contagem regressiva deste numero até chegar a zero.

Exercício_R4 Resolução em Algoritmo

1. Inicio

2. Inteiro Numero, Contador

3. Ler(Numero)

4. Para (Contador de Numero ate 0 passo -1)

5. Escrever(Contador)

6. Proximo

7. Fim

Exercício_R4 Resolução em Portugol IDE

Exercício_R4 Resolução em Portugol Studio

Repare nas diferenças quando se faz uma contagem regressiva: 1) Na inicialização do contador

2) Na condição lógica 3) No passo do comando para()

Exercício_R4 Resolução em C#

Exercício_R5

Utilizando as estruturas de repetição, escreva um programa que leia uma sequencia de 10 números e no final exiba a média aritmética entre eles.

Exercício_R5 Resolução em Algoritmo

1. Inicio

2. Decimal NumerosAcumulados <- 0.0

3. Decimal Numero

4. Inteiro Contador

5. Para (Contador de 1 ate 10 passo 1)

6. Ler(Numero)

7. NumerosAcumulados <- NumerosAcumulados + Numero

8. Proximo

9. Decimal Media

10. Media <- NumerosAcumulados / 10

11. Escrever(Media)

12. Fim

Variáveis do tipo Decimal devem ser

inicializadas com um conteúdo numérico

contendo casas decimais

Exercício_R5 Resolução em Portugol IDE

Exercício_R5 Resolução em Portugol Studio

Exercício_R5 Resolução em C#

Em C#, você poderá utilizar a letra “m”

(minúscula) no final de um número para

convertê-lo no tipo decimal.

Outra saída seria utilizar o tradicional comando Convert.ToDecimal()

Exercício_R6

Escreva um algoritmo para ler dois valores. Após a leitura deve-se calcular a soma dos valores lidos e armazená-la em uma variável. Após o cálculo da soma, escrever o resultado e escrever também a pergunta 'Novo Cálculo (S/N)?'. Faça a leitura a resposta e se ela for 'S' (sim), deverá repetir todos os comandos (instruções) novamente, mas se a resposta for 'N' (não), o algoritmo deve ser finalizado escrevendo a mensagem 'Fim dos Cálculos'.

Exercício_R6 Resolução em Algoritmo

1. Inicio

2. Decimal Num1, Num2, Resultado

3. Texto Resposta

4. Faça

5. Ler(Num1)

6. Ler(Num2)

7. Resultado <- Num1 + Num2

8. Escrever(Resultado)

9. Ler(Resposta)

10. Enquanto (Resposta = "S" ou Resposta = "s")

11. Escrever("Fim dos cálculos!“)

12. Fim

Exercício_R6 Resolução em Portugol IDE

Exercício_R6 Resolução em Portugol Studio

Exercício_R6 Resolução em C#

Exercício_R7

Criar uma programa que leia um número positivo (diferente de zero) e exiba o resultado deste mesmo número multiplicado por 5.

OBSERVAÇÃO:

Criar uma validação na leitura deste número para garantir que o usuário digite somente números positivos. Se ele digitar um valor negativo (ou zero), o programa deverá dar um aviso que o número está invalido e solicitar a leitura novamente.

Exercício_R7 Resolução em Algoritmo

1. Inicio

2. Decimal Num, Resultado

3. Faça

4. Ler Num

5. Se Num <= 0

6. Inicio

7. Escrever “Número invalido, tente novamente!”

8. Fim

9. Enquanto Num <= 0

10. Resultado <- Num * 5

11. Escrever Resultado

12. Fim

Exercício_R7 Resolução em Portugol IDE

Exercício_R7 Resolução em Portugol Studio

Exercício_R7 Resolução em C#

Por hoje é só...

Agora é hora de estudar!