![Page 1: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/1.jpg)
Universidade Federal do Vale do São FranciscoCurso de Engenharia de Computação
1
Prof. Jorge [email protected]
www.univasf.edu.br/~jorge.cavalcanti
www.twitter.com/jorgecav
Introdução a Algoritmos Introdução a Algoritmos –– Parte 03Parte 03(baseado no material do prof. Marcelo (baseado no material do prof. Marcelo LinderLinder) )
![Page 2: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/2.jpg)
� Estruturas de Controle de Fluxo
� Os algoritmos desenvolvidos até o momento constituem uma seqüência de ações que sempre são executadas em sua totalidade indiferente do valor da entrada de dados.
� Para a resolução de determinados problemas ou para a
Introdução a Algoritmos
2
� Para a resolução de determinados problemas ou para a execução de determinadas tarefas é necessária a realização de um conjunto distinto de ações e este conjunto é definido com base na análise da entrada de dados.
� Um exemplo simples de uma destas situações é um algoritmo capaz de efetuar o cálculo do imposto de renda devido por um determinado contribuinte. Neste caso dependendo da quantidade de dependentes, do valor de sua renda e outras fatores o cálculo será feito de formas distintas.
![Page 3: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/3.jpg)
� Instrução Condicional� Estas instruções permitem que o programador especifique a seqüência de instruções que será executada.
Considere um problema que exija uma decisão.
� Tomemos como exemplo uma divisão, onde haja a necessidade de que o algoritmo verifique se o divisor é igual
Introdução a Algoritmos
3
necessidade de que o algoritmo verifique se o divisor é igual ou diferente de zero. Se for igual não é possível dividir. Se for diferente é possível dividir.
Sintaxe:se (<expressão-lógica>) então
<sequência de comandos>senão<seqüência de comandos>
fimse
![Page 4: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/4.jpg)
Exemplo 5: Instrução Condicional
algoritmo "divisão – instrução condicional“// Seção de Declarações varn1, n2: inteiroresultado: realinicio
Introdução a Algoritmos
4
inicio// Seção de Comandosescreva ("Digite o dividendo:")leia (n1)escreva ("Digite o divisor:")leia (n2)
se (n2=0) entaoescreva ("Impossível dividir por zero")
senaoresultado <- n1/n2escreva ("O resultado eh:", resultado)
fimsefimalgoritmo
![Page 5: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/5.jpg)
Introdução a Algoritmos
5
![Page 6: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/6.jpg)
Introdução a Algoritmos
Fluxograma
Vimos o símbolo quando falamos sobrefluxograma. Este símbolo nos permite implementar ainstrução “se entao” e “se entao senao”. Exemplo:. .
.
Verdadeiro
66
<expressão-lógica>
Verdadeiro
Falso
<seqüência-de-comandos> . . .
. . .
<expressão-lógica>
Verdadeiro
Falso
<seqüência-de-comandos1> . . .
<seqüência-de-comandos2>
![Page 7: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/7.jpg)
Fluxograma/Exercício – Com base no que foi expostoconstrua um fluxograma para obter o resultado dadivisão de dois números inteiros quaisquer.
n1, n2: inteirores: real
Inicio
Fim
“O resultado da divisão é ”,res
Introdução a Algoritmos
n1
res <- n1 / n2
n2=0“ImpossívelDividir”
verdadeiro
falso
“Digite odividendointeiro:”
n2“Digite odivisorinteiro:”
![Page 8: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/8.jpg)
Exercício 9 – Construa um algoritmo,representando-o com um pseudocódigo e com umfluxograma, que calcule o salário líquido de umfuncionário. O algoritmo recebe através do tecladoo salário bruto de um determinado funcionário,caso este seja inferior a R$ 300,00 é descontado5% em impostos, se o salário variar de R$ 300,00
Estruturas de Controle de Fluxo
8
5% em impostos, se o salário variar de R$ 300,00até 1.200,00 é descontado 10% em impostos, seesse for superior a R$ 1.200,00 é descontado 15%em impostos. Ao final o algoritmo deve exibir osalário líquido do funcionário.
![Page 9: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/9.jpg)
algoritmo “exercício 9a”var salario: realinicioescreva (“Entre com o salário bruto do funcionário: ”)
leia (salario)se (salario<300.0) entaosalario <- salario*0.95
fimsese ((salario>=300) e (salario<=1200)) entao
9
se ((salario>=300) e (salario<=1200)) entaosalario <- salario*0.90
fimsese (salario>1200) entaosalario <- salario*0.85
fimseescreva (“O salário líquido do funcionário é: ”)escreva (salario:6:2)
fimalgoritmo
![Page 10: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/10.jpg)
algoritmo “exercício 9b”var salario: realinicioescreva (“Entre com o salário bruto do funcionário: ”)
leia (salario)se (salario<300.0) entaosalario <- salario*0.95
senaose ((salario>=300) e (salario<=1200)) entao
10
se ((salario>=300) e (salario<=1200)) entaosalario <- salario*0.90
senaosalario <- salario*0.85
fimsefimseescreva (“O salário líquido do funcionário é: ”)escreva (salario:6:2)
fimalgoritmo
![Page 11: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/11.jpg)
salario
salario: real
Inicio
falso
“Entre com o salário bruto do funcionário:”
salario<300 salario<=1200falso
salario <- 0.85 * salario
11
salario <- 0.95 * salario
Fim
verdadeiro verdadeiro
salario <- 0.9 * salario “O salário líquido do funcionário é: ”
Salario:6:2
![Page 12: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/12.jpg)
Estruturas de Controle de Fluxo
Exercício 10 – Faça um algoritmo,representando-o com um pseudocódigo e comum fluxograma, para ler três valores reais einformar se estes podem ou não formar os ladosde um triângulo, e qual tipo de triângulo seria:Eqüilátero, Isósceles ou Escaleno.
12
Eqüilátero, Isósceles ou Escaleno.
![Page 13: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/13.jpg)
Estruturas de Controle de Fluxo
Exercício 11 – Elabore um algoritmo,representando-o com um pseudocódigo e com umfluxograma, que com base no nome, em três notas eno número de faltas de um aluno qualquerdetermine qual a sua situação final: Aprovado,Reprovado por Falta ou Reprovado por Média. Asnotas mencionadas devem compor a média que para
13
notas mencionadas devem compor a média que parapropiciar aprovação deve ter valor mínimo 7,0 e olimite de faltas é igual a 15. A reprovação por faltasobrepõe a reprovação por Média.
![Page 14: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/14.jpg)
Teste de Mesa
Ao nos recordarmos dos passos necessários paraa construção de um algoritmo veremos que após aelaboração de um algoritmo devemos testá-lorealizando simulações com o propósito deverificarmos se este está ou não correto.
Existem alguns softwares disponíveis que efetuama interpretação de algoritmos representados em
14
a interpretação de algoritmos representados empseudocódigos ou em fluxogramas.
Porém, existe uma técnica denominada “teste demesa” que permite a simulação do processo deinterpretação de um algoritmo utilizando apenas umpapel e uma caneta.
![Page 15: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/15.jpg)
Teste de MesaPara acompanhar o desenvolvimento de um
algoritmo é importante verificar o estado dos dadosa cada instrução, verificando o conteúdo de todasas variáveis contidas no algoritmo.
Sendo assim deve-se enumerar as linhas doalgoritmo e em seguida criar uma tabela onde, acada linha, são mostrados os conteúdos das
15
cada linha, são mostrados os conteúdos dasvariáveis do algoritmo e o número da linhaexecutada.
Para uma melhor visualização do processoadotaremos a seguinte convenção: nas linhas emque uma variável é lida (entrada), o valor davariável ficará entre colchetes [] e quando oconteúdo de uma variável for escrito (saída), ficaráentre chaves {}.
![Page 16: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/16.jpg)
Algoritmo “vértices”
Var vertices, faces, arestas: inteiro
Inicio
1. Escreva (“Entre com o número de faces da figura geométrica: ”)
2. Leia (faces)
3. Escreva (“Entre com um número da arestas da figurageométrica:”)
4. Leia (arestas)
5. Vertices <- arestas + 2 – faces
Escreva (“O número de vértices do objeto especificado é: ”,
16
6. Escreva (“O número de vértices do objeto especificado é: ”,vertices)
FimalgoritmoLinha Vertices Faces Arestas
1 ? ? ?
2 ? [6] ?
3 ? 6 ?
4 ? 6 [12]
5 8 6 12
6 {8} 6 12
![Page 17: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/17.jpg)
� Comando de Seleção Múltipla
� Em algumas situações ao chegarmos a uma determinada instrução de um algoritmo devemos selecionar um dentre alguns trechos a seguir, tendo como base para esta escolha um conjunto de valores.
Introdução a Algoritmos
17
� Para lidar com casos deste tipo foi criado o comando de seleção múltipla.
Trecho 1Trecho 2
Trecho 3
![Page 18: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/18.jpg)
Sintaxe: Comando de seleção múltipla
escolha (<variável>)caso <valor11>, <valor12>, ..., <valor1n>
<seqüência-de-comandos-1>caso <valor21>, <valor22>, ..., <valor2m>
Introdução a Algoritmos
18
caso <valor21>, <valor22>, ..., <valor2m><seqüência-de-comandos-2>
...outrocaso
<seqüência-de-comandos-extra>fimescolha
![Page 19: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/19.jpg)
Exemplo 6:
algoritmo "Times - seleção múltipla"// Função :// Autor :// Data : 10/8/2010// Seção de Declarações var
escolha (time)
caso "Sport", "Santa Cruz", "Nautico", "Petrolina"
escreval ("É um time Pernambucano")
Introdução a Algoritmos
19
vartime: caractere
inicio// Seção de Comandos escreval ("Digite um nome de time de futebol:")leia (time)
escreval ("É um time Pernambucano")
caso "Vitória", "Bahia", "Camaçari", "Juazeiro"
escreval ("É um time Baiano")
outrocaso
escreval ("É de outro Estado")
fimescolha
fimalgoritmo
![Page 20: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/20.jpg)
Introdução a Algoritmos
20
![Page 21: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/21.jpg)
1) Receba do usuário um número entre 1 e 7, inclusive 1 e 7.Se ele digitar o número 1 mostre “Hoje é Domingo”, se eledigitar o número 2 mostre “Hoje é Segunda”.......
2) Peça uma letra e mostre se ela é vogal ou consoante.
3) Peça três números e mostre o maior entre eles.
Introdução a Algoritmos
21
3) Peça três números e mostre o maior entre eles.
![Page 22: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/22.jpg)
1 - Receba do usuário um número entre 1 e 7,inclusive 1 e 7. Se ele digitar o número 1 mostre“Hoje é Domingo”, se ele digitar o número 2 mostre“Hoje é Segunda”.......
Algoritmos e Programação
algoritmo "Dias da Semana seleção múltipla“
var
num: inteiro
inicio
caso 4
escreval ("Hoje é Quarta")
caso 5
escreval ("Hoje é Quinta")
2222
inicio
// Seção de Comandos
escreval ("Digite um número de 1 a 7:")
leia (num)
escolha (num)
caso 1
escreval ("Hoje é Domingo")
caso 2
escreval ("Hoje é Segunda")
caso 3
escreval ("Hoje é Terça")
escreval ("Hoje é Quinta")
caso 6
escreval ("Hoje é Sexta")
caso 7
escreval ("Hoje pe Sábado")
outrocaso
escreval ("Número inválido")
fimescolha
fimalgoritmo
![Page 23: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/23.jpg)
2 - Peça uma letra e mostre se ela é vogal ouconsoante.
Algoritmos e Programação
algoritmo "Letras do Alfabeto seleção multipla“varlet: caracter
inicio// Seção de Comandos
caso "b", "c", "d", "f", "g", "h", "j","k", "l", "m", "n", "p", "q", "r",
Tudo na mesma linha do algoritmo
23
// Seção de Comandosescreval ("Digite uma letra do alfabeto:")leia (let)escolha (let)
caso "a", "e", "i", "o", "u"escreval ("É uma vogal")
"k", "l", "m", "n", "p", "q", "r","s", "t", "v", "x", "w", "y", "z"escreval ("É uma consoante")
outrocasoescreval ("É outro caractere")
fimescolhafimalgoritmo
![Page 24: Introdução a Algoritmos Introdução a Algoritmos ––Parte 03 ...jorge.cavalcanti/Introducao_Algoritmos_Parte03.pdf · variáveis do algoritmo e o número da linha executada](https://reader037.vdocuments.mx/reader037/viewer/2022100222/5c0d1cc209d3f2e4358d3a40/html5/thumbnails/24.jpg)
3 - Peça três números e mostre o maior entre eles.
Algoritmos e Programação
algoritmo "MAIOR“varn1,n2,n3, maior: inteiroinicio// Seção de Comandos
senaose (n2>n3) entaomaior:= n2
senaomaior:= n3
24
// Seção de Comandosescreval ("Digite três números")leia (n1,n2,n3)
se (n1>n2) e (n1>n3) entaomaior:= n1
maior:= n3fimse
fimseescreva (maior)fimalgoritmo