Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
1
Universidade Federal Rural do Semi-Árido Versão
Departamento de Ciências Exatas e Naturais 30/11/2012
Professor: Bruno Monteiro
Introdução a Algoritmos
Algoritmos
Um engenheiro, ao se deparar com a demanda de construir uma ponte, antes de começar a misturar os materiais e realizar as
perfurações no terreno, necessita primeiramente resolver os problemas referentes à obra, por exemplo, através de modelos e regras.
Da mesma forma, um programador, antes de qualquer coisa, precisa entender e resolver o problema através de um algoritmo, que
pode ser escrito até mesmo em uma folha de papel, para só depois representar esta solução em uma linguagem de programação,
surgindo então o software (ou programa).
Definição de algoritmo: conjunto finito de instruções, executadas sequencialmente, a fim de resolver um problema específico.
Objetivo do algoritmo: representar a solução para um problema, abstraindo os detalhes técnicos específicos.
Propriedades:
� Finitude: deve sempre terminar após um número finito de passos.
� Sem ambiguidade: cada passo deve ser precisamente definido e sem ambiguidades.
� Legibilidade: os passos devem ser claros e legíveis, de modo que possam ser compreensíveis para outras pessoas.
� Portabilidade: seus passos devem ser facilmente traduzidos para qualquer linguagem de programação.
Principais Representações de Algoritmos
Descrição narrativa Fluxograma Pseudo-código
Peça ao usuário para digitar as três notas.
Permita que o usuário informe as três notas.
Em seguida, com base nestas três notas, calcule
a respectiva média.
Informe o valor da média recém calculada.
Se esta média for maior ou igual a sete, então,
informe que o aluno está aprovado. Caso
contrário, se a média for menor do que sete,
informe que o aluno está reprovado.
algoritmo CalcularMediaSituacao
declare
n1, n2, n3, media: real
inicio
escreva(“Digite as 3 notas”)
leia(n1)
leia(n2)
leia(n3)
media � (n1 + n2 + n3) / 3
escreva(“Media é “, media)
se media >= 7
entao
escreva(“Aprovado”)
senao
escreva(“Reprovado”)
fimse
fim
Algoritmos (Pseudocódigo)
Variáveis
Variáveis são espaços reservados para armazenar algum dado, por analogia, como uma “caixa” que serve para armazenar algo.
Regras para o nome de uma variável
Toda variável precisa ter um nome, que deve seguir as seguintes regras:
Só pode conter letras, números, e sublinha. Letras não podem ter acentos. Não pode começar com número. Não pode ter espaços.
Exemplos válidos: media, Media, nota2, media_final, _nome, NomeCompleto
Exemplos inválidos: média, Média, 2nota, media final, nome-completo
Declaração de variáveis
Cada variável é criada para armazenar um tipo específico de dado, da mesma forma que uma “caixa” é criada para armazenar um tipo
específico de objeto. Portanto, no momento que você declara uma variável, deve-se pensar que foi criada uma caixa (vazia e novinha)
pronta para armazenar o tipo de dado que você especificou.
Tipos de
variáveis Descrição de cada tipo
Exemplos de
conteúdos válidos
inteiro Representa o conjunto dos números inteiros. 30
real Representa o conjunto dos números reais. 30,5
caractere Representa o conjunto dos caracteres (números, letras e símbolos). ‘b’
literal Representa textos, ou seja, cadeia de caracteres entre aspas (números, letras e símbolos). “Av. Pres. Dutra, 78”
lógico Representa valores lógicos (verdadeiro ou falso). verdadeiro, falso
2
Atribuição de variáveis
Uma atribuição, representada pelo sinal �, representa a ação de “colocar” um conteúdo dentro da “caixa”, ou seja, de atribuir um
determinado valor a uma variável.
Exemplo
algoritmo DeclaracoesAtribuicoesSimples
declare
idade: inteiro
altura: real
tipoSangue: caractere
endereco: literal
doador: lógico
inicio
idade � 26
altura � 1,70
altura � 1,67
tipoSangue � ‘A’
endereco � “Av. Norte, 34, Recife”
doador � verdadeiro
fim
Observação: ao realizar uma nova atribuição, para a mesma variável, o conteúdo antigo é substituído totalmente pelo conteúdo novo,
ou seja, uma variável só pode armazenar um conteúdo de cada vez. Observe que isto aconteceu na atribuição da variável altura, do
exemplo acima: o conteúdo adicionado na primeira atribuição (1,70) foi substituído pelo conteúdo da atribuição seguinte (1,67).
Observação: não esqueça que toda variável deve ser declarada antes de ser utilizada.
Função de Entrada
Funcionamento: os valores informados pelo usuário, através dos dispositivos de entrada (normalmente o teclado), serão atribuídos a
variável utilizada na função leia.
leia ( nome da variável )
Exemplo:
leia(nota1)
Função de Saída
Funcionamento: os valores informados na função escreva serão exibidos para o usuário, através dos dispositivos de saída
(normalmente o monitor).
escreva( conteúdo )
Exemplo:
escreva(“Bom dia, prezado estudante!”)
escreva(“Sua média final foi ”, media)
Operadores
Operadores Aritméticos
Adição +
Subtração -
Multiplicação *
Quociente da Divisão /
Resto da Divisão %
Operadores Relacionais
Maior >
Menor <
Maior ou Igual >=
Menor ou Igual <=
Igual =
Diferente < >
Operadores Lógicos
Resulta verdadeiro se todas as
partes forem verdadeiras E
Resulta verdadeiro se uma das
partes for verdadeira OU
Negação (inverte o valor) NAO
Exemplo
algoritmo CalcularMedia
declare
n1, n2, n3, media: real
inicio
escreva(“Digite as 3 notas”)
leia(n1)
leia(n2)
leia(n3)
media � (n1 + n2 + n3) / 3
escreva(“Sua média é ”, media)
fim
n1 n2 n3 media
(real) (real) (real) (real)
n1 n2 n3 media
(real) (real) (real) (real)
idade altura tipoSangue endereço doador
(inteiro) (real) (caractere) (literal) (lógico)
26 1,67 ‘A’ “Av. Norte,
34, Recife”
V
idade altura tipoSangue endereço doador
(inteiro) (real) (caractere) (literal) (lógico)
n1 n2 n3 media
(real) (real) (real) (real)
7,7 9,8 5,5 7,6
Variáveis criadas
A mensagem “Digite as 3 notas” é escrita para o usuário
(no monitor).
Usuário então digita as 3 notas (no teclado) que serão
lidas e colocadas nas variáveis informadas.
O resultado da expressão é colocado na variável media.
A mensagem “Sua média é 7,6” é escrita para o usuário
(no monitor).
7,7 9,8 5,5
3
Estruturas Condicionais
Também conhecidas como Estruturas de Decisão, permitem que uma instrução, ou bloco de instruções, sejam ou não executadas,
dependendo de determinadas condições, representadas por expressões lógicas ou relacionais. Em outras palavras, oferecem os meios
de escolher entre dois ou mais caminhos de execução.
Se
Linguagem estruturada Fluxograma Exemplo
se condição
entao
instruções executadas quando
condição for verdadeira
senao
instruções executadas quando
condição for falsa
fimse
algoritmo SimularFeriado
declare
carteira: real
programa: literal
inicio
leia( carteira )
se carteira >= 10
entao
programa � “ao cinema”
carteira � 0
senao
programa � “ficar em casa”
fimse
escreva(“Hoje vou ”, programa)
fim
Se encadeado
O agrupamento de várias seleções normalmente ocorre quando há muitas possibilidades de situações dependentes entre si.
Linguagem estruturada Fluxograma Exemplo
se condição1
entao
instruções executadas quando
condição1 for verdadeira
se condição2
entao
instruções executadas
quando a condição2 for
verdadeira
senao
instruções executadas
quando condição2 for
falsa
fimse
senao
instruções executadas quando
condição1 for falsa
fimse
algoritmo SimularFeriado
declare
carteira: real
programa: literal
inicio
leia( carteira )
se carteira >= 10
entao
escreva(“Há dinheiro!”)
se carteira >= 2000
programa � “viajar de iate”
senao
programa � “ao cinema”
fimse
carteira � 0
senao
programa � “ficar em casa”
fimse
escreva(“Hoje vou ”, programa)
fim
Escolha
Linguagem estruturada Fluxograma Exemplo
escolha variável
caso valor1:
instruções executadas
quando o conteúdo da
variável for valor1
caso valor2:
instruções executadas
quando o conteúdo da
variável for valor2
caso valor3:
instruções executadas
quando o conteúdo da
variável for valor3
outrocaso:
instruções executadas
quando não há valor
previsto
fimescolha
algoritmo TeleAtendimento
declare
opcao: inteiro
mensagem: literal
inicio
escolha opcao
caso 1:
mensagem � “consultar saldo”
caso 2:
mensagem � “planos e promoções”
caso 9:
mensagem � “falar com atendente”
outrocaso:
mensagem � “opção inválida”
fimescolha
escreva( mensagem )
fim
4
Estruturas de Repetição
Estas estruturas permitem que trechos do algoritmo sejam repetidos enquanto uma condição for satisfeita.
Enquanto Faça
Linguagem estruturada Fluxograma Exemplo
enquanto condição
faca
instruções executadas
enquanto a condição for
verdadeira
fimenquanto
OBS: observe que o teste da condição é
feito no início.
algoritmo VerificarSenha
declare
senha: inteiro
inicio
escreva("Digite a senha")
leia( senha )
enquanto senha <> 123 faca
escreva("Senha INVÁLIDA!")
escreva("Digite a senha")
leia(senha)
fimenquanto
escreva("Senha CORRETA!")
fim
Faça Enquanto
Linguagem estruturada Fluxograma Exemplo
faca
instruções executadas uma
primeira vez e enquanto a
condição for verdadeira
enquanto condição
OBS: observe que o teste da condição é
feito no final.
algoritmo VerificarSenha
declare
senha: inteiro
inicio
faca
escreva("Digite a senha")
leia( senha )
enquanto senha <> 123
escreva("Senha CORRETA!")
fim
Para
Linguagem estruturada Fluxograma Exemplo
para V de Vi ate Vf
passo P faca
instruções executadas
enquanto a condição
for verdadeira
fimpara
V: variável de controle
Vi: valor inicial de V
Vf: valor final de V
P: valor de incremento/decremento de V
algoritmo EscreverDe2Em2
declare
cont: inteiro
inicio
para cont de 0 ate 10 passo 2 faca
escreva( cont )
fimpara
fim
Saída do algoritmo que será exibido na tela:
0 2 4 6 8 10
Organização das instruções
Nos exemplos anteriores, observem que algumas instruções são internas a outras. Portanto, ao escrever seu algoritmo, mantenha
sempre os espaçamentos adequados, de modo que reflitam a hierarquia das estruturas. Exemplo:
Organização recomendada Nunca faça isso!
algoritmo SimularFeriado
declare
carteira: real
inicio
leia( carteira )
se carteira >= 10
entao
escreva(“Vou ao cinema”)
senao
escreva(“Vou ficar em casa”)
fimse
fim
algoritmo SimularFeriado
declare
carteira: real
inicio
leia( carteira )
se carteira >= 10
entao
escreva(“Vou ao cinema”)
senao
escreva(“Vou ficar em casa”)
fimse
fim
5
Execução de um algoritmo
Exemplo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
algoritmo CalcularMediaSituacao
declare
n1, n2, n3, media: real
inicio
escreva(“Digite as 3 notas”)
leia(n1)
leia(n2)
leia(n3)
media � (n1 + n2 + n3) / 3
escreva(“A média do aluno é “, media)
se media >= 7
entao
escreva(“Aprovado”)
senao
escreva(“Reprovado”)
fimse
fim
Perceba que todo algoritmo é executado seqüencialmente, da primeira até a última instrução.
Linha 2: são criados espaços para armazenar as 4 variáveis de números reais.
n1 : real n2 : real n3 : real media : real
Linha 5: a mensagem “Digite as 3 notas” é escrita na tela do computador.
Linha 6: caso o usuário entre com o número 9 no teclado, este valor é armazenado na variável n1.
n1 : real n2 : real n3 : real media : real
Linha 7: caso o usuário entre com o número 6,5 no teclado, este valor é armazenado na variável n2.
n1 : real n2 : real n3 : real media : real
Linha 8: caso o usuário entre com o número 8,5 no teclado, este valor é armazenado na variável n3.
n1 : real n2 : real n3 : real media : real
Linha 9: o cálculo especificado no algoritmo é executado e o valor produzido é armazenado na variável media.
n1 : real n2 : real n3 : real media : real
Linha 10: a mensagem “A média do aluno é 8,0” é escrita na tela do computador.
Linha 11: a estrutura se verifica que a sentença media >= 7 é verdadeira, pois 8,0 é realmente maior ou igual a 7,0
Linha 13: como a condição do se é verdadeira, o bloco entao é executado, logo, a mensagem “Aprovado” é escrita na tela.
9,0
9,0 6,5
9,0 8,5 6,5
9,0 8,5 6,5 8,0