Escolar Documentos
Profissional Documentos
Cultura Documentos
Algoritmo e Estruturas
Algoritmo e Estruturas
Linguagens de programação e
algoritmos
CONCEITOS A ABORDAR:
Criação de Algoritmos
Pseudocódigo
Fluxogramas
Formato livre
Pseudocódigo
Fluxogramas
2
Formato livre
• O “formato livre” consiste em escrever os passos
necessários e ordenados para a resolução de um
problema, utilizado a linguagem corrente do dia-a-
dia.
• Exemplo: somar 2 valores
[somar 2 valores]
Ler o primeiro valor
Ler o segundo valor
Somar o primeiro valor com o segundo valor
Mostrar o resultado
[FIM]
3
Formato livre
Vantagens:
– Facilidade de construção
– Facilidade de compreensão
Desvantagens:
– É uma representação que ainda não se aproxima muito ao
modo de processamento do computador
• Exemplo: a instrução seguinte é compreensível para nós, mas não
para o computador
…
Somar o primeiro valor com o segundo valor
…
4
Pseudocódigo
ou
Pseudolinguagem
5
Pseudocódigo ou Pseudolinguagem
• O pseudocódigo pode ser visto como uma tentativa de fundir
a expressividade da linguagem natural com o rigor lógico de
esquemas como fluxogramas.
6
Regras do pseudocódigo (cont.)
Introdução e saída de dados (input/output):
– Entrar valor
• Exemplo:
– Ler valorLado1, valorLado2;
– Sair resultado
• Exemplo:
– Escrever (“o resultado é ”, valorResultado);
Atribuição
– Resultado operação
• Exemplo
– Resultado valorLado1 * valorLado2
7
Regras do pseudocódigo
Regras:
– Contém a palavra “início”;
– Termina com a palavra “fim”;
8
Organização de um algoritmo em
pseudocódigo
Cabeçalho: inicia o algoritmo. Começa com a palavra
“Algoritmo”
– Exemplo: Algoritmo explicação
9
Organização de um algoritmo em
pseudocódigo (cont.)
Comentários: são muito importantes na programação, quer no
algoritmo quer no próprio programa.
– Exemplo:
Algoritmo Soma
[ este algoritmo calcula a soma de 10 valores
positivos ]
10
Algoritmo em pseudocodigo
Algoritmo Área
[este algoritmo calcula a área de um rectângulo]
Real: valorLado1, valorLado2, valorArea
Início
Ler valorLado1
Ler valorLado2
valorArea valorLado1 * valorLado2
Escrever valorArea
Fim
11
Fluxograma
Consiste na descrição de um algoritmo de forma gráfica.
12
Fluxogramas
Símbolos Significado Exemplo
Processamento em
x x+1
geral
Leitura/Escrita Ler x
de dados
Inicio/Fim
Inicio
de Processamento
Linha de Fluxo
Conector de Fluxos
Subalgoritmo potencia
13
Fluxogramas
Estrutura base de um Fluxograma
Início Início
Instrução 1+2
Fim Fim
14
Pseudocódigo/Fluxogramas Início 15
Fim
Estruturas de Controlo
São de vital importância na programação, para se elaborarem programas
organizados, flexíveis, que permitam ser alterados com facilidade, que façam
um tratamento correto dos dados e de uma forma eficiente. Pode dizer-se que,
não se consegue obter programas estruturados sem o seu uso.
16
Estrutura Sequencial
•Numa sequência é processado um conjunto de
ações (ou instruções) em série
•Não há possibilidade de alterar a ordem de
processamento das ações
a 20 …
A 20;
b a +2 B A + 2;
Ca/b
c a/b …
17
Estruturas de Decisão ou Seleção
Para solucionar problemas complexos é importante que possamos decidir se
uma instrução ou grupos de instruções devem ou não ser executadas,
dependendo de um valor ou de uma expressão. Assim dispomos de duas
estruturas de DECISÃO ou SELEÇÃO.
ESTRUTURAS DE
DECISÃO ou SELECÇÃO
18
Estrutura SE…
SE condição ENTÃO
N Início
Condição Instrução 1 Bloco executado se a …
condição for verdadeira
Instrução n
Instrução se a Fim
S
condição for falsa
SENÃO
Início
Instrução se a
Instrução 1 Bloco executado se a …
condição for
verdadeira
Caso a estrutura esteja definida da forma SE…ENTÃO, é avaliada a condição, se o seu valor for
verdadeiro é executado apenas o primeiro bloco de instruções. Se o valor da condição for falso o
bloco de instruções não é executado.
Se um dos blocos incluir mais que uma instrução é necessário delimitá-los com as instruções de
início e fim.
20
Estrutura SE…- Exemplos
Ler um valor e enviar para o ecrã uma mensagem se o valor for negativo.
Início
Início
Escrever
mensagem
Fim
21
Estrutura SE…- Exemplos
Pretende-se saber qual o maior de dois valores introduzidos pelo o utilizador.
Início
Início
Ler A
Ler (a);
Ler B Ler (b);
Se a >b Então
N
A>B Escrever (a);
S Senão
Escrever A Escrever B Escrever (b);
Fim
Fim
22
Estrutura SE…- Exemplos
Tendo em conta a nota final de um determinado aluno, pretende-se saber se o
aluno é aprovado ou reprovado.
Início
Início
Ler notaf
Ler (notaf);
Se notaf <10 Então
Escrever (“Reprovado”);
N
notaf <10 Senão
S Escrever (“Aprovado”);
Reprovado Aprovado Fim
Fim
23
Estrutura SE Encadeada
24
Estrutura SE Encadeada…- Exemplos
Tendo em conta a nota final de um determinado aluno, pretende-se saber se o aluno é aprovado ou reprovado. Se
for introduzida uma nota maior que 20 e menor que 0, o algoritmo terá que devolver a mensagem “Nota
inválida”.
Variáveis notaf: inteiros;
Início
Escrever (“Qual a nota do exame?”); Algoritmo com uma
estrutura “Se… Então…
Ler (notaf);
Senão” que contém
Se (notaf <0 ) OU (notaf>20) Então dentro de si uma outra
Escrever (“Nota Inválida”); estrutura deste tipo. As
linhas a vermelho
Senão
indicam de onde a onde
Se (notaf>=10) E (notaf<= 20) Então vai cada uma dessas
Escrever (“Aprovado”); estruturas.
Senão
Escrever (“Reprovado”);
FimSe
FimSe
… 25
Estrutura SE Encadeada…- Exemplos
Considere-se o problema de ler três números e calcular o maior deles.
Na resolução do problema foi adoptada uma estratégia de isolamento dos vários casos, primeiro é testado o
número A, depois o número B e caso nenhum dos dois seja o máximo, por exclusão de partes, se concluí que o
número C é o maior de todos.
26
Estrutura SE Encadeada…- Exemplos
Considere-se o problema de ler três números e calcular o maior deles.
Na resolução do problema foi adoptada uma estratégia de isolamento dos vários casos, primeiro é testado o
número A, depois o número B e caso nenhum dos dois seja o máximo, por exclusão de partes, se concluí que o
número C é o maior de todos.
27
Estrutura SE Encadeada…- Exemplos
Crie uma algoritmo, que utilizando a estrutura SE Encadeada, diga qual a avaliação qualitativa do aluno, tendo
em conta a tabela abaixo. NOTA AVALIAÇÃO QUALITATIVA
<10 INSUFICIENTE
ENTRE 10 E 15 SUFICIENTE
>=15 BOM
28
Estrutura SE Encadeada…- Exemplos
Numa loja de dispositivos eletrónicos cada vendedor recebe o salário base mais uma comissão pelo número de
aparelhos vendidos mensalmente, de acordo com a seguinte tabela:
Nº de dispositivos vendidos % da comissão
+ de 20 12%
10 a 20 9%
- de 10 7%
Sendo dado o salário base e o número de dispositivos vendidos por mês, elabore um algoritmo que permita
calcular qual o vencimento total do vendedor e o valor da comissão recebida.
Variáveis num_d: inteiros;
salario_b, venc_t, v_comissao:real;
Início
Escrever (“Introduza o salário base: ”);
Ler (salario_b);
Escrever (“Introduza o número de dispositivos vendidos: ”);
Ler (num_d);
Se (num_d <10) Então
v_comissao salario_b * 7%;
Senão
Se (num_d>=10) E (num_d>=20) Então
v_comissao salario_b * 9%;
Senão
v_comissao salario_b * 12%;
FimSe
FimSe
venc_t salario_b + v_comissao;
Escrever (“ O valor da comissão é”, v_comissão);
Escrever (“ O vencimento total é ”, venc_t);
Fim
29
…
Estrutura CASO…
Selector
30
Estrutura CASO…
CASO selector
Esta estrutura permite a escolha entre
Valor 1 : Início várias alternativas.
Instrução 1
É seleccionada uma instrução ou blocos
…
de instruções com base num valor ou
Instrução n numa expressão designada selector.
Fim
… Pode-se obter o mesmo resultado
Valor n : Início utilizando uma estrutura de SE
Instrução 1 encadeada.
…
Instrução n Tal como na estrutura SE a cláusula
Fim SENÃO não é obrigatória e, também se
SENÃO um dos blocos incluir mais que uma
Início instrução é necessário delimitá-los com
Instrução 1 as instruções de início e fim.
…
Instrução n
Fim 31
Estrutura CASO…
Exemplificando, supondo que introduzimos um valor compreendido entre 1 e 6,
correspondente aos meses do primeiro semestre do ano, e pretendíamos apresentar no
ecrã por extenso o mês correspondente.
Início
Ler valor
valor
Fim
32
Estrutura CASO…
(continuação)
Início
Ler (valor);
Caso valor
1: Escrever (‘Janeiro’);
2: Escrever (‘Fevereiro’);
3: Escrever (‘Março’);
4: Escrever (‘Abril’);
5: Escrever (‘Maio’);
6: Escrever (‘Junho’);
Senão
Escrever (‘Valor não permitido’);
Fim;
Fim
33
Estrutura CASO…
Crie um algoritmo que utiliza uma estrutura de selação para converter uma nota
quantitativa em qualitativa. De 0 a 4, é “Fraco”, de 5 a 9, é “Insuficiente”, de 10 a 13, é
“Suficiente”, de 14 a 15, é “Bom” e de 18 a 20, é “Muito Bom”. Se for inserido um valor
fora destes intervalos, será devolvido pelo algoritmo a mensagem “Nota Inválida”.
Variável nota:inteiro;
Início
Escrever (“Qual a nota numérica?”);
Ler (nota);
Caso nota
0, 1, 2, 3, 4: Escrever (“Fraco”);
5, 6, 7, 8, 9: Escrever (“Insuficiente”);
10, 11, 12, 13: Escrever (“Suficiente”);
14, 15, 16, 17: Escrever (“Bom”);
18, 19, 20: Escrever (“Muito Bom”);
Senão
Escrever (“Nota Inválida”);
Fim;
Fim 34
Estrutura CASO…
Ler uma letra e enviar para o ecrã uma mensagem. Se a letra estiver
compreendida de A a D, escrever ‘ABCD’, se estiver compreendida de E a H,
escrever ‘EFGH’, ou se estiver compreendida de I a L, escrever ‘IJKL’ .
Início
Ler (letra);
Caso letra
‘A’..’D’: Escrever (‘ABCD’);
‘E’..’H’: Escrever (‘EFGH’);
‘I’..’L’: Escrever (‘IJKL’);
Fim;
Fim
35
Estruturas de Repetição ou Ciclos
Permite-nos repetir uma instrução ou um bloco de instruções as vezes que
forem necessárias.
Um ciclo é constituído por uma sequência de instruções – corpo do ciclo - e
por uma estrutura que controla a execução dessas instruções especificando o
número de vezes que o corpo do ciclo é executado.
ESTRUTURAS DE
REPETIÇÃO ou CICLOS
UTILIZANDO UM CONTADOR
BASEADAS NUMA CONDIÇÃO
Para… Até… Fazer
ENQUANTO SE
ATÉ SE VERIFICAR UMA
VERIFICAR UMA
DADA CONDIÇÃO
CONDIÇÃO
Repetir … Até
Enquanto … Fazer
36
Estruturas Baseadas numa Condição
Estrutura Enquanto… Fazer
ENQUANTO condição
Falso FAZER
Condição <Bloco de Instruções>
FimFazer
Verdadeiro
Fim.
Estruturas Baseadas numa Condição
Estrutura Repetir… Até Que
REPETIR
Falso
Condição
Esta estrutura permite repetir uma ou
várias instruções, até que uma
Verdadeiro
determinada condição/expressão, do
tipo lógico, tenha valor verdadeiro.
Estruturas Baseadas numa Condição
Estrutura Repetir…
Exemplo:
Início Executa as instruções indicadas
… no bloco entre Repetir e Até
Repetir que; avalia a condição
(soma>=100) e, se esta se
Escrever (“Valor?”); verificar, o ciclo termina.
Ler (valor);
soma soma + valor;
Até que soma >= 100
Fim.
Estruturas Utilizando um Contador
Estrutura Para…
PARA contador v_inicial até v_final
Fazer
<Bloco de Instruções>
FimFazer
Exemplo:
Início
…
Para num 20 até 200
Fazer
Escrever (num);
FimFazer
…
Fim.
Conceitos de iteração, contador e acumulador
Algoritmo xpto;
Variáveis contador: inteiro;
parcela, soma: reais;
Início
soma 0; [correspondente ao somatório dos valores introduzidos]
Contador0; [correspondente ao número de parcelas introduzidas]
Repetir
Escrever (“Introduza um valor numérico: “);
Ler (parcela);
soma soma + parcela;
contador contador + 1;
Até que soma >1000
Escrever (“Número de parcelas = “, contador);
Escrever (“Valor da soma = “, soma);
Escrever (“Média = “, soma/contador);
Fim.
Conceitos de iteração, contador e acumulador
No algoritmo apresentado, pretende-se efetuar uma soma de várias
parcelas a introduzir consecutivamente pelo utilizador, até que o valor
acumulado (somatório) seja maior que 1000. No final, são apresentados
os valores das variáveis contador e soma.
O termo iteração é usado para designar cada uma das vezes que as
ações dentro de um ciclo são executadas (repetidas).