Вы находитесь на странице: 1из 64

Processamento da Informao Introduo a Algoritmos

Outubro 2009

SUMRIO

Lgica; Lgica de Programao;

Algoritmo;

Pseudolinguagem; Comandos;

Leituras Sugeridas;

ALGORITMO - DEFINIO

Algoritmo: Uma seqncia finita de instrues, ordenada de forma lgica para a resoluo de uma determinada tarefa ou problema Um algoritmo fixa um padro de comportamento a ser seguido, uma norma de execuo, com o objetivo de resolver um determinado problema

LGICA - DEFINIO

No dia-a-dia, entendemos a palavra lgica como: Algo que coerente, bvio, correto Lgica Logos + Ica
Razo
Estuda
Estudo

Cincia

o raciocnio/pensamento humano;
de argumentos.

Argumento

uma seqncia de enunciados, na qual um dos enunciados a concluso, derivado a partir dos outros enunciados premissas.

SILOGISMO - ARISTTELES

Todas as baleias so mamferos. (premissa 1) Alguns animais so baleias. (premissa 2) Logo, alguns animais so mamferos. (concluso)
Raciocnio certo, baseado em premissas corretas

Todos os peixes vivem na gua. (premissa1) Golfinhos so peixes. (premissa 2) .. Golfinhos vivem na gua. (concluso)
Tanto a forma de argumento quando a concluso so verdadeiras, apesar de esta ltima ter sido deduzida a partir de uma premissa falsa ("golfinhos so peixes").

LGICA DE PROGRAMAO

Como pensar como programadores??

Lgica de programao est relacionada ao raciocnio que precisamos desenvolver para resolver um problema cuja soluo dever ser implementada em um computador. Encadear pensamentos para atingir determinado objetivo.

SOLUO DE PROBLEMAS
A

habilidade mais importante para um cientista da computao a soluo de problemas; A soluo de problemas a habilidade de formular questes, pensar criativamente sobre solues possveis e expressar uma soluo de forma clara e precisa; E aprender a programar uma excelente oportunidade de praticar as habilidades da soluo de problemas.

SOLUO DE PROBLEMAS

Exemplos de problemas:

Diagnosticar a doena de um paciente que descreva os seus sintomas, e medic-lo

Criar um sistema de informao que permita gerir as entradas/sadas (cargas/descargas) de navios em um porto martimo

Desenvolver um programa para controle da movimentao de um rob

ALGORITMO

Um algoritmo uma forma de representar a soluo de um problema atravs de uma seqncia de passos

So exemplos de algoritmos: Receitas de bolos Manuais tcnicos Guias de montagem Programas de computadores

ALGORITMO - EXEMPLO

Ingredientes: 5 ovos 250 gramas de margarina cremosa 2 xcaras (ch) de acar 1 xcara (ch) de farinha de trigo 1 xcara (ch) de chocolate 200 gramas de cco ralado 1 copo de leite 1 colher (sopa) de fermento

ALGORITMO - EXEMPLO

Modo de Preparo:

Bata a margarina, as gemas e o acar at ficar cremoso

Junte o leite, o cco e a farinha e continue batendo


Acrescente

o fermento e, por ltimo, as claras em

neve

Unte uma forma com manteiga e leve ao forno para assar

ALGORITMO - EXEMPLO

Escreva um algoritmo para realizar a troca de uma lmpada


Pegar uma escada Posicionar a escada embaixo lmpada Buscar uma lmpada nova Subir na escada Retirar a lmpada velha Colocar a lmpada nova

da

E se a lmpada no estiver queimada?


Acionar o interruptor 2. 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
1.

Pode haver vrios algoritmos para resolver um mesmo problema Afinal, cada pessoa pensa e age de forma diferente

O desenvolvimento de algoritmos um exerccio de

Criatividade Experincia

Diferentes algoritmos podem estar corretos, se levarem ao alcance do objetivo final


