Você está na página 1de 61

Introdução à Programação e

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

3. Constantes, Variáveis e Tipo de Dados


3.1. Constantes
3.2. Variáveis
3.3. Tipos de Dados

4. Operadores e Funções Pré - Definidas


4.1. Operadores Aritméticos
4.2. Operadores Relacionais
4.3. Operadores Lógicos
4.4. Funções Pré-Definidas

5. Teste e Correção de erros


1.1. Lógica
A lógica de programação é muito importante para desenvolver
(criar) programas de computador. Para começar é necessário
desenvolver o seu raciocínio lógico.
Então o que é lógica?
“A lógica é uma ciência do raciocínio”
Lógica de programação é a técnica utilizada para
colocar as instruções numa sequência lógica para
atingir determinado objetivo, elaborado numa
linguagem de programação.
1.2. Sequência Lógica
Estes pensamentos, podem ser descritos como
uma sequência de instruções, que devem ser
seguidas para se cumprir uma determinada
tarefa.
Sequência Lógica são passos executados até
atingir um objetivo ou solução de um problema.
Tarefa: Chupar um rebuçado
Sequência lógica / Algoritmo:
• Pegar rebuçado;
• Desembrulhar o papel;
• Colocar o rebuçado na boca;
• Chupar o rebuçado;
• Deitar o papel no lixo;
1.3. Algoritmos

Algoritmo é a sequência lógica, com início meio


e fim, dos passos necessários para realizar uma
tarefa específica.
Pode–se ver o algoritmo como uma receita para
atingir um objetivo.
1.3. Algoritmos
Vejamos como exemplo a receita para fazer uma omelete de
sardinha enlatada.
Receita (algoritmo):
Início
Passo 1 – Abrir a lata de sardinha,
Passo 2 – Partir os ovos e batê-los,
Passo 3 – Juntar os ovos com a sardinha,
Passo 4 – Acender o fogão,
Passo 5 – Despejá-los na frigideira,
Passo 6 – Esperar que coza;
Fim.
Vamos praticar!
Vamos criar os seguintes algoritmos.
1. Calcular a soma de 2 números e apresentar o
resultado.
2. Calcular a média de 3 notas das tuas disciplinas.
3. Crie um algoritmo para calcular a área de um
retângulo.
4. Imprimir 10 linhas contendo uma palavra fornecida
pelo utilizador.
5. Ler a nota final de um aluno e dizer se está aprovado
ou reprovado.
1. Algoritmo para calcular a soma de 2 números
e apresentar o resultado.

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.

Bug- falha na lógica de um programa.


1. Algoritmo para calcular a soma de 2 números
e apresentar o resultado.

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.

 Variável é um espaço na memória do computador ao qual se atribui um


nome e que vai guardar os dados que foram lidos ou calculados.
2. Algoritmo para calcular a média de 3 notas
das tuas disciplinas.

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

Para escrever um algoritmo precisamos descrever a


sequência de instruções, de maneira simples e objetiva.
Para isso utilizaremos algumas técnicas:
Usar somente um verbo por frase
Imaginar que estamos a desenvolver um algoritmo para pessoas
que não trabalham com informática
Usar frases curtas e simples
Ser objetivo
Procurar usar palavras que não tenham sentido duvidoso
Definir muito bem todos os
aspetos do problema que se
pretende resolver.

Encontrar a melhor estratégia


para resolver o problema.
Fases da programação
É aqui que surgem os
algoritmos.

Transpor o algoritmo para


instruções da linguagem de
programação escolhida.

Depois de criado o programa


tem que ser testado para
detetar erros que possam
existir. Pode haver
necessidade de voltar atrás.
Serve para ajudar a
compreender o programa
(manuais, notas explicativas,
etc.)

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

• Ao montar um algoritmo, precisamos primeiro de dividir o


problema em três fases fundamentais.
Que Que resultados
Que dados é
operações tenho que
que preciso?
preciso fazer? apresentar?
Vamos identificar essas fases no algoritmo da área do retângulo.

1. Início;

2. Ler COMPRIMENTO;
FASE DE INPUT
3. Ler LARGURA;
FASE DE
PROCESSAMENTO 4. AREA recebe COMPRIMENTO*LARGURA;

