Algoritmos e
Programação
Thyago Maia Tavares de Farias
Aula 2
Sumário



Por que criamos algoritmos?
Representações de um algoritmo
Regras básicas para Português Estruturado
Linearização de expressões
 Modularização de expressões

Por que criamos algoritmos?





Linguagem natural não pode ser interpretada por um
computador;
Computadores são projetados para executar tarefas
bem determinadas a partir de determinadas instruções;
Para desenvolver software, utilizamos linguagens de
programação;
A linguagem algorítmica é similar a uma linguagem de
programação;
Logo, aprendendo a criar algoritmos, estamos aptos a
programar em qualquer linguagem de programação;
Por que criamos algoritmos?
LINGUAGEM
NATURAL
PORTUGUÊS, INGLÊS...
INSTRUÇÕES
ALTO NÍVEL
ALGORITMO
ADAPTAÇÃO
CÓDIGO-FONTE EM
LINGUAGEM DE
PROGRAMAÇÃO
BAIXO NÍVEL
01000101001....
LINGUAGEM
DE MÁQUINA
COMPILAÇÃO
TRADUÇÃO
Representações de um Algoritmo

Descrição narrativa;

Fluxograma

Pseudocódigo, Português
Estruturado ou Portugol;
SUBJETIVIDADE
PRECISÃO
Representações de um Algoritmo

Descrição Narrativa:
Preferencialmente um verbo por frase;
 Frases curtas e simples;
 Objetividade;
 Evitar palavras com sentido dúbio;

Exemplo

Descrição Narrativa:

Dobro de um número (Dobro = Número x 2):
Digitar um número;
 Gravar em uma variável;
 Multiplicar o número digitado por 2;
 Gravar o resultado em outra variável;
 Mostrar o resultado da operação.

Representações de um algoritmo

Fluxogramas



Descrevem o fluxo de
ação de um determinado
trabalho lógico, seja
manual ou mecânico;
Usa símbolos
convencionais,
permitindo poucas
variações;
Representado por
símbolos geométricos;
Exemplo

Fluxograma para lidar com uma lâmpada que
não funciona
A LÂMPADA
ESTÁ PLUGADA
?
LÂMPADA
NÃO FUNCIONA
NÃO
PLUGUE
A LÂMPADA
SIM
TROQUE
A LÂMPADA
SIM
VERIFIQUE
O BOCAL
NÃO
A LÂMPADA
ESTÁ QUEIMADA
?
Representações de um algoritmo

Português estruturado (Portugol)
Linguagem mais restrita que o português em
linguagem natural;
 Simplificação extrema do português;
 Significados bem definidos para todos os termos
utilizados nas instruções;
 Possui um conjunto de palavras e regras específicas
(sintaxe da linguagem);
 Representação utilizada no curso;

Representações de um algoritmo

Português estruturado (Portugol)
Normalmente as implementações são feitas em
papel, escritos a mão;
 Atualmente também são utilizados programas que
interpretam, testam e executam algoritmos;

Desafio


Escreva um algoritmo que ajude o homem do barco a
levar o lobo, a ovelha e a caixa de verduras para o outro
lado do lago. Utilize a descrição narrativa para
representar o algoritmo.
Lembrando que lobos comem ovelhas e ovelhas
comem as verduras da caixa quando o homem está na
outra margem!
Resposta do desafio
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Pega a ovelha
Vai para a outra margem
Deixa a ovelha
Volta a margem inicial
Pega a caixa de verduras
Vai para a outra margem
Deixa a caixa de verduras e pega a ovelha
Volta a margem inicial
Deixa a ovelha e pega o lobo
Vai para a outra margem
Deixa o lobo
Volta a margem inicial
Pega a ovelha
Vai para a outra margem
Deixa a ovelha
Linearização de expressões


Para contrução de algoritmos que realizam cálculos
matemáticos, TODAS expressões aritméticas devem
ser linearizadas;
Linearizadas = Colocadas em linha;
Linearização de expressões

Operadores aritméticos disponíveis para o
português estruturado:
Adição (+)
 Subtração (-)
 Multiplicação (*)
 Divisão (/)
 Divisão inteira (\)
 Exponenciação (^ ou Exp)
 Módulo, ou resto da divisão (%)

