SlideShare a Scribd company logo
1 of 84
Download to read offline
Programação e Sistemas de Informação
Módulo 2
Escola Secundária Filipa de Vilhena
2012/2013
Mecanismos de Controlo de Execução
Conteúdos
Continuação do desenvolvimento de algoritmos
e utilização de linguagem informal na resolução de
problemas
Mecanismos de controlo do programa
a) Estruturas de decisão
b) Estruturas de selecção múltipla
c) Estruturas de repetição
Noções básicas de C++
Até Agora …
… os algoritmos elaborados nas aulas têm tido como base o
tratamento de estruturas sequenciais, ou seja, sequências
de instruções…
… compostas por três elementos:
• Entrada de Dados (Input)
• Processamento / Tratamento de Dados
• Saída de Dados (Output)
Instrução 1
Instrução n
Instrução 2
Estruturas de dados (ou condicionais)
Na vida real somos forçados a tomar decisões a todo o
instante, baseadas em alguma situação que se nos
depara.
Em algoritmia, essa situação tem o nome de condição…
… a(s) acção(ões) a desencadear depende(m) …
… do resultado lógico dessa condição …
Estruturas de dados (ou condicionais)
Imagine a seguinte a seguinte situação:
Ao sair de casa….
SE estiver a chover…
ENTÃO deve levar guarda-chuva.
Recordando Operadores
Como foi dito anteriormente, uma condição produz um
resultado lógico.
Para se produzirem resultados do tipo lógico, utilizam-
se operadores:
– Relacionais
– Lógicos
E produzem resultados que
podem assumir um de dois valores, que são …
… Verdadeiro ou … Falso.
Recordando Operadores Relacionais/Booleanos
Operador Nome Exemplo Resultado
=; == Igual a… 7=5; 7==5 Falso
<>; != Diferente de… 10/2<>3; 10/2!=3 Verdadeiro
> Maior que 3*2>8/2 Verdadeiro
< Menor que… 7<7 Falso
<= Menor ou igual que… 7<=14/2 Verdadeiro
>= Maior ou igual que… a>=5 Verdadeiro, SE a for
um nº >=5
Recordando Operadores Lógicos
Operador Nome Exemplo Resultado
E; AND;&& Conjunção ((5=5) E (3>6)) Falso
OU;OR;|| Disjunção ((5=5) OU (3>6)) Verdadeiro
NÃO, NOT; ! Negação
(inverte valor lógico)
NÃO (5=5) Falso
Recordando Operadores Lógicos
A B A OU B ou A || B
V V V
V F V
F V V
F F F
A B A E B ou A && B
V V V
V F F
F V F
F F F
OU; OR; ||
E; AND; &&
A NÃO A ou ! A
V F
F V
NÃO; NOT; !
Atividade – Recordar é Viver
1. Qual o valor lógico da seguinte expressão, com: A = 9, B = “A” e C = 10
NOT((A<=70) AND (C>=2) OR (B<>”C”))
2. Qual o valor lógico das seguintes expressões:
a) (A+B) < C
b) ((A+B) < C) OR (A>C)
c) NOT((A<B) AND (B>C))
em que: A=10, B=5 e C=15
Estruturas de Decisão
Estruturas de
Decisão ou Seleção
Com base numa
CONDIÇÃO
Com base numa
SELEÇÃO
SE <condição> ENTÃO
<bloco de instruções V>
SENÃO <bloco de
instruções F>
Estruturas de Decisão… Fluxograma
SE… ENTÃO…
O SENÃO é alternativo, ou seja, pode ser utilizado, ou não…
Sendo assim, temos a seguinte sintaxe:
se <condição> então
<instruções a serem realizadas se condição for verdadeira>
fimse
SE (V)
ENTÃO
…………
fimse
Atividade 1
Imagine um algoritmo em:
• que dada a nota de uma disciplina;
• o programa diga se o aluno obteve aprovação à
mesma.
Não se esqueça de elaborar o:
• Fluxograma ;
• Pseudocódigo.
Atividade 1 – Resolução
O que se pretende saber???
Se o aluno com uma determinada nota se encontra
aprovado à disciplina.
Mas quando é que um aluno
está aprovado???
Se obtiver classificação (nota) superior a 9.5 …
(comparação / condição necessária e obrigatória)
Atividade 1 – ResoluçãoInício
Nota
Nota
>= 9.5
“Aprovado”
Fim
F
V
Atividade 1 – Resolução
• Para fazer o pseudocódigo, só precisa de saber/recordar a
sintaxe do SE…
Indentar sempre
o código
Ou seja, fazer tabulações dentro do se, para melhor visibilidade / leitura do código …
Atividade 2
1. Elabore algoritmos (pseudocódigo e fluxograma) que resolva as
seguintes situações:
a) Determine se um número é positivo
a) Determine se um número é par.
a) Determine se um número é múltiplo de 5.
a) Dados dois números, calcule a sua soma e informe se a soma é
maior que 10.
Se … Então … Senão …
Outra forma de utilizar o se, é com a seguinte sintaxe:
se <condição> então
<instruções a serem realizadas se condição for verdadeira>
senão
<instruções a serem realizadas se condição for falsa>
fimse
Como foi dito, é opcional e está dependente do objectivo do programa…
Com o seguinte fluxograma:
Se … Então … Senão …
Se for verdadeira: Se for falsa:
Condição a verificar que produz um resultado lógico (verdadeiro ou falso)
Aproveite o algoritmo da atividade 1:
 dada a nota de uma disciplina;
 o programa diga se o aluno obteve aprovação;
 ou se reprovou à mesma.
Não se esqueça de elaborar o:
 Fluxograma ;
 Pseudocódigo.
Atividade 3
Esta é uma variante da atividade 1 …
Neste caso, existem dois resultados possíveis que se podem apresentar
ao utilizador depois de avaliada a condição. Quais são eles???
Ora bem, um aluno:
 Ou está aprovado, se tiver mais de 9.5;
 Ou está reprovado se obtiver menos de 9.5.
Atividade 3 – Resolução
Para fazer o pseudocódigo, só precisa de saber /recordar a sintaxe do se…
Atividade 3 – Resolução
Indentação
Elabore algoritmos (fluxograma e pseudocódigo) para que:
a) dados 2 números determine e imprima o maior valor e a sua soma;
b) dado um número verifique e imprima se é par ou ímpar;
c) dado um número verifique e imprima se é múltiplo de 7.
Atividade 4
Elabore algoritmos (fluxograma e pseudocódigo) para que:
a) Construa um algoritmo que para valores de x lidos numa lista
de dados, imprima o valor de y, calculado por:
• y=0.5x+0.95 se x<=2.1
• y=0.7x+0.53 se x>2.1
b) Um indivíduo comprou um computador por uma
determinada quantia e vendeu-a por outra. Construa um
algoritmo que, partindo da comparação do preço de compra
com o preço de venda, informe se a transacção deu lucro e,
em caso afirmativo, qual o respectivo montante.
Atividade 5
Encadeando Se’s
Até agora vimos o caso de haver duas hipóteses…
… se a condição for verdadeira, então … senão …
E se houver várias hipóteses???
se <condição> então
<instruções a serem realizadas se condição for verdadeira>
senão
se <condição> então
<instruções a serem realizadas se condição for falsa>
senão …
…
fimse
fimse
Não se esqueça de fechar os vários
se’s e de indentar o código (ajuda
na leitura do código) …
Encadeando Se’s
<condição1>
V
<bloco
instruções V1>
<bloco
Instruções F>
<condição2>
V
F
<bloco
Instruções V2>
F
Com o seguinte fluxograma:
… eis o fluxograma,
agora é só traduzir para o seu pseudocódigo
Atividade 1 e 3 – Complicando …
nota < 0 ou nota > 20
Início
FIM
nota >= 9,5
V
F
V
F
nota
“Aprovado” “Reprovado”
ERRO!!! Valor não
válido …
Para já está muito fácil, não é verdade??? Vamos lá complicar isto um
bocadinho…
Imaginemos agora uma turma do ensino básico em que as notas estão
numa escala de [0 .. 100]%, a que correspondem aos seguintes níveis:
 Insuficiente – de 0 até 49
 Suficiente – de 50 até 64
 Bom – de 65 até 79
 Muito Bom – de 80 até 94
 Excelente – de 95 até 100
Atividade 6
Elabore um algoritmo, que
dada a nota de um estudante
do ensino básico , retorne a
sua nota qualitativa.
Este último já foi um desafio, não é verdade??? Então vamos a outro …
Elabore uma calculadora, utilizando apenas se’s, que deve ter as
seguintes operações:
1. Adição
2. Subtracção
3. Multiplicação
4. Divisão
5. Exponenciação
6. Resto da divisão
7. Raiz quadrada
Atividade 7
Sugestão: elabore um menu
em que atribui um número à
operação que deseja realizar …
Lembra-se do eercício que lhe foi pedido para calcular o máximo de dois
valores, certo??? Ceeeerto… Imagine agora que quer ordenar a pontuação
de três jogadores, ou seja, saber o máximo de três valores, o segundo maior
e o menor? (elaborar fluxograma e pseudocódigo). Veja o seguinte exemplo
de input / output:
Input:
Pontuação Primeiro Jogador: 12.3
Pontuação Segundo Jogador: 9.4
Pontuação Terceiro Jogador: 14.1
Atividade 8
Output:
Maior pontuação, jogador 3: 14.1
Valor Intermédio, jogador 1: 12.3
Menor pontuação, jogador 2: 9.4
Recordando …
Mas existe ainda mais uma…
Estrutura de decisão simples:
se (condição é verdadeira) entao
acontece isto
(conjunto de instruções)
fimse
Estrutura de decisão binária:
se (condição é verdadeira) entao
acontece isto
(conjunto de instruções)
senao
é falsa e acontece isto
(conjunto de instruções)
fimse
Estrutura de decisão encadeada:
se (condição é verdadeira) entao
acontece isto
(conjunto de instruções)
senao
se (condição é verdadeira) entao
acontece isto
(conjunto de instruções)
senao
se (condição é verdadeira) entao
acontece isto
(conjunto de instruções)
senao
…
fimse
fimse
fimse
Selecção de Caso (Escolha … Caso …)
É como quem diz … múltipla escolha …
… existem um conjunto de casos possíveis que representam os valores
possíveis de uma variável e que desencadeiam um conjunto de acções /
instruções ...
 Utiliza-se quando se sabe exactamente a gama de resultados / valores;
 Permite examinar os vários valores de uma variável;
 Evita a utilização de vários se’s encadeados;
 Torna o código mais simples e fácil de “seguir”…
