Anda di halaman 1dari 23

Algoritmos

Prof. Msc. Eduardo Almeida Costa

Definio de Algoritmo
Um conjunto finito de regras que prev sequncias de operaes para resolver um tipo de problema especfico [KNUTH] Sequncia ordenada, e no ambgua, de passos que levam soluo de um dado problema [TREMBLAY]

Definio de Algoritmo
A noo de algoritmo bsica para toda a programao de computadores. [KNUTH Prof. Da Univ. de Stanford] O conceito central da programao o conceito de algoritmo.

Exemplos de Algoritmos
Instrues para se utilizar certo aparelho. Uma receita de bolo A maneira de como as contas so calculadas mensalmente

Caractersticas
Ter fim; No dar margem dupla interpretao Poder gerar informaes de sada Ser efetivo (todas as etapas especificadas no algoritmo devem ser alcanveis em um tempo finito).

Vantagens
A partir dele o programador poder implement-lo em qualquer linguagem de programao que conhea ou deseje. Algoritmo + Ling. de Programao = Programa

Formas de representao
Descrio narrativa Fluxograma Linguagem Algortmica

Fluxograma
Utilizao de smbolos grficos padronizados para representar algoritmos.

Clculo/Processo

Deciso

Entrada

Sada

Incio/FIM

Fluxograma
Vantagens

Uma das ferramentas mais conhecidas Figuras dizem muito mais que palavras Padro mundial Pouca ateno aos dados, no oferecendo recursos para descrev-los ou represent-los Complica a medida que o algoritmo cresce

Desvantagens

Linguagem Algortmica
Consiste na definio de uma pseudolinguagem de programao, cujos comando em portugus (em nosso caso), para representar algoritmos.

Exemplo
Algoritmo para calcular o dobro de um valor
Algortimo CALCULA_DOBRO NUM,DOBRO: inteiro Incio Leia NUM DOBRO = NUM x 2 Imprima DOBRO Fim

Linguagem Algortmica
Vantagem:

Usa o portugus como base;

Pode-se definir quais e como os dados sero estruturados Passagem quase imediata do algoritmo para uma linguagem de programao qualquer

Desvantagem:

Exige a definio de uma linguagem no real para o trabalho; No padronizado

Conceitos Bsicos
Comandos: So os passos que compem o algoritmo. Os comandos de uma linguagem de programao podem estar em dois nveis:

Mais prximos da mquina (linguagem de baixo nvel) Ou serem mais facilmente entendidos pelo homem (linguagem de alto nvel)

Conceitos Bsicos
Varivel -> representao simblica dos elementos de um conjunto. Cada varivel corresponde a uma posio da memria, cujo contedo pode variar durante a execuo do programa.
Quando se diz que uma varivel x assume um valor 5, se quer na realidade dizer que existe uma posio na memria, representada simbolicamente por x, que contm o valor 5.

Conceitos Bsicos
Atribuio -> representa o ato de uma varivel receber o valor de outra varivel. Pode ser indicado pelo smbolo = ou := . Exemplo: Queremos expressar a ideia de que uma varivel x recebe o valor de y+2, onde y uma outra varivel. x = y +2 ou x:= y +2

Estrutura
Existem 3 estruturas bsicas de controle nas quais se baseiam os algoritmos:

Sequenciao Deciso Repetio

Sequenciao
Os comandos fazem parte de uma sequncia, onde relevante a ordem na qual se encontram os mesmos, pois sero executados um de cada vez: Ex: Comando 01 Comando 02 ... Comando-n

Exemplos de Sequenciao
Incio A, B: inteiro; leia (A,B); C:= (A+b)/C; Imprima (C); Fim

Deciso ou Seleo
H a subordinao da execuo de um ou mais comandos veracidade de uma condio. Ex: SE <condio> ento <seq. de comandos 01> seno <seq. De comandos 02> Se existir dinheiro suficiente no meu bolso, ento eu irei almoar em um bom restaurante. Caso contrrio, vou comer um sanduche na lanchonete da esquina.

Exemplo de deciso
Incio A,B: inteiro; A = 1; B = 2; se A > B; ento A = 5; seno A = 10; fim-se; FIM

Repetio ou Iterao
Conhecida por looping ou lao. Permite que tarefas individuais sejam repetidas um nmero determinado de vezes ou tantas vezes quantas uma condio lgica permita. Ex: a) vou atirar pedras na vidraa at quebr-la;

Exemplo de Repetio
Incio A,B, I,C: inteiro; A = 1; B = 1; I = 0; enquanto I < 5 faa; C = A + B; A = B; B = C; I = I+1; fim-enquanto FIM

Exemplo de Repetio
Incio A,B, I,C: inteiro; A = 1; B = 1; I = 0; enquanto I < 5 faa; C = A + B; A = B; B = C; I = I+1; fim-enquanto FIM