29
Algoritmos e Algoritmos e Programação Programação Thyago Maia Tavares de Thyago Maia Tavares de Farias Farias Aula 2 Aula 2

Algoritmos e programação - Aula 2

Embed Size (px)

DESCRIPTION

Slides referentes a 2ª aula da disciplina de Algoritmos e programação, realizada no dia 05/02/2011

Citation preview

Page 1: Algoritmos e programação - Aula 2

Algoritmos e Algoritmos e ProgramaçãoProgramação

Thyago Maia Tavares de Thyago Maia Tavares de FariasFarias

Aula 2Aula 2

Page 2: Algoritmos e programação - Aula 2

SumárioSumário

Por que criamos algoritmos?Por que criamos algoritmos? Representações de um algoritmoRepresentações de um algoritmo Regras básicas para Português Regras básicas para Português

EstruturadoEstruturado Linearização de expressõesLinearização de expressões ModularizaçãoModularização de expressões de expressões

Page 3: Algoritmos e programação - Aula 2

Por que criamos Por que criamos algoritmos? algoritmos?

Linguagem natural não pode ser interpretada Linguagem natural não pode ser interpretada por um computador;por um computador;

Computadores são projetados para executar Computadores são projetados para executar tarefas bem determinadas a partir de tarefas bem determinadas a partir de determinadas instruções;determinadas instruções;

Para desenvolver software, utilizamos Para desenvolver software, utilizamos linguagens de programação;linguagens de programação;

A linguagem algorítmica é similar a uma A linguagem algorítmica é similar a uma linguagem de programação;linguagem de programação;

Logo, aprendendo a criar algoritmos, estamos Logo, aprendendo a criar algoritmos, estamos aptos a programar em qualquer linguagem de aptos a programar em qualquer linguagem de programação;programação;

Page 4: Algoritmos e programação - Aula 2

Por que criamos Por que criamos algoritmos?algoritmos?

ALGORITMOCÓDIGO-FONTE EM

LINGUAGEM DEPROGRAMAÇÃO

ADAPTAÇÃO

LINGUAGEMNATURAL

INSTRUÇÕES

COMPILAÇÃO

LINGUAGEMDE MÁQUINA

TRADUÇÃO

01000101001....

PORTUGUÊS, INGLÊS...

ALTO NÍVEL

BAIXO NÍVEL

Page 5: Algoritmos e programação - Aula 2

Representações de um Representações de um AlgoritmoAlgoritmo

Descrição narrativa;Descrição narrativa;

FluxogramaFluxograma

Pseudocódigo, Pseudocódigo, Português Português Estruturado ou Estruturado ou Portugol;Portugol;

SUBJETIVIDADE

PRECISÃO

Page 6: Algoritmos e programação - Aula 2

Representações de um Representações de um AlgoritmoAlgoritmo

Descrição Narrativa:Descrição Narrativa:

Preferencialmente um verbo por frase;Preferencialmente um verbo por frase; Frases curtas e simples;Frases curtas e simples; Objetividade;Objetividade; Evitar palavras com sentido dúbio;Evitar palavras com sentido dúbio;

Page 7: Algoritmos e programação - Aula 2

ExemploExemplo

Descrição Narrativa:Descrição Narrativa:

Dobro de um número (Dobro = Número x Dobro de um número (Dobro = Número x 2):2):

Digitar um número;Digitar um número; Gravar em uma variável;Gravar em uma variável; Multiplicar o número digitado por 2;Multiplicar o número digitado por 2; Gravar o resultado em outra variável;Gravar o resultado em outra variável; Mostrar o resultado da operação.Mostrar o resultado da operação.

Page 8: Algoritmos e programação - Aula 2

Representações de um Representações de um algoritmoalgoritmo

FluxogramasFluxogramas

Descrevem o fluxo de Descrevem o fluxo de ação de um ação de um determinado trabalho determinado trabalho lógico, seja manual ou lógico, seja manual ou mecânico;mecânico;