Selecção de Caso (Escolha … Caso …)
Para utilizar esta estrutura de decisão, deve utilizar a seguinte sintaxe:
escolha <expressão>
caso <valor, constante>
<no caso de a expressão ter este valor, fazer estas instruções>
caso <valor, constante>
<no caso de a expressão ter este valor, fazer estas instruções>
… (tantos casos quantos os que pretende analisar / verificar)
outrocaso (os casos restantes e que não se verificaram anteriormente)
<instruções a executar no caso de não existir nenhum caso válido >
fimescolha
Selecção de Caso (Escolha … Caso …)
Uma estrutura deste género tem um fluxograma como o seguinte:
Valor_1
F
<bloco
instruções 1>
<bloco
Instruções F>
<bloco
Instruções 2>
<variável>
<bloco
Instruções n>
Valor_2 Valor_n
…
Exemplo: Escolha … Caso …)
Um exemplo: imagine que quer controlar um personagem num jogo com
as seguintes teclas de direcção: a – esq; d – dir; w – cima; s – baixo.
d
direita
w cima
a
esquerda
s baixo
Imagine que chegou ao cúmulo da preguiça … agora nem quer pensar naquilo que
vai fazer a seguir. Elabore um algoritmo que lhe sugira, ao executá-lo, entre as
seguintes actividades, a que deve fazer:
1. Estudar PSI
2. Ver televisão
3. Estudar PSI
4. Sair com amigos
5. Estudar PSI
6. Jogar computador / consola
7. Estudar PSI
8. Nada
Nada de viciar o programa, deve ser totalmente aleatório …
Atividade 9
Nota: para obter um valor aleatório
utilize a função do visualg:
randi(limite)
Gera um valor entre 0 e limite – 1:
[0 .. limite - 1]
Exemplo: randi(5), gera um número …
… entre 0 e 4
Elabore um algoritmo para utilizar numa página web, em que o utilizador
introduz a sua data de aniversário da seguinte forma:
Dia: 5
Mês: 6
Ano: 1991
E a data é apresentada como:
5 de Junho de 1991
Atividade 10
Mais um revivalismo… na actividade 14 elaborou uma calculadora baseada
num menu com um conjunto de se’s encadeados. Pretende-se agora que
crie uma calculadora simples em que lê os números e o sinal da operação
para obter o resultado final. Exemplos:
Expanda a sua calculadora …
Atividade 11
Número 1 4 5 2 8
Número 2 8 2 3 2
Operação + - * /
Resultado 12 3 6 4
Vamos agora pegar numa outra actividade em que aplicamos o se e
transformá-la num caso??? “Bora…”
Níveis das notas dos alunos de uma turma do ensino básico:
 Insuficiente – de 0 até 49
 Suficiente – de 50 até 64
 Bom – de 65 até 79
 Muito Bom – de 80 até 94
 Excelente – de 95 até 100
Atividade 12
Elabore um algoritmo, utilizando
a selecção de casos, em que
dada a nota de um estudante do
ensino básico , retorne a sua
nota qualitativa. Use o até…
Como???
 Escreva um algoritmo que seja capaz de ler um número
inteiro entre 1 e 10 e apresente o respectivo valor em
extenso.
Ex: 6 ……… seis
 Escreva um algoritmo que faça o mesmo que o anterior, mas
que escreva o extenso de números entre 1 e 100.
 Escreva um algoritmo que faça o mesmo que o anterior, mas
que escreva o extenso de números entre 1 e 1000.
Mais Atividades…
Estruturas de Repetição
Longe vão os tempos em que os professores, para castigar um aluno,
pediam-lhes para escrever uma frase 50, 100 ou mais vezes, dependendo da
gravidade…
Se soubesse o que sei hoje, contornaria esse problema com a aplicação de
uma estrutura de repetição que faria isso automaticamente 100, 200, 300,
1.000.000 de vezes (enfim, as que quisesse …)
Estruturas de Repetição
O que são então estruturas repetitivas???
Permitem executar um conjunto de instruções …
… várias (ou um determinado número de) vezes, de forma repetitiva …
Em que o programador só necessita de as escrever uma única vez.
Esse conjunto de instruções é repetido enquanto uma condição:
 for verdadeira ou…
 … torna-se verdadeira.
Estruturas de Repetição
A execução de estruturas de repetição está então dependentes do valor
lógico de uma condição, que é testada em cada iteração para decidir se a
execução do ciclo continua ou termina.
Estas estruturas incluem sempre:
 Instrução de controlo do ciclo
Determina quando um ciclo pára ou deixa de ser executado. Deixa
explicito o número de vezes que o ciclo será executado.
 Corpo do ciclo
Instruções que serão repetidas sempre que o ciclo for repetido.
Com base num contador
Com base numa condição
Estruturas de Repetição
Vamos estudar três tipos distintos de estruturas de repetição:
Estruturas de
repetição ou
ciclos
para <variável de controlo> de
<valor inicial> ate <valor final>
[passo <incremento>] faca
enquanto <expressão lógica ou
relacional> faca
repita
<lista de comandos>
ate <expressão lógica/relacional>
Estruturas de Repetição – Para …
Comecemos pela estrutura: Para …
 É controlada por um contador automático;
 Esse contador (variável), que conta o número de vezes que o ciclo é
executado:
 Assume um valor inicial;
 Incrementado (ou decrementado) automaticamente de cada
vez que o ciclo é executado, até atingir o limite definido;
 faz com que o ciclo seja executado pela última vez quando o
contador toma o valor final.
 É particularmente útil em situações que se sabe previamente o número de
repetições a serem feitas (ou intervalo de repetição).
Estruturas de Repetição – Para …
A sintaxe do para é a seguinte:
para <variável de controlo> de <valor inicial> ate <valor final> [passo
<incremento>] faca
<conjunto de instruções a executar>
fimpara
Nota: o passo é opcional, só deve ser modificado no caso de ser diferente
de um. Pode ainda ser positivo ou negativo, dependendo do valor_inicial
e valor_fina … Por defeito assume o valor 1 …
Estruturas de Repetição – Para …
Qual o fluxograma que se aplica a esta estrutura?
Nota: o contador é o mesmo que a variável de controlo do pesudocódigo anterior …
contador <= valor_final
V
F
<bloco instruções>
contador = contador + 1
contador = valor_inicial
Para … Exemplos
Observe os programas seguintes e analise-os…
Exemplo 1:
para x de 1 ate 1000 faca
escreval(“Vou portar-me bem em PSI e resolver tudo nas aulas…”)
fimpara
Exemplo 2:
para y de 200 ate 1 passo -2 faca
escreval(y)
fimpara
O que fazem???
Quais os valores implícitos???
Qual o valor de passo no exercício 1??? Porquê???
Faça os fluxogramas para cada um deles.
Lembra-se do que são números pares???
Usando a estrutura de repetição anterior:
a) faça dois algoritmos distintos que imprimam todos os números pares
entre 1 e 100.
b) Faça a soma de todos os números anteriores.
Atividade 13
a) Implemente um algoritmo que mostre no ecrã os primeiros 100
números naturais por ordem inversa.
b) Elabore um algoritmo que calcule a soma de 10 números lidos do
teclado (não utilizar o comando leia ,10 vezes).
c) Elabore um algoritmo que calcule a média dos módulos de PSI, sendo
que a disciplina tem 6 módulos.
Atividade 14
Lembra-se dos números primos??? Nada de parentescos…
Um número primo é aquele que é divisível por si próprio e pela unidade.
Elabore um algoritmo que verifique, para um determinado número
introduzido pelo utilizador, se ele é primo ou não…
Exemplo:
Input Output Input Output
11 Número primo… 24 Não é primo…
Atividade 15
Este é para quem não sabe a tabuada … e também não quer saber …
Elabore um algoritmo que, para um número introduzido pelo utilizador,
imprima no ecrã a tabuada de 1 a 10… Exemplo:
Input: 7
Output: 1 x 7 = 7
2 x 7 = 14
…
10 x 7 =70
Atividade 16
Um exercício clássico que envolve ciclos, tem a haver com o cálculo de um
factorial de um número. Mas o que é isso de factorial???
Basicamente é aplicar a seguinte fórmula:
n! = n * (n – 1) * (n – 2) * … * 1 (n é um número inteiro qualquer)
Implemente um algoritmo que lê um valor inteiro e calcula o seu factorial.
Veja o seguinte exemplo:
Input: 5
Output: 5! = 5 x 4 x 3 x 2 x 1 = 120
Atividade 17
Esta actividade é o que se poderia chamar o programa X …
Elabore um programa que desenhe a seguinte figura num quadrado
Dica: Coloque dois para encadeados. Um para percorrer linha a linha,
enquanto o outro, para cada linha, percorre as colunas dessa linha.
Atividade 18
Utilizando de certa forma a lógica do exercício anterior, elabore um
algoritmo que preencha um quadrado, cujo tamanho é introduzido pelo
utilizador, da seguinte forma:
Utilizar a dica do exercício anterior …
Atividade 19
Coluna ->
Linha
1 2 3 4 5
1 0 X 0 X 0
2 X 0 X 0 X
3 0 X 0 X 0
4 X 0 X 0 X
5 0 X 0 X 0
O resultado deve ser apenas o que
está dentro do quadrado desenhado
na figura ao lado. Este seria o aspecto
de um quadrado de tamanho 5.
Estruturas de Repetição – Enquanto …
 Depende de uma condição (enquanto ela for verdadeira, executa …);
 Condição é avaliada logo no início, ou seja, antes de executar as instruções …
 … logo, se a condição for FALSA à partida, o ciclo não é executado nenhuma
