Post on 26-Jul-2015
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!