Você está na página 1de 32

Algoritmos e

estrutura de
dados I

Profa. Lara Popov Z. B. Oberderfer


lara.popov@ifsc.edu.br
2

Processos de Seleção ou
Estruturas de Decisão
Se... Então
Se... Então... Senão
Caso... Selecione
3

Estrutura de Decisão

São decisões lógicas tomadas um


função dos dados ou resultados
anteriores.
4

Se... Então / If... Then

A estrutura de seleção SE, é usada


para tomar decisões, ou seja, desviar
a execução do algoritmo de acordo
com uma determinada condição.
5

Se... Então

Representação em Pseudocódigo

Se <condição> Então
<comandos>
Fim_se
6

Algoritmo em Fluxograma
convencional
Faça um algoritmo que
leia um valor inteiro,
referente à idade de
uma pessoa, e imprima
uma mensagem
informando que ela
pode votar somente se
tiver 16 anos ou mais.
7

Algoritmo em Pseudocódigo

Algoritmo “Verifica Idade - 1”


Var
idade : inteiro
Início
Escreva “Informe a sua idade: “
Leia idade
Se idade >= 16 Então
Escreva “Você pode votar!”
Fim_se
Fim
8

Se... Então... Senão


If... Then... Else
Podemos fazer, além do desvio para
quando a condição for verdadeira,
também um desvio condicional
quando a expressão analisada
resultar no valor lógico falso.
9

Se... Então... Senão

Representação em Pseudocódigo

Se <condição> Então
<comandos quando a condição
for verdadeira>
Senão
<comandos quando a condição
for falsa>
Fim_se
10

Algoritmo em Fluxograma
convencional
Faça um algoritmo que leia um
valor inteiro, referente à idade
de uma pessoa, e imprima uma
mensagem informando que ela
pode votar somente se tiver 16
anos ou mais, caso contrário
informe que ela não pode
votar.
11

Algoritmo em Pseudocódigo

Algoritmo “Verifica Idade - 2”


Var
idade : inteiro
Início
Escreva “Informe a sua idade: “
Leia idade
Se idade >= 16 Então
Escreva “Você pode votar!”
Senão
Escreva “Você não pode votar!”
Fim_se
Fim
12

Selecione... Caso – Switch... Case

A estrutura de decisão Selecione-Caso


é utilizada para testar, na condição,
uma única expressão, que produz um
resultado, ou, então, o valor de uma
variável, em que está armazenado um
determinado conteúdo.
Compara-se o resultado obtido no teste
com os valores fornecidos em cada
cláusula “Caso”.
13

Selecione... Caso

Definição em Pseudocódigo:

Selecione <expressão>
Caso <valor1> Faça <comando>
Caso <valor2> Faça <comando>
Caso <valor3> Faça <comando>
Senão <comando>
Fim_selecione
14

Algoritmo em Pseudocódigo
Algoritmo “Verificar dia da semana”
Var
dia : inteiro
Início
Escreva “Informe o dia da semana (1 a 7): “
Leia dia
Selecione dia
Caso 1 Faça Escreva “Domingo”
Caso 2 Faça Escreva “Segunda-feira”
Caso 3 Faça Escreva “Terça-feira”
Caso 4 Faça Escreva “Quarta-feira”
Caso 5 Faça Escreva “Quinta-feira”
Caso 6 Faça Escreva “Sexta-feira”
Caso 7 Faça Escreva “Sábado”
Senão Escreva “Dia inválido!”
Fim_selecione
Fim
15

Algoritmo em
Fluxograma
convencional
16

Selecione... Caso – Exemplo 2


17

Exercícios

 1) João Papo-de-Pescador, homem de bem, comprou


um microcomputador para controlar o rendimento
diário de seu trabalho. Toda vez que ele traz um peso
de peixes maior que o estabelecido pelo regulamento
de pesca do estado de São Paulo (50 quilos) deve
pagar um multa de R$ 4,00 por quilo excedente. João
precisa que você faça um diagrama de blocos que
leia a variável P (peso de peixes) e verifique se há
excesso. Se houver, gravar na variável E (Excesso) e na
variável M o valor da multa que João deverá pagar.
Caso contrário mostrar tais variáveis com o conteúdo
ZERO.
18

Exercícios

2) Elabore um algoritmo que leia as variáveis C e N,


respectivamente código e número de horas trabalhadas
de um operário. E calcule o salário sabendo-se que ele
ganha R$ 10,00 por hora. Quando o número de horas
exceder a 50 calcule o excesso de pagamento
armazenando-o na variável E, caso contrário zerar tal
variável. A hora excedente de trabalho vale R$ 20,00. No
final do processamento imprimir o salário total e o salário
excedente.
19