vez;
 Executa (repete …) até a condição ser falsa;
 Utilização de variável de controlo para determinar condição de paragem, em
que deve fazer exactamente o seguinte:
a) inicializar variável de controlo (normalmente, fora da estrutura);
b) teste de valor da variável de controlo (normalmente, é a condição);
c) incrementar (aumentar) ou decrementar (diminuir) valor da variável de controlo
(normalmente, dentro da estrutura);
Estruturas de Repetição – Enquanto …
A sintaxe do enquanto é a seguinte:
enquanto <condição /expressão> faca
<conjunto de instruções a executar /repetir>
fimenquanto
Fluxograma que se aplica a esta estrutura 
<condição>
V
F
<bloco instruções>
Enquanto … Exemplo
Preparados para um exemplo muito simples???
leia(numero)
i <-1
enquanto ( i <= 10) faca
resultado <- numero * i
escreval(numero, " * “, i, " = “, resultado)
i<- i +1
fimenquanto
O que acha que faz o algoritmo anterior? (já fizeram um parecido)
Execute-o mentalmente … eeeeee … agora no computador …
Estruturas de Repetição – Repita …
 Tal como a anterior, depende de uma condição (enquanto ela for falsa,
executa …);
 Condição apenas é avaliada no fim … (diferença para o enquanto …)
 … implica que executa o ciclo pelo menos umas vez, garantidamente;
 Executa (repete …) até a condição ser verdadeira;
 Não é possível determinar, à partida, o número de vezes que é executado;
 A variável de controlo (que determina se a condição é verdadeira ou falsa)
deve ser actualizada dentro do ciclo, de forma a garantir que não tem um
ciclo infinito (efeito de looping, não confundir com as montanhas russas …).
Estruturas de Repetição – Repita …
A sintaxe do repita é a seguinte:
repita
<conjunto de instruções a executar /repetir>
ate <condição / expressão>
Fluxograma que se aplica a esta estrutura 
<condição>
V
F
<bloco instruções>
Repita … Exemplo
Comecemos por um exemplo muito simples:
repita
escreval (“Escreva número: ”)
leia(num)
ate (num = -1)
escreval (“Ufaaaaaa… Já estou fora do ciclo …”)
O que acha que faz o algoritmo anterior?
Execute-o mentalmente… agora no computador e esteja atento às variáveis …
Repita … Exemplo
Exemplo da utilização de um repita para o controlo da entrada de um valor:
repita
escreval(“Introduza nota entre 0 e 20”)
leia(nota)
ate (nota => 0 e nota <= 20)
Isto não lhe faz lembrar nada? A que exercício poderia aplicar este exemplo?
Ao exercício para ler as notas dos módulos de PSI e fazer a sua média …
Força nisso … :o)
Observe atentamente o seguinte algoritmo:
Acha que funciona ou tem algum “bug”? Se acha que tem um bug, qual e
como o poderia solucionar.
Atividade 20
var
soma: inteiro
inicio
soma  1
repita
soma  soma + 2
ate (soma = 10)
escreva (soma)
fimalgoritmo
A soma nunca vai ser 10… para funcionar
teria de fazer:
…
ate (soma > 10)
…
Desta forma não afecta o resultado final e
já não terá um ciclo infinito .
Para compreender melhor as diferenças entre as três estruturas de
repetição abordadas nas aulas, elabore um algoritmo que escreva a soma
de todos os valores entre 50 e 250…
Deve fazer um algoritmo para cada uma das estruturas de repetição, ou
seja:
 Para
 Enquanto
 Repita
Complete a actividade elaborando também os respectivos fluxogramas.
Atividade 21
Estruturas de Repetição
Um exemplo de quando a utilização de uma das estruturas de repetição
(baseada numa condição) é mais vantajosa que a outra … Porquê???
Algoritmo para calcular a raiz quadrada
inteirointeiro
Estruturas de Repetição – Qual utilizar???
Uma das questões que deve estar a inquietar o seu espírito neste momento é:
Qual a estrutura de repetição que devo aplicar e …
… em que circunstâncias???
É uma boa questão, mas não lhe deve tirar o sono…
Isso poderá depender de um conjunto de questões / aspectos, tais como:
 Sabe quantas vezes quer executar o ciclo???
 Depende de uma condição (de que tipo)???
 Deve executar pelo menos uma vez (obrigatoriamente)???
 …
Depende também do próprio problema e da eficiência da sua resolução…
Estruturas de Repetição – Qual utilizar???
Fica aqui um pequeno resumo para (tentar) ajudar:
Nota: atenção aos chamados “ciclos infinitos (loops)” …
Para … Enquanto … Repita …
para <variável de controlo> de
<valor inicial> ate <valor final>
[passo <incremento>] faca
<conjunto de instruções a
executar>
fimpara
enquanto <condição > faca
<conjunto de
instruções a executar>
fimenquanto
repita
<conjunto de instruções a
executar /repetir>
ate <condição / expressão>
Tem de ter um intervalo definido.
Executa tantas vezes quantos os
valores que se encontram no
intervalo que definiu.
Executa mediante uma
condição ser verdadeira.
Pode não executar nenhuma
vez, no caso de ser
imediatamente falsa.
Variável de controlo deve ser
inicializada antes do ciclo.
Executa mediante uma
condição, enquanto for falsa.
Executa pelo menos uma vez
(obrigatoriamente), tantas
vezes até a condição ser
verdadeira.
Elabore um algoritmo que leia um conjunto indeterminado de números ,
reais positivos, introduzidos pelo utilizador (pára ao ser introduzido o valor
-1) e devolva o maior e menor valor escritos pelo utilizador. Exemplo:
Input
Introduza valor: 3.5
Introduza valor: 9.1
Introduza valor: 4.8
Introduza valor: 3.2
Introduza valor: -1
Faça duas versões: 1ª com enquanto; 2ª com repita …
Atividade 22
Output
O maior valor é: 9.1
O menor valor é: 3.2
Uma loja de venda de jogos pretende efectuar uma estatística sobre qual a
plataforma (NintendoDS, Wii, PS3, PSP, Xbox, PC) para a qual vende mais
jogos num só dia. Elabore um algoritmo que calcule e apresente o número
de jogos vendidos para cada uma das plataformas, bem como a sua
percentagem. Exemplo (ver algumas observações no slide seguinte):
Input
Atividade 23
Output
 Sempre que pedir para o utilizador introduzir um
número, deve apresentar também o menu (ciclo); 
 Se o utilizador inserir um número menor que 1 ou
maior que 6, e diferente de zero, o programa deve
pedir um outro valor (repetidamente), até ser válido;
 De cada vez que um valor é introduzido pelo utilizador,
deve proceder à limpeza do ecrã (instrução limpatela) e
o menu deve voltar a aparecer para pedir um outro valor;
 Algoritmo termina quando o utilizador insere o 0 (zero).
Nessa altura são apresentados os resultados num tabela
Como a que se encontra a que se encontra ao lado. 
Atividade 24
Traçagem
Tal como foi dito (e (re…)redito …) nas primeiras aulas de algoritmia:
Um algoritmo é um conjunto / sequência de instruções …
… que são executadas segundo uma ordem especifica …
… de forma objectiva e sem ambiguidades.
Sendo assim, seguir essas instruções (execução do algoritmo) passo a passo
trata-se de uma tarefa relativamente simples e até proveitosa para o
programador. Porquê???
 Permite verificar se um algoritmo faz aquilo que realmente se pretende
dele, ou seja, se produz os resultados que se esperavam…
 Permite detectar aquilo a que podemos chamar de erros de lógica,
(o programa não devolve os valores (resultados) esperados)
Traçagem
Seguir a execução de um algoritmo passo a passo, manualmente, é aquilo a
que se chama de:
TRAÇAGEM
 normalmente é efectuada no papel (execução manual);
 simula a execução das instruções (passo a passo) de um algoritmo;
 consiste na construção de uma tabela, que se baseia no comportamento de:
 Variáveis;
 Condições;
 Instruções de saída;
 …
 permite, desta forma, detectar onde (em que passo) ocorre um erro lógico
(em que o programa gera um valor que não era suposto e que influencia o
resultado final) de forma a poder corrigi-lo.
Traçagem – Como???
Tal como foi dito no slide anterior, para se fazer uma traçagem tem de se fazer
uma …
… tabela (com linhas e colunas)
Mas como??? Quais os valores que ficam nas linhas??? E nas colunas???
Para facilitar, qual o programa que se pode utilizar para fazer as traçagens???
Cabeçalho com todas as variáveis /
condições presentes no algoritmo
Saída de valores
(output)
Instruções do
algoritmo
executado
passo a passo
… … … …
…
Valores das variáveis / condições …
…
… … … …
Traçagem – Exemplo1ª Coluna:
Execução do algoritmo passo a
passo (instruções) Última Coluna:
Outputs , saída de dados
Colunas Intermédias:
Valores parciais das variáveis1ª Linha:
Cabeçalho com
as variáveis e a
saída de valores
RestantesLinhas:
Execuçãodoalgoritmo
instruçãoainstrução
Valores que
decorrem da
execução do
algoritmo
Efectue as traçagens para os algoritmos que elaborou para as seguintes atividades:
 14b), com os seguintes valores: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;
 14c), com os seguintes valores: 12.5; 11.1; 14.3; 13.9; 16.8; 15.5;
 15, primeiro para o valor 7, depois para o valor 6;
 16, para a tabuada dos 6;
 17, o factorial de 5;
 22, para os valores: 5.3; 12; 4.9; 8.8;1.2;3.1; 13; 9.4; -1
