Repeti¸c˜
ao
Profa.Dra.Thatyana de Faria Piola Seraphim (ECO)
Prof.MSc.Rodrigo Maximiano Antunes de Almeida (ELT) Prof.Dr.Carlos Henrique Val´erio de Moraes (ECA)
Universidade Federal de Itajub´a
thatyana@unifei.edu.br rodrigomax@unifei.edu.br
Uma fun¸c˜ao ´e um instrumento (sub-algoritmo) que tem como objetivo retornar um valor ou uma informa¸c˜ao
A chamada de uma fun¸c˜ao ´e feita atrav´es da cita¸c˜ao de seu nome seguido de seus argumentos iniciais entre parˆenteses quando necess´ario
As fun¸c˜oes podem ser pr´e-definidas pela linguagem ou criadas pelo programador de acordo com o seu interesse
Fun¸c˜oes Pr´e-definidas
Fun¸c˜ao Descri¸c˜ao Fun¸c˜ao Descri¸c˜ao
abs() Valor Absoluto log() Logaritmo
raizq() Raiz Quadrada sen() Seno
quad() Eleva ao quadrado cos() Cosseno
rand() Retorna um n´umero randi() Retorna um n´umero
aleat´orio aleat´orio inteiro
tan() Tangente div() Resto da divis˜ao
mod() Retorna o resto
Desvio condicional
Em algumas situa¸c˜oes ´e necess´ario executar uma sequˆencia de comandos diferentes de acordo com o resultado de um teste.
Exemplo
Desvio condicional
A estrutura de decis˜ao pode ser simples ou composta.
Simples
se<CONDIC¸ ˜AO>entao
<COMANDO1>
fimse Composta
se<CONDIC¸ ˜AO>entao
<LISTA COMANDO1>
senao
<LISTA COMANDO2>
Desvio condicional - Atividade
Algoritmo que lˆe 2 n´umeros e escreve o maior algoritmo“encontraMaior”
vara, b : inteiro inicio
escreva(“Digite o valor de A = “)
leia(a)
escreva(“Digite o valor de B = “)
leia(b)
se(a>b)entao
escreval(“A eh maior”)
senao
escreval(“B eh maior”)
fimse fimalgoritmo
Desvio condicional - Atividade
Leitura de 3 notas de aluno e retorna se foi aprovado algoritmo“mediaFinal”
varnota1, nota2, nota3 : inteiro
media : real inicio
escreva(“Digite a nota 1 = “)leia(nota1)
escreva(“Digite a nota 2 = “)leia(nota2)
escreva(“Digite a nota 3 = “)leia(nota3) media <– (nota1+nota2+nota3)/3
se(media>=60)entao
escreval(“Aluno APROVADO”)
senao
escreval(“Aluno REPROVADO”)
fimse
escreval(“Media = “, media)
Desvios encadeados
Em algumas situa¸c˜oes ´e necess´ario fazer escolhas entre 3 ou mais op¸c˜oes. Nestas situa¸c˜oes podemos encadear os desvios
condicionais.
Forma de uso
se<CONDIC¸ ˜AO>entao
<LISTA COMANDO1>
senao
se<CONDIC¸ ˜AO>entao
<LISTA COMANDO1>
senao
<LISTA COMANDO2>
fimse fimse
Desvios encadeados - Atividade
Montar um algoritmo que leia 3 n´umeros e encontre o maior. Usar desvios encadeados.
Desvios encadeados - Atividade Maior elemento dentre trˆes algoritmo“encontraMaior”
vara, b, c : inteiro inicio
escreva(“Digite o valor de A = ”)leia(a) escreva(“Digite o valor de B = ”)leia(b) escreva(“Digite o valor de C = ”)leia(c) se(a>b)e(b>c)entao
escreval(“A eh o maior”) senao se(b>c)ent˜ao escreval(“B eh o maior”) senao escreval(“C eh o maior”) fimse fimse fimalgoritmo
Estrutura de decis˜ao
Quando ´e necess´ario escolher entre uma quantidade muito grande de op¸c˜oes ´e interessante utilizar uma estrutura de decis˜ao.
A estrutura de decis˜ao permite selecionar uma vari´avel e tomar a¸c˜oes para cada caso particular.
Esta estrutura permite ainda definir uma saida padr˜ao para todos os outros casos que n˜ao forem encontrados.
Estrutura de decis˜ao
Forma de uso
escolha<VARI´AVEL>
caso<VALOR1> <LISTA COMANDO1> caso<VALOR2> <LISTA COMANDO2> outrocaso <LISTA COMANDO3> fimescolha
Estrutura de decis˜ao - Atividade 1 Impress˜ao do sexo algoritmo“imprimeSexo” varsexo : inteiro
inicio
escreva(“Digite 1 p/ masculino e 2 p/ feminino: “)
leia(sexo) escolhasexo caso1 escreval(“Homem”) caso2 escreval(“Mulher”) outrocaso
escreval(“Op¸c˜ao inv´alida!”)
fimescolha fimalgoritmo
Introdu¸c˜ao
Existem ocasi˜oes onde ´e necess´ario efetuar a repeti¸c˜ao de um
trecho de programa um determinado n´umero de vezes.
Neste caso, poder´a ser criado uma estrutura de repeti¸c˜ao que efetue o processamento de um determinado trecho, tantas vezes quantas forem necess´arios.
Estas estruturas s˜ao chamados de: la¸cos de repeti¸c˜ao, malhas de repeti¸c˜ao ou loopings.
Introdu¸c˜ao
Todo looping deve possuir uma condi¸c˜ao que indique quando deve terminar. Uma condi¸c˜ao mal feita pode prender o programa dentro do loop
Esta ´e uma das causas mais comuns para o “travamento” dos
aplicativos, comumente chamada de loop infinito
La¸cos de repeti¸c˜ao
Estruturas computacionais que permitem a repeti¸c˜ao de um trecho de c´odigo N vezes ou enquanto uma condi¸c˜ao for verdadeira.
Repeti¸c˜ao com teste no inicio do loop
A repeti¸c˜ao com teste no inicio do loop ´e usada para repetir N vezes uma ou mais instru¸c˜oes.
N˜ao ´e necess´ario conhecer com antecedencia o n´umero de repeti¸c˜oes.
Forma de uso
enquanto<CONDIC¸ ˜AO>faca
<LISTA COMANDO1>
fimenquanto
O controle do loop ´e feito atrav´es de uma condi¸c˜ao. Para que o sistema N ˜AO entre em “loop infinito” esta
condi¸c˜ao TEM que ser alterada em algum momento
Repeti¸c˜ao com teste no inicio do loop - Atividade 1
Fazer um algoritimo que:
Leia o valor do sal´ario dos funcionarios de uma empresa. Ao terminar de ler os valores, deve imprimir a soma dos sal´arios.
Repeti¸c˜ao com teste no inicio do loop - Atividade 1
Soma dos sal´arios dos funcion´arios algoritmo“somaSalarios”
varsoma, salario : inteiro inicio
soma <– 0 salario <– 1
enquanto(salario >= 0) faca
escreva(“Digite o valor de salario = “)
leia(salario)
soma <– soma + salario
fimenquanto
escreval(“Soma dos salarios = “,soma)
Repeti¸c˜ao com teste no final do loop
Assim como a instru¸c˜ao enquanto. . .faca a instru¸c˜ao repita. . .ate ´e utilizada para repetirmos um bloco do algoritmo diversas vezes.
A diferen¸ca entre as duas ´e que na segunda a verifica¸c˜ao da condi¸c˜ao s´o ´e realizada ao final do bloco, ou seja, mesmo que a condi¸c˜ao seja falsa logo de inicio, ainda sim o bloco ser´a executado pelo menos uma vez.
Forma de uso repita
<LISTA COMANDO1>
Repeti¸c˜ao com teste no final do loop
ATENC¸ ˜AO NOVAMENTE
O controle do loop TAMB´EM ´e feito atrav´es de uma condi¸c˜ao. Portanto, ´e necess´ario que essa condi¸c˜ao seja alterada dentro do loop.
Repeti¸c˜ao com teste no final do loop - Atividade 1
Fazer um algoritimo que:
Leia o valor do sal´ario dos funcionarios de uma empresa. Ao terminar de ler os valores deve imprimir a soma dos sal´arios.
Repeti¸c˜ao com teste no inicio do loop - Atividade 1
Soma dos sal´arios dos funcion´arios algoritmo“somaSalarios”
varsoma, salario : inteiro inicio
soma <– 0
repita
escreva(“Digite o valor de salario = “)
leia(salario)
soma <– soma + salario
ate(salario <= 0)
escreval(“A soma dos salarios eh = “, soma)
Repeti¸c˜ao com vari´avel de controle
Diferentemente das duas formas de loop apresentadas anteriormente a repeti¸c˜ao com vari´avel de controle ´e utilizada para repetirmos um bloco de instru¸c˜oes mas com uma quantidade de repeti¸c˜oes pr´e-estabelecida.
Para atingir este objetivo utilizamos dentro desta estrutura um contador. Este contador indicar´a a quantidade de vezes que devemos passar pelo bloco de instru¸c˜oes.
Forma de uso
para<V>de <X>ate<Y>passo<Z> faca <LISTA COMANDO>
Repeti¸c˜ao com vari´avel de controle - Atividade 1
Fazer um algoritimo que:
Leia cinco valores dados pelo usu´ario
Repeti¸c˜ao com vari´avel de controle - Atividade 1
C´alculo do triplo algoritmo“triplo”
varsoma, valor, contador : inteiro inicio
soma <– 0
para contadorde 1ate 5passo 1 faca escreva(“Digite um valor = ”)
leia(valor)
soma <– soma + 3 * valor
fimpara
escreval(“A soma do triplo eh = “, soma)