Exercícios

3) Desenvolva um algoritmo que:


– Leia 4 (quatro) números;
– Calcule o quadrado de cada um;
– Se o valor resultante do quadrado do
terceiro for >= 1000, imprima-o e finalize;
– Caso contrário, imprima os valores lidos
e seus respectivos quadrados.
20

Exercícios

4)Faça um algoritmo que leia um


número inteiro e mostre uma
mensagem indicando se este número
é par ou ímpar, e se é positivo ou
negativo.
21

Exercícios
5) A Secretaria de Meio Ambiente que controla o índice de poluição mantém 3
grupos de indústrias que são altamente poluentes do meio ambiente. O índice
de 3poluição aceitável varia de 0,05 até 0,25. Se o índice sobe para 0,3 as
indústrias do 1º grupo são intimadas a suspenderem suas atividades, se o índice
crescer para 0,4 as industrias do 1º e 2º grupo são intimadas a suspenderem suas
atividades, se o índice atingir 0,5 todos os grupos devem ser notificados a
paralisarem suas atividades. Faça um algoritmo que leia o índice de poluição
medido e emita a notificação adequada aos diferentes grupos de empresas.
22

Exercícios

6)Elabore um algoritmo que dada a


idade de um nadador classifique-o
em uma das seguintes categorias:
– Infantil A = 5 a 7 anos
– Infantil B = 8 a 11 anos
– Juvenil A = 12 a 13 anos
– Juvenil B = 14 a 17 anos
– Adultos = Maiores de 18 anos
23

Estruturas de Repetição
Utilizamos os comandos de repetição quando
desejamos que um determinado conjunto de instruções
ou comandos sejam executados um número definido
ou indefinido de vezes, ou enquanto um determinado
estado de coisas prevalecer ou até que seja
alcançado.
24

Estruturas de Repetição

As estruturas de repetição são muitas vezes


chamadas de Laços ou, também, de Loops.
A classificação das estruturas de repetição é feita
de acordo com o conhecimento prévio do
número de vezes que o conjunto de comandos
será executado.
Assim, os laços dividem-se em:
– Laços contados;
– Laços condicionais.
25

Estruturas de Repetição

Laços Contados: quando se conhece


previamente quantas vezes o
comando composto no interior da
construção será executado.

Pseudocódigo
Para <var> de <início> até <final> incr de <inc> faça
<comando_composto>
Fim_para
26

Estrutura de Repetição
27

Estruturas de Repetição
28

Estruturas de Repetição
29

Estruturas de Repetição
30

Estruturas de Repetição
31

Estruturas de Repetição
 As estruturas de controle do fluxo de execução são essenciais para que
se possa alterar a seqüência de execução dos comandos de um
programa em função dos dados do mesmo.
 As estruturas de decisão permitem escolher qual o caminho a ser
seguido num algoritmo em função de uma ou mais condições. A
construção Se utiliza apenas uma condição, ao passo que a
construção Escolha utiliza uma ou mais condições.
 As estruturas de repetição são usadas quando se deseja repetir um
trecho de um algoritmo (comando composto). Quando o número de
vezes que o trecho será repetido é conhecido diz-se que o laço é do
tipo contado (construção Para). Quando este número não é
conhecido, mas é função de uma determinada condição, então têm-
se os laços condicionais (construção Enquanto e Repita).
 As construções Repita e Enquanto diferem uma da outra pelo fato de a
primeira efetuar o teste da condição no final da construção e,
portanto, executar o comando composto ao menos uma vez. Por outro
lado, a construção Enquanto efetua o teste da condição em seu início
e executa o comando composto zero ou mais vezes.
32

Exercícios
 1) Faça um algoritmo que determine o maior entre N números. A
condição de parada é a entrada de um valor 0, ou seja, o
algoritmo deve ficar calculando o maior até que a entrada seja
igual a 0 (ZERO).
 2) Uma rainha requisitou os serviços de um monge e disse-lhe que
pagaria qualquer preço. O monge, necessitando de alimentos ,
indagou à rainha sobre o pagamento, se poderia ser feito com
grãos de trigo dispostos em um tabuleiro de xadrez, de tal forma
que o primeiro quadro deveria conter apenas um grão e os
quadros subseqüentes , o dobro do quadro anterior. A rainha
achou o trabalho barato e pediu que o serviço fosse executado,
sem se dar conta de que seria impossível efetuar o pagamento.
Faça um algoritmo para calcular o número de grãos que o monge
esperava receber.
 3) Faça um algoritmo que conte de 1 a 100 e a cada múltiplo de 10
emita uma mensagem: “Múltiplo de 10”.

Você também pode gostar