29
1 Conceitos e Técnicas de Programação Profº Ms. Tarcísio Júnior Gestão de Tecnologia da Informação

Conceitos e técnicas de programação aula 1

Embed Size (px)

Citation preview

Page 1: Conceitos e técnicas de programação aula 1

1

Conceitos e Técnicas de Programação

Profº Ms. Tarcísio Júnior

Gestão de Tecnologia da Informação

Page 2: Conceitos e técnicas de programação aula 1

2

Raciocínio Lógico, todos tem, poucos usam !

Às vezes, basta você parar e raciocinar.

Logo perceberá que a resposta está com você o tempo todo.

um pouco de filosofia

Page 3: Conceitos e técnicas de programação aula 1

3

Lógica de programação

Conceitos e Técnicas de Programação

Page 4: Conceitos e técnicas de programação aula 1

4

Álgebra das proposiçõesA lógica está relacionada com o pensamento e é de grandeinteresse saber-se como é possível automatizar algumasmaneiras de pensar.

No século XIX, George Boole desenvolveu um sistema deálgebra (a álgebra das proposições), onde se poderiadeterminar se uma sentença é falsa ou verdadeira.

Em 1930, Alan Turing mostrou que com a álgebra de Booleapenas três funções lógicas são necessárias para o processode determinação do FALSO ou VERDADEIRO.

Estas funções são: E, OU, NÃO.

Page 5: Conceitos e técnicas de programação aula 1

5

Álgebra das proposições

Chama-se proposição qualquer afirmação verbal da qual sepossa dizer que é falsa ou verdadeira.

Assim, “choveu ontem à tarde” é uma proposição, pois podeser falsa ou verdadeira, mas, “onde é que você esteve?” nãoé uma proposição, pois não se pode dizer que é falsa ouverdadeira.

Page 6: Conceitos e técnicas de programação aula 1

6

Álgebra das proposiçõesDuas proposições podem ser combinadas pelo conectivo E para formar umaproposição chamada conjunção das proposições originais. A conjunção dasproposições p e q representa-se por:

A conjunção de duas proposições é verdadeira se e somente se ambas asproposições são verdadeiras.Sejam as seguintes proposições:

⋀ lê-se p e q

p: Paris está na França;q: Paris está na Inglaterra;r: 2 + 2 = 5;s: 2 + 2 = 4.

Qual será o valor lógico (falso, verdadeiro) das conjunções:a ⋀b ⋀c ⋀d ⋀

Page 7: Conceitos e técnicas de programação aula 1

7

Álgebra das proposiçõesonde:

Paris está na França (p) e 2 + 2 = 4 (s)

p: Paris está na França;q: Paris está na Inglaterra;r: 2 + 2 = 5;s: 2 + 2 = 4.

respondendo:a ⋀

b ⋀

c ⋀

d ⋀

[ verdade ]

Paris está na França (p) e 2 + 2 = 5 (r) [ falso ]

Paris está na Inglaterra (q) e 2 + 2 = 4 (s) [ falso ]

Paris está na Inglaterra (q) e 2 + 2 = 5 (r) [ falso ]

p q p Λ qV V VV F FF V FF F F

portanto:

Page 8: Conceitos e técnicas de programação aula 1

8

Álgebra das proposiçõesDuas proposições quaisquer podem ser combinadas pelo conectivo OU para formaruma nova proposição chamada disjunção das proposições originais. A disjunção deduas proposições p e q é designada por:

A disjunção de duas proposições é verdadeira se e somente se, pelo menos, umadelas for verdadeira.Usando as proposições do exemplo anterior:

lê-se p ou q

p: Paris está na França;q: Paris está na Inglaterra;r: 2 + 2 = 5;s: 2 + 2 = 4.

Qual será o valor lógico (falso, verdadeiro) das disjunções:a ⋁b ⋁c ⋁d ⋁

Page 9: Conceitos e técnicas de programação aula 1

9

Álgebra das proposiçõesonde:

Paris está na França (p) ou 2 + 2 = 4 (s)

p: Paris está na França;q: Paris está na Inglaterra;r: 2 + 2 = 5;s: 2 + 2 = 4.

respondendo:a ⋁

b ⋁

c ⋁

d ⋁

