Aula 1 - Unioeste

Propaganda
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
Motivações
• Ao final deste curso, o aluno que acompanhar todas as
aulas terá uma boa noção de lógica de programação, que
não só é útil na programação, mas também melhora o
jeito em que se pensa em soluções.
• O aluno terá uma ideia de como são feitos programas
computacionais e conhecerão o quão desafiante é
desenvolve-los.
• E se o mesmo desejar, o mesmo também terá o
conhecimento básico necessário para aprender uma
infinidade de assuntos relacionados a 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)
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.).
Sistema Operacional
• Exemplos
• Windows
• Macintosh OSX
• Linux
• Android
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.
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.
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;
Exemplo – C
int main (int argc, char** argv)
{
printf(“Hello World!\n”);
return (0);
}
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.
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.
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.
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.
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.
Noções de Lógica
Hoje é sábado
E amanhã é domingo.
Noções de Lógica
Hoje é sábado
E amanhã é domingo.
CONECTOR LÓGICO!
Noções de Lógica
Vou comer pão
OU vou comer pizza.
Noções de Lógica
Vou comer pão
OU vou comer pizza.
CONECTOR LÓGICO!
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
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
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
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)
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
Noções de Lógica
• Cada conector tem uma tabela-verdade
correspondente.
Conector E
Conector OU
P
Q
P^Q
P
Q
PvQ
V
V
V
V
V
V
V
F
F
V
F
V
F
V
F
F
V
V
F
F
F
F
F
F
Noções de Lógica
• Cada conector tem uma tabela-verdade
correspondente.
Conector SE
Conector NÃO
P
Q
P→Q
P
¬P
V
V
V
V
F
V
F
F
F
V
F
V
V
F
F
V
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.”
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.”
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.”
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.”
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.”
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.”
Noções de Lógica - Exercícios
• Resolva as seguintes tabelas-verdade:
P
Q
V
V
V
F
F
V
F
F
((P^Q) v ¬P) → Q
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
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
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
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
Noções de Lógica - Exercícios
• Resolva as seguintes tabelas-verdade:
P
Q
V
V
V
F
F
V
F
F
¬(((P v Q) ^ ¬P) → Q)
Noções de Lógica - Exercícios
• Resolva as seguintes tabelas-verdade:
P
Q
V
V
V
F
F
V
F
F
(¬P ^ Q) → (P v ¬Q)
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
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.
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.”
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.
Algoritmos
• Quais os passos para trocar uma lâmpada?
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
Algoritmos
• E quais os passos para cozinhar arroz?
Algoritmos
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Pegar uma panela
Colocar a panela no fogão
Ligar o fogão
Colocar óleo na panela
Dourar o alho e a cebola
Refogar o arroz
Adicionar água à panela
Adicionar sal
Esperar a água evaporar totalmente
Desligar o fogão
Retirar a panela do fogã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?
Algoritmos
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Pegar uma panela
Colocar a panela no fogão
Ligar o fogão
Se tiver óleo, colocar na panela e continuar no passo 6.
Se não tiver, cancelar o arroz e fazer um miojo. FIM
Dourar o alho e a cebola
Refogar o arroz
Adicionar água à panela
Adicionar sal
Esperar a água evaporar totalmente
Desligar o fogão
Retirar a panela do fogã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.
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
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
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.
Fazer login sistema
Digitar usuário
Digitar senha
Confirmar login
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
Algoritmos - Exemplos
• Faça um algoritmo para dividir dois números:
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
Algoritmos - Exemplos
• Faça um algoritmo para calcular a média de um
aluno
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
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.
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.
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.
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.
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.
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.
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.
Algoritmos
• Faça um algoritmo para Bob lavar o cabelo de
Dona Maria. Ele deve chegar ao banheiro
sozinho.
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.
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.
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.
Fluxogramas
Início
Processo
Decisão
Fim
Representa o inicio do fluxograma
Representa o processo executando
Representa uma condição
Representa o fim do fluxograma
Fluxograma para Trocar uma Lâmpada
Início
Pegar uma
lâmpada
A chave
geral está
desligada?
Não
Desligar a
chave geral
Sim
Trocar a
lâmpada
Ligar a
chave
geral
Fim
Fluxograma para assar um pão
Início
Abrir Forno
Sim
Sim
Precisa
de
lenha?
O forno
está
acesso?
Não
Assar
pão
Colocar
lenha
Fim
Não
Acender o
fogo
Fluxograma para descascar batatas
Início
Pegar uma
batata
Sim
As batatas
estão
descascad
as?
Não
Descascar
a batata
Cozinhar as
batatas
Fim
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.
Onde nos encontrar:
• Grupo Curso Básico de Programação:
• https://www.facebook.com/groups/327073190758554/
• Página PETComp Unioeste:
• https://www.facebook.com/petcomp
• Site PETComp:
• http://www.inf.unioeste.br/petcomp/
FIM
Dúvidas?
Alexandra, Henrique, Marcelo e Remi
[email protected], [email protected],
[email protected], [email protected].
Download