Algoritmia
O módulo de Algoritmia é o primeiro módulo da disciplina, tendo
como função principal dar ao aluno um conhecimento do
funcionamento lógico de um programa. Sendo a algoritmia uma
base essencial para a programação, este módulo permite o
estímulo do raciocínio lógico e prepara os alunos para a resolução
de problemas de programação mais ou menos complexos.
Nesse sentido, serão abordados os seguintes conceitos:
Algoritmo
sequência lógica
Pseudocódigo
fluxogramas
Operadores
tipos de dados
Apreender conceitos sobre a lógica de programação
Aplicar instruções e sequências lógicas na resolução de problemas
Utilizar as regras e as diferentes fazes na elaboração de um algoritmo
Aplicar fluxogramas
Identificar os diferentes tipos de dados
Identificar variáveis e constantes
Utilizar as regras de tipos em geral
Enumerar e identificar os operadores aritméticos, relacionais e lógicos
Utilizar operadores e funções pré-definidas
Realizar testes e correção de erros
1. Introdução à Lógica de Programação
1.1. Lógica
1.2. Sequência Lógica
1.3. Instruções
1.4. Algoritmos
2. Desenvolvimento de Algoritmos
2.1. Regras e Fases de Construção de um Algoritmo
2.2. Pseudocódigo
2.3. Fluxogramas
2.3.1. Introdução ao Fluxograma
2.3.2. Simbologia
Inicio; 1. Inicio;
1. Pedir2. oPedir
1º número ao utilizador;
o 1º número ao utilizador;
2. Pedir3. oPedir
2º número ao utilizador;
o 2º número ao utilizador;
3. Somar os doisos
4. Somar números;
dois números;
4. Apresentar o resultado;
5. Apresentar o resultado;
5. Perguntar
6. Fim.se o utilizador quer fazer um outro cálculo;
6. Se a resposta for sim, repetir a partir do ponto 1;
Fim.
1. Inicio;
2. Ler N1;
3. Ler N2;
4. Soma recebe N1+N2;
5. Escrever Soma;
6. Se Repetir=Verdadeiro então Passo 2;
7. Fim.
1. Inicio;
1. Inicio;
1. 2. Pedir a 1ª nota ao utilizador;
Inicio;
2. Pedir a 1ª nota ao utilizador;
2. 3. N1;
Ler Pedir a 2ª nota ao utilizador;
3. Pedir a 2ª nota ao utilizador;
3. 4. N2;
Ler Pedir a 3ª nota ao utilizador
4. Pedir
Agoraa o3ªmesmo
nota aoalgoritmo
utilizador em linguagem mais
4. 5. N3;
Ler Somar os três números e dividir por 3;
5. Somar
técnica
os três
e mais
números
próxima
e dividir
da linguagem
por 3; de
5. 6. Apresentar
MÉDIA o resultado;
recebe (N1+N2+N3)/3;
6. Apresentar o resultado;
programação.
6. 7. Fim.MÉDIA;
Escrever
7. Perguntar se o utilizador quer fazer um outro cálculo;
7. Se Repetir=Verdadeiro então Passo 2;
8. Se a resposta for sim, repetir a partir do ponto 2;
8. Fim.
9. Fim.
3. Algoritmo para calcular a área de retângulo.
1. Início;
2. Ler COMPRIMENTO;
3. Ler LARGURA;
4. AREA recebe COMPRIMENTO*LARGURA;
5. Escreve AREA;
6. Fim.
4. Imprimir 10 linhas contendo uma palavra
fornecida pelo utilizador.
1. Inicio;
2. Ler Palavra;
3. Escrever Palavra;
4. Escrever Palavra;
5. Escrever Palavra;
E se em vez de 10
6. Escrever Palavra;
vezes quisermos
7. Escrever Palavra;
escrever 10 000 ?
8. Escrever Palavra;
Será este algoritmo
9. Escrever Palavra;
funcional?
10. Escrever Palavra;
11. Escrever Palavra;
12. Escrever Palavra;
13. Se Repetir=Verdadeiro então Passo 2;
14. Fim.
4. Imprimir 10 linhas contendo uma palavra
fornecida pelo utilizador.
1. Inicio;
2. Ler PALAVRA;
3. Fazer de 1 até 10
1. Escrever PALAVRA;
4. Se REPETIR=Verdadeiro então Passo 2;
5. Fim. Vamos utilizar uma
formar de o
algoritmo repetir um
nº de vezes uma
instrução-Estrutura
de repetição.
4. Imprimir 10 linhas contendo uma palavra
fornecida pelo utilizador.
E se o utilizador
quiser imprimir
1. Inicio; quantidades
2. Ler Palavra; diferentes de cada
3. Ler QUANTIDADE; vez que executar o
4. Fazer de 1 até QUANTIDADE programa?
1. Escrever Palavra;
5. Fim Fazer
6. Se REPETIR=Verdadeiro então Passo 2;
7. Fim.
5. Ler a nota final de um aluno e dizer se está
aprovado ou reprovado.
1. Inicio;
2. Ler Nota;
3. Se Nota < 10 Então Escrever (“Reprovado”);
Senão Escreve (“Aprovado”);
FimSe
4. Fim.
Regras de Construção de um Algoritmo
Alterações ou
aperfeiçoamentos que sejam
necessários para manter o
programa atualizado
(atualizações).
Os programas de computador não são mais
do que algoritmos escritos numa linguagem
de programação (Pascal, C, Cobol, Fortran,
Visual Basic, etc.)
A linguagem que vamos utilizar ao longo do
ano é o Pascal.
2.1. Fases de Construção de um Algoritmo
1. Início;
2. Ler COMPRIMENTO;
FASE DE INPUT
3. Ler LARGURA;
FASE DE
PROCESSAMENTO 4. AREA recebe COMPRIMENTO*LARGURA;
6. Fim.
2.2. Pseudocódigo
Algoritmo Soma
Variáveis N1, N2, Soma: Inteiros;
Início
Escrever (“Qual é o primeiro número?”);
Ler (N1);
Escrever (“Qual é o segundo número?”);
Ler (N2);
Soma N1+N2;
Escrever (“A soma é:”, Soma);
Fim
Pseudocódigo
Algoritmo Média
Variáveis N1, N2, N3, Media: Real;
Início
Escrever (“Qual é a primeira nota?”);
Ler (N1);
Escrever (“Qual é a segunda nota?”);
Ler (N2);
Escrever (“Qual é a terceira nota?”);
Ler (N3);
Media (N1+N2+N3)/3;
Escrever (“A média é:”, Media);
Fim
2.3. Fluxogramas
Ler(larg, comp)
Area comp*larg
Escrever(Area)
Fim
Símbolos utilizados nos fluxogramas:
Símbolo Função
Processamento
Decisão
Linha de fluxo
Conector
1) Considere o seguinte algoritmo em linguagens informal (sequência lógica).
• Receber código da peça
• Receber valor da peça
• Receber Quantidade de peças
• Calcular o valor total da peça (Quantidade da peça * Valor da peça)
• Mostrar o código da peça e seu valor total a pagar
Escrever(Nota)
Ler (Nota);
Se (Nota >= 10) Então Escreve Verdadeira
(“Aprovado”)
Senão Escrever (“Reprovado”)
Escrever(“Aprovado”) Escrever(“Reprovado”)
FimSe
Fim.
Fim
3.1. Variáveis
Algoritmo Áreas;
Variáveis AreaQ, AreaC, comp, raio :Real;
Constante Pi=3,1415;
Inicio
Escrever(“Qual é o comprimento do lado do quadrado?);
Ler (comp);
raio=comp/2;
AreaQcomp*comp;
AreaC=Pi*raio*raio;
Escrever (“A área do quadrado é:”, AreaQ);
Escrever (“A área do circulo é:”, AreaC);
Fim
Imprimir um determinado número de linhas
contendo uma palavra fornecida pelo utilizador.
Algoritmo Imprimir;
Variáveis Palavra: Caracteres;
Quant: Inteiro;
Inicio
Escrever (“Qual é a palavra que quer imprimir?”);
Ler (Palavra);
Escrever (“Quantas vezes quer imprimir?”);
Ler (Quant);
Fazer de 1 até Quant
Escrever (Palavra);
Fim Fazer
Fim.
4.1. Operadores relacionais
Operador Significado
= Igualdade
< Menor do que
> Maior do que
<= Menor ou igual
>= Maior ou igual
<> Diferente de
IN Incluído em
4.2. Operadores aritméticos
Operador Função
Ordem de prioridade das
operações:
• 1º Exponencial (^)
* Multiplicação • 2º Multiplicação(*) e
divisão(/);
• 3º Soma(+) e
/ Divisão subtração (-)
+ Adição
- Subtração
^ Exponencial
4.3. Operadores Lógicos
Operador Significado
NOT Negação
AND Conjunção
OR Disjunção
4.3. Operadores Lógicos-Tabelas de verdade
NOT AND OR
p NOT p p q p AND q p q p OR q
V F V V V V V V
F V V F F V F V
F V F F V V
Este operador é
F F F F F F
usado como prefixo
para negar um A expressão só será A expressão será
operador booleano. verdadeira se ambos verdadeira se qualquer
os operadores forem dos operadores for
verdadeiros. verdadeiro.
1. Para cada caso identifique o tipo de dados:
a) H
b) 5.6
c) 89
d) (a<b)
e) 8^4
f) “Taxa”
g) 34,567
h) 10 098
2. Observe as seguintes expressões do tipo Booleano. Complete a tabela.
2=3
2<3
0.6>= ̶ 1.5
̶ 4<>4
1.7<= ̶ 2.2
3. Suponha que as variáveis i e j foram atribuídos os valores 3
e -5, respetivamente. Complete a tabela:
i <=10
(i+j)>0
(i ̶ j)<(i+j)
(i ̶ 3)=(j+5)
(2*j)>=( i/2)
(j/2)>(j+6)
•Supondo que Ch1 e Ch2 são variáveis do tipo caractere
às quais foram atribuídos os caracteres P e T,
respetivamente.
Complete a tabela:
Ch1=Ch2
Ch1=‟T‟
Ch1=‟p‟
Ch1<Ch2
Ch2>‟A‟
„W‟<>Ch1
A construção de programas traz sempre a
produção de erros. Estes erros são de dois
tipos: erros de natureza sintática e erros de
natureza lógica.
Erros sintáticos
Estes resultam do facto de o programador não
ter escrito as instruções de acordo com as
regras da linguagem de programação utilizada.
Erros lógicos (erros semânticos)
São erros em geral mais difíceis de detetar do que
os erros sintáticos. Estes resultam do facto de o
programador não ter expressado corretamente,
através da linguagem de programação, a
sequência de ações a ser executada.
Na produção do algoritmo em pseudocódigo o
erro sintático tem pouca importância, sendo
essencial a deteção de erros lógicos.
Faça a deteção dos erros do seguinte algoritmo.
Faça a deteção dos erros do seguinte algoritmo.
Retome o algoritmo do teste da nota e faça
um teste de erros.
Verifique se todos os valores devem ser
aceites e caso contrário crie uma informação
para o utilizador indicando que o valor é
inválido.
Algoritmo notas;
Variáveis nota: Real;
Início
Escrever (“Qual a nota?”);
Ler (nota);
Se (nota>=0) AND (nota<10) então
Escreve (“Reprovado”)
Senão
Se (nota>=10) AND (nota<=20)
então
Escreve (“Aprovado”)
Senão
Escreve (“Nota inválida”)
Fim se
Fim se
Fim.
Escreva um algoritmo que permita classificar
um triângulo dados os seus lados.
Escreva um algoritmo que calcule as áreas de
um cone, sabendo que:
Elabore um algoritmo que leia as notas das
disciplinas de Português, Matemática e Inglês,
calcule a média das três e informe se a média
é positiva ou negativa.
Crie um fluxograma do algoritmo.