[ verdade ]

Paris está na França (p) ou 2 + 2 = 5 (r) [verdade ]

Paris está na Inglaterra (q) ou 2 + 2 = 4 (s) [verdade ]

Paris está na Inglaterra (q) ou 2 + 2 = 5 (r) [ falso ]

p q p ⋁ qV V VV F VF V VF F F

portanto:

Page 10: Conceitos e técnicas de programação aula 1

10

ExercícioUsando a convenção 1 para verdadeiro e 0 para falso, completar a tabela a seguir:

p q p ∧ ┐q p ⋁ ┐q1 11 00 10 0

Resposta:

p q p ∧ ┐q p ⋁ ┐q1 1 1 e 0 = 0 [V e F = F] 1 ou 0 = 1 [V e F = V]1 0 1 e 1 = 1 [V e V = V] 1 ou 1 = 1 [V e V = V]0 1 0 e 0 = 0 [F e F = F] 0 ou 0 = 0 [F e F = F]0 0 0 e 1 = 0 [F e V = F] 0 ou 1 = 1 [F e V = V]

Page 11: Conceitos e técnicas de programação aula 1

11

Algoritimizando a Lógica• Construir algoritmos é o objetivo fundamental de toda a

programação, mas afinal o que é algoritmo?

– Algoritmo é uma sequência de passos que visam atingirum objetivo bem definido.

– Algoritmo é a descrição de um conjunto de ações queobedecidas, resultam numa sucessão finita de passos,atingindo o objetivo.

– Descrição de um conjunto finito de instruções para asolução de um problema em um tempo finito.

Page 12: Conceitos e técnicas de programação aula 1

12

Conceito

Algoritmo é a descrição de um conjunto decomandos que, obedecidos, resultam numa sucessãofinita de ações (FARRE et al., 1999).

Uma simples ação como escovar os dentes pode serdescrita, de modo a formar o que chamamos deAlgoritmo.

Page 13: Conceitos e técnicas de programação aula 1

13

Conceito

Veja o exemplo de um algoritmo composto pelos passos necessários para escovaros dentes.

Escovar os Dentes:

INÍCIO ou INÍCIO DO ALGORITMO 1.Pegue a escova de dentes; 2.Pegue o creme dental com a outra mão; 3.Coloque creme dental na escova; 4.Coloque a escova na boca e escove os dentes e a língua; 5.Tire a escova da boca; 6.Lave a boca e a escova com água. FIM ou FIM DO ALGORITMO

Page 14: Conceitos e técnicas de programação aula 1

14

Algoritimizando a Lógica• Podemos pensar em algoritmo como uma receita, uma

sequência de instruções que dão cabo de uma metaespecífica.

• Estas tarefas não podem ser redundantes nemsubjetivas na sua definição, devem ser claras e precisas.

• Por quê isso?

Page 15: Conceitos e técnicas de programação aula 1

15

Algoritimizando a Lógica

• Pessoas tem inteligência e habilidade racional– fazem perguntas para se esclarecer.

• Computador não tem senso próprio– deve receber instruções explícitas (algoritmos)

Page 16: Conceitos e técnicas de programação aula 1

16

Algoritmo

Um algoritmo poderia ser grosseiramente comparado auma receita culinária:

– Uma receita é um programa de atividades que deve serrespeitada e cumprida passo-a-passo.

– Caso um dos passos seja desconsiderado, a receita nãodará certo.

Como preparar um bolo?Em um livro de receitas,encontramos processosemelhante à descrição seguintepara fazer um bolo.

Page 17: Conceitos e técnicas de programação aula 1

17

Algoritmo

Passos necessários para fazer um bolo de cenouras:

Ingredientes: - Massa:1/2 xícara (chá) de óleo; 3 cenouras médias raladas; 4 ovos; 2 xícaras (chá) de açúcar; 2 1/2 xícaras (chá) de farinha de trigo; 1 colher (sopa) de fermento em pó.

- Cobertura:1 colher (sopa) de manteiga; 3 colheres (sopa) de chocolate em pó; 1 xícara (chá) de açúcar.

Modo de preparo:1. Bata as cenouras no liquidificador, com os ovos

e o óleo. Então, acrescente o açúcar e bata pormais 5 minutos;