FASE DE OUTPUT 5. Escreve AREA;

6. Fim.
2.2. Pseudocódigo

É uma forma de representação de algoritmos que utiliza


palavras e sinais com significados precisos. Assemelha-se
muito à forma em que os programas são escritos, sem ser
uma linguagem de programação.
Na verdade, esta representação permite a tradução
praticamente direta de um algoritmo para uma linguagem
de programação qualquer.
Linguagem formal Pseudocódigo Identificação
Nome das
variáveis
algoritmoe tipo
Algoritmo Área de dados
Variáveis Area, comp, larg: Inteiros;
1.Início;
2.Ler COMPRIMENTO; Início
3.Ler LARGURA; Ler (comp);
4.AREA recebe Ler (larg); Simbologia
COMPRIMENTO*LARGURA; própria
Area  comp*larg;
5.Escrever AREA;
Escrever (Area);
6.Fim.
Fim
Pseudocódigo

Algoritmo Área do retângulo


Variáveis Area, comp, larg: Inteiros;
Início
Escrever (“Qual é o comprimento?”);
Ler (comp);
Escrever (“Qual é a largura?”);
Ler (larg);
Area  comp*larg;
Escrever (“A área do retângulo é:”, Area);
Fim
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

É outra forma de representar os algoritmos


recorrendo a diagramas.

Utiliza formas gráficas com significados


específicos através dos quais se
representa a sequência de operações.
Fluxograma do algoritmo da área do retângulo
Início

Ler(larg, comp)

Area  comp*larg

Escrever(Area)

Fim
Símbolos utilizados nos fluxogramas:
Símbolo Função

Início ou fim do algoritmo

Entrada ou saída de dados

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

a) O que faz este algoritmo?


b) Identifique os dados de entrada, processamento e saída do algoritmo.
c) Escreva o algoritmo em linguagem formal.
d) Escreva o algoritmo em pseudocódigo.
e) Represente o algoritmo num fluxograma.
Início

Escrever(Nota)

Algoritmo Decisão; Ler(Nota)


Variáveis Nota : Real;
Inicio
Escrever (“Qual é a nota?”); Nota >=10
Falso

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

Para um programa informático, uma


variável é um pedaço de memória
identificado com um nome onde serão
armazenados dados.
As variáveis são declaradas (identificadas)
logo no início do algoritmo:
Variáveis Area, comp, larg: Inteiros;
3.1. Variáveis

Com esta declaração anunciamos que


vamos utilizar 3 variáveis com dados do
tipo inteiro.
O nome das variáveis é escolhido pelo
programador.
É recomendável que os nomes sejam
facilmente identificáveis por quem ler o
algoritmo.
3.1. Variáveis
Há duas formas de as variáveis assumirem
valores:
1. Através do Input (leitura dos dados
introduzidos pelos utilizador).
Ex: Ler (comp);
2. Através da realização de operações ao longo
do algoritmo.
Ex: Area comp*larg;
Tipo de Dados (Variáveis)
Tipo de dados Caracteres : São cadeias de
caracteres ou texto;
Tipo de dados Números Inteiros: números
negativos, zero e números positivos sem parte
decimal;
Tipo de dados Números Reais: números
negativos, zero e números positivos podendo
ter parte decimal;
Tipo de dados Lógicos ou Booleanos : Este
tipo de dados admite apenas um entre dois
resultados possíveis – verdadeiro (true) ou
falso (false).
Constantes
Num algoritmo, uma constante é um dado
que permanece inalterável até ao fim, ao
contrário das variáveis cujo conteúdo pode
ser alterado ao longo do algoritmo.
As constantes podem surgir de duas formas:
De forma direta – Media= (N1+N2+N3)/3;
Declaradas – Constante Pi=3,1415; (ao longo do
algoritmo utiliza-se o nome Pi em vez do número).
Crie um algoritmo que calcule a área de
um quadrado e de um círculo cujo
diâmetro é igual ao lado do quadrado.
(Resolução/Correção)

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;
AreaQcomp*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.

Expressão Valor (Booleano)

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:

Expressão Valor (Booleano)

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:

Expressão Valor (Booleano)

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.