Usa símbolos Usa símbolos convencionais, convencionais, permitindo poucas permitindo poucas variações;variações;

Representado por Representado por símbolos geométricos;símbolos geométricos;

Page 9: Algoritmos e programação - Aula 2

ExemploExemplo

Fluxograma para lidar com uma Fluxograma para lidar com uma lâmpada que não funcionalâmpada que não funciona

LÂMPADANÃO FUNCIONA

A LÂMPADAESTÁ PLUGADA

?

PLUGUEA LÂMPADA

NÃO

A LÂMPADAESTÁ QUEIMADA

?

SIM

TROQUEA LÂMPADA

SIMVERIFIQUEO BOCAL

NÃO

Page 10: Algoritmos e programação - Aula 2

Representações de um Representações de um algoritmoalgoritmo

Português estruturado (Portugol)Português estruturado (Portugol) Linguagem mais restrita que o Linguagem mais restrita que o

português em linguagem natural;português em linguagem natural; Simplificação extrema do português;Simplificação extrema do português; Significados bem definidos para todos os Significados bem definidos para todos os

termos utilizados nas instruções;termos utilizados nas instruções; Possui um conjunto de palavras e regras Possui um conjunto de palavras e regras

específicas (sintaxe da linguagem);específicas (sintaxe da linguagem); Representação utilizada no curso;Representação utilizada no curso;

Page 11: Algoritmos e programação - Aula 2

Representações de um Representações de um algoritmoalgoritmo

Português estruturado (Portugol)Português estruturado (Portugol) Normalmente as implementações são Normalmente as implementações são

feitas em papel, escritos a mão;feitas em papel, escritos a mão; Atualmente também são utilizados Atualmente também são utilizados

programas que interpretam, testam e programas que interpretam, testam e executam algoritmos;executam algoritmos;

Page 12: Algoritmos e programação - Aula 2

DesafioDesafio

Escreva um algoritmo que ajude o homem Escreva um algoritmo que ajude o homem do barco a levar o lobo, a ovelha e a caixa do barco a levar o lobo, a ovelha e a caixa de verduras para o outro lado do lago. de verduras para o outro lado do lago. Utilize a descrição narrativa para Utilize a descrição narrativa para representar o algoritmo. representar o algoritmo.

Lembrando que lobos comem ovelhas e Lembrando que lobos comem ovelhas e ovelhas comem as verduras da caixa ovelhas comem as verduras da caixa quando o homem está na outra margem!quando o homem está na outra margem!

Page 13: Algoritmos e programação - Aula 2

Resposta do desafioResposta do desafio1.1. Pega a ovelhaPega a ovelha2.2. Vai para a outra margemVai para a outra margem3.3. Deixa a ovelhaDeixa a ovelha4.4. Volta a margem inicialVolta a margem inicial5.5. Pega a caixa de verdurasPega a caixa de verduras6.6. Vai para a outra margemVai para a outra margem7.7. Deixa a caixa de verduras e pega a ovelhaDeixa a caixa de verduras e pega a ovelha8.8. Volta a margem inicialVolta a margem inicial9.9. Deixa a ovelha e pega o loboDeixa a ovelha e pega o lobo10.10. Vai para a outra margemVai para a outra margem11.11. Deixa o loboDeixa o lobo12.12. Volta a margem inicialVolta a margem inicial13.13. Pega a ovelhaPega a ovelha14.14. Vai para a outra margemVai para a outra margem15.15. Deixa a ovelhaDeixa a ovelha

Page 14: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Para contrução de algoritmos que realizam Para contrução de algoritmos que realizam cálculos matemáticos, TODAS expressões cálculos matemáticos, TODAS expressões aritméticas devem ser linearizadas;aritméticas devem ser linearizadas;

Linearizadas = Colocadas em linha;Linearizadas = Colocadas em linha;