2. Em uma tigela ou batedeira, misture o restantedos ingredientes, exceto o fermento;

3. Misture o fermento lentamente, com umacolher;

4. Asse em forno pré-aquecido (180ºC) por 40minutos;

5. Para a cobertura, misture todos osingredientes, leve ao fogo e faça uma calda,que será adicionada à massa já assada.

Note que o modo de preparo é um conjunto de passos definidos que devem serseguidos rigorosamente em ordem e que se utilizam dos itens listados no conjunto deingredientes.É puramente um algoritmo! Em um programa de computador, o modo de preparocorresponde às instruções usadas para manipular os ingredientes, isto é, são osdados.

Page 18: Conceitos e técnicas de programação aula 1

18

Algoritmo

Um algoritmo não representa, necessariamente, um programa de computador, e sim os passos

necessários para realizar uma tarefa.

• Algoritmo não é a solução doproblema, pois, se assim fosse,cada problema teria um únicoalgoritmo.

• Algoritmo é um caminho para asolução de um problema.– Em geral, os caminhos que levam

a uma solução são muitos.

Page 19: Conceitos e técnicas de programação aula 1

19

Algoritmo Não Computacional

• Podemos criar algoritmos para tarefas do cotidiano.

Ex: Algoritmo não computacional cujo objetivo é usar umtelefone público.

Page 20: Conceitos e técnicas de programação aula 1

20

Algoritmo Não Computacional

Page 21: Conceitos e técnicas de programação aula 1

21

Algoritmo

• Outro exemplo: algoritmo para “somar 2 númerosquaisquer” usando a notação abaixo.– Escreva o primeiro número no retângulo A– Escreva o primeiro número no retângulo B– Some o número do retângulo A com número do

retângulo B e coloque o resultado no retângulo C

Page 22: Conceitos e técnicas de programação aula 1

22

Faça um algoritmo para somar dois números e multiplicaro resultado pelo primeiro número:Resolução:

• Receba o valor do numero 1

• Receba o valor do numero 2

• Some todos os itens

• Multiplique o resultado pelo valor do número 1

•Escreva o resultado

Exercício

Page 23: Conceitos e técnicas de programação aula 1

23

Por que usar algoritmos?

• Abstração - todo o esforço é concentrado na resoluçãodo problema e não em detalhes computacionais quepodem ser acrescentados posteriormente.

• Portabilidade - uma solução algorítmica pode sertraduzida para qualquer linguagem de programação.

Page 24: Conceitos e técnicas de programação aula 1

24

Programas

• Os programas de computadores nada mais sãodo que algoritmos escritos numa linguagem decomputador (Pascal, C, Cobol, Fortran, VisualBasic, Java, dentre outras) e que sãointerpretados e executados por um computador.

Page 25: Conceitos e técnicas de programação aula 1

25

Programas

• Aprender uma linguagem de programação semdominar a criação de algoritmos não faz sentido,seria o mesmo que ter um vocabulário vasto, masnão saber usar as palavras certas na hora certa.

• Sabendo algoritmo é relativamente fácil criar umprograma em qualquer linguagem, basta pesquisarqual comando realiza a ação desejada.

Page 26: Conceitos e técnicas de programação aula 1

26

Linguagem Estruturada

• É uma forma de programação de computadoresque preconiza que todos os programas possíveispodem ser reduzidos a apenas três estruturas:– Sequência– Decisão– Iteração

Iteração: diz-se do processo que se repete diversas vezes para sechegar a um resultado e a cada vez gera um resultado parcial que seráusado na vez seguinte.

Page 27: Conceitos e técnicas de programação aula 1

27

Linguagem Estruturada

• Características:– Sua principal característica é a utilização de blocos

para solução de um problema.– Permite a utilização combinada de sub-rotinas

compiladas separadamente, sem que pertençam aomesmo programa propriamente dito.

Page 28: Conceitos e técnicas de programação aula 1

28

Passos para elaboração de um programa

1. Compreender o problema;2. Esboçar um procedimento para resolver o problema;3. Formular o algoritmo;4. Traduzir o algoritmo para uma linguagem de

programação (codificação).

Page 29: Conceitos e técnicas de programação aula 1

29

só para descontrair