Faça primeiro numa folha de papel e depois passe para um ficheiro Excel, em que cada
alínea deve ocupar uma folha distinta (deve mudar o nome de cada folha para o
número da actividade da traçagem, por exempo: Folha1  Actividade 14b)
Atividade 25
Atividade 26
Vocês estavam ansiosos por fazer um joguinho, não é verdade???
CS??? Pois, nããããããã… Uma coisa bem mais divertida… Acerta no Número...
Objectivo: Acertar num valor sorteado pelo computador.
Algumas Notas Importantes:
 Definir um valor máximo (Max);
 Sortear um valor dentro do intervalo [0 .. Max] e limpar o ecrã;
 Enquanto utilizador não acertar no número sorteado:
 Actualizar intervalo em que está o número [máximo e mínimo];
 Ler valor do utilizador para nova tentativa (ou actualização do intervalo);
 Limpar o ecrã entre tentativas;
Se acertar o jogo termina e diz em quantos tentativas o utilizador acertou no número.
Atividade 26 – Exemplo de Output
 Ao lado, tem a execução do algoritmo passo a
passo.
 Foi definido um intervalo entre 0 e 200, uma vez
que o valor máximo que definiu foi 200.
 Foi sorteado um valor dentro desse intervalo que,
como pode verificar no fim, foi o 16.
 Repare bem nos seguintes aspectos:
 Mensagens enviadas ao jogador;
 Actualização dos intervalos em cada jogada;
….
Atividade 27
Vai mais um joguinho??? Desta vez está-me mesmo a apetecer …
… um jogo de dados… Parece que já os estou a ver a girar … a girar …
Mas, em linha de comandos??? Hmmm…
O jogo do 21 com dados
Objectivo do Jogo:
Lançar dois dados (7 vezes no máximo) de forma a tentar obter exactamente 21 pontos.
Funcionamento / regras do jogo:
 São “lançados” dois dados até se atingirem os 21 pontos ou os 7 lançamentos;
 Ao “lançar” os dados, se a soma de todos pontos até ao momento for
 menor que 21 - deve continuar a lançar os dados, se ainda lhe sobrarem tentativas;
 maior que 21, deve retirar aos 21 pontos o excesso e continuar a jogar.
 Ganha o jogo se conseguir fazer exactamente 21 pontos em menos de 8 tentativas.
 Antes de começar a jogar leia o nome do jogador;
 Não se esqueça que jogo termina quando atingir os 21 pontos
ou ultrapassar 7 tentativas.
 Faça o lançamento dos dados apenas quando clicar numa tecla (‘s’ –start ou ‘l’ - lança);
 Deve ignorar outras teclas de lançamento e esperar por uma das anteriores;
 O “lançamento” dos dados consiste no sorteio de um valor entre 1 .. 6;
 Deve ir acumulando os pontos dos dados em cada uma das tentativas … e verificar se:
 é igual a 21 – objectivo atingido, é vencedor e o jogo termina;
 não chega aos 21 – se ainda tiver tentativas continua a jogar, senão… perde;
 excede os 21 - imagine que tinha 19 pontos e ao lançar os dados saíram 6 pontos.
19+6 = 25 … como é maior que 21 deve subtrair o excesso (26–21 = 5) aos 21 pontos,
ou seja, ficaria com 21–5=16 pontos. Se ainda tiver tentativas continua a jogar, senão…
Atividade 27 – Aspetos Relevantes
Atividade 27 – Exemplo de Output
Utilize o limpatela para limpar o ecrã em
cada uma das iteracções anteriores.
Para que a informação não desapareça
logo que faz o limpatela utilize o:
timer(milisegundos a esperar)
Para voltar a executar em tempo normal:
timer off
Atividade 28Agora que lhe ganharam o gosto, vamos a outro jogo de dados.
E que tal um jogo em que possam jogar dois jogadores???
Funcionamento / regras do jogo:
 Deve começar por ler o nome dos dois jogadores;
 Deve também ser definido inicialmente, pelos dois jogadores, o número de lançamentos
que vão ser efectuados até terminar um jogo;
 Em cada jogada, o jogador “lança” dois dados. Mais uma vez, o lançamento dos dados
consiste no sorteio de dois valores, um para cada um dos dados, entre 1 .. 6;
 Em cada jogada são contabilizados / acumulados os pontos, para o respectivo jogador;
 Jogo termina quando ambos os jogadores atingirem ao limite de lançamentos definidos
previamente e é anunciado o vencedor e o vencido, com os respectivos pontos.
Até ao próximo Módulo…..

More Related Content

What's hot

Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoJanynne Gomes
 
O Scratch no ensino da programação
O Scratch no ensino da programaçãoO Scratch no ensino da programação
O Scratch no ensino da programaçãoJoão Sá
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmiadiogoa21
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Marcos Castro
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosRoney Sousa
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Ficha De Trabalho Power Point
Ficha De Trabalho Power PointFicha De Trabalho Power Point
Ficha De Trabalho Power PointIdalina Rodrigues
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010Joeldson Costa Damasceno
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação PythonJunior Sobrenome
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigoMauro Pereira
 

What's hot (20)

Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Algoritmo aula 01-f
Algoritmo   aula 01-fAlgoritmo   aula 01-f
Algoritmo aula 01-f
 
O Scratch no ensino da programação
O Scratch no ensino da programaçãoO Scratch no ensino da programação
O Scratch no ensino da programação
 
mod1-algoritmia
mod1-algoritmiamod1-algoritmia
mod1-algoritmia
 
Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)Introdução a linguagem C# (CSharp)
Introdução a linguagem C# (CSharp)
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Variáveis e portugol
Variáveis e portugolVariáveis e portugol
Variáveis e portugol
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Aula 1
Aula 1Aula 1
Aula 1
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Visualg
VisualgVisualg
Visualg
 
Lógica de Programação - Algoritmos
Lógica de Programação - AlgoritmosLógica de Programação - Algoritmos
Lógica de Programação - Algoritmos
 
Algoritmos em portugol
Algoritmos em portugolAlgoritmos em portugol
Algoritmos em portugol
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Ficha De Trabalho Power Point
Ficha De Trabalho Power PointFicha De Trabalho Power Point
Ficha De Trabalho Power Point
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
Informática Básica - Criação de Tabelas e Gráficos no Microsoft Word 2010
 
Linguagem de Programação Python
Linguagem de Programação PythonLinguagem de Programação Python
Linguagem de Programação Python
 
Lista de exercicios algoritmos com pseudocodigo
Lista de exercicios   algoritmos com pseudocodigoLista de exercicios   algoritmos com pseudocodigo
Lista de exercicios algoritmos com pseudocodigo
 

Similar to Controlo Execução Algoritmos

Aula 12 -Seleção Múltipla.pdf
Aula 12 -Seleção Múltipla.pdfAula 12 -Seleção Múltipla.pdf
Aula 12 -Seleção Múltipla.pdfViniciusBortolini1
 
Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - AlgoritmosPsLucas
 
Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.merciaregina6
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...André Constantino da Silva
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9Felipe Santos
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxPaulo Cardoso
 

Similar to Controlo Execução Algoritmos (20)

Logica
LogicaLogica
Logica
 
Ap algoritmosglauco
Ap algoritmosglaucoAp algoritmosglauco
Ap algoritmosglauco
 
Aula 3-lógica.pptx
Aula 3-lógica.pptxAula 3-lógica.pptx
Aula 3-lógica.pptx
 
Algop - aula 03
Algop - aula 03Algop - aula 03
Algop - aula 03
 
Aula 12 -Seleção Múltipla.pdf
Aula 12 -Seleção Múltipla.pdfAula 12 -Seleção Múltipla.pdf
Aula 12 -Seleção Múltipla.pdf
 
Algop - aula 05
Algop - aula 05Algop - aula 05
Algop - aula 05
 
Aula 3 - 06/04/11
Aula 3 - 06/04/11Aula 3 - 06/04/11
Aula 3 - 06/04/11
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Introdução - Algoritmos
Introdução - AlgoritmosIntrodução - Algoritmos
Introdução - Algoritmos
 
decisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadoresdecisão aninhada programaçao de cmputadores
decisão aninhada programaçao de cmputadores
 
Lógica de programação
Lógica de programaçãoLógica de programação
Lógica de programação
 
Algop - aula 04
Algop - aula 04Algop - aula 04
Algop - aula 04
 
Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.Aula de apresentação Python explicando conceitos e aplicações.
Aula de apresentação Python explicando conceitos e aplicações.
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Lista exercícios
Lista exercíciosLista exercícios
Lista exercícios
 
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
Aula 9 - Resultado Operandos Matemáticos, Operadores Aritmeticos, Relacionais...
 
Curso De Algoritmo Aula 9
Curso De Algoritmo   Aula 9Curso De Algoritmo   Aula 9
Curso De Algoritmo Aula 9
 
Introducao logica
Introducao logicaIntroducao logica
Introducao logica
 
Introdução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptxIntrodução aos algoritmos e à algoritmia.pptx
Introdução aos algoritmos e à algoritmia.pptx
 
algoritmo construção
algoritmo construçãoalgoritmo construção
algoritmo construção
 

More from diogoa21

Módulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computadorMódulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computadordiogoa21
 
Módulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internasMódulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internasdiogoa21
 
Módulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãoMódulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãodiogoa21
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-phpdiogoa21
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Webdiogoa21
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsdiogoa21
 
