Sei sulla pagina 1di 5

1

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.

Principais Representaes de Algoritmos


Descrio narrativa Pea ao usurio para digitar as trs notas. Permita que o usurio informe as trs notas. Em seguida, com base nestas trs notas, calcule a respectiva mdia. Informe o valor da mdia recm calculada. Se esta mdia for maior ou igual a sete, ento, informe que o aluno est aprovado. Caso contrrio, se a mdia for menor do que sete, informe que o aluno est reprovado. Fluxograma Pseudo-cdigo
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 (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

Descrio de cada tipo


Representa o conjunto dos nmeros inteiros. Representa o conjunto dos nmeros reais. Representa o conjunto dos caracteres (nmeros, letras e smbolos). Representa textos, ou seja, cadeia de caracteres entre aspas (nmeros, letras e smbolos). Representa valores lgicos (verdadeiro ou falso).

Exemplos de contedos vlidos


30 30,5 b Av. Pres. Dutra, 78 verdadeiro, falso

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)

, representa a ao de colocar um contedo dentro da caixa, ou seja, de atribuir um

idade (inteiro)

altura (real)

tipoSangue (caractere)

26

1,67

endereo (literal) Av. Norte, 34, Recife

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:

instrues executadas quando o contedo da varivel for valor2

caso

valor3:

instrues executadas quando o contedo da varivel for 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

instrues executadas enquanto a condio for verdadeira

fimenquanto

OBS: observe que o teste da condio feito no incio.

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

OBS: observe que o teste da condio feito no final.

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

Organizao das instrues


Nos exemplos anteriores, observem que algumas instrues so internas a outras. Portanto, ao escrever seu algoritmo, mantenha sempre os espaamentos adequados, de modo que reflitam a hierarquia das estruturas. Exemplo: Organizao recomendada
algoritmo SimularFeriado declare carteira: real inicio leia( carteira ) se carteira >= 10 entao escreva(Vou ao cinema) senao escreva(Vou ficar em casa) fimse fim

Nunca faa 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

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.

Potrebbero piacerti anche