Professional Documents
Culture Documents
Introduo
Lgica de Programao
Introduo
A lgica est presente em nossa vida sempre que pensamos, falamos e escrevemos, pois para realizar essas aes necessitamos que os pensamentos estejam ordenados de modo a
alcanar o resultado esperado. Na verdade a lgica consiste
simplesmente na organizao e explicao de um pensamento.
Poderemos identificar a utilizao da lgica no nosso dia-adia quando analisamos situaes como:
Todo mamfero bebe leite;
O homem bebe leite.
Analisando estes argumentos em uma sequencia lgica podemos chegar a uma concluso, como demonstrado acima.
(Retirado do livro Lgica de programao, de Camila Ceccatto da Silva e Everaldo Antonio de Paula, adaptado)
Linguagem de Programao
Podemos imaginar o computador como uma super calculadora capaz de fazer clculos muito mais rpido que ns,
mas para isso devemos dizer para o computador o que deve
ser calculado e como deve ser calculado. A funo das linguagens de programao exatamente essa, ou seja, servir
de um meio de comunicao entre computadores e humanos, assim como os humanos fazem com os humanos: usam
da linguagem para
poder conversar.
Quando programamos em uma linguagem de programao primeiramente criamos um arquivo de texto comum
contendo a lgica
do que deve ser feito,
ou seja, onde falamos ao computador,
o que queremos. Este arquivo de texto chamado
de programa, cada palavra de ordem dentro do programa
chamada de instruo. Aps criarmos o programa, este deve
ser traduzido para linguagem entendida pelo computador a
partir da linguagem que estamos utilizando. Um segundo arquivo que chamamos de executvel ou programa, ser gerado e interpretado diretamente pelo computador.
(Retirado de www.infoescola.com, adaptado)
Algoritmo
Algoritmo uma sequencia lgica de passos que levam a
um determinado objetivo. Apesar de a palavra algoritmo parecer estranha e desconhecida, claro que todos ns sabemos construir algoritmos.
Se isto no fosse verdade, no conseguiramos sair de
casa pela manh, ir escola, decidir qual o melhor caminho
para chegar a um lugar, voltar para casa, etc. Para que tudo
isto seja feito necessrio uma srie de entradas do tipo: a
que hora acordar, a que horas sair de casa, qual o melhor
meio de transporte, etc.
Um fator importante
que pode haver mais de um
algoritmo para resolver um
problema. Por exemplo, para ir de casa at o colgio,
podemos escolher diversos
meios de transportes em
funo do preo, conforto,
rapidez, etc. A escolha ser
feita em funo do critrio
que melhor se adequar as
nossas necessidades.
(Retirado do livro Lgica de programao, de Camila Ceccatto da Silva e Everaldo Antonio de Paula, adaptado).
Retirado do Curso de Programao Computadores, Prof. Anbal Tavares e Profa. Cassilda Ribeiro, disponvel em <http://
www.feg.unesp.br/~cassilda/aulas_PC/C_Aulas2.pdf>
A Lgica e a Informtica
Para o desenvolvimento de programas de computador necessrio o desenvolvimento de uma lgica bem estruturada para que o
computador possa realizar com sucesso os procedimentos desejados para a soluo do problema proposto. Portanto, a partir de um
problema proposto, temos:
Passo 3 - Cozinhar:
1- Coloque o ovo no leo que est na frigideira;
2- Verifique se o ovo est pronto, se o ovo est pronto, se
no, verifique se o ovo est pronto, faa isso at o ovo ficar
pronto;
3- Retire o ovo da frigideira;
Passo 4 - Consumir:
1- Coloque o ovo em um prato;
2- Coma o ovo.
10
Varivel
Quase todos os algoritmos que apresentamos at este
ponto foram escritos em linguagem natural, ou seja, no
nosso caso, habitantes do Brasil, o portugus.
O algoritmo em linguagem humana deve ser traduzido
em uma linguagem de programao de computadores. Depois que gerado um programa, a linguagem outra vez
traduzida para a linguagem de mquina (computador, no
nosso caso) para que o computador possa entender as instrues fornecidas.
Os algoritmos iro obter os dados necessrios para que
a mquina possa manipular estes dados, que normalmente
so fornecidos pelos usurios, e entregar resultados para os
mesmos. Uma pergunta importante neste momento : como
poderemos manipular estes dados? A resposta que podemos manipul-los por meio das variveis.
Imagine uma varivel
como uma caixinha que
pode ser nomeada e esta
pode guardar um valor,
como no desenho ao lado.
11
Portanto, a varivel um recurso que pode servir para explorar uma infinidade de valores em uma situao em que h medidas desconhecidas assim como na matemtica. Embora uma
mesma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.
Existem trs tipos bsicos de dados que iremos manipular nos
algoritmos que iremos criar:
Dados como nmeros - numricos;
Dados como letras - literria;
Dados lgicos.
Num programa, em cada instante, cada varivel possui seu
tipo, seu nome e seu contedo como exemplificado na figura, onde
a varivel chamada NOME que do tipo LITERRIA tem como
contedo a palavra Maria e a varivel nomeada IDADE que do
tipo NUMRICA possui o nmero 26 armazenado enquanto as
outras variveis no tem nem contedo nem tipo definido:
12
Arduino
uma plataforma de desenvolvimento de hardware, microcontrolada de cdigo aberto.
Em termos prticos o Arduino
um pequeno computador em que
possvel se interagir com o ambiente.
13
Entrada de dados
Como entrada de dados,
podemos ter os
dispositivos demonstrados ao
lado.
Sada de dados
14
LDR O LDR um sensor de luz, que varia sua resistncia eltrica de acordo com a intensidade luminosa sobre o mesmo.
Sensor de temperatura Segue a mesma ideia do LDR, mas
neste caso sua resistncia varia de acordo com a temperatura e
no com a luminosidade.
LCD Display que pode ser utilizado para exibir mensagens atravs do Arduino.
15
O Programa
16
1 Experimento
17
//led no pino 13
//botao no pino 2
//Varivel para ler o status do pushbutton
void setup()
{
pinMode(Pinoled, OUTPUT); //Pino do led ser sada
pinMode(Botao, INPUT);
//Pino com boto ser entrada
}
void loop()
{
EstadoBotao = digitalRead(Botao);
/*
novo estado do boto vai ser igual ao que
Arduino ler no pino onde est o boto.
Poder ser ALTO (HIGH)se o boto estiver
Pressionado, ou BAIXO (LOW),se o boto
estiver solto
*/
if (EstadoBotao == HIGH)
//Se boto estiver pressionado (HIGH)
{
digitalWrite(Pinoled, HIGH);
// acende o led do pino 13.
}
else
//se no estiver pressionado
{
digitalWrite(Pinoled, LOW); //deixa o led do pino 13 apagado
}
}
Para pensar...
Atravs do primeiro experimento pense como seria o programa caso quisssemos inverter o estado do LED, ou seja, ele s seria ligado caso a chave no
estivesse pressionada, e caso contrrio o LED apagaria.
18
2 Experimento
19
(2) Com o circuito montado e verificado conecte o Arduino na USB do computador, abra o programa e copie o cdigo descrito abaixo:
int ledPin1 = 13;
int ledPin2 = 12
int ledPin3 = 11;
int Botao1 = 2;
int Botao2 = 3;
int Botao3 = 4;
int EstadoBotao1 = 0;
int EstadoBotao2 = 0;
int EstadoBotao3 = 0;
void setup(){
//Configuraes dos pinos
pinMode(ledPin1, OUTPUT); //pino do Led 1 configurado como sada
pinMode(Botao1, INPUT); //pino do boto 1 configurado como entrada
pinMode(ledPin2, OUTPUT); //pino do led 2 configurado como sada
pinMode(Botao2, INPUT); //pino do boto 2 configurado como entrada
pinMode(ledPin3, OUTPUT); //pino do led 3 configurado como sada
pinMode(Botao3, INPUT); //pino do boto 3 configurado como entrada
}
void loop(){
EstadoBotao1 = digitalRead(Botao1);
// L o estado do boto 1
EstadoBotao2 = digitalRead(Botao2);
// L o estado do boto 2
EstadoBotao3 = digitalRead(Botao3);
// L o estado do boto 3
if (EstadoBotao1 == HIGH){ //Se o boto 1 est pressionado
digitalWrite(ledPin1, HIGH); //acende o led 1
}
else{
//Se no
digitalWrite(ledPin1, LOW); //apaga o led 1
}
if (EstadoBotao2 == HIGH){ //Se o boto 2 est pressionado
digitalWrite(ledPin2, HIGH); //acende led 2
}
else{
//Se no
digitalWrite(ledPin2, LOW); //apaga o led 2
}
if (EstadoBotao3 == HIGH){ //Se o boto 3 est pressionado
digitalWrite(ledPin3, HIGH); //acende o led 3
}
else{
//Se no
digitalWrite(ledPin3, LOW); //apaga led 3
}
}
20
Exercitando o conhecimento
Com o conhecimento adquirido nesse encontro elabore a soluo para os seguintes problemas:
1 Com base no experimento 2, altere o cdigo de programao,
para que sejam trocados de lugar os pinos onde esto conectados
os LED - troque para os pinos 8, 9, e 10) e as chaves - para os pinos
5, 6, 7.
2 - Voc tem 4 botes e 4 LED, sendo que cada boto ser responsvel por acender uma quantidade especifica de LED simultaneamente, sendo o 1 boto responsvel por acender o primeiro LED,
o segundo boto responsvel por acender os 2 primeiros LED, o
terceiro boto responsvel por acender os 3 primeiros LED, e o ltimo que ir acender todos os LED. Implemente o cdigo desse programa.
21
22