Page 15: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Operadores aritméticos disponíveis Operadores aritméticos disponíveis para o português estruturado:para o português estruturado: Adição (+)Adição (+) Subtração (-)Subtração (-) Multiplicação (*)Multiplicação (*) Divisão (/)Divisão (/) Divisão inteira (\)Divisão inteira (\) Exponenciação (^ ou Exp)Exponenciação (^ ou Exp) Módulo, ou resto da divisão (%)Módulo, ou resto da divisão (%)

Page 16: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Operadores relacionaisOperadores relacionais

Realizam a comparação entre dois Realizam a comparação entre dois operandos ou duas expressões e operandos ou duas expressões e resultam em valores lógicos (verdadeiro resultam em valores lógicos (verdadeiro ou falso)ou falso) Ex.: 2+5 > 4 resultaria VERDADEIRO;Ex.: 2+5 > 4 resultaria VERDADEIRO; Ex.: 2 = 7 resultaria FALSO;Ex.: 2 = 7 resultaria FALSO;

Page 17: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Operadores relacionais disponíveis Operadores relacionais disponíveis no Português estruturado:no Português estruturado: Maior (>)Maior (>) Menor (<)Menor (<) Maior ou igual (>=)Maior ou igual (>=) Menor ou igual (<=)Menor ou igual (<=) Igual (=)Igual (=) Diferente (<>)Diferente (<>)

Page 18: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Operadores lógicosOperadores lógicos Atuam em expressões, também Atuam em expressões, também

resultando em valores lógicos resultando em valores lógicos VERDADEIRO ou FALSO;VERDADEIRO ou FALSO;

Tipos de operadores:Tipos de operadores: E: Resulta verdadeiro se AMBAS AS PARTES E: Resulta verdadeiro se AMBAS AS PARTES

forem verdadeiras;forem verdadeiras; OU: Resulta verdadeiro se UMA DAS PARTES OU: Resulta verdadeiro se UMA DAS PARTES

é verdadeira;é verdadeira; NÃO: Nega uma afirmação. Se verdadeiro, NÃO: Nega uma afirmação. Se verdadeiro,

torna-se falso; Se falso, torna-se verdadeiro; torna-se falso; Se falso, torna-se verdadeiro;

Page 19: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Exemplos:Exemplos: (2+5 > 4) e (3 <> 3) resulta FALSO(2+5 > 4) e (3 <> 3) resulta FALSO

Pois VERDADEIRO e FALSO resulta FALSO;Pois VERDADEIRO e FALSO resulta FALSO; (2=2) ou (3<1) resulta VERDADEIRO(2=2) ou (3<1) resulta VERDADEIRO

Pois VERDADEIRO ou FALSO resulta Pois VERDADEIRO ou FALSO resulta VERDADEIRO;VERDADEIRO;

NAO (3<1) resulta VERDADEIRONAO (3<1) resulta VERDADEIRO Pois FALSO resulta VERDADEIRO devido a Pois FALSO resulta VERDADEIRO devido a

inversão de valores definido por NÃO; inversão de valores definido por NÃO;

Page 20: Algoritmos e programação - Aula 2

Linearização de Linearização de expressõesexpressões

Tabelas-VerdadeTabelas-Verdade Mostra os resultados das aplicações dos Mostra os resultados das aplicações dos

operadores lógicos conforme os valores dos operadores lógicos conforme os valores dos operandos envolvidos:operandos envolvidos:

AA BB A E BA E B A OU A OU BB

NAO NAO AA

NÃO NÃO BB

VV VV VV VV FF FF

VV FF FF VV FF VV

FF VV FF VV VV FF

FF FF FF FF VV VV

Page 21: Algoritmos e programação - Aula 2

Modularização de Modularização de expressõesexpressões

É a divisão de uma expressão por partes;É a divisão de uma expressão por partes; Proporciona maior compreensão;Proporciona maior compreensão; Define prioridades na resolução das Define prioridades na resolução das

mesmas;mesmas; Modularizamos expressões através dos Modularizamos expressões através dos

