APR - Aula - 2 - Algoritmos
APR - Aula - 2 - Algoritmos
APR - Aula - 2 - Algoritmos
Aula 2
• Noções de algoritmos
• Pseudocódigos
• Fluxogramas
3
Algoritmos
Definição
Sequência ordenada e finita de operaçõ es para a realizaçã o de
uma tarefa
Exemplo: Experimento de
Química
• Passo 1: Reunir os
equipamentos necessá rios
• Passo 2: Montar o aparato
experimental.
• Passo 3: Realizar o
experimento.
• Passo 4: Fazer o relató rio do
experimento.
• Passo 5: Entregar o relató rio
para o professor.
4
Algoritmos
Dificuldades na descrição de um algoritmo
• A instruçõ es nã o podem permitir ambiguidades na
interpretaçã o de sua operaçã o.
Contra-exemplo: Qual é a fraçã o que subtraída de 1/5 é igual a 1/6?
Algoritmos
Algoritmos aplicados a um problema computacional
Traduzindo a sequência ordenada e finita de operaçõ es para a
realizaçã o de uma tarefa na forma de um programa...
Algoritmos
Algoritmos
Descrição narrativa
Descreve a tarefa utilizando um texto escrito no idioma
corrente
Exemplo:
Para-se obter a média das idades dos alunos de uma turma, é necessá rio
que o algoritmo leia a idade de cada um dos alunos da turma, calcule a
média das idades utilizando a expressã o matemá tica para o cá lculo de
uma média e apresente o resultado final deste cá lculo na forma de um
valor numérico
Algoritmos
Pseudocódigo
Transforma o texto da descriçã o narrativa em uma forma escrita
codificada
Exemplo (3 alunos):
algoritmo
declare N1, N2, N3, M numéricos
leia N1
leia N2
leia N3
M <-(N1+N2+N3)/3
escreva "A idade média é:", M
fim_algoritmo
Pseudocódigo
Formato de um pseudocódigo
• Uma declaraçã o por linha para cada tipo de dado usado
• Dados de mesmo tipo sã o separados por vírgula
• Dados de tipos distintos devem ser declarados em linhas diferentes
algoritmo
bloco de declarações
bloco de comandos
fim_algoritmo
Pseudocódigo
Notação
Num programa de computador temos 2 estruturas bá sicas:
1. Variáveis e Constantes
Espaços reservados na memó ria do computador para armazenar
elementos de um certo conjunto ou tipo de dados.
Variáveis: durante a execuçã o do programa, o conteú do da variável pode
mudar;
Constantes: o valor de uma constante nã o muda durante a execuçã o do
programa.
2. Expressõ es
Durante a execuçã o, combinam os valores armazenados nas variáveis e
constantes para calcular novos valores
11
Pseudocódigo
Declaração de variáveis e constantes
Exemplo:
algoritmo
declare i, j, k numerico
declare nome literal
declare overlap logico
fim_algoritmo
• Apenas uma instruçã o tipo declare deve ser usada para cada tipo de dado
• A declaraçã o de uma variável ou constante nã o implica na atribuiçã o de
qualquer valor para o dado a ser armazenado
12
Pseudocódigo
Notação
Tipos de dados armazenados nas variáveis e constantes
• Numéricos
Inteiros: ..., -4, -3, -2, -1, 0, 1, 2, 3, 4, ...
Reais: ..., -10, -9.999...9, -9.999...8, ...
• Literais
Caracteres: “a”, “b”, “%”, etc.
Strings: Corresponde as junçõ es de caracteres
Exemplos: “bola”, “casa”, “Olá !”, etc.
• Ló gicos
Informaçã o só pode ser verdadeira (1) ou falsa (0)
13
Pseudocódigo
Notação
Características dos nomes vá lidos
para variáveis e constantes
• Podem ser usados nú meros, letras
minú sculas e maiú sculas e o caractere
underscore (_)
• Deve começar por uma letra, maiú scula ou
minú scula, ou pelo caractere underscore
(_)
• Nã o podem ser usados símbolos como $, #,
!, ?, &, +, -, %, ^
• Nã o podem ser usados espaços em branco
• Nã o podem ser usadas palavras reservadas
da linguagem usada: algoritmo, leia, printf,
etc
Algoritmos
Fluxograma
Transforma o texto da descriçã o narrativa em uma forma grá fica codificada
A declaraçã o de variáveis e constantes nã o é representada num fluxograma
Exemplo (3 alunos):
Fluxogramas
Fluxograma
Forma padronizada e grá fica de representaçã o dos passos do
algoritmo:
16
Fluxogramas
Fluxograma
Forma padronizada e grá fica de representaçã o dos passos do
algoritmo:
17
Algoritmos
Operadores
Meios pelos quais se realizam operaçõ es sobre as variáveis e constantes,
tais como atribuiçã o de valores, incremento, decremento, multiplicaçã o,
comparaçã o, etc.
• Operadores de atribuiçã o
• Operadores aritméticos
• Operadores relacionais
• Operadores ló gicos
18
Algoritmos
Operadores de atribuição
Usados para atribuir valores ou operaçõ es à s variáveis ou constantes
x <- 10
x <- x + 1
a <- aula
overlap <- falso
19
Algoritmos
Operadores aritméticos
Utilizados para operaçõ es com valores numéricos entre variáveis e
constantes
Bá sicos
Ordem de prioridade
Potenciaçã o: ^
Radiciaçã o: sqrt()
20
Algoritmos
Operadores relacionais
Usados na comparaçã o entre valores ou expressõ es, retornando como
resultado um valor ló gico
Algoritmos
Operadores lógicos
Relacionam entre si valores ou expressõ es ló gicas, resultando em valores
ló gicos
22
Algoritmos
Entradas e saídas de dados
• Entrada: apenas um dado de entrada para cada comando
Exemplos
leia dado1
leia dado2
23
Algoritmos
Entradas e saídas de dados
• Saída: dados de saída separados por vírgula; texto de
comentá rio (dado literal) entre aspas.
Exemplos
escreva dado1
escreva “valor = “, dado1
escreva "valor 1 =", dado1, "valor 2 =", dado2
24
Algoritmos
Estruturas
Conjuntos de comandos utilizados em uma sequencia pré-definida
com o objetivo de executar uma operaçã o ló gica estruturada
Algoritmos
Estruturas
Estruturas sequenciais
O programa nã o tem pontos de desvio ou retorno de fluxo
Exemplo: Média simples de 3 idades
algoritmo
declare N1, N2, N3, M numerico
leia N1
leia N2
leia N3
M <-(N1+N2+N3)/3
escreva "A idade média é:", M
fim_algoritmo
26
Algoritmos
Estruturas
Estruturas sequenciais
Exercício: Monte um pseudocó digo e um fluxograma utilizando uma
estrutura sequencial capaz de calcular o volume e o peso de uma esfera
oca, onde o diâ metro, a espessura da parede e a densidade sã o
informados
27
Algoritmos
Estruturas
Estruturas sequenciais
Exercício: Monte um pseudocó digo e um fluxograma utilizando uma
estrutura sequencial capaz de calcular o volume e o peso de uma esfera
oca, onde o diâ metro, a espessura da parede e a densidade sã o
informados
algoritmo
declare RExterno, RInterno, diametro, espessura, densidade,
volume numerico
leia diametro, espessura, densidade
RExterno <- diametro / 2
RInterno <- diametro / 2 - espessura
volume <- 4 * 3.1416 * (RExterno^3 – RInterno^3) / 3
peso <- densidade * volume
escreva “O volume e o peso são:", volume, peso
fim_algoritmo
28
Algoritmos
Estruturas
Estruturas sequenciais
29
Algoritmos
Estruturas
Estruturas condicionais
O programa tem pontos de desvio de fluxo mas nã o de retorno
Exemplo: Média das idades, duas possibilidade de resultado
algoritmo
declare N1, N2, N3 numerico
leia N1
leia N2
leia N3
M <-(N1+N2+N3)/3
se M >= 18
entao escreva "M >= 18"
senao escreva "M < 18"
fim_algoritmo
30
Algoritmos
Estruturas
Estruturas condicionais
Exercício: Monte um pseudocó digo e um fluxograma utilizando uma
estrutura condicional capaz de informar o maior nú mero entre dois
nú meros N1 e N2 informados, indicando que sã o iguais caso N1 = N2
31
Algoritmos
Estruturas
Estruturas condicionais
Exercício: Informe o maior nú mero entre dois nú meros N1 e N2
informados, indicando que sã o iguais caso N1 = N2
algoritmo
declare N1, N2 numerico
leia N1
leia N2
se N1 > N2
entao escreva “O primeiro é maior“
senao se N2 > N1
entao escreva “O segundo é maior"
senao escreva “São iguais"
fim_algoritmo
32
Algoritmos
Estruturas
Estruturas condicionais
33
Algoritmos
Estruturas
Estruturas de repetiçã o: PARA
O programa tem pontos de retorno de fluxo, com um nú mero conhecido
de repetiçõ es
Exemplo: Sequência de inteiros de 1 até 100
algoritmo
declare i numerico
para i <- 1 ate 100 faca passo 1
escreva i
fim_algoritmo
34
Algoritmos
Estruturas
Estruturas de repetiçã o: PARA
O programa tem pontos de retorno de fluxo, com um nú mero conhecido
de repetiçõ es
Exemplo: N comandos
algoritmo
declare i numerico
para i <- 1 ate 100 faca passo 1
inicio
comando 1
comando 2
comando n
fim
fim_algoritmo
35
Algoritmos
Estruturas
Estruturas de repetiçã o: PARA
Exercício: Monte um pseudocó digo e um fluxograma utilizando uma
estrutura de repetiçã o PARA capaz de obter e escrever a soma dos 100
primeiros nú meros inteiros
36
Algoritmos
Estruturas
Estruturas de repetiçã o: PARA
Exercício: Monte um pseudocó digo e um fluxograma utilizando uma
estrutura de repetiçã o PARA capaz de obter e escrever a soma dos 100
primeiros nú meros inteiros
algoritmo
declare i, sum numerico
sum <- 0
para i <- 1 ate 100 faca passo 1
sum <- sum + i
escreva “A soma vale”, sum
fim_algoritmo
37
Algoritmos
Estruturas
Estruturas de repetiçã o: ENQUANTO
O programa tem pontos de retorno de fluxo, com o nú mero de repetiçõ es
limitado por uma condiçã o ló gica de entrada.
Exemplo: Comparaçõ es sucessivas de nú meros variando
algoritmo
declare a, b numerico
a <- 2
b <- 7
enquanto a < b faca
inicio
a <- a + 2
b <- b + 1
escreva "a =",a,"b =",b
fim
fim_algoritmo
38
Algoritmos
Estruturas
Estruturas de repetiçã o: REPITA
O programa tem pontos de retorno de fluxo, com o nú mero de repetiçõ es
limitado por uma condiçã o ló gica de saída
Exemplo: Comparaçõ es sucessivas de nú meros variando
algoritmo
declare a, b numerico
a <- 1
b <- 8
repita
a <- a + 2
b <- b + 1
escreva "a =",a,"b =",b
ate a > b
fim_algoritmo
39
Algoritmos
Próxima aula
• Introduçã o a linguagem de programaçã o C
• Comandos, variáveis e operaçõ es matemá ticas em C