Prévia do material em texto
algoritmo - exemplo objetivo: verificar se um aluno está aprovado (média das 3 notas >= 5.0) ou reprovado (caso contrário) Estrutura de decisão Decisão simples se <expressao_logica> entao <sequencia_de_comandos> fimse Exemplo: algoritmo “DECISAO_SIMPLES” {Ler um número inteiro e exibi-lo se for positivo} var num : inteiro; inicio leia (num); se (num > 0) entao escreval (num) fimse fimalgoritmo Estrutura de decisão Decisão composta se <expressao_logica> entao <sequencia_de_comandos_1> senao <sequencia_de_comandos_2> fimse Estrutura de decisão Exemplo: algoritmo “DECISAO_COMPOSTA” {Ler um número e determinar se é maior que zero ou não} var num : inteiro inicio leia (num) se (num > 0) entao escreval (num, " é maior que zero") senao escreval (num, " é menor ou igual a zero") fimse; Fimalgoritmo. Estrutura de decisão • Decisão compostas com comandos SE aninhados: se <expressao_logica_1> entao se <expressao_logica_2> entao <sequencia_de_comandos_1> fimse senao se <expressao_logica_3> entao <sequencia_de_comandos_2> senao <sequencia_de_comandos_3> fimse; <sequencia_de_comandos_4> fimse Estrutura de decisão algoritmo "EXEMPLO_DE_SE_ANINHADO" {Determinar se um número é maior, menor ou igual a zero} var num : inteiro Inicio leia (num) se (num > 0) entao escreval (num, " é maior que zero") senao se (num < 0) entao escreval (num, " é menor que zero") senao escreval (num, " é igual a zero") fimse fimse Fimalgoritmo. Estrutura de decisão Decisão múltipla: escolha <expressao_de_selecao> caso <exp11>, <exp12>,.., <exp1n> <sequencia_de_comandos_1> caso <exp21>, <exp22>,.., <exp2n> <sequencia_de_comandos_2> ... outrocaso <sequencia_de_comandos_3> fimescolha Estrutura de decisão- Decisão múltipla: algoritmo “DECISAO_MULTIPLA" {Simular uma calculadora básica de números inteiros} Var num_1, num_2 : inteiro; operacao : caracter; inicio leia (num_1) leia (num_2) leia (operacao) escolha (operacao) caso "+” escreval(num_1 + num_2) caso "-” escreval(num_1 - num_2) caso "*", "X” escreval(num_1 * num_2) caso "/” escreval(num_1 / num_2) outrocaso escreval("Operação inválida") fimescolha fimalgoritmo Estrutura de Repetição ● Usada quando se deseja que um trecho do algoritmo seja repetido várias vezes; ● A quantidade de repetições pode ser fixo ou depender de uma condição. Número Fixo de Repetições ● Em algoritmos escritos em pseudocódigo (no Visualg), a estrutura (palavra-chave) utilizada é a “para”; ● Neste tipo de estrutura usa-se uma variável para fazer a contagem das repetições; ● Em algoritmos mais simples, normalmente esta variável é do tipo numérico inteiro. Número Fixo de Repetições Estrutura básica: para <VARIÁVEL> de <VALINICIAL> ate <VALFINAL> [passo <INCREMENTO>] faca <COMANDOS> fimpara Número Fixo de Repetições ● Elementos principais: <VARIÁVEL>: é a variável que vai fazer a contagem do núme ro de repetição dos <COMANDOS>; <VALINICIAL> e <VALFINAL> são, respectivamente o primeiro valor e o último valor da <VARIÁVEL>; Passo<INCREMENTO> especifica o valor de mudança da <VARIÁVE> . É um elemento opcional (por isso foi indicado entre os colchetes). Caso nãoseja usado, o incremento será de 1. Caso se deseje um icremento com valor diferente, deve-se utilizar esta palavra-chave. Número Fixo de Repetições – Exemplo 1 Exemplo ● Escrever um algoritmo para exibir os 20 primeiros números inteiros, iniciando com o valor 0. Solução eficiente 02: algoritmo “contagem” var i : inteiro inicio para i de 0 ate 20 faca escreval(i) fimpara fimalgoritmo Número Fixo de Repetições – Exemplo 2 ● Escreva um algoritmo para exibir os números inteiros, partindo de 0 até 20, mas com variação de 2 na contagem. Exemplo: 0, 2, 4, ..., 20. Solução: usar um passo (incremento) algoritmo “contagem 2 em 2” var i : inteiro inicio para i de 0 ate 20 passo 2 faca escreval(i) fimpara fimalgoritmo Número Fixo de Repetições – Exemplo 3 ● Escreva um algoritmo para exibir todos os números inteiros de 0 até 20 em ordem decrescente. Solução algoritmo “contagem decrescente” var i : inteiro inicio para i de 20 ate 0 passo -1 faca escreval(i) fimpara fimalgoritmo Número de Repetições, considerando a condição ● INDEFINIDO DE REPETIÇÕES E TESTE NO INÍCIO (ESTRUTURA “ENQUANTO – FAÇA”) - Essa estrutura de repetição é utilizada quando não se sabe o número de vezes em que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando se sabe esse número. Obs: Podem existir situações em que o teste condicional da estrutura de repetição, que fica no início do algoritmo, resulta em um valor falso logo na primeira comparação. Nesses casos, os comandos de dentro da estrutura de repetição não serão executados. Estrutura básica: ENQUANTO condição FAÇA INÍCIO comando 1; comando 2 ; comando 3 FIM Enquanto a condição for verdadeira, os comando1, Comando2 e comando3 serão executados. Exemplo: algoritmo “Condicional1” var x : inteiro y:inteiro Inicio X <-1 Y <- 5 ENQUANTO X < Y FAÇA INÍCIO X <- X+2; Y <- Y+1; FIM enquanto Fim. Número de Repetições, considerando a condição ● ESTRUTURA DE REPETIÇÃO PARA NÚMERO INDEFINIDO DE REPETIÇÕES E TESTE NO FINAL (ESTRUTURA “REPITA – ATÉ”) Essa estrutura de repetição é utilizada quando não se sabe o número de vezes em que um trecho do algoritmo deve ser repetido, embora também possa ser utilizada quando sabe esse número. A diferença entre a estrutura ENQUANTO e a estrutura REPITA é que na estrutura REPITA os comandos serão repetidos pelo menos uma vez, já que a condição se encontra no final. Número de Repetições, considerando a condição Estrutura básica: REPITA comando1; Comendo2; Comando3; ATÉ condição Repita os comandos até a condição, de parada, se Tornar verdadeira. Exemplo: algoritmo “Condicional1” var x : inteiro y:inteiro Inicio X <-1 Y <- 5 REPITA X <- X+2; Y <- Y+1; ATÉ X >= Y Fim. Fonte de consulta • http://www2.ufersa.edu.br/portal/view/uploads/setores/164/arquivos/Informatic aAplicada/aula07_estrutura_repeticao.pdf • http://www.inf.ufsc.br/~lau.lung/INE5201/Aula%207%20- %20ESTRUTURA_DE_REPETICAO.pdf