Baixe o app para aproveitar ainda mais
Prévia do material em texto
Algoritmos e Pseudocódigo INF1005: Programação I 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. AlgoritmoAlgoritmoProblemaProblema 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: bugbug 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” fim fim 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” fim fim 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” fim fim fim 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” fim fim 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” fim fim escrevaescreva só executará só executará se se médiamédia for maior ou for maior ou igual a 5igual a 5 Condicionais se (media >= 5) entao escreva “aluno aprovado” fim Condicionais se (media >= 5) entao escreva “aluno aprovado” fim se (condição verdadeira) entao instrução 1 instrução 2 ... fim Condicionais • Podemos tratar também quando uma condição é falsa se (media >= 5) entao escreva “aluno aprovado” senao escreva “aluno reprovado” fim Executa quandoExecuta quando condiçãocondição verdadeiraverdadeira Condicionais • Podemos tratar também quando uma condição é falsa se (media >= 5) entao escreva “aluno aprovado” senao escreva “aluno reprovado” fimExecuta quandoExecuta quando condição falsacondição falsa Condicionais • Podemos incluir condicionais dentro dos blocos de instruções de condicionais 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” fim fim fim Bloco executaBloco executa apenas quandoapenas quando média < 5média < 5 Testes Condicionais • Podemos incluir testes condicionais dentro dos blocos de instruções de testes condicionais 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” fim fim fim InstruçãoInstrução executa apenasexecuta apenas quandoquando média < 5 emédia < 5 e média >= 3média >= 3 Testes Condicionais • Podemos incluir testes condicionais dentro dos blocos de instruções 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” fim fim fim InstruçãoInstrução executa apenasexecuta apenas quandoquando média < 3média < 3 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” fim fim fim 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” fim fim 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 duasformas • 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” fim Combinando Expressões Booleanas • Usando a conjunção e Expressão 1 Expressão 2 Resultado Falso Falso Falso Falso soFasl Verdadeiro Falso Verdadeiro Falso Falso Verdadeiro dd Verdadeiro Verdadeiro se(media < 5 e media >= 3) entao escrever “em prova final” fim Combinando Expressões Booleanas • Usando a disjunção ou se(nota == A ou nota == B) entao escrever “passou com louvor” fim Combinando Expressões Booleanas • Usando a disjunção ou Expressão 1 Expressão 2 Resultado Falso Falso Falso Falso soFasl Verdadeiro Verdadeiro Verdadeiro Falso Verdadeiro Verdadeiro dd Verdadeiro Verdadeiro se(nota == A ou nota == B) entao escrever “passou com louvor” fim 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” fim fim 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” fim fim 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 ... fim 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 ... fim instruçõesinstruções executam executam enquanto enquanto expressãoexpressão booleanabooleana for for verdadeiraverdadeira 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim 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 fim Valor do número 3 Tela do Computador 0 1 2 Repetições • Para escrever os números 0, 1 e 2 na tela: Valor do número 3 Tela do Computador 0 1 2 falsofalso numero = 0 enquanto(numero < 3) faça escrever numero numero = numero + 1 fim 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 fim mediaTurma = mediaTurma / num_alunos escrever mediaTurma fim 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 fim escreva f fim
Compartilhar