INF1005: Programação I Algoritmos e Pseudocódigo
Tópicos Principais Definição de Algoritmo Exemplos Básicos Formas de representação Condicionais Exemplos com Condicionais Repetições Exemplos com Repetições
Definição de Algoritmo Um algoritmo é uma sequência de ações que resolve um problema. Problema Algoritmo
Definição de Algoritmo Mais formalmente: Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecânicamente num período de tempo finito e com uma quantidade de esforço finito.
Exemplos Básicos Receita de um bolo de chocolate: 1. Bater duas claras em neve 2. Adicionar duas gemas 3. Adicionar uma xícara de açucar 4. Adicionar duas colheres de margarina 5. Adicionar uma xícara de farinha de trigo 6. Adicionar uma colher de chá de fermento 7. Adicionar uma xícara de chocolate em pó 8. Levar à batedeira até formar uma massa homogênea 9. Colocar numa forma e levar ao forno em fogo brando
Exemplos Básicos Para trocar um pneu de um carro: 1. Afrouxar ligeiramente as porcas 2. Suspender o carro com o macaco 3. Retirar as porcas e o pneu 4. Colocar o pneu reserva 5. Apertar as porcas 6. Abaixar o carro 7. Dar o aperto final nas porcas
Formas de Representação Linguagem Natural: Os algoritmos são expressos diretamente em linguagem natural (o português, por exemplo). Fluxograma: Representação gráfica que emprega formas geométricas padronizadas para indicar as diversas ações e decisões que devem ser executadas para resolver o problema. Pseudocódigo: Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever algoritmos.
Formas de Representação Problema: A partir de 3 notas de um aluno, calcular sua média aritmética e escrever na tela se ele foi aprovado ou reprovado, levando em conta que a média para aprovação deve ser pelo menos 5.0.
Formas de Representação Linguagem natural: 1. Obter as 3 notas das provas do aluno 2. Calcular a média aritmética das 3 notas 3. Comparar a média com o valor 5.0 4. Se for maior ou igual, escrever aprovado 5. Caso contrário, escrever reprovado
Formas de Representação Fluxograma:
Formas de Representação Fluxograma: bug
Formas de Representação Pseudocódigo: variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado
Formas de Representação Pseudocódigo: variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado armazenam informações necessárias para solução do problema
Formas de Representação Problema: A partir das três notas de um aluno, calcular sua média aritmética e determinar se ele foi aprovado, vai fazer prova final ou foi reprovado. O aluno é aprovado se tem média maior ou igual a 5.0, é reprovado se tem média menor que 3.0 e tem que fazer prova final se não cai em nenhum dos casos anteriores.
Formas de Representação Fluxograma: OBS: Tem um erro nesse diagrama. Quem consegue ver?
Formas de Representação Fluxograma: Dica: O erro está aqui
Formas de Representação Pseudocódigo: variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado
Condicionais Em diversos momentos, nós precisamos controlar a execução de um bloco de instruções, só permitindo sua execução quando uma condição for verdadeira.
Condicionais Exemplo: variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado
Condicionais Exemplo: escreva só executará se média for maior ou igual a 5 variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado
se (media >= 5) entao escreva aluno aprovado Condicionais
Condicionais se (media >= 5) entao escreva aluno aprovado se (condição verdadeira) entao instrução 1 instrução 2...
Condicionais Podemos tratar também quando uma condição é falsa Executa quando condição verdadeira se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado
Condicionais Podemos tratar também quando uma condição é falsa Executa quando condição falsa se (media >= 5) entao escreva aluno aprovado senao escreva aluno reprovado
Condicionais Podemos incluir condicionais dentro dos blocos de instruções de condicionais Bloco executa apenas quando média < 5 variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado
Testes Condicionais Podemos incluir testes condicionais dentro dos blocos de instruções de testes condicionais Instrução executa apenas quando média < 5 e média >= 3 variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado
Testes Condicionais Podemos incluir testes condicionais dentro dos blocos de instruções Instrução executa apenas quando média < 3 variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado
Testes Condicionais Outra forma de escrever o pseudocódigo anterior: variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5) entao escreva aluno aprovado senao se (media >= 3) entao escreva aluno em prova final senao escreva aluno reprovado
Expressões Booleanas A expressão que escrevemos até agora para testar se uma condição é verdadeira chama-se expressão booleana. Uma expressão booleana sempre gera um resultado verdadeiro ou falso.
Expressões Booleanas usaremos os seguintes formatos de expressões booleanas: - média > 5 (média maior que 5?) - média < 5 (média menor que 5?) - média >= 5 (média maior ou igual a 5?) - média <= 5 (média menor ou igual a 5?) - média!= 5 (média diferente de 5?) - média == 5 (média igual a 5?)
Combinando Expressões Booleanas Nós podemos combinar expressões booleanas de duas formas Essas combinações que nós veremos geram um resultado verdadeiro ou falso.
Combinando Expressões Booleanas Usando a conjunção e se(media < 5 e media >= 3) entao escrever em prova final
Combinando Expressões Booleanas Usando a conjunção e se(media < 5 e media >= 3) entao escrever em prova final Expressão 1 Expressão 2 Resultado Falso Falso Falso Falso Falso Verdadeiro Falso sofasl Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro dd
Combinando Expressões Booleanas Usando a disjunção ou se(nota == A ou nota == B) entao escrever passou com louvor
Combinando Expressões Booleanas Usando a disjunção ou se(nota == A ou nota == B) entao escrever passou com louvor Expressão 1 Expressão 2 Resultado Falso Falso Falso Falso Verdadeiro Verdadeiro sofasl Verdadeiro Falso Verdadeiro Verdadeiro Verdadeiro Verdadeiro dd
Exemplos com Condicionais Problema: Escreva um pseudocódigo que obtém as 3 notas de um aluno, calcula sua média e caso o aluno tenha sido aprovado, escreva na tela Aprovado. O aluno é aprovado se ele teve média maior ou igual a 5 e nenhuma nota menor que 3.
Exemplos com Condicionais variaveis media, nota1, nota2, nota3 inicio leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 se (media >= 5 e nota1 >= 3 e nota2 >= 3 e nota3 >= 3) entao escreva Aprovado
Exemplos com Condicionais Problema: Escreva um pseudocódigo que obtém as 3 notas de um aluno, calcula sua média e caso o aluno esteja em prova final, escrever Prova final. O aluno fica em prova final se ele teve média menor que 5 ou se tirou menos que 3 em uma de suas provas.
Exemplos com Condicionais variaveis media, nota1, nota2, nota3 inicio leia(nota1, nota2, nota3) media = (nota1+nota2+nota3)/3 se (media < 5 ou nota1 < 3 ou nota2 < 3 ou nota3 < 3) entao escreva Prova final
Repetições Existem diversos problemas que, para resolvê-los, precisamos executar uma sequência de instruções várias vezes. Para programar uma repetição, precisamos criar um laço (loop).
Repetições Uma forma de criar uma repetição é usar a palavra enquanto. enquanto(expressão booleana) faça instrução 1 instrução 2...
Repetições Uma forma de criar uma repetição é usar a palavra enquanto. enquanto(expressão booleana) faça instrução 1 instrução 2... instruções executam enquanto expressão booleana for verdadeira
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 0 Tela do Computador
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 0 Tela do Computador
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 0 Tela do Computador 0
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 1 Tela do Computador 0
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 1 Tela do Computador 0
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 1 Tela do Computador 0 1
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 2 Tela do Computador 0 1
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 2 Tela do Computador 0 1
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 2 Tela do Computador 0 1 2
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 3 Tela do Computador 0 1 2
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 Valor do número 3 Tela do Computador 0 1 2
Repetições Para escrever os números 0, 1 e 2 na tela: numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 falso Valor do número 3 Tela do Computador 0 1 2
Exemplos com Repetições Problema: Escreva um pseudocódigo que lê o número de alunos de uma turma e depois para cada aluno, lê a suas 3 notas da prova e no final escreve a média da turma.
Exemplos com Repetições variaveis num_alunos, i media, mediaturma, nota1, nota2, nota3 inicio leia num_alunos i = 0 mediaturma = 0 enquanto(i < num_alunos) faça leia nota1, nota2 e nota3 media = (nota1+nota2+nota3)/3 mediaturma = mediaturma + media i = i + 1 mediaturma = mediaturma / num_alunos escrever mediaturma
Exemplos com Repetições Problema: Ler um número não negativo e escrever na tela seu fatorial.
Exemplos com Repetições variaveis f, n inicio leia n f = 1 enquanto(n > 1) faça f = f * n n = n - 1 escreva f