CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1...

75
CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Transcript of CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1...

Page 1: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

CURSO BÁSICO DE

PROGRAMAÇÃO –

AULA 1 Introdução a Sistemas de Computação

Noções de Lógica

Introdução à Lógica de Programação

Page 2: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Componentes de um Sistema de

Computação - Hardware

•Parte física de um sistema de Computação

•Corresponde a todos os elementos materiais que

constituem o computador e seus periféricos

•Seus componentes básicos são:

• Dispositivos de entrada e saída

• Memórias

• Unidade Central de Processamento (UCP)

Page 3: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Componentes de um Sistema de

Computação - Software •Conjunto de instruções escrito em linguagem de máquina que instrui o computador como realizar suas tarefas.

•Pode ser dividido em dois grandes grupos:

Software Básico: programas que tem a função de operar e manter um sistema de computação (Ex: Sistemas operacionais, compiladores, interpretadores, utilitários, etc.).

Software Aplicativo: Programas especializados que realizam tarefas específicas (Ex. processadores de texto, planilhas eletrônicas, programas de controle de estoque, etc.).

Page 4: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Sistema Operacional

• Exemplos

• Windows

• Macintosh OSX

• Linux

• Android

Page 5: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Programação

• O que é?

• É o processo de escrita, teste e manutenção de um programa de

computador. Linguagens de programação são usadas para a

escrita de programas.

• O que é um programa?

• Um programa é, um conjunto de instruções que descreve uma

tarefa no qual o computador a executa.

• Como funciona?

• A programação é feita através de linguagens de programação, que

seguem alguns paradigmas na criação de um algoritmo. Este

algoritmo é traduzido para uma linguagem que o computador pode

entender para então ser executado.

Page 6: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Linguagens de Programação

• Linguagem de programação de alto nível: Conjunto de

instruções em linguagem semelhante à humana, na qual

podemos descrever procedimentos de forma mais amigável. A

tradução é feita por compiladores e interpretadores

• •Linguagem de Montagem: Conjunto de instruções simples,

equivalentes aos das linguagens de máquina, porém são

expressas na forma de termos mnemônicos para facilitar a

programação. A tradução é feita por montadores.

• •Linguagem de máquina: Conjunto de instruções simples em

formato binário que podem ser executadas diretamente pelo

hardware a partir do Sistema Operacional.

Page 7: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Paradigmas de Programação

• Regras que um programador precisa basear-se

no momento da montagem de uma estrutura de

um programa;

• Declarativa - TSQL;

• Procedural - C;

• Orientada a Objetos - Java;

• Linguagens de Programação Funcional -

LISP;

• Linguagens de Programação Lógica -

PROLOG;

Page 8: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Exemplo – C

int main (int argc, char** argv)

{

printf(“Hello World!\n”);

return (0);

}

Page 9: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Compiladores e Interpretadores

• O que são? • Compiladores e Interpretadores são programas de computador que

traduzem um código de uma linguagem de programação a outra,

normalmente para linguagem de montagem ou de máquina.

• Quais são as diferenças? • Um compilador traduz e cria outro código, que pode ser executado

posteriormente sem a necessidade do código fonte do software.

• Um interpretador faz a tradução do código em tempo real, onde para a

execução do programa, é necessário o código fonte original.

• Quando usar. • O uso de um interpretador ou compilador depende da linguagem de

programação escolhida. Algumas são compiladas, e outras interpretadas,

ou ainda são compiladas para um código intermediário para então serem

interpretadas.

Page 10: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Lógica pode ser considerada “o estudo dos processos

válidos que atingem a verdade”.

• O aprendizado da Lógica auxilia os estudantes no

raciocínio, na compreensão de conceitos básicos, na

verificação formal de programas e melhor os prepara

para o entendimento do conteúdo de tópicos mais

avançados.

• A Lógica matemática basicamente visa verificar a

validade de argumentos a partir de determinadas

premissas.

Page 11: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Premissa: “Todo homem é mortal.”

• Premissa: “Maxwell é homem.”

• Conclusão: “Logo, Maxwell é mortal.”

• Uma premissa é uma fórmula considerada

verdadeira. A partir dela, se chega a conclusões.

Page 12: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Proposição: sentenças declarativas afirmativas

nas quais se pode afirmar se são verdadeiras ou

falsas.

“Hoje é sábado.”

“A neve é vermelha.”

• A partir de um conjunto de proposições, é

possível estabelecer uma sentença lógica.

Page 13: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Para representar uma proposição, usam-se