parênteses ( );parênteses ( ); Podemos utilizar parênteses dentro de Podemos utilizar parênteses dentro de

parênteses (( ));parênteses (( )); Indicam quais sub-expressões serão Indicam quais sub-expressões serão

executados primeiro; executados primeiro;

Page 22: Algoritmos e programação - Aula 2

Modularização de Modularização de expressõesexpressões

Exemplo:Exemplo: (2+2)/2 resulta 2;(2+2)/2 resulta 2; Mas 2+2/2 resulta 3;Mas 2+2/2 resulta 3;

Ordem de prioridade dos operadores Ordem de prioridade dos operadores aritméticos:aritméticos:

1.1. ExponenciaçãoExponenciação2.2. MultiplicaçãoMultiplicação3.3. DivisãoDivisão4.4. AdiçãoAdição5.5. SubtraçãoSubtração

Page 23: Algoritmos e programação - Aula 2

Modularização de Modularização de expressõesexpressões

Ordem de prioridade dos operadores Ordem de prioridade dos operadores lógicos:lógicos:

1.1. EE

2.2. OUOU

3.3. NÃONÃO

Exemplo:Exemplo: (2>3) ou (3<2) e (2<3) resultaria FALSO(2>3) ou (3<2) e (2<3) resultaria FALSO (2>3) e (3<2) ou (2<3) resultaria (2>3) e (3<2) ou (2<3) resultaria

VERDADEIROVERDADEIRO

Page 24: Algoritmos e programação - Aula 2

Modularização de Modularização de ExpressõesExpressões

Ordem de prioridade dos Ordem de prioridade dos operadores disponíveis no operadores disponíveis no Português estruturado:Português estruturado:

1.1. Operadores aritméticosOperadores aritméticos

2.2. Operadores relacionaisOperadores relacionais

3.3. Operadores lógicosOperadores lógicos

Page 25: Algoritmos e programação - Aula 2

ExercíciosExercícios Escreva as expressões abaixo na forma linearizada:Escreva as expressões abaixo na forma linearizada:

Page 26: Algoritmos e programação - Aula 2

RespostasRespostas

1ª expressão: a + b/c1ª expressão: a + b/c

2ª expressão: ((2/3 – (5-3)) + 1) * 52ª expressão: ((2/3 – (5-3)) + 1) * 5

Page 27: Algoritmos e programação - Aula 2

ExercíciosExercícios

Escreva as seguintes expressões Escreva as seguintes expressões linearizadas na forma matemática linearizadas na forma matemática convencional:convencional:

4 + (5/3) * 8 – 4/2 – 54 + (5/3) * 8 – 4/2 – 5 8/4 – 2 + (5 + 4) / (3 – 1)8/4 – 2 + (5 + 4) / (3 – 1)

Page 28: Algoritmos e programação - Aula 2

ExercíciosExercícios

Resolva as expressões lógicas, Resolva as expressões lógicas, determinando se a expressão é determinando se a expressão é VERDADEIRA ou FALSA:VERDADEIRA ou FALSA:

2 > 32 > 3 (6 < 8) OU (3 > 7)(6 < 8) OU (3 > 7) NÃO (2 < 3)NÃO (2 < 3) (2=2) E (1 > 10) OU (5<4)(2=2) E (1 > 10) OU (5<4)

Page 29: Algoritmos e programação - Aula 2

RespostasRespostas

Resolva as expressões lógicas, Resolva as expressões lógicas, determinando se a expressão é determinando se a expressão é VERDADEIRA ou FALSA:VERDADEIRA ou FALSA:

2 > 3 = FALSO2 > 3 = FALSO (6 < 8) OU (3 > 7) = VERDADEIRO(6 < 8) OU (3 > 7) = VERDADEIRO NÃO (2 < 3) = FALSONÃO (2 < 3) = FALSO (2=2) E (1 > 10) OU (5<4) = FALSO(2=2) E (1 > 10) OU (5<4) = FALSO