• Nenhum resultado encontrado

aula2-IntroducaoAlgoritmoItana

N/A
N/A
Protected

Academic year: 2021

Share "aula2-IntroducaoAlgoritmoItana"

Copied!
63
0
0

Texto

(1)

Processamento da Informação

Processamento da Informação

Introdução a Algoritmos

Introdução a Algoritmos

(2)

SUMÁRIO

Lógica;

Lógica de Programação;

Algoritmo;

Pseudolinguagem;

Comandos;

Leituras Sugeridas;

(3)

Algoritmo: Uma seqüência finita de instruções,

ordenada de forma lógica para a resolução de uma determinada tarefa ou problema

Um algoritmo fixa um padrão de comportamento a ser seguido, uma norma de execução, com o objetivo

de resolver um determinado problema

(4)

No dia-a-dia, entendemos a palavra lógica como: Algo que é coerente, óbvio, correto

Lógica  Logos + Ica

Razão Ciência

Estuda o raciocínio/pensamento humano;Estudo de argumentos.

Argumento é uma seqüência de enunciados, na qual um dos

enunciados é a conclusão, derivado a partir dos outros enunciados premissas.

(5)

Todos os peixes vivem na água. (premissa1) Golfinhos são peixes. (premissa 2)

.·. Golfinhos vivem na água. (conclusão)

Todos os peixes vivem na água. (premissa1) Golfinhos são peixes. (premissa 2)

.·. Golfinhos vivem na água. (conclusão)

Tanto a forma de argumento quando a conclusão são verdadeiras, apesar de esta última ter sido deduzida a partir de uma premissa falsa ("golfinhos são peixes").

Todas as baleias são mamíferos. (premissa 1) Alguns animais são baleias. (premissa 2)

Logo, alguns animais são mamíferos. (conclusão)

Raciocínio certo, baseado em premissas corretas SILOGISMO - ARISTÓTELES

(6)

 Lógica de programação está relacionada ao raciocínio que precisamos desenvolver para resolver um problema cuja solução deverá ser implementada em um computador.

Encadear pensamentos para atingir determinado objetivo.

Como pensar como programadores??

(7)

A habilidade mais importante para um cientista da computação é a solução de problemas;

 A solução de problemas é a habilidade de formular questões, pensar criativamente sobre soluções possíveis e expressar uma solução de forma clara e precisa;

 E aprender a programar é uma excelente oportunidade de praticar as habilidades da solução de problemas.

(8)

Exemplos de problemas:

 Diagnosticar a doença de um paciente que descreva os seus sintomas, e medicá-lo

Criar um sistema de informação que permita gerir as entradas/saídas (cargas/descargas) de navios em um porto marítimo

Desenvolver um programa para controle da movimentação de um robô

(9)

Um algoritmo é uma forma de representar a

solução de um problema através de uma seqüência de passos

Um algoritmo é uma forma de representar a solução de um problema através de uma

seqüência de passos

 São exemplos de algoritmos:  Receitas de bolos

Manuais técnicos

Guias de montagem

 Programas de computadores

(10)

Ingredientes:

5 ovos

250 gramas de margarina cremosa 2 xícaras (chá) de açúcar

1 xícara (chá) de farinha de trigo1 xícara (chá) de chocolate

200 gramas de côco ralado 1 copo de leite

1 colher (sopa) de fermento

(11)

Modo de Preparo:

Bata a margarina, as gemas e o açúcar até ficar

cremoso

Junte o leite, o côco 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

(12)
(13)

Escreva um algoritmo para realizar a troca de uma lâmpada

Pegar uma escada

Posicionar a escada embaixo da lâmpada

Buscar uma lâmpada novaSubir na escada

Retirar a lâmpada velhaColocar a lâmpada nova

(14)

E se a lâmpada não estiver queimada?

1. Acionar o interruptor

2. Se a lâmpada não acender, então Pegar uma escada

Posicionar a escada embaixo da

lâmpada

Buscar uma lâmpada novaSubir na escada

Retirar a lâmpada queimadaColocar a lâmpada nova

(15)

Pode haver vários algoritmos para resolver um mesmo problema

 Afinal, cada pessoa pensa e age de forma diferente

O desenvolvimento de algoritmos é

um exercício de

Criatividade

(16)

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

Entretanto, deve-se procurar desenvolver algoritmos que resolvam o

problema com menos

esforço e maior objetividade

(17)

Instrução/Comando: São frases que indicam as ações a serem executadas. São compostas de um verbo no imperativo, ou no infinitivo, mais um complemento.

Por exemplo:

Bata (Bater) duas claras em neve Ligue (Ligar) os faróis

Some (Somar) dois números

Imprima (Imprimir) resultado da soma

(18)

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 solução (saída de dados)

Determinar o que deve ser feito para

transformar as entradas nas saídas desejadas

(processamento)

(19)

O que preciso? (Entrada) Como chegar ao que quero (Processa-mento) O que quero? (Saída)

(20)

Escreva um algoritmo para somar dois números quaisquer

1. Leia o número X 2. Leia o número Y 3. Some X e Y

4. Mostre o resultado da soma

ALGORITMO – EXERCÍCIO

Entrada

Processamento

Saída

Número X

Número Y Somar X e Y

Resultado da soma

(21)

Um lobo, uma cabra e uma couve têm 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 não coma a couve e o lobo não coma a cabra?

(22)

Eram dois homens que iam por um caminho. Um levava 8 litros de vinho em um garrafão e o outro levava 8 litros de vinho em dois garrafões, um com cinco litros e um com três. Beberam o vinho do garrafão 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 próprios garrafões: um de 8 litros, um de 5 e um de 3. Como fazer?

(23)

Formalizar a

escrita de

algoritmos

Escrita na forma de

pseudocódigo

Problema Pseudo linguagem se... então... senão... Linguagem de progra-mação Java, C, Pascal, etc Linguagem de máqui-na Zeros e uns... PSEUDOLINGUAGEM

(24)

Quando da definição de

uma linguagem,

precisamos definir:

Sua sintaxe: como

escrever os comandos e seus componentes (tipos, variáveis, etc)  Sua semântica: o significado de cada comando e conceito  Inicialmente veremos:  Tipos  Constantes e Variáveis  Comando de declaração  Comando de atribuição  Comandos de entrada e de saída  Bloco de execução seqüencial PSEUDOLINGUAGEM

(25)

Na Matemática: As informações são classificadas em conjuntos. Por exemplo:

N = {0, 1, 2, 3, ...}

 R = {..., -1000, ..., -0,7. ..., 6, .... 400, ....}

Na Computação: As informações são geralmente agrupadas nos seguintes tipos:

 Inteiro  Real Caracter  String  Lógico PSEUDOLINGUAGEM

(26)

 Inteiro: Toda e qualquer informação numérica que pertence ao conjunto dos números inteiros (Z)

 Pode assumir os valores nulo, positivo ou negativo

Exemplos: 15, 0, 20, 4434

Real: Toda e qualquer informação numérica que pertence ao conjunto dos números reais (R)

Exemplos: -234.4, 45, 98, 45

PSEUDOLINGUAGEM

