Você está na página 1de 47

Aula Teórica II

Rodrigo M. Bacurau
Roteiro
 Representação de Algoritmos
 Descrição Narrativa

 Fluxograma

 Pseudocódigo

2
Representação de Algoritmos

 Principais formas de representar


algoritmos:

 Descrição Narrativa
 Fluxograma
 Pseudocódigo

3
Descrição Narrativa
 Exemplo (“Trocar a resistência de um
chuveiro”):

 Adquira uma resistência nova e localize o


chuveiro a ser manipulado. Em seguida abra o
chuveiro retirando a resistência defeituosa,
coloque a resistência nova e feche o chuveiro.
Após descarte a resistência defeituosa.

4
Descrição Narrativa
 Descrição em linguagem natural da solução de
um problema.

 Vantagem:
 Não há a necessidade de aprender nenhum novo
conceito.

 Desvantagem:
 Ambiguidade;
 Extensão da solução.

5
Pseudocódigo e Fluxograma
 Uma forma de eliminar (ou ao menos
minimizar) a ambiguidade dos algoritmos é
representando-os como:

 Fluxograma: representação gráfica;

 Pseudocódigo (português estruturado):


representação textual.

6
Pseudocódigo e Fluxograma
 Os métodos em questão impõem regras e
disponibilizam um conjunto reduzido de
palavras/símbolos passíveis de serem
utilizadas(os) (rigidez sintática).

 O objetivo é obter uma consistência


semântica para a eliminação da
ambiguidade intrínseca à linguagem
natural.

7
Fluxograma
 Utilização de símbolos gráficos
padronizados para representar
algoritmos.

8
Fluxograma
 Conceitualmente um fluxograma é um tipo
de diagrama, e pode ser entendido como
uma representação esquemática de um
processo.
 Constitui uma representação gráfica que
ilustra de forma descomplicada a
seqüência de execução dos elementos que
o compõem.
 Podemos entendê-lo, na prática, como a
documentação dos passos necessários para
a execução de um processo qualquer.

9
Fluxograma
Conjunto de símbolos utilizados em fluxogramas
SÍMBOLO NOME DESCRIÇÃO
Terminador Indica o início e o fim do fluxo do algoritmo.

Seta de fluxo Indica o sentido do fluxo de execução do algoritmo. É


através dela que os símbolos do fluxograma são
conectados.
Declaração Delimita a seção de declaração de variáveis.

Entrada de Corresponde à instrução de entrada de dados através do


teclado.
dados
Atribuição Símbolo utilizado para indicar cálculos e atribuição de
valores.

Saída de dados Corresponde à instrução de saída de dados. Os dados


serão exibidos na tela do computador.

Desvio Divide o fluxo do programa em dois caminhos, dependendo


do teste lógico que fica dentro do losango.
condicional
10
Fluxograma
 Exemplo:
 Um programa que Inicio
efetua a leitura,
através do teclado, n: inteiro
de um valor inteiro
e o retorna no
monitor. n

Fim

11
Fluxograma
 Vantagem:
 A representação gráfica é mais concisa
que a representação textual.

 Desvantagem :
 É necessário aprender a simbologia dos
fluxogramas.

12
Fluxograma
 Exemplo:
 Cálculo da divisão
entre dois
números.

13
Fluxograma
 Exemplo: fluxograma que recebe um valor inteiro,
através da entrada padrão, e acresce duas unidades a
este exibindo o resultado na saída padrão.
Inicio

n: inteiro

“Forneça um
valor inteiro”
Fim

n
“O valor fornecido
acrescido de duas
unidades resulta
n=n+2 em ”, n
14
Fluxograma

 Exercício:

 Construa um fluxograma para obter o resultado da


multiplicação de dois números inteiros quaisquer
fornecidos pelo usuário.

15
Fluxograma
 Resposta do exercício: Inicio
Inicio
n1, n2: inteiro

n1, n2, res: inteiro

“Digite um
inteiro como n1
“Digite o multiplicando: ”
multiplicando Fim
e o multiplicador,
n2 “Digite um
ambos inteiros: ”
“Resultado: ”, inteiro como
res multiplicador: ”

n1, n2 “Resultado: ”,
n1 * n2

res = n1 * n2
Fim 16
Fluxograma

 Exercício:

 Construa um fluxograma que aplique um desconto


de 30% sobre o valor de um produto, recebido
como entrada, e retorne o resultado da
manipulação na saída padrão.

17
Fluxograma
 Resposta do exercício:
Inicio
Inicio Inicio

“Entre com o valor: real


valor, resultado: real valor: real
valor do produto:”

“Entre com o
“Entre com o valor valor do produto:”
valor do produto:”

valor = valor * 0.7 valor


valor

“Valor de venda”,
resultado =valor * 0.7 valor “Valor com desconto: ”,
valor * 0.7
Fim
“Valor de venda”,
resultado Fim
Fim 18
Fluxograma
 Exercícios:
 Construa o fluxograma que represente o cálculo
da média aritmética de 4 números.

 Construa o fluxograma do algoritmo para