variáveis proposicionais.

• “Hoje é sábado”: p.

• “A neve é vermelha”: q.

• Para conectar as variáveis proposicionais,

utilizam-se conectores lógicos.

Page 14: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

Hoje é sábado E amanhã é domingo.

Page 15: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

Hoje é sábado E amanhã é domingo.

CONECTOR LÓGICO!

Page 16: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

Vou comer pão OU vou comer pizza.

Page 17: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

Vou comer pão OU vou comer pizza.

CONECTOR LÓGICO!

Page 18: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Conectores lógicos estabelecem relação

entre proposições. Assim, possibilitam criar

novas sentenças.

Vou pra aula OU vou ficar dormindo

Page 19: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Conectores lógicos estabelecem relação

entre proposições. Assim, possibilitam criar

novas sentenças.

Vou pra aula OU vou ficar dormindo

proposição1 proposição 2

Page 20: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Conectores lógicos estabelecem relação

entre proposições. Assim, possibilitam criar

novas sentenças.

Vou pra aula OU vou ficar dormindo

proposição1 proposição 2

proposição3

Page 21: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Simbolicamente, os conectores lógicos são

representados da seguinte forma:

^ (E)

v (OU)

¬ (NÃO)

→ (CONDICIONAL SE...ENTÃO)

Page 22: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• As sentenças lógicas podem ser representadas

em tabelas, chamadas de tabelas-verdade.

Proposição1 Proposição2 Sentença

V V V

V F V

F V V

F F F

Page 23: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Cada conector tem uma tabela-verdade

correspondente.

Conector E Conector OU

P Q P ^ Q

V V V

V F F

F V F

F F F

P Q P v Q

V V V

V F V

F V V

F F F

Page 24: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• Cada conector tem uma tabela-verdade

correspondente.

Conector SE Conector NÃO

P Q P → Q

V V V

V F F

F V V

F F V

P ¬P

V F

F V

Page 25: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Pelé é brasileiro” : p

• “Buenos Aires é a capital da Argentina” : q

“Se Pelé é brasileiro, então Buenos Aires é a

capital da Argentina.”

Page 26: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Pelé é brasileiro” : p

• “Buenos Aires é a capital da Argentina” : q

“Se Pelé é brasileiro, então Buenos Aires é a

capital da França.”

Page 27: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Pelé é brasileiro” : p

• “Buenos Aires é a capital da Argentina” : q

“Se Pelé é russo, então Buenos Aires é a capital

da Argentina.”

Page 28: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Pelé é brasileiro” : p

• “Buenos Aires é a capital da Argentina” : q

“Se Pelé é alemão, então Brasília é a capital da

Argentina.”

Page 29: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Windows é um sistema operacional” : p

• “Linux é um editor de textos” : q

• “O teclado é um componente de hardware” : r

“Se Linux é um sistema operacional e Windows é

um componente de hardware, então o teclado é

um editor de textos.”

Page 30: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica

• “Windows é um sistema operacional” : p

• “Linux é um editor de textos” : q

• “O teclado é um componente de hardware” : r

“Se o teclado é um componente de hardware,

então Linux é um sistema operacional ou Windows

é uma marca de computador.”

Page 31: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ((P^Q) v ¬P) → Q

V V

V F

F V

F F

Page 32: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ((P^Q) v ¬P) → Q

V V V

V F

F V

F F

Page 33: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ((P^Q) v ¬P) → Q

V V V

V F V

F V

F F

Page 34: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ((P^Q) v ¬P) → Q

V V V

V F V

F V V

F F

Page 35: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ((P^Q) v ¬P) → Q

V V V

V F V

F V V

F F F

Page 36: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q ¬(((P v Q) ^ ¬P)

→ Q)

V V

V F

F V

F F

Page 37: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Resolva as seguintes tabelas-verdade:

P Q (¬P ^ Q) → (P v

¬Q)

V V

V F

F V

F F

Page 38: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

• Baseado nas premissas abaixo, determine o

valor lógico das sentenças:

• “Hoje é sábado.” : p

• “O céu é branco.” : q

• “O mar é verde.” : r

Page 39: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Noções de Lógica - Exercícios

1) Se hoje é domingo e o céu é azul, então o mar

é verde.

2) Hoje é sábado ou o mar é azul.

3) Se o mar é verde e o céu é branco, então hoje

é sábado e o céu é azul.

Page 40: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Introdução à Lógica de Programação

Page 41: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

“Um algoritmo é uma sequência finita de

instruções bem definidas e não ambíguas, cada

