Você está na página 1de 39

Algoritmos e Programação

Faculdades Metropolitanas Unidas


Prof. Rodrigo Vidonscky
2

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?

• Cada instruçã o deve realizar uma ú nica operaçã o bem


definida.
Contra-exemplo: Para se fazer um bolo de chocolate, o forno deve
ser pré-aquecido entre 150°C e 180°C

• As operaçõ es devem ser tecnicamente possíveis de serem


executadas dentro de um prazo de tempo razoável.
Contra-exemplo: Somar todos os nú meros reais entre 0 e 1
5

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...

Tarefa: Média das idades


dos alunos da turma
• Passo 1: Ler as idades de cada
aluno.
• Passo 2: Calcular a média das
idades.
• Passo 3: Apresentar o resultado
numérico para a média.
6

Algoritmos

Como representar a tarefa proposta de uma


forma genérica e, ao mesmo tempo, precisa?
7

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

Vantagem: Qualquer ser humano versado no idioma consegue ler

Desvantagem: Requer recursos idiomá ticos inadequados para a


execuçã o do algoritmo em um computador
8

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

Vantagem: Simplifica consideravelmente a ló gica do problema

Desvantagem: Diminui a acessibilidade do texto


9

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

Exemplo: Portugol Online (https://vinyanalista.github.io/portugol/)

algoritmo
bloco de declarações
bloco de comandos
fim_algoritmo

CORES E TABULAÇÕES FACILITAM A VISUALIZAÇÃO!


10

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

declare var1, var2, ... tipo de dado

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, ...

Importante: Em programaçã o, o separador decimal é o ponto!

• 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

Regra de ouro: Use nomes que façam


algum sentido!
14

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):

Início do Leitura: Leitura: Leitura:


algoritmo Idade 1 Idade 2 Idade 3

Calcula Mostra resultado Fim do


média na tela algoritmo

Vantagem: Torna a ló gica do pseudocó digo visual

Desvantagem: Precisa ser “traduzida” para ser executada em um computador


15

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

Exemplos (pseudocó digo!)


21

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

Exemplos de estruturas em algoritmos:


• Estruturas sequenciais
• Estruturas condicionais
• Estruturas de repetiçã o: PARA
• Estruturas de repetiçã o: ENQUANTO
• Estruturas de repetiçã o: REPITA
25

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

Você também pode gostar