Entretanto, deve-se procurar desenvolver algoritmos que resolvam o problema com menos esforo e maior objetividade

ALGORITMO INSTRUO/COMANDO

Instruo/Comando: So frases que indicam as aes a serem executadas. So compostas de um verbo no imperativo, ou no infinitivo, mais um complemento. Por exemplo:
Bata

(Bater) duas claras em neve (Ligar) os faris (Somar) dois nmeros (Imprimir) resultado da soma

Ligue Some

Imprima

ALGORITMO PASSOS PARA CONSTRUO

Identificar o problema (objetivo) mediante leitura atenta de seu enunciado (entendimento) Identificar no enunciado os dados a serem fornecidos para o algoritmo (entrada de dados) Identificar os resultados que devem ser gerados na soluo (sada de dados) Determinar o que deve ser feito para transformar as entradas nas sadas desejadas (processamento)

ALGORITMO PASSOS PARA CONSTRUO

O que preciso? (Entrada)

Como chegar ao que quero (Processamento)

O que quero?

(Sada)

ALGORITMO EXERCCIO Escreva um algoritmo para somar dois nmeros quaisquer

1. 2. 3. 4.

Leia o Leia o Some X Mostre

nmero X nmero Y e Y o resultado da soma

Entrada
Nmero X Nmero Y

Processamento

Sada

Somar X e Y

Resultado da soma

Exerccio Um lobo, uma cabra e uma couve tm de atravessar um rio num barco que transporta um de cada vez, incluindo o barqueiro. Como que o barqueiro os levar para o outro lado de forma que a cabra no coma a couve e o lobo no coma a cabra?

Resposta:
1.
2.

3.

Traz a cabra;

Leva a cabra;
Leva a couve;

4.
5.

Leva o lobo;
Leva a cabra

Exerccio
Eram dois homens que iam por um caminho. Um levava 8 litros de vinho em um garrafo e o outro levava 8 litros de vinho em dois garrafes, um com cinco litros e um com trs. Beberam o vinho do garrafo maior, de 8 litros, e agora querem dividir os 8 litros de vinho restante igualmente, para que nenhum dos dois carregue mais peso do que o outro. Entretanto, eles s podem usar como medida, os prprios garrafes: um de 8 litros, um de 5 e um de 3. Como fazer?

PSEUDOLINGUAGEM

Formalizar a escrita de algoritmos


Problema

Escrita na forma de pseudocdigo

Pseudo linguagem

se... ento... seno...

Linguagem de programao Java, C, Pascal, etc

Linguagem de mquina Zeros e uns...

PSEUDOLINGUAGEM

Quando da definio de uma linguagem, precisamos definir: Sua sintaxe: como escrever os comandos e seus componentes (tipos, variveis, etc) Sua semntica: o significado de cada comando e conceito

Inicialmente veremos: Tipos; Constantes e Variveis; Comando de declarao; Comando de atribuio; Comandos de entrada e de sada; Bloco de execuo seqencial;

PSEUDOLINGUAGEM TIPOS PRIMITIVOS/BSICOS DE DADOS

Na Matemtica: As informaes so classificadas em conjuntos. Por exemplo: N = {0, 1, 2, 3, ...} R = {..., -1000, ..., -0,7. ..., 6, .... 400, ....} Na Computao: As informaes so geralmente agrupadas nos seguintes tipos: Inteiro Real Caractere String Lgico

PSEUDOLINGUAGEM
TIPOS PRIMITIVOS/BSICOS DE DADOS

Inteiro: Toda e qualquer informao numrica que pertence ao conjunto dos nmeros inteiros (Z) Pode assumir os valores nulo, positivo ou negativo Exemplos: -15, 0, 20, 4434 Real: Toda e qualquer informao numrica que pertence ao conjunto dos nmeros reais (R) Exemplos: -234.4, 45, 98, 45

PSEUDOLINGUAGEM TIPOS PRIMITIVOS/BSICOS DE DADOS