Modulo-4-css
Modulo-4-cssModulo-4-css
Modulo-4-cssdiogoa21
 
Modulo4- Html-Guia
Modulo4- Html-GuiaModulo4- Html-Guia
Modulo4- Html-Guiadiogoa21
 
Psi-mod-op2
Psi-mod-op2Psi-mod-op2
Psi-mod-op2diogoa21
 
Psi-mod-15
Psi-mod-15Psi-mod-15
Psi-mod-15diogoa21
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13diogoa21
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasdiogoa21
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
Tic-excel-03
Tic-excel-03Tic-excel-03
Tic-excel-03diogoa21
 
Tic-excel-02
Tic-excel-02Tic-excel-02
Tic-excel-02diogoa21
 
Tic-excel-01
Tic-excel-01 Tic-excel-01
Tic-excel-01 diogoa21
 

More from diogoa21 (20)

Módulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computadorMódulo 2.1-componentes de um computador
Módulo 2.1-componentes de um computador
 
Módulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internasMódulo-2.2-estudo das componentes internas
Módulo-2.2-estudo das componentes internas
 
Módulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuraçãoMódulo-2.3-estudo de periféricos e suas características e configuração
Módulo-2.3-estudo de periféricos e suas características e configuração
 
Modulo-3
Modulo-3 Modulo-3
Modulo-3
 
Manual-de-php
Manual-de-phpManual-de-php
Manual-de-php
 
M5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-WebM5-Desenvolvimento-Paginas-Web
M5-Desenvolvimento-Paginas-Web
 
Módulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-socketsMódulo-6-7-ip-com-sockets
Módulo-6-7-ip-com-sockets
 
Modulo-4-css
Modulo-4-cssModulo-4-css
Modulo-4-css
 
Modulo4- Html-Guia
Modulo4- Html-GuiaModulo4- Html-Guia
Modulo4- Html-Guia
 
Psi-mod-op2
Psi-mod-op2Psi-mod-op2
Psi-mod-op2
 
Psi-mod-15
Psi-mod-15Psi-mod-15
Psi-mod-15
 
Psi-mod-13
Psi-mod-13Psi-mod-13
Psi-mod-13
 
mod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicasmod5-estruturas-dadosdinamicas
mod5-estruturas-dadosdinamicas
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
So-mod-4
So-mod-4So-mod-4
So-mod-4
 
So-mod-2
So-mod-2So-mod-2
So-mod-2
 
So-mod-1
So-mod-1So-mod-1
So-mod-1
 
Tic-excel-03
Tic-excel-03Tic-excel-03
Tic-excel-03
 
Tic-excel-02
Tic-excel-02Tic-excel-02
Tic-excel-02
 
Tic-excel-01
Tic-excel-01 Tic-excel-01
Tic-excel-01
 

Recently uploaded

Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalJacqueline Cerqueira
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxfabiolalopesmartins1
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxkarinedarozabatista
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Centro Jacques Delors
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfEyshilaKelly1
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfArthurRomanof1
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024Jeanoliveira597523
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresaulasgege
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresLilianPiola
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditaduraAdryan Luiz
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaaulasgege
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesMary Alvarenga
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfaulasgege
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxOsnilReis1
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.keislayyovera123
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfEditoraEnovus
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasCassio Meira Jr.
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?Rosalina Simão Nunes
 

Recently uploaded (20)

Gerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem OrganizacionalGerenciando a Aprendizagem Organizacional
Gerenciando a Aprendizagem Organizacional
 
Lírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptxLírica Camoniana- A mudança na lírica de Camões.pptx
Lírica Camoniana- A mudança na lírica de Camões.pptx
 
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptxAD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
AD2 DIDÁTICA.KARINEROZA.SHAYANNE.BINC.ROBERTA.pptx
 
Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029Apresentação | Eleições Europeias 2024-2029
Apresentação | Eleições Europeias 2024-2029
 
Guia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdfGuia completo da Previdênci a - Reforma .pdf
Guia completo da Previdênci a - Reforma .pdf
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
Prova uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdfProva uniasselvi tecnologias da Informação.pdf
Prova uniasselvi tecnologias da Informação.pdf
 
ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024ABRIL VERDE.pptx Slide sobre abril ver 2024
ABRIL VERDE.pptx Slide sobre abril ver 2024
 
Sociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autoresSociologia Contemporânea - Uma Abordagem dos principais autores
Sociologia Contemporânea - Uma Abordagem dos principais autores
 
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolaresALMANANHE DE BRINCADEIRAS - 500 atividades escolares
ALMANANHE DE BRINCADEIRAS - 500 atividades escolares
 
trabalho wanda rocha ditadura
trabalho wanda rocha ditaduratrabalho wanda rocha ditadura
trabalho wanda rocha ditadura
 
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologiaAula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
Aula - 1º Ano - Émile Durkheim - Um dos clássicos da sociologia
 
A Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das MãesA Arte de Escrever Poemas - Dia das Mães
A Arte de Escrever Poemas - Dia das Mães
 
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptxSlides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
Slides Lição 4, Betel, Ordenança quanto à contribuição financeira, 2Tr24.pptx
 
Cultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdfCultura e Sociedade - Texto de Apoio.pdf
Cultura e Sociedade - Texto de Apoio.pdf
 
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptxATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
ATIVIDADE AVALIATIVA VOZES VERBAIS 7º ano.pptx
 
Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.Época Realista y la obra de Madame Bovary.
Época Realista y la obra de Madame Bovary.
 
Simulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdfSimulado 1 Etapa - 2024 Proximo Passo.pdf
Simulado 1 Etapa - 2024 Proximo Passo.pdf
 
Programa de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades MotorasPrograma de Intervenção com Habilidades Motoras
Programa de Intervenção com Habilidades Motoras
 
E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?E agora?! Já não avalio as atitudes e valores?
E agora?! Já não avalio as atitudes e valores?
 