encontrar a menor carta em um conjunto de
cartas de um baralho.

19
Pseudocódigo
 Este modo de representar algoritmos procura
empregar uma linguagem que esteja o mais
próximo possível de uma linguagem de
programação de computadores de alto nível mas
evitando de definir regras de construção muito
rígidas (pseudolinguagem).

 A estrutura é muito próxima a de uma linguagem


de programação.

 A idéia é usar as vantagens do emprego da


linguagem natural, mas restringindo o escopo da
linguagem.

20
Pseudocódigo
 Exemplo: Cálculo da divisão entre dois números.

algoritmo “divisao”
variáveis N1, N2: real
R : real
inicio
leia( N1 )
leia( N2 )
se ( N2 = 0 )
escreva (“não é permitido divisão por 0”)
senao
R = N1/N2
escreva (R)
fimalgoritmo

21
Pseudocódigo
 Vantagem:
 Sua transcrição para qualquer linguagem
de programação é quase que direta.

 Desvantagem:
 É necessário aprender as regras do
pseudocódigo.

22
Linguagem Visualg
 Uma linguagem para representação de
algoritmos;

 Um processador que permite escrever,


armazenar, recuperar e depurar algoritmos;

 Ligeiramente diferente da linguagem


utilizada pelo livro-texto (Portugol);

23
Linguagem Visualg
 Estrutura geral:

algoritmo "semnome"
// Seção de Declarações
inicio
// Seção de Comandos
Fimalgoritmo

 Sublinhado: palavras-chave da linguagem. Possuem significado


pré-definido.

 // Indica uma linha de comentário. Ignorada pelo processador.

 Uma declaração ou comando em cada linha.

24
Linguagem Visualg
 Declaração de variáveis

 Palavra-reservada: var - utilizada para


iniciar a seção de declaração de variáveis
Exemplos:
var a: inteiro
nome_do_aluno: caractere
sinalizador: logico
Valor1, Valor2: real
Obs.: O pseudocódigo e o fluxograma não são
sensíveis ao caso.
25
Linguagem Visualg
 Tipos de variáveis

 inteiro: define variáveis numéricas do tipo inteiro,


ou seja, sem casas decimais.
 real: define variáveis numéricas do tipo real, ou
seja, com casas decimais.
 caractere: define variáveis do tipo string, ou
seja, cadeia de caracteres.
 logico: define variáveis do tipo booleano, ou seja,
com valor VERDADEIRO ou FALSO.

26
Linguagem Visualg
 Cada variável é referenciada por um identificador
único.
 Seqüência de até 30 caracteres;
 O primeiro deve ser uma letra e os demais letras,
dígitos ou o caracter “_”;
 Maiúsculas e minúsculas não são diferenciadas.
 Palavras reservadas não podem ser usadas como
identificadores.

 Palavras reservadas (palavras-chave):


inicio senao para repita
var logico se ate
faca inteiro enquanto real
27
Linguagem Visualg
 Durante a execução de determinadas tarefas
ou durante a execução de um processo para
obtenção da solução de um determinado
problema são necessários alguns dados e ao
final deve-se retornar uma saída.

 Da mesma forma, em alguns algoritmos


tornam-se necessários mecanismos que
possibilitem uma interface com o ambiente
externo, ou seja, são necessários comandos
que possibilitem a entrada e saída de dados.

28
Linguagem Visualg
 Entrada de dados (comando leia).
 Utilizado para receber dados (pelo teclado) externos ao algoritmo
e armazená-los em variáveis.

 Exemplos:
 leia (n1) - O valor digitado será armazenado na variável n1.
 leia (k) - Um ou vários caracteres digitados serão armazenados
na variável k (Definida como caractere).

 No caso de utilizar leia para uma lista de variáveis


(separadas por vírgulas) será respeitada a ordem da lista
de variáveis, da esquerda para direita.

 Exemplo: leia (n1, k, n2)

29
Linguagem Visualg
 Saída de dados (comando escreva).
 Utilizado para externar dados (pelo monitor)
gerados pelo algoritmo.

 Exemplos:

 escreva (n1) - Será mostrado na tela o


conteúdo da variável n1.
 escreva (“O texto digitado foi ”, k) - Será
mostrado o texto entre “” e depois o conteúdo
da variável k.

30
Linguagem Visualg
 Exemplo comando escreva:
...
var x: inteiro
y: caractere
...
escreva(y)
escreval(x,y)
escreva(“Estudou e se dedicou tirou ”, 10-x)
...

31
Linguagem Visualg
 Comando escreva
 É possível especificar o número de colunas da
tela onde se deseja escrever um determinado
valor. Por exemplo, considerando uma variável
inteira x, o comando escreva (x:5) escreve o
valor da variável x em 5 colunas, alinhado-o à
direita.
 Para variáveis reais, além de especificar o
número de colunas a serem reservadas para
representar o número, também pode-se
especificar o número de casas fracionárias
que serão exibidas.
 Por exemplo, considerando z como uma