uma das quais pode ser executada

mecanicamente num período de tempo finito e

com uma quantidade de esforço finita.”

Page 42: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Um algoritmo é uma sequência de passos

lógicos que devem ser seguidos para chegar a

determinado resultado.

• Um algoritmo deve ter condições de início e de

fim bem definidas.

• Os passos a serem seguidos devem ser claros e

específicos.

Page 43: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Quais os passos para trocar uma lâmpada?

Page 44: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

1. Pegar uma lâmpada nova

2. Desligar a chave geral

3. Pegar uma escada

4. Subir na escada

5. Retirar a lâmpada queimada

6. Colocar a lâmpada nova

7. Descer da escada

8. Guardar a escada

9. Ligar a chave geral

10.Ligar a nova lâmpada

Page 45: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• E quais os passos para cozinhar arroz?

Page 46: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

1. Pegar uma panela

2. Colocar a panela no fogão

3. Ligar o fogão

4. Colocar óleo na panela

5. Dourar o alho e a cebola

6. Refogar o arroz

7. Adicionar água à panela

8. Adicionar sal

9. Esperar a água evaporar totalmente

10. Desligar o fogão

11. Retirar a panela do fogão

Page 47: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• E se o óleo tivesse acabado, o que fazer?

• Essa sequência de passos não prevê desvios!

• Opções:

Ir ao mercado comprar?

Pedir ao vizinho emprestado?

Fazer sem óleo?

Page 48: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

1. Pegar uma panela

2. Colocar a panela no fogão

3. Ligar o fogão

4. Se tiver óleo, colocar na panela e continuar no passo 6.

5. Se não tiver, cancelar o arroz e fazer um miojo. FIM

6. Dourar o alho e a cebola

7. Refogar o arroz

8. Adicionar água à panela

9. Adicionar sal

10. Esperar a água evaporar totalmente

11. Desligar o fogão

12. Retirar a panela do fogão

Page 49: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Os desvios escolhidos podem ser diferentes, mas

o final atingindo deve significar a mesma coisa

para todos os casos.

• É possível que desvios diferentes (ou seja,

caminhos diferentes) levem ao mesmo resultado.

• Para indicar um desvio durante a sequência de

passos, pode-se escreve “Vá para x”, sendo x o

próximo passo a ser seguido.

Page 50: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Exemplo: algoritmo para ligar o computador.

1. Se o computador estiver ligado, FIM

2. Se o computador estiver ligado na tomada, vá

para 4

3. Senão, ligar o computador na tomada

4. Aperar o botão de ligar

5. FIM

Page 51: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Os passos devem ser da forma mais direta e

simples possível.

• Para tanto, devem conter instruções imperativas,

ou seja, que expressem uma ação.

Ligar o computador

Pegar a panela

Fechar a porta

Page 52: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Deve-se tentar deixar as instruções irredutíveis – de um modo que não possam ser decompostas em mais instruções.

• Se um passo engloba outros, é melhor dividi-lo.

Digitar usuário

Fazer login sistema Digitar senha

Confirmar login

Page 53: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Os passos devem ser específicos, para evitar

ambiguidades e confusões.

• Devem ser escritos de modo a fornecer informações

ricas e completas.

• Qual o melhor:

Vá à padaria e compre um bolo.

OU

Vá à padaria e compre um bolo de

chocolate com cobertura de brigadeiro

Page 54: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exemplos

• Faça um algoritmo para dividir dois números:

Page 55: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exemplos

• Faça um algoritmo para dividir dois números:

1. Pegar o valor do dividendo

2. Pegar o valor do divisor

3. Se o divisor for 0, vá para 6

4. Senão, calcular a divisão

5. Mostrar o resultado, FIM

6. Mostrar erro, FIM

Page 56: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exemplos

• Faça um algoritmo para calcular a média de um

aluno

Page 57: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exemplos

• Faça um algoritmo para calcular a média de um

aluno

1. Pegar cada nota do alunos

2. Somar cada nota

3. Dividir a soma pelo total de notas

4. Mostrar o resultado

Page 58: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exercícios

1. Faça um algoritmo para cozinhar um miojo.

2. Faça um algoritmo para ajudar uma pessoa a

escolher entre um desktop, um notebook e um

tablet.

3. Timóteo nunca usou a internet. Faça um

algoritmo para ele acessar o Facebook.

4. Faça um algoritmo para um professor corrigir

provas.

5. Faça um algoritmo para jogar o jogo-da-velha.

