Você está na página 1de 46

Introdução à programação

Linguagens de programação e
algoritmos
CONCEITOS A ABORDAR:

Criação de Algoritmos

Pseudocódigo
Fluxogramas

Profª Marina A. Gabão Veloso


Linguagens para algoritmos
Para formalizar a construção de algoritmos,são utilizadas as
seguintes linguagens:

 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.

• Permite: a descrição do algoritmo de forma linear, fácil de ler


e fácil de compreender.

• Possui uma linguagem mais próxima da linguagem máquina.

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”;

 Um algoritmo possui sempre:


– Introdução de dados (excepto em raras
situações);
– Processamento de dados;
– Saída (apresentação de resultados).

8
Organização de um algoritmo em
pseudocódigo
 Cabeçalho: inicia o algoritmo. Começa com a palavra
“Algoritmo”
– Exemplo: Algoritmo explicação

 Declarações: Nesta secção são apresentadas as variáveis e


constantes que vão ser usadas
– Exemplo: inteiro: valor1, valor2

 Corpo: começa com a palavra “início” e termina com a


palavra “fim”, contém a sequência dos passos (instruções) a
realizar.

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.

– Iniciam-se com [ e terminam com ]

– 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.

 Este formalismo inclui um conjunto de símbolos gráficos que


representam os diferentes tipos de estruturas: sequência,
decisão e repetição.

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

Decisão condicional X>5

Seleção múltipla Selecionar caso variável

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

Mostrar “introduza o valor 1”


Algoritmo Soma
[soma 2 valores]
Real: valor1, valor2, resultado Ler valor1
Início
Mostrar “introduza o valor
1” Mostrar “introduza o valor 2”
Ler valor1
Mostrar “introduza o valor
2” Ler valor2
Ler valor2
resultado  valor1+valor2
Mostrar resultado resultado  valor1+valor2
Fim
Mostrar resultado

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;
Ca/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

BASEADAS NUMA CONDIÇÃO DE ESCOLHA MÚLTIPLA


Se… Então… Senão Caso…

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

condição for falsa


Instrução n
Fim
19
Estrutura SE…

Permite a seleção entre duas alternativas, dependendo de uma dada


condição/expressão.
A estrutura pode ser definida das seguintes formas:
SE… ENTÃO
SE… ENTÃO… SENÃO
Caso a estrutura esteja definida da forma SE…ENTÃO…SENÃ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 é
falso, é executado apenas o segundo bloco de instruções.

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

Ler Num Ler (Num);


Se Num < 0 Então
N Escrever (‘Mensagem’);
Num<0
Fim
S

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.

Variáveis a, b, c, max: inteiros;


Início
Escrever (“Introduza o número1, número2 e número3: ”);
Ler (a, b, c);
Se (a > b) E (a >c) Então
maxa;
Senão
Se (b>c) Então
maxb;
Senão
maxc;
FimSe
FimSe
Escrever(“ O número maior é: “, max);
Fim

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

Variáveis nota: inteiros;


Início
Escrever (“Introduza a nota final do aluno (0 a 20)”);
Ler (nota);
Se (nota <10) Então
Escrever (“Avaliação Qualitativa: Insuficiente”);
Senão
Se (nota>10) E (nota<15) Então
Escrever (“Avaliação Qualitativa: Suficiente”);
Senão
Escrever (“Avaliação Qualitativa: Bom”);
FimSe
FimSe
Fim

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

Opção 1 Opção 2 … Opção n

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

Escrever Escrever Escrever Escrever Escrever Escrever


‘Janeiro’ ‘Fevereiro ‘Março’ ‘Abril’ ‘Maio’ ‘Junho’

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

Bloco de A estrutura ENQUANTO possibilita


instruções repetir a execução de uma ou várias
instruções, enquanto uma determinada
condição/expressão, do tipo lógico, tiver
valor verdadeiro.
Estruturas Baseadas numa Condição
Estrutura Enquanto… Fazer
Quando se utiliza esta estrutura, o algoritmo verifica se o valor da
condição/expressão é verdadeiro, então, o corpo do ciclo é executado uma vez.
Em seguida, volta a verificar o valor da condição/expressão e assim
sucessivamente enquanto o valor for verdadeiro.
Quando o valor for falso a execução do ciclo termina.
Se o corpo do ciclo incluir várias instruções é necessário delimitá-las com as
instruções de início e fim de bloco.
Exemplo:
Início

O corpo de ciclo pode não ser
Enquanto saldo >= 0
executodo nenhuma vez, caso o
Fazer valor da condição/expressão
Escrever (“Valor?”); seja falso, visto essa condição
Ler (valor); ser verificada antes que se inicie
saldo  saldo – valor; o ciclo.
FimFazer

Fim.
Estruturas Baseadas numa Condição
Estrutura Repetir… Até Que

REPETIR

Bloco de <Bloco de Instruções>


instruções
Até que <condição>

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…

Nesta estrutura (ao contrário da estrutura ENQUANTO), são executadas as


instruções incluídas no corpo do ciclo e, só depois é verificada a
condição/expressão.

Se o valor for falso o corpo do ciclo é de novo executado, terminando a execução


apenas quando esse valor for verdadeiro. Assim, o corpo do ciclo é executado
pelo menos uma vez.

Tal como na estrutura anterior, não é possível determinar, à partida, o número de


vezes que o corpo do ciclo é executado.
Estruturas Baseadas numa Condição
Estrutura Repetir… Até que

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

A estrutura PARA é utilizada para efetuar ciclos incondicionais ao


contrário das outras estruturas já vistas.
A execução das instruções, do corpo do ciclo, é controlada por uma
variável de controlo– contador.

A variável contador, recebe um valor inicial e, ao longo da execução do


ciclo, vai sendo incrementada automaticamente até atingir um
determinado valor final.
Estruturas Utilizando um Contador
Estrutura Para…
Enquanto a variável de controlo mantiver um valor inferior ou igual ao
valor de v_final o ciclo continua em execução.

Quando o valor da variável de controlo assumir um valor superior ao


v_final, o ciclo termina.

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]
Contador0; [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).

Um contador é uma variável que conta o número de iterações ou


repetições de um ciclo.

No algoritmo existe uma variável a que chamámos soma e que se destina


a efetuar o somatório ou valor acumulado (acumulador) das parcelas
introduzidas.
Exercícios:
1. Pretende-se obter o valor da soma, dos numeros pares compreendidos entre
100 e 200 (inclusive).- Estrutura Repetir
2. Mostrar no ecra o quadrado dos numeros compreendidos entre 1 e 20. –
Estrutura Para
3. Calcular a media de uma serie de valores pedidos ao utilizador. Devera ser
pedido tambem o numero de valores. - Estrutura Enquanto
4. Calcular a variacao de volume de um cubo, sabendo que o volume e dado pela
Formula: V = A3 A aresta varia entre 10 e 100 cm. – Estrutura Para
5. Dado uma serie de valores representando as notas dos alunos, elabore um
algoritmo que determine quantos tiveram nota positiva. – Estrutura Para
6. Ler um numero, diferente de zero, e escrever no ecra POSITIVO ou NEGATIVO
consoante se trate de um numero positivo ou negativo respectivamente. –
Estrutura SE

Você também pode gostar