Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Universidade Federal Rural do Semi-rido Departamento de Cincias Exatas e Naturais Professor: Bruno Monteiro
Verso 30/11/2012
Introduo a Algoritmos
Algoritmos
Um engenheiro, ao se deparar com a demanda de construir uma ponte, antes de comear a misturar os materiais e realizar as perfuraes no terreno, necessita primeiramente resolver os problemas referentes obra, por exemplo, atravs de modelos e regras. Da mesma forma, um programador, antes de qualquer coisa, precisa entender e resolver o problema atravs de um algoritmo, que pode ser escrito at mesmo em uma folha de papel, para s depois representar esta soluo em uma linguagem de programao, surgindo ento o software (ou programa). Definio de algoritmo: conjunto finito de instrues, executadas sequencialmente, a fim de resolver um problema especfico. Objetivo do algoritmo: representar a soluo para um problema, abstraindo os detalhes tcnicos especficos. Propriedades: Finitude: deve sempre terminar aps um nmero finito de passos. Sem ambiguidade: cada passo deve ser precisamente definido e sem ambiguidades. Legibilidade: os passos devem ser claros e legveis, de modo que possam ser compreensveis para outras pessoas. Portabilidade: seus passos devem ser facilmente traduzidos para qualquer linguagem de programao.
escreva(Media , media) se media >= 7 entao escreva(Aprovado) senao escreva(Reprovado) fimse fim
Algoritmos (Pseudocdigo)
Variveis
Variveis so espaos reservados para armazenar algum dado, por analogia, como uma caixa que serve para armazenar algo. Regras para o nome de uma varivel Toda varivel precisa ter um nome, que deve seguir as seguintes regras: S pode conter letras, nmeros, e sublinha. Letras no podem ter acentos. No pode comear com nmero. No pode ter espaos. Exemplos vlidos: media, Media, nota2, media_final, _nome, NomeCompleto Exemplos invlidos: mdia, Mdia, 2nota, media final, nome-completo Declarao de variveis Cada varivel criada para armazenar um tipo especfico de dado, da mesma forma que uma caixa criada para armazenar um tipo especfico de objeto. Portanto, no momento que voc declara uma varivel, deve-se pensar que foi criada uma caixa (vazia e novinha) pronta para armazenar o tipo de dado que voc especificou. Tipos de variveis
inteiro real caractere literal lgico
2 Atribuio de variveis Uma atribuio, representada pelo sinal determinado valor a uma varivel. Exemplo
algoritmo DeclaracoesAtribuicoesSimples declare idade: inteiro altura: real tipoSangue: caractere endereco: literal doador: lgico inicio idade 26 altura 1,70 altura 1,67 tipoSangue A endereco Av. Norte, 34, Recife doador verdadeiro fim idade (inteiro) altura (real) tipoSangue (caractere) endereo (literal) doador (lgico)
idade (inteiro)
altura (real)
tipoSangue (caractere)
26
1,67
doador (lgico)
Observao: ao realizar uma nova atribuio, para a mesma varivel, o contedo antigo substitudo totalmente pelo contedo novo, ou seja, uma varivel s pode armazenar um contedo de cada vez. Observe que isto aconteceu na atribuio da varivel altura, do exemplo acima: o contedo adicionado na primeira atribuio (1,70) foi substitudo pelo contedo da atribuio seguinte (1,67). Observao: no esquea que toda varivel deve ser declarada antes de ser utilizada.
Funo de Entrada
Funcionamento: os valores informados pelo usurio, atravs dos dispositivos de entrada (normalmente o teclado), sero atribudos a varivel utilizada na funo leia. leia ( nome da varivel ) Exemplo: leia(nota1)
Funo de Sada
Funcionamento: os valores informados na funo escreva sero exibidos para o usurio, atravs dos dispositivos de sada (normalmente o monitor). escreva( contedo ) Exemplo: escreva(Bom dia, prezado estudante!) escreva(Sua mdia final foi , media)
Operadores
Operadores Aritmticos Adio + Subtrao Multiplicao * Quociente da Diviso / Resto da Diviso % Operadores Relacionais Maior > Menor < Maior ou Igual >= Menor ou Igual <= Igual = Diferente <> Operadores Lgicos Resulta verdadeiro se todas as partes forem verdadeiras Resulta verdadeiro se uma das partes for verdadeira Negao (inverte o valor) E OU 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
n1 n2 A mensagem Digite as 3 notas escrita para o usurio (real) (real) (no monitor). n3 media (real) (real) n1 n2 (real) (real) n3 media (real) (real)
Variveis criadas
Usurio ento digita as 3 notas (no teclado) que sero lidas e colocadas nas variveis informadas. O resultado da expresso colocado na varivel media.
7,7
9,8
5,5
n3 media (real) (real)
n1 n2 (real) (real)
escreva(Sua mdia , media) A mensagem Sua mdia 7,6 escrita para o usurio (no monitor). fim
7,7
9,8
5,5
7,6
Estruturas Condicionais
Tambm conhecidas como Estruturas de Deciso, permitem que uma instruo, ou bloco de instrues, sejam ou no executadas, dependendo de determinadas condies, representadas por expresses lgicas ou relacionais. Em outras palavras, oferecem os meios de escolher entre dois ou mais caminhos de execuo.
Se
Linguagem estruturada se condio entao
instrues executadas quando condio for verdadeira
Fluxograma
Exemplo
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
senao
instrues executadas quando condio for falsa
fimse
Se encadeado
O agrupamento de vrias selees normalmente ocorre quando h muitas possibilidades de situaes dependentes entre si. Linguagem estruturada se condio1 entao
instrues executadas quando condio1 for verdadeira
Fluxograma
Exemplo
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
se condio2 entao
instrues executadas quando a condio2 for verdadeira
senao
instrues executadas quando condio2 for falsa
fimse senao
instrues executadas quando condio1 for falsa
fimse
Escolha
Linguagem estruturada
escolha varivel caso valor1:
instrues executadas quando o contedo da varivel for valor1
Fluxograma
Exemplo
algoritmo TeleAtendimento declare opcao: inteiro mensagem: literal inicio escolha opcao caso 1: mensagem consultar saldo caso 2: mensagem planos e promoes caso 9: mensagem falar com atendente outrocaso: mensagem opo invlida fimescolha escreva( mensagem ) fim
caso
valor2:
caso
valor3:
outrocaso:
instrues executadas quando no h valor previsto
fimescolha
Estruturas de Repetio
Estas estruturas permitem que trechos do algoritmo sejam repetidos enquanto uma condio for satisfeita.
Enquanto Faa
Linguagem estruturada enquanto faca condio Fluxograma Exemplo
algoritmo VerificarSenha declare senha: inteiro inicio escreva("Digite a senha") leia( senha ) enquanto senha <> 123 faca escreva("Senha INVLIDA!") escreva("Digite a senha") leia(senha) fimenquanto escreva("Senha CORRETA!") fim
fimenquanto
Faa Enquanto
Linguagem estruturada faca
instrues executadas uma primeira vez e enquanto a condio for verdadeira
Fluxograma
Exemplo
algoritmo VerificarSenha declare senha: inteiro inicio faca escreva("Digite a senha") leia( senha ) enquanto fim senha <> 123 escreva("Senha CORRETA!")
enquanto condio
Para
Linguagem estruturada
para V de Vi ate Vf passo P faca instrues executadas enquanto a condio for verdadeira fimpara V: varivel de controle Vi: valor inicial de V Vf: valor final de V P: valor de incremento/decremento de V
Fluxograma
Exemplo
algoritmo EscreverDe2Em2 declare cont: inteiro inicio para cont de 0 ate 10 passo 2 faca escreva( cont ) fimpara fim Sada do algoritmo que ser exibido na tela: 0 2 4 6 8 10
Execuo 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 mdia do aluno , media) se media >= 7 entao escreva(Aprovado) senao escreva(Reprovado) fimse fim
Perceba que todo algoritmo executado seqencialmente, da primeira at a ltima instruo. Linha 2: so criados espaos para armazenar as 4 variveis de nmeros 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 usurio entre com o nmero 9 no teclado, este valor armazenado na varivel n1. n1 : real n2 : real n3 : real media : real
9,0
Linha 7: caso o usurio entre com o nmero 6,5 no teclado, este valor armazenado na varivel n2. n1 : real n2 : real n3 : real media : real
9,0
6,5
Linha 8: caso o usurio entre com o nmero 8,5 no teclado, este valor armazenado na varivel n3. n1 : real n2 : real n3 : real media : real
9,0
6,5
8,5
Linha 9: o clculo especificado no algoritmo executado e o valor produzido armazenado na varivel media. n1 : real n2 : real n3 : real media : real
9,0
6,5
8,5
8,0
Linha 10: a mensagem A mdia do aluno 8,0 escrita na tela do computador. Linha 11: a estrutura se verifica que a sentena media >= 7 verdadeira, pois 8,0 realmente maior ou igual a 7,0 Linha 13: como a condio do se verdadeira, o bloco entao executado, logo, a mensagem Aprovado escrita na tela.