Controlo Execução Algoritmos

  • 1. Programação e Sistemas de Informação Módulo 2 Escola Secundária Filipa de Vilhena 2012/2013 Mecanismos de Controlo de Execução
  • 2. Conteúdos Continuação do desenvolvimento de algoritmos e utilização de linguagem informal na resolução de problemas Mecanismos de controlo do programa a) Estruturas de decisão b) Estruturas de selecção múltipla c) Estruturas de repetição Noções básicas de C++
  • 3. Até Agora … … os algoritmos elaborados nas aulas têm tido como base o tratamento de estruturas sequenciais, ou seja, sequências de instruções… … compostas por três elementos: • Entrada de Dados (Input) • Processamento / Tratamento de Dados • Saída de Dados (Output) Instrução 1 Instrução n Instrução 2
  • 4. Estruturas de dados (ou condicionais) Na vida real somos forçados a tomar decisões a todo o instante, baseadas em alguma situação que se nos depara. Em algoritmia, essa situação tem o nome de condição… … a(s) acção(ões) a desencadear depende(m) … … do resultado lógico dessa condição …
  • 5. Estruturas de dados (ou condicionais) Imagine a seguinte a seguinte situação: Ao sair de casa…. SE estiver a chover… ENTÃO deve levar guarda-chuva.
  • 6. Recordando Operadores Como foi dito anteriormente, uma condição produz um resultado lógico. Para se produzirem resultados do tipo lógico, utilizam- se operadores: – Relacionais – Lógicos E produzem resultados que podem assumir um de dois valores, que são … … Verdadeiro ou … Falso.
  • 7. Recordando Operadores Relacionais/Booleanos Operador Nome Exemplo Resultado =; == Igual a… 7=5; 7==5 Falso <>; != Diferente de… 10/2<>3; 10/2!=3 Verdadeiro > Maior que 3*2>8/2 Verdadeiro < Menor que… 7<7 Falso <= Menor ou igual que… 7<=14/2 Verdadeiro >= Maior ou igual que… a>=5 Verdadeiro, SE a for um nº >=5
  • 8. Recordando Operadores Lógicos Operador Nome Exemplo Resultado E; AND;&& Conjunção ((5=5) E (3>6)) Falso OU;OR;|| Disjunção ((5=5) OU (3>6)) Verdadeiro NÃO, NOT; ! Negação (inverte valor lógico) NÃO (5=5) Falso
  • 9. Recordando Operadores Lógicos A B A OU B ou A || B V V V V F V F V V F F F A B A E B ou A && B V V V V F F F V F F F F OU; OR; || E; AND; && A NÃO A ou ! A V F F V NÃO; NOT; !
  • 10. Atividade – Recordar é Viver 1. Qual o valor lógico da seguinte expressão, com: A = 9, B = “A” e C = 10 NOT((A<=70) AND (C>=2) OR (B<>”C”)) 2. Qual o valor lógico das seguintes expressões: a) (A+B) < C b) ((A+B) < C) OR (A>C) c) NOT((A<B) AND (B>C)) em que: A=10, B=5 e C=15
  • 12. Estruturas de Decisão ou Seleção Com base numa CONDIÇÃO Com base numa SELEÇÃO SE <condição> ENTÃO <bloco de instruções V> SENÃO <bloco de instruções F>
  • 14. SE… ENTÃO… O SENÃO é alternativo, ou seja, pode ser utilizado, ou não… Sendo assim, temos a seguinte sintaxe: se <condição> então <instruções a serem realizadas se condição for verdadeira> fimse SE (V) ENTÃO ………… fimse
  • 15. Atividade 1 Imagine um algoritmo em: • que dada a nota de uma disciplina; • o programa diga se o aluno obteve aprovação à mesma. Não se esqueça de elaborar o: • Fluxograma ; • Pseudocódigo.
  • 16. Atividade 1 – Resolução O que se pretende saber??? Se o aluno com uma determinada nota se encontra aprovado à disciplina. Mas quando é que um aluno está aprovado??? Se obtiver classificação (nota) superior a 9.5 … (comparação / condição necessária e obrigatória)
  • 17. Atividade 1 – ResoluçãoInício Nota Nota >= 9.5 “Aprovado” Fim F V
  • 18. Atividade 1 – Resolução • Para fazer o pseudocódigo, só precisa de saber/recordar a sintaxe do SE… Indentar sempre o código Ou seja, fazer tabulações dentro do se, para melhor visibilidade / leitura do código …
  • 19. Atividade 2 1. Elabore algoritmos (pseudocódigo e fluxograma) que resolva as seguintes situações: a) Determine se um número é positivo a) Determine se um número é par. a) Determine se um número é múltiplo de 5. a) Dados dois números, calcule a sua soma e informe se a soma é maior que 10.
  • 20. Se … Então … Senão … Outra forma de utilizar o se, é com a seguinte sintaxe: se <condição> então <instruções a serem realizadas se condição for verdadeira> senão <instruções a serem realizadas se condição for falsa> fimse Como foi dito, é opcional e está dependente do objectivo do programa…
  • 21. Com o seguinte fluxograma: Se … Então … Senão … Se for verdadeira: Se for falsa: Condição a verificar que produz um resultado lógico (verdadeiro ou falso)
  • 22. Aproveite o algoritmo da atividade 1:  dada a nota de uma disciplina;  o programa diga se o aluno obteve aprovação;  ou se reprovou à mesma. Não se esqueça de elaborar o:  Fluxograma ;  Pseudocódigo. Atividade 3
  • 23. Esta é uma variante da atividade 1 … Neste caso, existem dois resultados possíveis que se podem apresentar ao utilizador depois de avaliada a condição. Quais são eles??? Ora bem, um aluno:  Ou está aprovado, se tiver mais de 9.5;  Ou está reprovado se obtiver menos de 9.5. Atividade 3 – Resolução
  • 24. Para fazer o pseudocódigo, só precisa de saber /recordar a sintaxe do se… Atividade 3 – Resolução Indentação
  • 25. Elabore algoritmos (fluxograma e pseudocódigo) para que: a) dados 2 números determine e imprima o maior valor e a sua soma; b) dado um número verifique e imprima se é par ou ímpar; c) dado um número verifique e imprima se é múltiplo de 7. Atividade 4
  • 26. Elabore algoritmos (fluxograma e pseudocódigo) para que: a) Construa um algoritmo que para valores de x lidos numa lista de dados, imprima o valor de y, calculado por: • y=0.5x+0.95 se x<=2.1 • y=0.7x+0.53 se x>2.1 b) Um indivíduo comprou um computador por uma determinada quantia e vendeu-a por outra. Construa um algoritmo que, partindo da comparação do preço de compra com o preço de venda, informe se a transacção deu lucro e, em caso afirmativo, qual o respectivo montante. Atividade 5
  • 27. Encadeando Se’s Até agora vimos o caso de haver duas hipóteses… … se a condição for verdadeira, então … senão … E se houver várias hipóteses??? se <condição> então <instruções a serem realizadas se condição for verdadeira> senão se <condição> então <instruções a serem realizadas se condição for falsa> senão … … fimse fimse Não se esqueça de fechar os vários se’s e de indentar o código (ajuda na leitura do código) …
  • 28. Encadeando Se’s <condição1> V <bloco instruções V1> <bloco Instruções F> <condição2> V F <bloco Instruções V2> F Com o seguinte fluxograma:
  • 29. … eis o fluxograma, agora é só traduzir para o seu pseudocódigo Atividade 1 e 3 – Complicando … nota < 0 ou nota > 20 Início FIM nota >= 9,5 V F V F nota “Aprovado” “Reprovado” ERRO!!! Valor não válido …
  • 30. Para já está muito fácil, não é verdade??? Vamos lá complicar isto um bocadinho… Imaginemos agora uma turma do ensino básico em que as notas estão numa escala de [0 .. 100]%, a que correspondem aos seguintes níveis:  Insuficiente – de 0 até 49  Suficiente – de 50 até 64  Bom – de 65 até 79  Muito Bom – de 80 até 94  Excelente – de 95 até 100 Atividade 6 Elabore um algoritmo, que dada a nota de um estudante do ensino básico , retorne a sua nota qualitativa.
  • 31. Este último já foi um desafio, não é verdade??? Então vamos a outro … Elabore uma calculadora, utilizando apenas se’s, que deve ter as seguintes operações: 1. Adição 2. Subtracção 3. Multiplicação 4. Divisão 5. Exponenciação 6. Resto da divisão 7. Raiz quadrada Atividade 7 Sugestão: elabore um menu em que atribui um número à operação que deseja realizar …
  • 32. Lembra-se do eercício que lhe foi pedido para calcular o máximo de dois valores, certo??? Ceeeerto… Imagine agora que quer ordenar a pontuação de três jogadores, ou seja, saber o máximo de três valores, o segundo maior e o menor? (elaborar fluxograma e pseudocódigo). Veja o seguinte exemplo de input / output: Input: Pontuação Primeiro Jogador: 12.3 Pontuação Segundo Jogador: 9.4 Pontuação Terceiro Jogador: 14.1 Atividade 8 Output: Maior pontuação, jogador 3: 14.1 Valor Intermédio, jogador 1: 12.3 Menor pontuação, jogador 2: 9.4
  • 33. Recordando … Mas existe ainda mais uma… Estrutura de decisão simples: se (condição é verdadeira) entao acontece isto (conjunto de instruções) fimse Estrutura de decisão binária: se (condição é verdadeira) entao acontece isto (conjunto de instruções) senao é falsa e acontece isto (conjunto de instruções) fimse Estrutura de decisão encadeada: se (condição é verdadeira) entao acontece isto (conjunto de instruções) senao se (condição é verdadeira) entao acontece isto (conjunto de instruções) senao se (condição é verdadeira) entao acontece isto (conjunto de instruções) senao … fimse fimse fimse
  • 34. Selecção de Caso (Escolha … Caso …) É como quem diz … múltipla escolha … … existem um conjunto de casos possíveis que representam os valores possíveis de uma variável e que desencadeiam um conjunto de acções / instruções ...  Utiliza-se quando se sabe exactamente a gama de resultados / valores;  Permite examinar os vários valores de uma variável;  Evita a utilização de vários se’s encadeados;  Torna o código mais simples e fácil de “seguir”…
  • 35. Selecção de Caso (Escolha … Caso …) Para utilizar esta estrutura de decisão, deve utilizar a seguinte sintaxe: escolha <expressão> caso <valor, constante> <no caso de a expressão ter este valor, fazer estas instruções> caso <valor, constante> <no caso de a expressão ter este valor, fazer estas instruções> … (tantos casos quantos os que pretende analisar / verificar) outrocaso (os casos restantes e que não se verificaram anteriormente) <instruções a executar no caso de não existir nenhum caso válido > fimescolha
  • 36. Selecção de Caso (Escolha … Caso …) Uma estrutura deste género tem um fluxograma como o seguinte: Valor_1 F <bloco instruções 1> <bloco Instruções F> <bloco Instruções 2> <variável> <bloco Instruções n> Valor_2 Valor_n …
  • 37. Exemplo: Escolha … Caso …) Um exemplo: imagine que quer controlar um personagem num jogo com as seguintes teclas de direcção: a – esq; d – dir; w – cima; s – baixo. d direita w cima a esquerda s baixo
  • 38. Imagine que chegou ao cúmulo da preguiça … agora nem quer pensar naquilo que vai fazer a seguir. Elabore um algoritmo que lhe sugira, ao executá-lo, entre as seguintes actividades, a que deve fazer: 1. Estudar PSI 2. Ver televisão 3. Estudar PSI 4. Sair com amigos 5. Estudar PSI 6. Jogar computador / consola 7. Estudar PSI 8. Nada Nada de viciar o programa, deve ser totalmente aleatório … Atividade 9 Nota: para obter um valor aleatório utilize a função do visualg: randi(limite) Gera um valor entre 0 e limite – 1: [0 .. limite - 1] Exemplo: randi(5), gera um número … … entre 0 e 4
  • 39. Elabore um algoritmo para utilizar numa página web, em que o utilizador introduz a sua data de aniversário da seguinte forma: Dia: 5 Mês: 6 Ano: 1991 E a data é apresentada como: 5 de Junho de 1991 Atividade 10
  • 40. Mais um revivalismo… na actividade 14 elaborou uma calculadora baseada num menu com um conjunto de se’s encadeados. Pretende-se agora que crie uma calculadora simples em que lê os números e o sinal da operação para obter o resultado final. Exemplos: Expanda a sua calculadora … Atividade 11 Número 1 4 5 2 8 Número 2 8 2 3 2 Operação + - * / Resultado 12 3 6 4
  • 41. Vamos agora pegar numa outra actividade em que aplicamos o se e transformá-la num caso??? “Bora…” Níveis das notas dos alunos de uma turma do ensino básico:  Insuficiente – de 0 até 49  Suficiente – de 50 até 64  Bom – de 65 até 79  Muito Bom – de 80 até 94  Excelente – de 95 até 100 Atividade 12 Elabore um algoritmo, utilizando a selecção de casos, em que dada a nota de um estudante do ensino básico , retorne a sua nota qualitativa. Use o até… Como???
  • 42.  Escreva um algoritmo que seja capaz de ler um número inteiro entre 1 e 10 e apresente o respectivo valor em extenso. Ex: 6 ……… seis  Escreva um algoritmo que faça o mesmo que o anterior, mas que escreva o extenso de números entre 1 e 100.  Escreva um algoritmo que faça o mesmo que o anterior, mas que escreva o extenso de números entre 1 e 1000. Mais Atividades…
  • 43. Estruturas de Repetição Longe vão os tempos em que os professores, para castigar um aluno, pediam-lhes para escrever uma frase 50, 100 ou mais vezes, dependendo da gravidade… Se soubesse o que sei hoje, contornaria esse problema com a aplicação de uma estrutura de repetição que faria isso automaticamente 100, 200, 300, 1.000.000 de vezes (enfim, as que quisesse …)
  • 44. Estruturas de Repetição O que são então estruturas repetitivas??? Permitem executar um conjunto de instruções … … várias (ou um determinado número de) vezes, de forma repetitiva … Em que o programador só necessita de as escrever uma única vez. Esse conjunto de instruções é repetido enquanto uma condição:  for verdadeira ou…  … torna-se verdadeira.
  • 45. Estruturas de Repetição A execução de estruturas de repetição está então dependentes do valor lógico de uma condição, que é testada em cada iteração para decidir se a execução do ciclo continua ou termina. Estas estruturas incluem sempre:  Instrução de controlo do ciclo Determina quando um ciclo pára ou deixa de ser executado. Deixa explicito o número de vezes que o ciclo será executado.  Corpo do ciclo Instruções que serão repetidas sempre que o ciclo for repetido.
  • 46. Com base num contador Com base numa condição Estruturas de Repetição Vamos estudar três tipos distintos de estruturas de repetição: Estruturas de repetição ou ciclos para <variável de controlo> de <valor inicial> ate <valor final> [passo <incremento>] faca enquanto <expressão lógica ou relacional> faca repita <lista de comandos> ate <expressão lógica/relacional>
  • 47. Estruturas de Repetição – Para … Comecemos pela estrutura: Para …  É controlada por um contador automático;  Esse contador (variável), que conta o número de vezes que o ciclo é executado:  Assume um valor inicial;  Incrementado (ou decrementado) automaticamente de cada vez que o ciclo é executado, até atingir o limite definido;  faz com que o ciclo seja executado pela última vez quando o contador toma o valor final.  É particularmente útil em situações que se sabe previamente o número de repetições a serem feitas (ou intervalo de repetição).
  • 48. Estruturas de Repetição – Para … A sintaxe do para é a seguinte: para <variável de controlo> de <valor inicial> ate <valor final> [passo <incremento>] faca <conjunto de instruções a executar> fimpara Nota: o passo é opcional, só deve ser modificado no caso de ser diferente de um. Pode ainda ser positivo ou negativo, dependendo do valor_inicial e valor_fina … Por defeito assume o valor 1 …
  • 49. Estruturas de Repetição – Para … Qual o fluxograma que se aplica a esta estrutura? Nota: o contador é o mesmo que a variável de controlo do pesudocódigo anterior … contador <= valor_final V F <bloco instruções> contador = contador + 1 contador = valor_inicial
  • 50. Para … Exemplos Observe os programas seguintes e analise-os… Exemplo 1: para x de 1 ate 1000 faca escreval(“Vou portar-me bem em PSI e resolver tudo nas aulas…”) fimpara Exemplo 2: para y de 200 ate 1 passo -2 faca escreval(y) fimpara O que fazem??? Quais os valores implícitos??? Qual o valor de passo no exercício 1??? Porquê??? Faça os fluxogramas para cada um deles.
  • 51. Lembra-se do que são números pares??? Usando a estrutura de repetição anterior: a) faça dois algoritmos distintos que imprimam todos os números pares entre 1 e 100. b) Faça a soma de todos os números anteriores. Atividade 13
  • 52. a) Implemente um algoritmo que mostre no ecrã os primeiros 100 números naturais por ordem inversa. b) Elabore um algoritmo que calcule a soma de 10 números lidos do teclado (não utilizar o comando leia ,10 vezes). c) Elabore um algoritmo que calcule a média dos módulos de PSI, sendo que a disciplina tem 6 módulos. Atividade 14
  • 53. Lembra-se dos números primos??? Nada de parentescos… Um número primo é aquele que é divisível por si próprio e pela unidade. Elabore um algoritmo que verifique, para um determinado número introduzido pelo utilizador, se ele é primo ou não… Exemplo: Input Output Input Output 11 Número primo… 24 Não é primo… Atividade 15
  • 54. Este é para quem não sabe a tabuada … e também não quer saber … Elabore um algoritmo que, para um número introduzido pelo utilizador, imprima no ecrã a tabuada de 1 a 10… Exemplo: Input: 7 Output: 1 x 7 = 7 2 x 7 = 14 … 10 x 7 =70 Atividade 16
  • 55. Um exercício clássico que envolve ciclos, tem a haver com o cálculo de um factorial de um número. Mas o que é isso de factorial??? Basicamente é aplicar a seguinte fórmula: n! = n * (n – 1) * (n – 2) * … * 1 (n é um número inteiro qualquer) Implemente um algoritmo que lê um valor inteiro e calcula o seu factorial. Veja o seguinte exemplo: Input: 5 Output: 5! = 5 x 4 x 3 x 2 x 1 = 120 Atividade 17
  • 56. Esta actividade é o que se poderia chamar o programa X … Elabore um programa que desenhe a seguinte figura num quadrado Dica: Coloque dois para encadeados. Um para percorrer linha a linha, enquanto o outro, para cada linha, percorre as colunas dessa linha. Atividade 18
  • 57. Utilizando de certa forma a lógica do exercício anterior, elabore um algoritmo que preencha um quadrado, cujo tamanho é introduzido pelo utilizador, da seguinte forma: Utilizar a dica do exercício anterior … Atividade 19 Coluna -> Linha 1 2 3 4 5 1 0 X 0 X 0 2 X 0 X 0 X 3 0 X 0 X 0 4 X 0 X 0 X 5 0 X 0 X 0 O resultado deve ser apenas o que está dentro do quadrado desenhado na figura ao lado. Este seria o aspecto de um quadrado de tamanho 5.
  • 58. Estruturas de Repetição – Enquanto …  Depende de uma condição (enquanto ela for verdadeira, executa …);  Condição é avaliada logo no início, ou seja, antes de executar as instruções …  … logo, se a condição for FALSA à partida, o ciclo não é executado nenhuma vez;  Executa (repete …) até a condição ser falsa;  Utilização de variável de controlo para determinar condição de paragem, em que deve fazer exactamente o seguinte: a) inicializar variável de controlo (normalmente, fora da estrutura); b) teste de valor da variável de controlo (normalmente, é a condição); c) incrementar (aumentar) ou decrementar (diminuir) valor da variável de controlo (normalmente, dentro da estrutura);
  • 59. Estruturas de Repetição – Enquanto … A sintaxe do enquanto é a seguinte: enquanto <condição /expressão> faca <conjunto de instruções a executar /repetir> fimenquanto Fluxograma que se aplica a esta estrutura  <condição> V F <bloco instruções>
  • 60. Enquanto … Exemplo Preparados para um exemplo muito simples??? leia(numero) i <-1 enquanto ( i <= 10) faca resultado <- numero * i escreval(numero, " * “, i, " = “, resultado) i<- i +1 fimenquanto O que acha que faz o algoritmo anterior? (já fizeram um parecido) Execute-o mentalmente … eeeeee … agora no computador …
  • 61. Estruturas de Repetição – Repita …  Tal como a anterior, depende de uma condição (enquanto ela for falsa, executa …);  Condição apenas é avaliada no fim … (diferença para o enquanto …)  … implica que executa o ciclo pelo menos umas vez, garantidamente;  Executa (repete …) até a condição ser verdadeira;  Não é possível determinar, à partida, o número de vezes que é executado;  A variável de controlo (que determina se a condição é verdadeira ou falsa) deve ser actualizada dentro do ciclo, de forma a garantir que não tem um ciclo infinito (efeito de looping, não confundir com as montanhas russas …).
  • 62. Estruturas de Repetição – Repita … A sintaxe do repita é a seguinte: repita <conjunto de instruções a executar /repetir> ate <condição / expressão> Fluxograma que se aplica a esta estrutura  <condição> V F <bloco instruções>
  • 63. Repita … Exemplo Comecemos por um exemplo muito simples: repita escreval (“Escreva número: ”) leia(num) ate (num = -1) escreval (“Ufaaaaaa… Já estou fora do ciclo …”) O que acha que faz o algoritmo anterior? Execute-o mentalmente… agora no computador e esteja atento às variáveis …
  • 64. Repita … Exemplo Exemplo da utilização de um repita para o controlo da entrada de um valor: repita escreval(“Introduza nota entre 0 e 20”) leia(nota) ate (nota => 0 e nota <= 20) Isto não lhe faz lembrar nada? A que exercício poderia aplicar este exemplo? Ao exercício para ler as notas dos módulos de PSI e fazer a sua média … Força nisso … :o)
  • 65. Observe atentamente o seguinte algoritmo: Acha que funciona ou tem algum “bug”? Se acha que tem um bug, qual e como o poderia solucionar. Atividade 20 var soma: inteiro inicio soma  1 repita soma  soma + 2 ate (soma = 10) escreva (soma) fimalgoritmo A soma nunca vai ser 10… para funcionar teria de fazer: … ate (soma > 10) … Desta forma não afecta o resultado final e já não terá um ciclo infinito .
  • 66. Para compreender melhor as diferenças entre as três estruturas de repetição abordadas nas aulas, elabore um algoritmo que escreva a soma de todos os valores entre 50 e 250… Deve fazer um algoritmo para cada uma das estruturas de repetição, ou seja:  Para  Enquanto  Repita Complete a actividade elaborando também os respectivos fluxogramas. Atividade 21
  • 67. Estruturas de Repetição Um exemplo de quando a utilização de uma das estruturas de repetição (baseada numa condição) é mais vantajosa que a outra … Porquê??? Algoritmo para calcular a raiz quadrada inteirointeiro
  • 68. Estruturas de Repetição – Qual utilizar??? Uma das questões que deve estar a inquietar o seu espírito neste momento é: Qual a estrutura de repetição que devo aplicar e … … em que circunstâncias??? É uma boa questão, mas não lhe deve tirar o sono… Isso poderá depender de um conjunto de questões / aspectos, tais como:  Sabe quantas vezes quer executar o ciclo???  Depende de uma condição (de que tipo)???  Deve executar pelo menos uma vez (obrigatoriamente)???  … Depende também do próprio problema e da eficiência da sua resolução…
  • 69. Estruturas de Repetição – Qual utilizar??? Fica aqui um pequeno resumo para (tentar) ajudar: Nota: atenção aos chamados “ciclos infinitos (loops)” … Para … Enquanto … Repita … para <variável de controlo> de <valor inicial> ate <valor final> [passo <incremento>] faca <conjunto de instruções a executar> fimpara enquanto <condição > faca <conjunto de instruções a executar> fimenquanto repita <conjunto de instruções a executar /repetir> ate <condição / expressão> Tem de ter um intervalo definido. Executa tantas vezes quantos os valores que se encontram no intervalo que definiu. Executa mediante uma condição ser verdadeira. Pode não executar nenhuma vez, no caso de ser imediatamente falsa. Variável de controlo deve ser inicializada antes do ciclo. Executa mediante uma condição, enquanto for falsa. Executa pelo menos uma vez (obrigatoriamente), tantas vezes até a condição ser verdadeira.
  • 70. Elabore um algoritmo que leia um conjunto indeterminado de números , reais positivos, introduzidos pelo utilizador (pára ao ser introduzido o valor -1) e devolva o maior e menor valor escritos pelo utilizador. Exemplo: Input Introduza valor: 3.5 Introduza valor: 9.1 Introduza valor: 4.8 Introduza valor: 3.2 Introduza valor: -1 Faça duas versões: 1ª com enquanto; 2ª com repita … Atividade 22 Output O maior valor é: 9.1 O menor valor é: 3.2
  • 71. Uma loja de venda de jogos pretende efectuar uma estatística sobre qual a plataforma (NintendoDS, Wii, PS3, PSP, Xbox, PC) para a qual vende mais jogos num só dia. Elabore um algoritmo que calcule e apresente o número de jogos vendidos para cada uma das plataformas, bem como a sua percentagem. Exemplo (ver algumas observações no slide seguinte): Input Atividade 23 Output
  • 72.  Sempre que pedir para o utilizador introduzir um número, deve apresentar também o menu (ciclo);   Se o utilizador inserir um número menor que 1 ou maior que 6, e diferente de zero, o programa deve pedir um outro valor (repetidamente), até ser válido;  De cada vez que um valor é introduzido pelo utilizador, deve proceder à limpeza do ecrã (instrução limpatela) e o menu deve voltar a aparecer para pedir um outro valor;  Algoritmo termina quando o utilizador insere o 0 (zero). Nessa altura são apresentados os resultados num tabela Como a que se encontra a que se encontra ao lado.  Atividade 24
  • 73. Traçagem Tal como foi dito (e (re…)redito …) nas primeiras aulas de algoritmia: Um algoritmo é um conjunto / sequência de instruções … … que são executadas segundo uma ordem especifica … … de forma objectiva e sem ambiguidades. Sendo assim, seguir essas instruções (execução do algoritmo) passo a passo trata-se de uma tarefa relativamente simples e até proveitosa para o programador. Porquê???  Permite verificar se um algoritmo faz aquilo que realmente se pretende dele, ou seja, se produz os resultados que se esperavam…  Permite detectar aquilo a que podemos chamar de erros de lógica, (o programa não devolve os valores (resultados) esperados)
  • 74. Traçagem Seguir a execução de um algoritmo passo a passo, manualmente, é aquilo a que se chama de: TRAÇAGEM  normalmente é efectuada no papel (execução manual);  simula a execução das instruções (passo a passo) de um algoritmo;  consiste na construção de uma tabela, que se baseia no comportamento de:  Variáveis;  Condições;  Instruções de saída;  …  permite, desta forma, detectar onde (em que passo) ocorre um erro lógico (em que o programa gera um valor que não era suposto e que influencia o resultado final) de forma a poder corrigi-lo.
  • 75. Traçagem – Como??? Tal como foi dito no slide anterior, para se fazer uma traçagem tem de se fazer uma … … tabela (com linhas e colunas) Mas como??? Quais os valores que ficam nas linhas??? E nas colunas??? Para facilitar, qual o programa que se pode utilizar para fazer as traçagens??? Cabeçalho com todas as variáveis / condições presentes no algoritmo Saída de valores (output) Instruções do algoritmo executado passo a passo … … … … … Valores das variáveis / condições … … … … … …
  • 76. Traçagem – Exemplo1ª Coluna: Execução do algoritmo passo a passo (instruções) Última Coluna: Outputs , saída de dados Colunas Intermédias: Valores parciais das variáveis1ª Linha: Cabeçalho com as variáveis e a saída de valores RestantesLinhas: Execuçãodoalgoritmo instruçãoainstrução Valores que decorrem da execução do algoritmo
  • 77. Efectue as traçagens para os algoritmos que elaborou para as seguintes atividades:  14b), com os seguintes valores: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10;  14c), com os seguintes valores: 12.5; 11.1; 14.3; 13.9; 16.8; 15.5;  15, primeiro para o valor 7, depois para o valor 6;  16, para a tabuada dos 6;  17, o factorial de 5;  22, para os valores: 5.3; 12; 4.9; 8.8;1.2;3.1; 13; 9.4; -1 Faça primeiro numa folha de papel e depois passe para um ficheiro Excel, em que cada alínea deve ocupar uma folha distinta (deve mudar o nome de cada folha para o número da actividade da traçagem, por exempo: Folha1  Actividade 14b) Atividade 25
  • 78. Atividade 26 Vocês estavam ansiosos por fazer um joguinho, não é verdade??? CS??? Pois, nããããããã… Uma coisa bem mais divertida… Acerta no Número... Objectivo: Acertar num valor sorteado pelo computador. Algumas Notas Importantes:  Definir um valor máximo (Max);  Sortear um valor dentro do intervalo [0 .. Max] e limpar o ecrã;  Enquanto utilizador não acertar no número sorteado:  Actualizar intervalo em que está o número [máximo e mínimo];  Ler valor do utilizador para nova tentativa (ou actualização do intervalo);  Limpar o ecrã entre tentativas; Se acertar o jogo termina e diz em quantos tentativas o utilizador acertou no número.
  • 79. Atividade 26 – Exemplo de Output  Ao lado, tem a execução do algoritmo passo a passo.  Foi definido um intervalo entre 0 e 200, uma vez que o valor máximo que definiu foi 200.  Foi sorteado um valor dentro desse intervalo que, como pode verificar no fim, foi o 16.  Repare bem nos seguintes aspectos:  Mensagens enviadas ao jogador;  Actualização dos intervalos em cada jogada; ….
  • 80. Atividade 27 Vai mais um joguinho??? Desta vez está-me mesmo a apetecer … … um jogo de dados… Parece que já os estou a ver a girar … a girar … Mas, em linha de comandos??? Hmmm… O jogo do 21 com dados Objectivo do Jogo: Lançar dois dados (7 vezes no máximo) de forma a tentar obter exactamente 21 pontos. Funcionamento / regras do jogo:  São “lançados” dois dados até se atingirem os 21 pontos ou os 7 lançamentos;  Ao “lançar” os dados, se a soma de todos pontos até ao momento for  menor que 21 - deve continuar a lançar os dados, se ainda lhe sobrarem tentativas;  maior que 21, deve retirar aos 21 pontos o excesso e continuar a jogar.  Ganha o jogo se conseguir fazer exactamente 21 pontos em menos de 8 tentativas.
  • 81.  Antes de começar a jogar leia o nome do jogador;  Não se esqueça que jogo termina quando atingir os 21 pontos ou ultrapassar 7 tentativas.  Faça o lançamento dos dados apenas quando clicar numa tecla (‘s’ –start ou ‘l’ - lança);  Deve ignorar outras teclas de lançamento e esperar por uma das anteriores;  O “lançamento” dos dados consiste no sorteio de um valor entre 1 .. 6;  Deve ir acumulando os pontos dos dados em cada uma das tentativas … e verificar se:  é igual a 21 – objectivo atingido, é vencedor e o jogo termina;  não chega aos 21 – se ainda tiver tentativas continua a jogar, senão… perde;  excede os 21 - imagine que tinha 19 pontos e ao lançar os dados saíram 6 pontos. 19+6 = 25 … como é maior que 21 deve subtrair o excesso (26–21 = 5) aos 21 pontos, ou seja, ficaria com 21–5=16 pontos. Se ainda tiver tentativas continua a jogar, senão… Atividade 27 – Aspetos Relevantes
  • 82. Atividade 27 – Exemplo de Output Utilize o limpatela para limpar o ecrã em cada uma das iteracções anteriores. Para que a informação não desapareça logo que faz o limpatela utilize o: timer(milisegundos a esperar) Para voltar a executar em tempo normal: timer off
  • 83. Atividade 28Agora que lhe ganharam o gosto, vamos a outro jogo de dados. E que tal um jogo em que possam jogar dois jogadores??? Funcionamento / regras do jogo:  Deve começar por ler o nome dos dois jogadores;  Deve também ser definido inicialmente, pelos dois jogadores, o número de lançamentos que vão ser efectuados até terminar um jogo;  Em cada jogada, o jogador “lança” dois dados. Mais uma vez, o lançamento dos dados consiste no sorteio de dois valores, um para cada um dos dados, entre 1 .. 6;  Em cada jogada são contabilizados / acumulados os pontos, para o respectivo jogador;  Jogo termina quando ambos os jogadores atingirem ao limite de lançamentos definidos previamente e é anunciado o vencedor e o vencido, com os respectivos pontos.
  • 84. Até ao próximo Módulo…..