variável real, o comando escreva(z:5:2),
escreve seu valor em 5 colunas colocando 2
casas decimais.
32
Linguagem Visualg
 Operador de atribuição: <-

Exemplo:var a: inteiro
valor1, valor2: real
...
A <- 5
Valor1 <- 3.14
valor2 <- valor1
escreva(valor2)
...
33
Linguagem Visualg
 Operadores Aritméticos

 Unários: +, -

Exemplos: +1

-5.9

...
var a: inteiro
...
a <- -a
34
Linguagem Visualg
 Operadores Aritméticos
 Binários: +, -, *, /, \, %, ^
Associação
Símbolo Operação
+ Soma
- Subtração
* Multiplicação
/ Divisão
\ Quociente da divisão inteira
% Resto da divisão inteira
^ Potenciação
35
Linguagem Visualg
 Operadores Aritméticos
 Binários
Precedência (Hierarquia nas operações)
Hierarquia Operação
1 Parênteses
2 Função
3 -, + (unários)
4 ^
5 *, /, \, %
6 +, -

36
Linguagem Visualg
 Expressões aritméticas

Exemplos:
3/4+5
3/(4+5)
3\2*9
11%3^2
11%(3^2)
(11%3)^2
3\2+(65-40)^(1/2)

37
Linguagem Visualg
 Operadores Relacionais

Operador Ação
> maior que
>= maior ou igual a
< menor que
<= menor ou igual a
= igual a
<> diferente de
38
Linguagem Visualg
 Operadores Lógicos

Operador
e
ou

nao
xou

39
Linguagem Visualg
 Expressões lógicas

 Exemplos:

3>7 = FALSO

“A” = “a” = VERDADEIRO

“a” > “B” = FALSO

(3>=13\4) xou (nao (5%2=0)) = FALSO


40
Método Para Construção de Algoritmos
 Os passos necessários para a construção de um
algoritmo são:
 ler atentamente o enunciado do problema,
compreendendo-o e destacando os pontos mais
importantes;
 definir os dados de entrada, ou seja, quais dados
serão fornecidos;
 definir os dados de saída, ou seja, quais dados
serão gerados depois do processamento;
 definir o processamento, ou seja, quais cálculos
serão efetuados e quais as restrições para esses
cálculos. O processamento é responsável pela
obtenção dos dados de saída com base nos dados
de entrada;
 definir as variáveis necessárias para armazenar as
entradas e efetuar o processamento;
 elaborar o algoritmo;
 testar o algoritmo realizando simulações. 41
Linguagem Visualg
 Exemplo de algoritmo
 Observaremos agora um pseudocódigo que recebe
um valor inteiro, fornecido pelo usuário, e o
retorna no monitor.

algoritmo “exemplo 1”
var x: inteiro
inicio
leia (x)
escreva (x)
fimalgoritmo

42
Linguagem Visualg
 Exemplo de algoritmo
 Outro exemplo é o pseudocódigo de um algoritmo que
recebe um valor inteiro, acresce duas unidades a
este, e exibe o resultado desta manipulação.

algoritmo “exemplo 2”
var n: inteiro
inicio
escreva (“Digite um número inteiro: ”)
leia (n)
n <- n+2
escreval (“Resultado (número + 2): ”, n)
fimalgoritmo
43
Pseudocódigo
 Exercícios:

 Escreva um algoritmo para calcular a média


aritmética de 4 números em forma de
pseudocódigo.

 Construa um fluxograma para obter o resultado da


multiplicação de dois números inteiros quaisquer
fornecidos pelo usuário.

 Construa um fluxograma que aplique um desconto


de 30% sobre o valor de um produto, recebido
como entrada, e retorne o resultado da manipulação
na saída padrão.
44
Referências
 ASCNCIO, A. F. G.; CAMPOS, E. A. V.
Fundamentos da Programação de
Computadores. 2ª ed. Pearson Education,
2003

 OLIVEIRA, A. B.; BORATTI, I. C.


Introdução à Programação -
Algoritmos. 3ª ed. Visual Books, 1999.

 CORMEN, T.H. et al. Algoritmos, Teoria


e Prática. 2ª ed. Elsevier, 2002.

45
Referências
 MEDINA, M.; FERTIG, C. Algoritmo e Programação:
Teoria e Pratica. 2ª ed. Novatec, 2006

 CARBONI, I. F. Lógica de Programação. Cengage


Learning, 2003.

 LINDER, M. S. Introdução a Algoritmos. Notas de


Aula – UNIVASF. Disponível em:
<http://www.univasf.edu.br/~marcelo.linder/iaa.html>.
Acesso em: 02 - 08 – 2011.

 LINDER, M. S. Algoritmos e Programação. Notas de


Aula – UNIVASF. Disponível em:
<http://www.univasf.edu.br/~marcelo.linder/arquivos_
ap/M2.html>. Acesso em: 02 - 08 – 2011.

46
OBRIGADO!

Rodrigo Moreira Bacurau


rodrigo.bacurau@univasf.edu.br

47

Você também pode gostar