(27)

 Caracter: Toda e qualquer informação composta por um único caracter numérico (0,1,..,9), alfanumérico (A,B,..,Z,a,b,..,z) ou especial (@,#,!,...)

Exemplos: ‘D’, ‘@’, ‘1’

String: Toda e qualquer informação composta por um conjunto de caracteres numéricos (0,1,..,9), alfanuméricos (A,B,..,Z,a,b,..,z) ou especiais (@,#,!,...)

 Exemplos: “Não pise na grama”, “José da Silva”

PSEUDOLINGUAGEM

(28)

Lógico: Toda e qualquer informação que pode assumir apenas os valores: verdadeiro (1) ou falso (0)

Exemplos: true, false

PSEUDOLINGUAGEM

(29)

Em programas computacionais precisamos armazenar informações para utilizarmos durante a execução do programa Armário  Memória do computador 3000:B712 2000:12EC PSEUDOLINGUAGEM - VARIÁVEIS

(30)

As linguagens de programação permitem que os usuário atribuam nomes para as posições de memória da máquina Armário  Memória do computador nome idade nacionalidade profissao PSEUDOLINGUAGEM - VARIÁVEIS

(31)

Uma variável é um endereço da memória de acesso randômico (RAM), representada por um nome (rótulo), criado pelo usuário, cujo conteúdo pode se alterar no decorrer do programa

nome

Uma variável é composta por dois elementos:

Identificador: nome dado pelo programador à variável

 Conteúdo: valor atual da variável

(32)

nome idade nacionalidade profissao Maria Carla nome Identificador 17 idade Identificador brasileira nacionalidade Identificador estudante profissao

Identificador apenas UM valor por vez Uma variável assume

(33)

O primeiro caracter deve ser uma letra

Pode ser seguido de mais caracteres alfabéticos ou

numéricos

Não devem ser usados caracteres especiais (#,@,

%,?)

Não pode haver espaços em branco entre os

caracteres

 Os nomes dos identificadores não podem ser os

mesmos das palavras reservadas da linguagem de programação

 Os nomes escolhidos devem ser explicativos do seu

conteúdo

(34)

Exemplos de identificadores válidos: alpha, notas, FGTS, K7

Exemplos de identificadores inválidos: 6X, E(13), a:B, awq&

(35)

Um dado que não sofre alteração no

transcorrer do tempo nAval

PI

3,14...

302.453

CPF

Seu valor não é alterado

desde o início até o fim da

execução do algoritmo

(36)

 O comando de declaração cria uma variável ou constante

Quando se declara/cria uma variável é feita uma reserva de uma área da memória RAM, que irá receber o nome do identificador da variável

 Para se criar uma variável é necessário dizer de qual tipo ela será

(37)

 Em pseudocódigo uma variável é declarada, e portanto, criada, através 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>;

(38)

Exemplos de declaração de variáveis: inteiro: x1;

real: a,b;

caracter: letra;

string: nome, frase; logico: tem; 10 10,4 “Olá”

x1

Tipo inteiro

(39)

Comando de atribuição é o comando que indica o que a variável vai receber em seu conteúdo em determinado momento

 Para colocar/atribuir um valor em uma variável é usado o comando de atribuição:

(40)

<nome_Da_Variavel>  <Valor_Da_Variavel>; Sua sintaxe é: 10.6 soma Verde cor real: soma; soma  10.6; string: cor; cor  “Verde”; COMANDO DE ATRIBUIÇÃO

(41)

Como podemos calcular expressões matemáticas em

pseudo-código

Com o uso de: Variáveis Operadores  Parênteses  Chamadas de métodos EXPRESSÕES MATEMÁTICAS

+

( ) >

(42)

Operadores são elementos que possibilitam a manipulação de dados

Analisaremos os seguintes operadores:  Aritméticos

Relacionais Lógicos

(43)

Operadores podem ser:

Unários trabalhando com um operando (int) x Binários

trabalhando com dois operandos

a + b a / b a >= b NOT TEM

(44)

Operadores aritméticos são símbolos que

representam as operações básicas da

Matemática

/ * -+ Operador 3*4, A*B Multiplicação 4-2, N-M Subtração 10/2, X1/X2 Divisão 2+3, X+Y Adição Exemplos Operação OPERADORES ARITMÉTICOS

(45)

Para representar as operações de radiciação, potenciação e resto da divisão inteira usaremos as palavras rad, pot e mod

pot(2,3)=23 Potenciação pot(X,Y) mod rad(X) Operador 9 mod 4 = 1 Resto da divisão inteira

rad(9)= Radiciação Exemplos Operação 9 9 4 2

1

OPERADORES ARITMÉTICOS

(46)

*, /, mod 3ª pot, rad 2ª 4ª 1ª Prioridade +,

-parênteses mais internos Operadores

(47)

*, /, mod 3ª pot, rad 2ª 4ª 1ª Prioridade +, -parênteses mais internos Operadores

Álgebra:

y=pr mod q+

w

x

y

y=p∗r mod q+w / x − y

2 1 4 3 5 6 Pseudo-código: Em caso de empate (operadores na mesma

prioridade), devemos resolver da esquerda para a direita,

conforme a seqüência na expressão

OPERADORES ARITMÉTICOS - PRIORIDADE

(48)

Álgebra:

y

=

a

b

c

d

e

/

5

Pseudo-código:

y=  a+b+c+d+e/ 5 ;

*, /, mod 3ª pot, rad 2ª 4ª 1ª Prioridade +, -parênteses mais internos

Operadores Para alterar a prioridade

dos operadores, usamos parênteses. Eles têm

precedência sobre qualquer outro operador

OPERADORES ARITMÉTICOS - PRIORIDADE

(49)

Operadores relacionais são utilizados para realizar comparações entre dois valores do mesmo tipo primitivo

5>=3, X>=Y Maior ou igual a >= 5<=3, X<=Y Menor ou igual a <= <> < > = Operador 3<6,X<Y Menor que 5>4,X>Y Maior que 8<>9,X<>Y Diferente a 3=3, X=X Igual a Exemplos Operação

Operadores relacionais sempre

retornam valores lógicos

(50)

Na resolução de expressões relacionais, as

operações guardam uma hierarquia entre si

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

(51)

Proposição = enunciado declarativo, que pode assumir um valor verdade (Verdadeiro ou Falso)

 O Brasil é signatário do protocolo de Kioto  Amsterdã é a capital da Áustria

Frases que podem expressar proposições: – Sentenças declarativas afirmativas

 A Lua é o único satélite natural do planeta Terra

Recife é capital do Ceará

proposição (V)

proposição (F)

(52)

Frases que NÃO expressam proposições – Sentenças interrogativas

 Que horas são?

Sentenças exclamativas Feliz Ano Novo!

Parece que não sei – Sentenças imperativas

 Pare!

 Não falte à aula

(53)

Proposições compostas: geradas a partir da combinação de várias proposições, através do uso de conectivos lógicos

 Conectivos Lógicos:  e: ٨

 ou:٧  Não: ~

(54)

Exemplo: Se chover e relampejar, eu fico em casa  Quando eu fico em casa?

p: Está chovendo

q: Está relampejando  p e q  p  q

(55)

Exemplo: Se acabar café ou acabar o açúcar, irei ao mercado

 Quando irei ao mercado?  p: Acabou o café

q: Acabou o açúcar  p ou q  p  q

(56)

Exemplo:

 p: O Sol é uma estrela

~p: O Sol NÃO é uma estrela (Não é verdade que o Sol é uma estrela)

(57)

Na resolução de expressões lógicas, as operações guardam uma hierarquia entre si

e 2ª 3ª 1ª Prioridade não ou

Operadores Em caso de empate (operadores na mesma prioridade), devemos resolver da esquerda para a direita, conforme a seqüência na expressão p  q  r ~t  s 1 2 3 4

(58)

operadores relacionais 3ª operadores aritméticos 2ª 4ª 1ª Prioridade parênteses internos operadores lógicos Operadores pot(2,4) <> 4+2  2+3*5/3 mod 5 < 0 OPERADORES – PRIORIDADE 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

(59)

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

leia (<lista_de_identificadores>);

leia (a,b,nome);

leia (nota,num);

leia (rg);

Exemplos: Corresponde ao nome das

variáveis nas quais estão

armazenados os valores de entrada

(60)

Comandos de saída permitem que dados seja passados do algoritmo para outros dispositivos. Sua sintaxe é:

escreva(<lista_de_identificadores>);

escreva (media,n1);

escreva (soma);

Exemplos: Corresponde ao nome das

variáveis/constant es a serem enviadas a um dispositivo de saída COMANDOS DE SAÍDA

(61)

 Bloco de execução é um conjunto de ações que possui uma função bem definida

O início de um bloco é marcado pela palavra

início

O fim de um bloco é marcado pela palavra fim início

<declaração de variáveis> <comandos>

fim

(62)

O próprio algoritmo é um bloco de execução. A sintaxe da definição do bloco de um algoritmo é:

Algoritmo <NomeDoAlgoritmo>

início

<declaração de variáveis>

<comandos>

fimalgoritmo.

BLOCO DE EXECUÇÃO

(63)

LEITURAS SUGERIDAS

http://www.inf.pucrs.br/~debora/aa/ftp/tvs.html (visitado

em 05/02/2007)

http://pt.wikipedia.org/wiki/Silogismo (visitado em

05/02/2007)

