Você está na página 1de 36

Introduo Lgica de Programao

Algoritmos
Algoritmo uma seqncia de passos que visam atingir um objetivo bem definido. Os algoritmos so utilizados no dia-a-dia para a soluo dos mais diversos problemas
Receita de bolo Manual de instrues Uma coreografia A soluo de uma equao do segundo grau

O que essas coisas tm em comum?


uma srie finita e bem definida de passos ou regras que, quando realizadas, atingem um objetivo previamente definido

Algoritmos
Outra definio pode ser
Algoritmo a descrio de um conjunto de aes que, obedecidas, resultam numa sucesso finita de passos, atingindo um objetivo esperado.

O que importa no algoritmo o efeito das aes para a obteno do resultado esperado. So propriedades de algoritmos:
aes simples, claras e bem definidas (no ambguas); seqncia ordenada de aes; seqncia finita de passos;

Algoritmos
Algoritmo: Troca de lmpada queimada pegar uma escada; posicionar a escada embaixo da lmpada; buscar uma lmpada nova; subir na escada; retirar a lmpada velha; colocar a lmpada nova.

Obs.: esse algoritmo est descrito em linguagem coloquial ou forma narrativa.

Algoritmos
Algoritmo: Troca de lmpada com teste pegar uma escada; posicionar a escada embaixo da lmpada; buscar uma lmpada nova; acionar o interruptor; se a lmpada no acender, ento subir na escada; retirar a lmpada queimada; colocar a lmpada nova.

Algoritmos
Algoritmo: Troca de lmpada com teste no incio acionar o interruptor; se a lmpada no acender, ento pegar uma escada; posicionar a escada embaixo da lmpada; buscar uma lmpada nova; subir na escada; retirar a lmpada queimada; colocar a lmpada nova.

Algoritmos
Algoritmo: Troca de lmpada com teste e condio de parada acionar o interruptor; se a lmpada no acender, ento pegar uma escada; posicionar a escada embaixo da lmpada; buscar lmpadas novas; subir na escada; retirar a lmpada queimada; colocar a lmpada nova. enquanto a lmpada no acender, faa retirar lmpada queimada colocar lmpada nova

Algoritmos
Temos trs hastes. Uma das hastes serve de suporte para trs discos de tamanhos diferentes. Os discos menores so sempre colocados sobre os discos maiores. Situao inicial

Desejamos mover todos discos para outra haste, porm s podemos movimentar um disco de cada vez e um disco maior nunca pode ser colocado sobre um disco de menor tamanho. Como seria um algoritmo para resolver esse problema?

Algoritmos
Nomeamos as hastes como 1, 2 e 3 e os discos como p, m e g. Considera-se que inicialmente os discos esto na haste 1. Os passos so: 1. move o disco p para a haste 2. 2. move o disco m para a haste 3. 3. move o disco p para a haste 3. 4. move o disco g para a haste 2. 5. move o disco p para a haste 1. 6. move o disco m para a haste 2. 7. move o disco p para a haste 2.

Algoritmos
Exerccio: Faa um algoritmo para resolver o problema abaixo. Temos trs recipientes de tamanhos distintos: o primeiro com capacidade para 8 litros, outro para 5 litros e o terceiro com capacidade para 3 litros. O recipiente de 8 litros est totalmente cheio. Deseja-se colocar 4 litros em dois recipientes. Considere que os recipientes no sejam graduados.

Algoritmos
Exerccio: Faa um algoritmo para resolver o problema abaixo. Numa determinada noite, acontece uma queda de energia. Voc sabia que poderia encontrar uma vela na gaveta da cozinha, um lampio embaixo da cama, fusveis de reserva no armrio da sala e fsforos na estante da cozinha. Descreva a seqncia de passos que poderia ser utilizada para diagnosticar e resolver o problema, o que pode ser previsto em duas possibilidades: a) o fusvel queimou; b) a queda na estao da companhia eltrica.

Algoritmos Computacionais
O algoritmo uma seqncia de instrues, onde cada instruo representa uma AO que deve ser entendida e realizada. Como saber se j temos detalhes suficientes em um algoritmo para que a AO possa ser entendida e realizada?
Depende do agente que ir executar o algoritmo

No caso de algoritmos computacionais


O agente o computador o computador possui um conjunto limitado de instrues e o algoritmo deve ser expresso nos termos destas instrues

Descrio de Algoritmos
Descrio Narrativa
Especificao verbal dos passos em linguagem natural. Desvantagens: a linguagem natural prolixa e imprecisa e freqentemente pouco confivel como um veculo de transferir informao.

Fluxograma
Um fluxograma mostra, de forma grfica, a lgica de um algoritmo, enfatizando passos individuais e o fluxo de execuo. Desvantagem: pouco escalvel

Descrio de Algoritmos
Pseudocdigo ou Linguagem Algortmica ou Pseudolinguagem
Linguagem especial para expresso de algoritmos Funciona como uma "linguagem simplificada de programao Utiliza expresses concisas e pr-definidas Descrio textual, estruturada e regida por regras Utiliza-se palavras-chaves, indentao, apenas um passo por linha

Usaremos o Portugol
Estrutura similar a do Pascal

Exemplo de Algoritmo
{ declarao de variveis } real: p1, p2, p3, p4, Media; inicio { comandos de entrada de dados } leia (p1); leia (p2); leia (p3); leia (p4); { processamento - Calculo da media } Media (p1 + p2 + p3 + p4)/4; { sada de dados } escreva ( Media final = , Media); fim.