Page 59: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Mas o computador entende essas sequências de passos?

• Para o computador, o que significa “digitar sua senha” ou “ligar o fogão”?

• Computacionalmente, os algoritmos devem seguir um conjunto de instruções pré-determinadas.

• Essas instruções são a “língua” que o computador fala. Ou seja – são uma linguagem de programação.

Page 60: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

“A Máquina Analítica não tem nenhuma pretensão

de criar o que quer que seja. Pode fazer tudo o

que saibamos ordenar-lhe que faça.”

Ada Byron, considerada a primeira programadora.

Page 61: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Desse modo, para fazer um algoritmo

computacional, é preciso seguir as regras e

instruções do computador.

• No entanto, existem outras formas de

representação da lógica de algoritmos.

Exemplo: fluxogramas.

Page 62: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Vamos agora considerar algoritmos com

instruções pré-definidas.

• Para montar a sequência de passos, só é

permitido usar as instruções dadas.

• É permitido criar desvios e diferentes caminhos.

• Para indicar o fim do algoritmo, basta escrever

FIM.

Page 63: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Bob é um robô construído para auxiliar nas tarefas domésticas. Ele possui um braço mecânico e um sensor.

• O braço consegue realizar cinco movimentos: erguer, abaixar, esticar, recolher e apertar.

• O sensor consegue identificar qualquer objeto.

• Bob também consegue andar. No entanto, ele não é muito esperto e anda sem uma direção definida.

Page 64: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• No entanto, Bob não sabe fazer nada. Por esse motivo, alguém precisa escrever os algoritmos para que ele funcione.

• Dona Maria contratou você para criar os algoritmos para que Bob faça as tarefas determinadas.

• Lembre-se que Bob só tem sete instruções: erguer, abaixar, esticar, recolher, apertar, identificar e andar.

Page 65: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Faça um algoritmo para Bob lavar o cabelo de

Dona Maria. Ele deve chegar ao banheiro

sozinho.

Page 66: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos

• Faça um algoritmo para Bob lavar o cabelo de Dona Maria. Ele deve chegar ao banheiro sozinho.

1. Andar.

2. Identificar cômodo.

3. Se cômodo for banheiro, vá para 5.

4. Senão, vá para 1.

5. Erguer até prateleira.

6. Esticar até alcançar objeto.

7. Identificar objeto.

8. Se objeto for shampoo, ir para 11.

9. Senão, recolher

10. Vá para 6.

11. Recolher.

12. Esticar até alcançar o cabelo de Dona Maria.

13. Apertar.

Page 67: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Algoritmos - Exercícios

• Faça com que Bob realize as seguintes tarefas:

1. Encontrar o controle-remoto da TV.

2. Fazer pipoca.

3. Varrer o tapete vermelho da sala.

Page 68: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Fluxogramas

• Um fluxograma é um gráfico que demonstra a

seqüência operacional do desenvolvimento de

um processo.

• Um fluxograma procura dar uma idéia geral do

processamento, mostrando quais os dados

iniciais disponíveis, quais os resultados que se

pretende obter com o processamento e qual o

caminho a ser seguido.

Page 69: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Fluxogramas

Processo

Início

Fim

Decisão

Representa o inicio do fluxograma

Representa o processo executando

Representa uma condição

Representa o fim do fluxograma

Page 70: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Início

Pegar uma

lâmpada

A chave

geral está

desligada?

Desligar a

chave geral

Trocar a

lâmpada

Ligar a

chave

geral

Sim

Não

Fim

Fluxograma para Trocar uma Lâmpada

Page 71: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Início

Abrir Forno

O forno

está

acesso?

Acender o

fogo

Assar

pão

Colocar

lenha

Sim Não Precisa

de

lenha?

Sim

Não

Fim

Fluxograma para assar um pão

Page 72: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Início

Pegar uma

batata

As batatas

estão

descascad

as?

Cozinhar as

batatas

Descascar

a batata

Sim

Não

Fim

Fluxograma para descascar batatas

Page 73: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Exercícios

• Faça um fluxograma mostrando como fazer um

bolo.

• Faça um fluxograma de uma pessoa que está no

hotel e precisa pegar um vôo.

• Faça um fluxograma mostrando como alugar um

filme.

Page 74: CURSO BÁSICO DE PROGRAMAÇÃO AULA 1 - … · CURSO BÁSICO DE PROGRAMAÇÃO – AULA 1 Introdução a Sistemas de Computação Noções de Lógica Introdução à Lógica de Programação

Estruturação de Algoritmos