Caractere: Toda e qualquer informao composta por um nico caracter numrico (0,1,..,9), alfanumrico (A,B,..,Z,a,b,..,z) ou especial (@,#,!,...) ; Exemplos: D, @, 1 String: Toda e qualquer informao composta por um conjunto de caracteres numricos (0,1,..,9), alfanumricos (A,B,..,Z,a,b,..,z) ou especiais (@,#,!,...) ; Exemplos: No pise na grama, Jos da Silva

PSEUDOLINGUAGEM

TIPOS PRIMITIVOS/BSICOS DE DADOS

Lgico: Toda e qualquer informao que pode assumir apenas os valores: verdadeiro (1) ou falso (0) Exemplos: true, false

PSEUDOLINGUAGEM - VARIVEIS

Em programas computacionais precisamos armazenar informaes para utilizarmos durante a execuo do programa
3000:B712

Armrio Memria do computador

2000:12EC

PSEUDOLINGUAGEM - VARIVEIS

As linguagens de programao permitem que os usurio atribuam nomes para as posies de memria da mquina
nome

Armrio Memria do computador

idade

nacionalidade
profissao

PSEUDOLINGUAGEM - VARIVEIS nome

Uma varivel um endereo da memria de acesso randmico (RAM), representada por um nome (rtulo), criado pelo usurio, cujo contedo pode se alterar no decorrer do programa

Uma varivel composta por dois elementos:

Identificador: nome dado pelo programador varivel

Contedo: valor atual da varivel

PSEUDOLINGUAGEM - VARIVEIS

Identificador

nome Maria Carla

nome idade nacionalidade profissao

Identificador

idade 17

Identificador

nacionalidade brasileira profissao estudante

Identificador

Uma varivel assume apenas UM valor por vez

PSEUDOLINGUAGEM - IDENTIFICADORES
O

primeiro caracter deve ser uma letra Pode ser seguido de mais caracteres alfabticos ou numricos No devem ser usados caracteres especiais (#,@,%,?) No pode haver espaos em branco entre os caracteres Os nomes dos identificadores no podem ser os mesmos das palavras reservadas da linguagem de programao Os nomes escolhidos devem ser explicativos do seu contedo

Declarando variveis
1. 2. 3. 4. 5. 6. 7.

8.
9.

Inteiro (X); Inteiro Km/h; Real P{0}; Inteiro U2; Real UYT; Lgico B52 Real AH!; Caractere Asdrubal; Caractere Rua;

10. 11. 12. 13. 14. 15. 16.

17.

Inteiro ALUNO; Inteiro AB*C; Inteiro CEP; Real #55; Real 0&0; Caractere dia/ms; Real x, y, z; Inteiro X1, X2, X3;

Declarando variveis
1. 2. 3. 4. 5. 6. 7.

8.
9.

Inteiro (X); Inteiro Km/h; Real P{0}; Inteiro U2; Real UYT; Lgico B52 Real AH!; Caractere Asdrubal; Caractere Rua;

10. 11. 12. 13. 14. 15. 16.

17.

Inteiro ALUNO; Inteiro AB*C; Inteiro CEP; Real #55; Real 0&0; Caractere dia/ms; Real x, y, z; Inteiro X1, X2, X3;

PSEUDOLINGUAGEM - CONSTANTES

Um dado que no sofre alterao no transcorrer do tempo

Seu valor no alterado desde o incio at o fim da execuo do algoritmo

PI

3,14...

CPF 302.453

COMANDO DE DECLARAO DE VARIVEIS/CONSTANTES

O comando de declarao cria uma varivel ou constante

Quando se declara/cria uma varivel feita uma reserva de uma rea da memria RAM, que ir receber o nome do identificador da varivel
Para se criar uma varivel necessrio dizer de qual tipo ela ser

COMANDO DE DECLARAO DE VARIVEIS/CONSTANTES

Em pseudocdigo uma varivel declarada, e portanto, criada, atravs da seguinte sintaxe: <tipo>: <nome_Da_Variavel> inteiro: <nome_Da_Variavel>; real: <nome_Da_Variavel>; caracter: <nome_Da_Variavel>; string: <nome_Da_Variavel>; logico: <nome_Da_Variavel>;

COMANDO DE DECLARAO DE VARIVEIS/CONSTANTES

Exemplos de declarao de variveis: inteiro: x1; real: a,b; caracter: letra; string: nome, frase; logico: tem;

x1
10 10,4 Ol

Tipo inteiro

COMANDO DE ATRIBUIO

Comando de atribuio o comando que indica o que a varivel vai receber em seu contedo em determinado momento Para colocar/atribuir um valor em uma varivel usado o comando de atribuio:

COMANDO DE ATRIBUIO

Sua sintaxe :
<nome_Da_Variavel> <Valor_Da_Variavel>;

real: soma; soma 10.6;

soma 10.6 cor Verde

string: cor; cor Verde;

EXPRESSES MATEMTICAS

Como podemos calcular expresses matemticas em pseudo-cdigo

( )>
Com o uso de: Variveis Operadores Parnteses Chamadas de mtodos

OPERADORES

Operadores so elementos que possibilitam a manipulao de dados Analisaremos os seguintes operadores: Aritmticos Relacionais Lgicos

OPERADORES UNRIOS E BINRIOS

Operadores podem ser:


Unrios trabalhando com um operando
(int) x NOT TEM

Binrios trabalhando com dois operandos


a+b

a/b
a >= b

OPERADORES ARITMTICOS

Operadores aritmticos so smbolos que representam as operaes bsicas da Matemtica


Operador + * / Operao Adio Subtrao Multiplicao Diviso Exemplos 2+3, X+Y 4-2, N-M 3*4, A*B 10/2, X1/X2

OPERADORES ARITMTICOS

Para representar as operaes de radiciao, potenciao e resto da diviso inteira usaremos as palavras rad, pot e mod
Operador rad(X) pot(X,Y) mod Operao Radiciao Potenciao Resto da diviso inteira Exemplos rad(9)= 9 pot(2,3)=23 9 mod 4 = 1

4 2

OPERADORES ARITMTICOS - PRIORIDADE

Prioridade 1 2 3 4

Operadores parnteses mais internos pot, rad *, /, mod +, -

OPERADORES ARITMTICOS - PRIORIDADE Prioridade Operadores

1
2 3 4

parnteses mais internos pot, rad *, /, mod +, -

Em caso de empate (operadores na mesma prioridade), devemos resolver da esquerda para a direita, conforme a seqncia na expresso

lgebra:

w y=pr mod q+ y x

Pseudo-cdigo:

y=p r mod q+w / x y


*
6 1 2 4 3 5

OPERADORES ARITMTICOS - PRIORIDADE Prioridade Operadores

1
2 3 4

parnteses mais internos pot, rad *, /, mod +, -

Para alterar a prioridade dos operadores, usamos parnteses. Eles tm precedncia sobre qualquer outro operador

lgebra:

y= abcd e/5

Pseudo-cdigo:

y= ( a+b+c+d+e ) / 5 ;

OPERADORES RELACIONAIS Operadores relacionais so utilizados para realizar comparaes entre dois valores do mesmo tipo primitivo

Operador Operao = Igual a > Maior que < Menor que >= Maior ou igual a <= Menor ou igual a <> Diferente a

Exemplos 3=3, X=X 5>4,X>Y 3<6,X<Y 5>=3, X>=Y 5<=3, X<=Y 8<>9,X<>Y

Operadores relacionais sempre retornam valores lgicos

OPERADORES RELACIONAIS - PRIORIDADE

Na resoluo de expresses relacionais, as operaes guardam uma hierarquia entre si


Prioridade 1 2 Operadores <, <=, >, >= =, <>

OPERADORES LGICOS - PROPOSIO

Proposio = enunciado declarativo, que pode assumir um valor verdade (Verdadeiro ou Falso) O Brasil signatrio do protocolo de Kioto Amsterd a capital da ustria Frases que podem expressar proposies: Sentenas declarativas afirmativas A Lua o nico satlite natural do planeta Terra proposio (V) Recife capital do Cear proposio (F)

OPERADORES LGICOS - PROPOSIO

Frases que NO expressam proposies Sentenas interrogativas Que horas so? Sentenas exclamativas Feliz Ano Novo! Parece que no sei Sentenas imperativas Pare! No falte aula

OPERADORES LGICOS CONECTIVOS

Proposies compostas: geradas a partir da combinao de vrias proposies, atravs do uso de conectivos lgicos Conectivos Lgicos: e: ou: No: ~

OPERADORES LGICOS CONECTIVOE

Exemplo: Se chover e relampejar, eu fico em casa Quando eu fico em casa? p: Est chovendo q: Est relampejando peq pq

OPERADORES LGICOS CONECTIVOOU

Exemplo: Se acabar caf ou acabar o acar, irei ao mercado Quando irei ao mercado? p: Acabou o caf q: Acabou o acar p ou q p q

OPERADORES LGICOS CONECTIVONO

Exemplo: p: O Sol uma estrela ~p: O Sol NO uma estrela (No verdade que o Sol uma estrela)

OPERADORES LGICOS PRIORIDADE

Na resoluo de expresses lgicas, as operaes guardam uma hierarquia entre si Prioridade Operadores 1 no 2 e 3 ou Em caso de empate (operadores na mesma prioridade), devemos resolver da esquerda para a direita, conforme a seqncia na expresso

p q r ~t s
4 2 1 3

OPERADORES PRIORIDADE Prioridade Operadores 1 parnteses internos 2 operadores aritmticos 3 operadores relacionais 4 operadores lgicos
pot(2,4) <> 4+2 2+3*5/3 mod 5 < 0 16 <> 6 2+15/3 mod 5 < 0 16 <> 6 2+5 mod 5 < 0 16 <> 6 2+0 < 0 16 <> 6 2 < 0 16 <> 6 2 < 0 V F V

COMANDOS DE ENTRADA

Comandos de entrada permitem que dados sejam inseridos no algoritmo. Sua sintaxe :

leia (<lista_de_identificadores>);
Exemplos:
Corresponde ao nome das variveis nas quais esto armazenados os valores de entrada

leia (a,b,nome); leia (nota,num); leia (rg);

COMANDOS DE SADA

Comandos de sada permitem que dados seja passados do algoritmo para outros dispositivos. Sua sintaxe :

escreva(<lista_de_identificadores>);
Exemplos:
Corresponde ao nome das variveis/constant es a serem enviadas a um dispositivo de sada

escreva (media,n1); escreva (soma);

BLOCO DE EXECUO

Bloco de execuo um conjunto de aes que possui uma funo bem definida O incio de um bloco marcado pela palavra incio O fim de um bloco marcado pela palavra fim

incio <declarao de variveis> <comandos> fim

BLOCO DE EXECUO

O prprio algoritmo um bloco de execuo. A sintaxe da definio do bloco de um algoritmo :

Algoritmo <NomeDoAlgoritmo> incio <declarao de variveis> <comandos> fimalgoritmo.

LEITURAS SUGERIDAS

http://www.inf.pucrs.br/~debora/aa/ftp/tvs.html (visitado em 05/02/2007)


http://pt.wikipedia.org/wiki/Silogismo 05/02/2007) (visitado em

FORBELLONE, A. L. V.; EBERSPACHER, H. F., Lgica de Programao A Construo de Algoritmos e Estruturas de Dados, Prentice Hall, 2005 http://java.sun.com/docs/books/tutorial/java/javaOO/met hods.html

Вам также может понравиться