Linearização de expressões

Operadores relacionais

Realizam a comparação entre dois operandos ou
duas expressões e resultam em valores lógicos
(verdadeiro ou falso)
Ex.: 2+5 > 4 resultaria VERDADEIRO;
 Ex.: 2 = 7 resultaria FALSO;

Linearização de expressões

Operadores relacionais disponíveis no Português
estruturado:
Maior (>)
 Menor (<)
 Maior ou igual (>=)
 Menor ou igual (<=)
 Igual (=)
 Diferente (<>)

Linearização de expressões

Operadores lógicos
Atuam em expressões, também resultando em
valores lógicos VERDADEIRO ou FALSO;
 Tipos de operadores:

E: Resulta verdadeiro se AMBAS AS PARTES forem
verdadeiras;
 OU: Resulta verdadeiro se UMA DAS PARTES é
verdadeira;
 NÃO: Nega uma afirmação. Se verdadeiro, torna-se falso;
Se falso, torna-se verdadeiro;

Linearização de expressões

Exemplos:

(2+5 > 4) e (3 <> 3) resulta FALSO


(2=2) ou (3<1) resulta VERDADEIRO


Pois VERDADEIRO e FALSO resulta FALSO;
Pois VERDADEIRO ou FALSO resulta
VERDADEIRO;
NAO (3<1) resulta VERDADEIRO

Pois FALSO resulta VERDADEIRO devido a inversão de
valores definido por NÃO;
Linearização de expressões

Tabelas-Verdade

A
V
V
F
F
Mostra os resultados das aplicações dos operadores lógicos
conforme os valores dos operandos envolvidos:
B
V
F
V
F
A E B A OU B NAO A NÃO B
V
V
F
F
F
V
V
F
F
V
V
F
F
F
V
V
Modularização de expressões






É a divisão de uma expressão por partes;
Proporciona maior compreensão;
Define prioridades na resolução das mesmas;
Modularizamos expressões através dos
parênteses ( );
Podemos utilizar parênteses dentro de
parênteses (( ));
Indicam quais sub-expressões serão executados
primeiro;
Modularização de expressões
Exemplo:



(2+2)/2 resulta 2;
Mas 2+2/2 resulta 3;
Ordem de prioridade dos operadores aritméticos:

1.
2.
3.
4.
5.
Exponenciação
Multiplicação
Divisão
Adição
Subtração
Modularização de expressões

Ordem de prioridade dos operadores lógicos:
1.
2.
3.

E
OU
NÃO
Exemplo:


(2>3) ou (3<2) e (2<3) resultaria FALSO
(2>3) e (3<2) ou (2<3) resultaria VERDADEIRO
Modularização de Expressões

Ordem de prioridade dos operadores
disponíveis no Português estruturado:
1.
2.
3.
Operadores aritméticos
Operadores relacionais
Operadores lógicos
Exercícios

Escreva as expressões abaixo na forma linearizada:
Respostas

1ª expressão: a + b/c

2ª expressão: ((2/3 – (5-3)) + 1) * 5
Exercícios

Escreva as seguintes expressões linearizadas na
forma matemática convencional:
4 + (5/3) * 8 – 4/2 – 5
 8/4 – 2 + (5 + 4) / (3 – 1)

Exercícios

Resolva as expressões lógicas, determinando se a
expressão é VERDADEIRA ou FALSA:
2>3
 (6 < 8) OU (3 > 7)
 NÃO (2 < 3)
 (2=2) E (1 > 10) OU (5<4)

Respostas

Resolva as expressões lógicas, determinando se a
expressão é VERDADEIRA ou FALSA:
2 > 3 = FALSO
 (6 < 8) OU (3 > 7) = VERDADEIRO
 NÃO (2 < 3) = FALSO
 (2=2) E (1 > 10) OU (5<4) = FALSO

Forma geral de um algoritmo
Algoritmo “nome do algoritmo”
Var
Aqui declaramos as variáveis dos algoritmo
Inicio
Aqui declaramos as instruções do algoritmo
fimalgoritmo
Download

Algoritmos e Programação