Estruturas de Dados
Um aspecto fundamental na construo de algoritmos computacionais so as estruturas de dados, que representam as informaes do problema a ser resolvido. Outros conceitos relacionados a estruturas de dados
Varivel e Constante

Estruturas de dados so organizadas em tipos distintos de informao


Tipos primitivos de dados Tipos estruturados

Variveis
Representam informaes cujos valores so modificados ao longo da execuo do algoritmo. Podemos definir variveis tambm como um local onde um determinado valor (de um dos tipos definidos) armazenado. Assim, a varivel composta de dois elementos bsicos:
Contedo: valor atual da varivel Identificador: nome dado varivel para possibilitar sua manipulao

Variveis
O conceito de varivel, na verdade, corresponde a posies de memria RAM, onde sero armazenados os dados manipulados pelo programa.

Constantes
Representam valores constantes, ou seja, que no variam no decorrer do algoritmo.

Tipos Primitivos
Tipos primitivos so os grupos bsicos de informaes que o computador manipula Inteiro
Ex: 1 -4 100 0 -905

Real
Ex: 1,3 816,97 3,0 -0,0055

Caracter
Ex: CASA livro 18 R$ 55,36 A

Lgico
Falso, Verdadeiro (ou False, True)

Identificador
Nome de um local onde se pode colocar qualquer valor do conjunto de valores possveis de um tipo bsico associado.
Nome de uma varivel Nome de uma constante

Regras para formao de um identificador


deve comear por um caracter alfabtico (uma letra); pode ser seguido de letras e/ou dgitos; s permitido o uso do caracter especial _ situado entre letras e/ou dgitos

Exemplos de identificadores vlidos

Identificador
Exemplos de identificadores vlidos
Nome, X, y, ENDERECO, Aluno_01, Media

Exemplos de identificadores invlidos


5X, E(13), A:B, X-Y, Nota/2

O identificador deve representar de forma significativa o contedo que ir armazenar

Declarao de Variveis
a criao (ou definio) de locais na memria rotulados com o identificador da varivel (ou constante) que ser utilizada no algoritmo para a manipulao de um determinado tipo de informao. Representao em Portugol Tipo: Lista de Variveis;

Declarao de Variveis
Exemplos Inteiro: NUM, X; real: parcela; lgico: resposta; real: PI; caracter: NOME, ENDEREO; Neste momento, as variveis ainda no contm nenhum valor associado a elas. A declarao de variveis deve ser feita antes da definio das aes do algoritmo.

Expresses aritmticas
+ : adio - : subtrao * : multiplicao / : diviso div : quociente : ex: 30 div 7 = 4 mod : resto : 30 mod 7 = 2 Parnteses

5 div 7 = 0 5 mod 7 = 5

Ex: 2 + (3 * 4) Precedncia
() operador unrio div, mod, *, / +, -

Expresses Relacionais
> maior do que >= maior do que ou igual a < menor do que <= menor do que ou igual a = igual <> diferente

3 > 5 resulta falso 7 <= 7 resulta verdadeiro 3*4 - 5 < 2*3 - 4 resulta falso

Expresses Lgicas
e ou no operadores relacionais tm prioridade mais baixa que os operadores lgicos no (5 > 3) ou (5 < 3)
false

Funes Matemticas
Representao em Portugol: nome da funo(argumento) O argumento a informao que dada funo para que ela possa ser efetuada adequadamente. Pode ser uma constante ou uma varivel. Potenciao
pot(x, y) x elevado a y pot(2,3)

Radiciao
rad(x) raiz quadrada de x rad(9)

Comando de Atribuio
Serve para atribuir (ou associar) um valor a uma varivel Sintaxe Geral em Pseudolinguagem: identificador expresso ; onde expresso pode ser um(a): constante, varivel, expresso matemtica, funo matemtica, expresso booleana, etc.

Comando de Atribuio
Exemplos lgico: A, B, Erro; inteiro: x; caracter: Nome; x 8 + 13 div 5; B 5 = 3; X 2; A B; Erro Verdadeiro; Nome Fulano de Tal;

Comandos de Entrada e Sada de Dados


Representam as aes bsicas de algoritmos para recebimento e apresentao de dados, respectivamente.

Comandos de Entrada e Sada de Dados


Entrada de Dados: informaes que so fornecidas ao programa pelo usurio durante a resoluo do problema. Representao em Portugol: leia (identificador, identificador, ...); Ex: leia (x); leia (altura, idade, sexo);

Comandos de Entrada e Sada de Dados


Sada de Dados: informaes que so mostradas ao usurio como resposta ao problema. Representao em Portugol escreva (expresso, expresso, ...); Ex: escreva (Seu peso ideal eh : , peso_ideal) ; escreva (Media final = , (P1 + P2)/2) ;

Comentrios
Os comentrios representam qualquer texto que explique uma ao ou um dado usado no algoritmo. Eles podem ser colocados em qualquer ponto do algoritmo, utilizando { } como delimitador.

Esquema Genrico
{ declarao das variveis } inicio {comeo do algoritmo} { corpo do algoritmo } ao 1; ao 2; . . . fim. { fim do algoritmo }

Exemplo de Algoritmo
{ declarao de variveis } real: p1, p2, p3, p4, Media; inicio { comandos de entrada de dados } leia (p1); leia (p2); leia (p3); leia (p4); { processamento - Calculo da media } Media (p1 + p2 + p3 + p4)/4; { sada de dados } escreva ( Media final = , Media); fim.

Você também pode gostar