FORBELLONE, A. L. V.; EBERSPACHER, H. F., Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados, Prentice Hall, 2005

http://java.sun.com/docs/books/tutorial/java/javaOO/met hods.html

Referências

Documentos relacionados

LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré SF 02-16B 2004 LVT APFCAN-Associação de Produtores Florestais dos Concelhos de Alcobaça e Nazaré

O PCA, Joaquim Ventura, acompanhado de membros do Conselho de Administra- ção, realizou, nos dias 4 e 5 de Junho de 2020, visitas aos aproveitamentos hidro- eléctricos de

a alma está usando esse manto vermelho quando sai, em meio à noite escura, de si mesma e de todas as coisas criadas com ânsias, em amores inflamada e sobe por esta secreta escada

fixado para o efeito, a SPMS notifica o cocontratante para, num prazo não superior a 5 dias, emitir o relatório em falta ou corrigir a informação no relatório enviado. Os

Graças ao apoio do diretor da Faculdade, da Rede de Museus e em especial da Pro Reitoria de Extensão, o CEMEMOR tem ampliado e mantido suas atividades junto

Os alunos que concluam com aproveitamento este curso, ficam habilitados com o 9.º ano de escolaridade e certificação profissional, podem prosseguir estudos em cursos vocacionais

De acordo com estes resultados, e dada a reduzida explicitação, e exploração, das relações que se estabelecem entre a ciência, a tecnologia, a sociedade e o ambiente, conclui-se

Como indica a tabela com as porcentagens das realizações das vibran- tes nas palavras analisadas (fi gura 1), há variação na produção de r-forte, mesmo no estilo monitorado como