Algoritmia
Algoritmia
Cursos Científico-Humanísticos
Aplicações Informáticas B
2022/2023
Programação - Algoritmia
Problema
O que se pretende resolver
Algoritmo
Sequência finita de instruções descritas de forma lógica, ordenada,
clara e precisa a fim de resolver o problema
Programa
Algoritmo codificado numa linguagem de programação
Programação - Algoritmia
■ Programa
– É um conjunto de instruções com uma sequência lógica e com o
objetivo de realizar determinadas tarefas.
– Os programas são escritos numa linguagem própria.
■ Linguagens de programação
– Existem vários tipos de linguagem.
– A única que o computador entende é a “Linguagem Máquina”
(sistema binário).
Programação - Algoritmia
As linguagens de programação:
■ São sistemas de escrita que permitem codificar as operações que o computador
deve executar.
■ São um método padronizado para expressar instruções para um computador. É um
conjunto de regras sintáticas e semânticas usadas para definir um programa de
computador.
■ Permitem ao programador especificar os dados sobre os quais um computador vai
atuar, como os dados serão armazenados ou transmitidos e quais as ações a tomar
em várias circunstâncias.
Programação - Algoritmia
Lógica da programação
■ A lógica de programação é uma condição necessária às pessoas que
desejam trabalhar com desenvolvimento de sistemas e programas.
■ Esta técnica permite definir a sequência lógica para o desenvolvimento de
uma aplicação.
Instruções
■ Instruções são um conjunto de regras ou normas definidas para a realização
de algo.
■ Em informática, é o que indica a um computador qual a ação elementar a
executar.
■ Essas instruções tem que ser executadas numa ordem adequada.
■ Uma instrução tomada em separado não tem muito sentido; para obtermos
o resultado, precisamos colocar em prática o conjunto de todas as
instruções, na ordem correta.
Programação - Algoritmia
Interpretador e Compilador
■ Para converter um programa (escrito numa determinada linguagem) para código-
máquina, torna-se necessário um programa-tradutor.
■ Pode ser de dois tipos:
Interpretador
• Traduz instrução por instrução à medida que o programa vai sendo lido e
executado, e sempre que se pretende executar o programa, é necessário traduzi-lo
novamente.
Compilador
• Traduz a totalidade das instruções, gerando um outro programa escrito em
linguagem máquina (programa objeto), que pode ser utilizado em qualquer altura
sem ter que se traduzir novamente.
Programação - Algoritmia
Etapas do processo
1. Contexto do problema
2. Análise/síntese do problema
3. Esquema de Processamento
4. Algoritmo e Testes
5. Codificação
6. Testes e Validação
7. Produção/Manutenção
Programação - Algoritmia
Documentação
A documentação é uma componente essencial na conceção de programas, que
deve acompanhar todas as etapas do desenvolvimento de produto.
Programação - Algoritmia
Algoritmo
■ É uma sequência finita de passos/ações que descrevem um modo de resolução de
um problema.
■ Em informática, a formulação de um algoritmo não é mais do que a descrição, de
forma ordenada, com clareza e rigor, das operações que se pretendem realizar no
computador para resolver um problema ou atingir determinados objetivos.
Programação - Algoritmia
Construção de um algoritmo:
■ Usar um verbo por frase.
■ Usar frases curtas e simples.
■ Ser objetivo.
■ Procurar usar palavras que não tenham sentido duvidoso.
■ Imaginar que se está a desenvolver um algoritmo para pessoas que
não trabalham com informática.
Programação - Algoritmia
Construção de um algoritmo:
■ Vimos que ALGORITMO é uma sequência lógica de instruções que podem ser
executadas.
■ Entretanto, ao criar um algoritmo, precisamos primeiro de dividir o problema
apresentado em três fases fundamentais:
Linguagem Informal
■ Exemplo 1
Suponha que se pretendia mandar um robot ao supermercado para
comprar:
– Papelaria:
o 2 canetas azuis
o 1 caderno A4 pautado
o 3 lápis pretos nº3
– Jardinagem:
o 1 planta até 30 cm
o 2 sacos de terra
Programação - Algoritmia
Linguagem Informal
Proposta de algoritmo:
1. Ir ao supermercado.
2. Escolher os artigos.
3. Dirigir-se à caixa.
4. Pagar com cartão.
Programação - Algoritmia
Linguagem Informal
Ainda não está ótimo, não se sabe a cor das canetas e dos lápis, qual o tamanho do
caderno e o que fazer depois de pagar.
1. Ir ao supermercado 5. Escolher:
a. 1 planta até 30 cm
2. Dirigir-se à seção de papelaria
b. 2 sacos de terra
3. Escolher:
6. Dirigir-se à caixa
a. 2 canetas azuis
7. Pagar com cartão
b. 1 caderno A4
8. Pegar nos sacos
c. 3 lápis pretos
9. Dirigir-se à rua
4. Dirigir-se à seção de jardinagem
10. Entrar em casa.
Programação - Algoritmia
Linguagem Informal
■ Exemplo 2
Comer um rebuçado
1. Pegar no rebuçado
2. Retirar o papel
3. Comer o rebuçado
4. Deitar o papel no lixo
Programação - Algoritmia
Linguagem Informal
■ Exemplo 3
Somar dois números
1. Escrever o primeiro número no retângulo A
2. Escreva o segundo número no retângulo B
3. Somar o número do retângulo A com o número do retângulo B
4. Colocar o resultado no retângulo C
Programação - Algoritmia
Problema
■ Elaborar um algoritmo para calcular a média dos testes dos alunos.
■ Os alunos realizam 3 provas: P1, P2 e P3.
■ Para elaborar o algoritmo proposto, fazem-se 3 perguntas:
Quais são os dados de entrada?
o Resposta: P1, P2 e P3
Qual é o processamento realizado?
o Resposta: Cálculo da média (P1+P2+P3)/3
Quais são os dados de saída?
o Resposta: A média calculada
Programação - Algoritmia
Início
ler 1º número
colocar o 1º número na variável notaA
ler 2º número
colocar 2º número na variável notaB
ler 3º número
colocar 3º número na variável notaC
somar notaA com notaB e com notaC, dividir o resultado da soma por 3 e guardar
na variável média
escrever a variável média
Fim
Programação - Algoritmia
Teste do algoritmo
■ Após desenvolver um algoritmo ele deve ser testado.
■ Para isso devem seguir-se as instruções do algoritmo de maneira precisa para
verificar se o procedimento utilizado está correto ou não.
■ Exemplo:
– Nota da Prova 1
– Nota da Prova 2
– Nota da Prova 3
■ Utilizar a tabela seguinte: P1 P2 P3 Média
15 16 12 14,3
Programação - Algoritmia
Exercício 1
1. Identifique os dados de entrada, processamento e saída no algoritmo seguinte:
Receber código do produto
Receber valor unitário do produto
Receber quantidade do produto
Calcular o valor total a pagar
Mostrar o código do produto e o valor total
2. Elabore um algoritmo para “Calcular o stock médio de uma peça”, sendo que
STOCKMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2
3. Teste o algoritmo anterior com dados à sua escolha
Programação - Algoritmia
Exercício 1 - Resolução
1. Identifique os dados de entrada, processamento e saída no algoritmo seguinte:
Receber código do produto
Receber valor unitário do produto
Receber quantidade do produto
Calcular o valor total a pagar
Mostrar o código do produto e o valor total
Exercício 1 - Resolução
2. Elabore um algoritmo para “Calcular o stock médio de uma peça”, sendo que
STOCKMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2
Início
Ler a quantidade mínima
Colocar a quantidade mínima na variável QuantMin
Ler a quantidade máxima
Colocar a quantidade máxima na variável QuantMax
Somar QuantMin com QuantMax, dividir por 2 e guardar o resultado na variável StockM
Escrever a variável StockM
Fim
Programação - Algoritmia
Exercício 1 - Resolução
3. Teste o algoritmo anterior com dados à sua escolha
Exercício 2
1. Construa algoritmos que permitam resolver as seguintes situações:
a) Calcular a soma de três números
d) Efetuar uma operação aritmética (+, -, *, /), indicada pelo utilizador, com 2
números
Programação - Algoritmia
Codificação em fluxograma
■ Problema: ■ Fluxograma:
– Cálculo da média aritmética de
dois valores reais?
■ Dados de entrada
– Dois valores reais, X e Y
■ Dados de saída
– A média M=(X+Y)/2
Programação - Algoritmia
Pseudocódigo
■ Os algoritmos podem ser descritos numa linguagem designada por
“pseudocódigo”.
■ Os algoritmos são independentes das linguagens de programação.
■ Ao contrário de uma linguagem de programação, não existe um
formalismo rígido de como deve ser escrito o algoritmo (no nosso
caso, iremos usar um software para codificar algoritmos e por isso
existem regras formais a ter em atenção).
■ O algoritmo deve ser fácil de se interpretar e fácil de codificar.
Programação - Algoritmia
Pseudocódigo
■ O algoritmo deve ser o intermediário entre a linguagem falada e a
linguagem de programação.
■ A pseudolinguagem pode ser vista como a tentativa de fundir a
expressividade da linguagem natural e o rigor lógico de esquemas
como o fluxograma.
■ A pseudolinguagem permite a descrição do algoritmo de uma forma
linear, fácil de ler e fácil de compreender.
Programação - Algoritmia
Codificação em pseudocódigo
■ Problema:
– Cálculo da média aritmética de dois valores reais?
■ Dados de entrada
– Dois valores reais, X e Y
■ Dados de saída
– A média M=(X+Y)/2
■ Algoritmo (usando o Portugol Studio):
Programação - Algoritmia
Fluxogramas - Simbologia Início
Início / Fim processamento
Fim
Processamento X = Y+Z
Linha de fluxos
Conector de fluxos
S
Decisão condicional Y<1
N
Escolha múltipla
Subprograma Rotinas
Programação - Algoritmia
Exercício 3 (opcional)
1. Elabore os fluxogramas para os seguintes problemas:
a) Calcular a soma de três números.
Estruturas de Controlo
Servem para executar um conjunto de instruções de uma forma
particular.
■ Dividem-se em:
Estruturas de Controlo Condicionais:
o Executam um conjunto de instruções quando uma dada condição se verifica;
Início
Ler numero
Colocar numero na variável N1
Se (N1>20) entao
Escrever “Número maior que 20”
FimSe
Fim
Programação - Algoritmia
S Instrução
Instrução
Programação - Algoritmia
Início
Ler numero
Colocar numero na variável N1
Se (N1==20) entao
Escrever “O número é igual a 20”
Senao
Escrever “O número é diferente de 20”
FimSe
Fim
Programação - Algoritmia
Exercício 4
1. Elabore o algoritmo para os seguintes problemas:
a) Perante a introdução de dois números, indique se a sua soma resulta num valor
positivo.
b) Perante a introdução da idade de uma pessoa, indique se o mesmo pode ou não
tirar a carta de condução automóvel.
c) Perante a introdução de um número inteiro verifique se o mesmo é positivo,
negativo ou zero.
d) Perante a introdução de dois números e a introdução de um caracter, efetuar uma
operação aritmética (+, -, *, /) e mostrar o resultado
Programação - Algoritmia
Pseudocódigo – Portugol Studio
■ O que é o Portugol?
– Os programadores cuja língua nativa é português, costumam referir-se ao pseudocódigo como
Portugol, também conhecido por “Português Estruturado”.
■ Portugol Studio
– Uma ferramenta para aprender programação
– Instalação no computador
■ Portugol Webstudio
– Uma ferramenta online para aprender programação:
https://portugol-webstudio.cubos.io/ide
■ Ambas as versões têm: Exemplos e Ajuda – Linguagem Portugol, Entrada e Saída, Tipos de dados,
Expressões…
Programação - Algoritmia
Exemplo:
Programação - Algoritmia
Exemplo:
Programação - Algoritmia
programa{
funcao inicio(){
}
Programação - Algoritmia
Caracter Caracteres da
tabela ASCII
Cadeia Conjuntos de
caracteres
Programação - Algoritmia
■ Variáveis:
Sintaxe
<tipo> nome = <valor>
<tipo> nome = <expressão>
<tipo> nome = <valor>,<nome>=<expressão>
<tipo> nome
■ Constantes:
Sintaxe
const <tipo> NOME = <valor>
Descrição
■ Define um símbolo cujo valor permanece inalterável durante o seu ciclo de vida.
■ Segue as mesmas regras que a definição de variáveis com a exceção de que não é possível
omitir o valor de inicialização
Programação - Algoritmia
■ Arrays:
Sintaxe
<const> <tipo dados> nome [dimensão]
<const> <tipo dados> nome [dim1][dim2]... [dimn]
<tipo dados> nome [dimensão]
<tipo dados> nome [dimensão]={valor_1, valor_2, ... , valor_n}
Descrição
■ Define um conjunto de dados todos do mesmo tipo que podem ser acedidos através de um
índice.
Programação - Algoritmia
■ Escrita:
Síntaxe
escreva(variável)
escreva(constante)
escreva("texto“)
escreva([expressão])
escreva(variável, "texto", expressão,...,)
Descrição
■ Escreve variáveis, constantes, expressões ou texto.
■ Solicita a introdução de valores para as variáveis.
Programação - Algoritmia
■ Escrita
A mesma instrução pode escrever vários elementos desde que sejam separados por virgulas (,)
■ Leitura:
Síntaxe
leia(variável)
leia(variavel1, variavel2)
Descrição
■ Solicita a introdução de valores para as variáveis.
■ É possível definir a leitura de várias variáveis desde que estas estejam separadas por virgulas (,).
■ A leitura de uma variável deve ser precedida da sua declaração.
■ Os valores introduzidos para cada variável devem ser compatíveis com o tipo definido na
declaração da mesma.
Programação - Algoritmia
■ Exemplo:
Programação - Algoritmia
+ Adição
- Subtração
/ Divisão inteira
* Multiplicação
% Resto da divisão inteira
Programação - Algoritmia
+ Adição
- Subtração
/ Divisão real
* Multiplicação
Programação - Algoritmia
+ Concatenação de texto
Programação - Algoritmia
■ Operadores Lógicos
Os operadores lógicos fornecem com
resultado um valor lógico (verdadeiro ou
falso).
Os operadores E e OU são operadores
binários e o NAO é um operador unário.
E Conjunção
OU Disjunção
NAO Negação
Programação - Algoritmia
■ Operadores Relacionais
Os operadores relacionais fornecem com == Igual
resultado um valor lógico (verdadeiro ou falso)
!= Diferente
Se os operandos forem numéricos a comparação
é feita com base no seu valor; > Maior
■ Operadores Relacionais
Programação - Algoritmia
UTILIZANDO
BASEADAS
UM CONTADOR
NUMA CONDIÇÃO
Para …
■ Sintaxe:
Funcionamento do Para
1. Inicialização do ciclo;
2. A condição é avaliada;
3. Se o resultado devolver o valor falso (zero), então o ciclo “para” termina e o algoritmo continua a
instrução imediatamente a seguir;
5. Depois de executada a instrução/conjunto de instruções são realizadas as ações que permite passar à
próxima iteração do ciclo (incremento ou decremento);
6. Voltar ao ponto 2.
Programação - Algoritmia
enquanto (condição)
{
[instruções]
}
Programação - Algoritmia
Funcionamento do Enquanto
1. A condição é avaliada.
2. Se o resultado da avaliação for falso (0-zero), o ciclo termina e o algoritmo continua na instrução
imediatamente a seguir ao “enquanto”.
3. Se o resultado da avaliação for verdadeira (diferente de zero), é executada a instrução (ou bloco de
instrução aí presente) associada ao “enquanto”.
4. Voltar ao ponto 1.
Programação - Algoritmia
Funcionamento do Faca..Enquanto
2. A condição é avaliada;
4. Se o resultado da condição for falso, termina o ciclo e o algoritmo continua na instrução seguinte
ao ciclo;