apostila introducao a logica de programacao.compressed
DESCRIPTION
Introdução a logica de programaçãoTRANSCRIPT
-
Introduo
Lgica de Programao
2 ENCONTRO
-
2
Introduo A lgica est presente em nossa vida sempre que pensa-mos, falamos e escrevemos, pois para realizar essas aes ne-cessitamos 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-a-dia quando analisamos situaes como:
Analisando estes argumentos em uma sequencia lgica po-demos chegar a uma concluso, como demonstrado acima.
(Retirado do livro Lgica de programao, de Camila Ceccatto da Silva e Everaldo Antonio de Paula, adaptado)
Todo mamfero bebe leite; O homem bebe leite.
Por tanto conclusse que: O homem um mamfero.
-
3
Linguagem de Programao Podemos imaginar o computador como uma super cal-culadora 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 lin-guagens de programao exatamente essa, ou seja, servir de um meio de comunicao entre computadores e huma-nos, assim como os humanos fazem com os humanos: usam
da linguagem para poder conversar. Quando progra-mamos em uma lin-guagem de progra-mao primeiramen-te criamos um arqui-vo de texto comum contendo a lgica do que deve ser feito, ou seja, onde fala-mos 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 ar-quivo que chamamos de executvel ou programa, ser gera-do e interpretado diretamente pelo computador.
(Retirado de www.infoescola.com, adaptado)
-
4
Algoritmo Algoritmo uma sequencia lgica de passos que levam a um determinado objetivo. Apesar de a palavra algoritmo pa-recer estranha e desconhecida, claro que todos ns sabe-mos 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, pa-ra 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).
-
5
Veja e analise a soluo necessria para o exemplo abaixo:
Retirado do Curso de Programao Computadores, Prof. Anbal Tavares e Profa. Cassilda Ribeiro, disponvel em
-
6
Os algoritmos, portanto, podem ser divididos em partes, que so elas:
Incio; Entrada: dados que devem ser lidos, ou forneci-
dos pelo usurio; Processamento: onde acontecem os clculos em
si, os dados de entrada so manipulados a fim de se gerar uma resposta (um resultado);
Sada: so os resultados de seu processamento.;
Fim.
-
7
A Lgica e a Informtica Para o desenvolvimento de programas de computador neces-
srio o desenvolvimento de uma lgica bem estruturada para que o
computador possa realizar com sucesso os procedimentos deseja-
dos para a soluo do problema proposto. Portanto, a partir de um
problema proposto, temos:
Como exemplo, iremos usar uma receita que um algoritmo
descrito em linguagem natural. Passos para o desenvolvimento de
uma lgica de programao:
1 - Analise o que deve ser realizado; 2 - Imagine como o seu crebro processa esta ao; 3 - Divida isto em passos distintos e muito especficos; 4 - Estruture estes passos em uma sequncia lgica; 5 - Verifique o funcionamento e exatido da sua lgica.
-
8
Podemos desenvolver a lgica de simples atividades de nosso cotidiano, como fritar um ovo:
1- necessrio fritar um ovo; 2- Para fritar um ovo deve-se ir at a cozinha, ter um ovo,
uma frigideira, leo, um fogo e gs. O fogo deve ser ligado, a frigideira aquecida, e o leo aquecido na frigideira, posteri-ormente o ovo deve ser frito no leo quente;
Passo 1 - Adquirir: 1- Obtenha um ovo, caso no tenha obtido um ovo, obte-nha um ovo, faa isso at obter um ovo; 2- Obtenha uma frigideira, caso no tenha obtido uma fri-gideira, obtenha uma frigideira, faa isso at obter uma frigideira; 3- Obtenha o leo, caso no tenha obtido o leo, obtenha o leo, faa isso at obter o leo; 4- Obtenha um fogo, caso no tenha obtido um fogo, obtenha um fogo, faa isso at obter um fogo; 5- Obtenha o gs, caso no tenha obtido o gs, obtenha o gs, faa isso at obter o gs; Passo 2 - Preparar: 1- Ligue o fogo, caso o fogo no tenha ligado, ligue o fogo, 2- faa isso at ligar o fogo; 3- Coloque a frigideira no fogo; 4- Aquea a frigideira, caso a frigideira no esteja aqueci-da, aquea a frigideira, faa isso at a frigideira aquecer; 5- Coloque o leo na frigideira; 6- Aquea o leo, caso o leo no esteja aquecido, aquea o leo, faa isso at o leo aquecer; 7- Quebre a casca do ovo; 8- Retire o ovo, se o ovo no estiver bom obtenha outro ovo, quebre a casca do ovo e retire o ovo.
-
9
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. De-pois 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 ins-trues 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 po-demos 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 ex-plorar uma infinidade de valores em uma situao em que h medi-das desconhecidas assim como na matemtica. Embora uma mesma varivel possa assumir diferentes valores, ela s pode ar-mazenar 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 desenvolvi-
mento de hardware, microcontrola-
da de cdigo aberto.
Em termos prticos o Arduino
um pequeno computador em que
possvel se interagir com o ambiente.
Estrutura bsica e princpio de funcionamento:
-
13
Entrada de dados Como en-
trada de dados,
podemos ter os
dispositivos de-
monstrados ao
lado.
Sada de dados Como sada de dados,
podemos ter os dis-
positivos demonstra-
dos ao lado.
-
14
Alguns conceitos prvios Antes de comearmos a trabalhar com o Arduino preci-samos aprender alguns conceitos de eletrnica e programa-o que sero importantes ao decorrer do curso.
LED (Diodo Emissor de Luz) Pode-se compreender o LED como uma pequena lmpada que consome baixa energia, mas que fornece uma luminosidade comparvel a uma lm-pada do mesmo porte.
Push-button - (Boto ou chave) Uma chave, ou se preferir chamar de boto, tem o mesmo princpio de funcionamento de um interruptor (liga, desliga), quando ele pressionado o seus contatos entram em curto.
Buzzer Emite som quando acionado.
LDR O LDR um sensor de luz, que varia sua resistncia el-trica 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 mensa-
gens atravs do Arduino.
-
15
Como funciona o Arduino? Podemos dividir o funcionamento dele em 3 partes, leitura de dados (normalmente sensores), processamento de dados (decises a serem toma-das a partir da leitura de dados), e atuao (aps o Arduino ler os sinais e interpreta-los, ele decide o que vai fazer). Um exemplo desse funcionamen-to seria acender um LED com uma chave ligada ao Arduino, a chave diz pro Arduino que quer ligar o LED, ele por sua vez verifica se essa chave esta autorizada a liga-lo (isso feito atravs da programao), caso possa, o pr-prio Arduino se encarrega de acender o LED.
O Programa Antes de colocarmos a mo na massa vamos entender como funciona o programa que iremos utilizar para programar o Arduino. A rea em branco ser utilizada para colocarmos nosso cdigo de pro-gramao. A cima delas h alguns cones, dentre eles iremos utilizar 2, estes so:
Verifica se o programa contm erros de digitao. Grava o programa no Arduino.
Depois de terminado o cdigo,
pressionamos o respectivo boto para
verificar se digitamos alguma coisa er-
rada (observao: esse boto no veri-
fica erros de lgica, somente de escri-
ta), se no houver erros j podemos
gravar a programao no Arduino.
-
16
1 Experimento Objetivo: Acender um LED com uma push button. Funcionamento: Ao se pressionar a push Button o LED dever acender, e caso ela seja solta o LED dever apagar.
Procedimentos:
(1) Monte o circuito no protoboard da maneira que segue abaixo, uma ob-
servao: para essas primeiras aplicaes no necessrio fonte externa,
pois o prprio computador
fornece energia ao Arduino,
antes de ligar no computador
verifique todas as ligaes no-
vamente;
(2) Com o circuito montado e
verificado conecte o Arduino
na USB do computador, abra o
programa e copie o cdigo
descrito na prxima pgina:
-
17
int Pinoled = 13; //led no pino 13 int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //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 }
}
(3) Verifique se o cdigo no possui erros, caso tudo esteja devidamente
preparado s pressionar o boto de gravar. necessrio que voc siga to-
dos os passos a risca para no correr o risco de danificar a plataforma.
Para pensar... Atravs do primeiro experimento pense como seria o programa caso quiss-
semos 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 Objetivo: Controlar 3 LED com 3 botes. Funcionamento: Iremos seguir o mesmo princpio do experimento anteri-
or, mas agora com 3 LED e 3 push buttons. Cada boto ir acionar um nico
LED quando for pressionado, e ir desliga-lo caso contrrio.
Procedimentos:
(1) Monte o circuito no protoboard da maneira que segue abaixo, note que
o circuito ser praticamente o mesmo, mas com 2 chaves e 2 LED a mais, an-
tes de ligar o Arduino no computador verifique todas as ligaes novamen-
te;
-
19
(2) Com o circuito montado e verificado conecte o Arduino na USB do com-
putador, abra o programa e copie o cdigo descrito abaixo: int ledPin1 = 13; //Led 1 ligado no pino 13 int ledPin2 = 12 //Led 2 ligado no pino 12 int ledPin3 = 11; //Led 3 ligado no pino 11 int Botao1 = 2; //Boto 1 ligado no pino 2 int Botao2 = 3; //Boto 2 ligado no pino 3 int Botao3 = 4; //Boto 3 ligado no pino 4 int EstadoBotao1 = 0; //Boto 1 desligado int EstadoBotao2 = 0; //Boto 2 desligado int EstadoBotao3 = 0; //Boto 3 desligado 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
(3) Verifique se o cdigo no possui erros, caso tudo esteja devidamente
preparado s pressionar o boto de gravar. necessrio que voc siga to-
dos os passos a risca para no correr o risco de danificar a plataforma. Note
que neste experimento o programa apesar de parecer mais complexo nada
mais do que uma ampliao do primeiro.
Para pensar... Com base no experimento 2 altere o cdigo para que a primeira chave, da
esquerda para a direita, acenda o LED verde, a segunda o LED amarelo, e o
LED vermelho s poder ser aceso com o segundo e o terceiro boto pres-
sionados ao mesmo tempo.
Exercitando o conhecimento
Com o conhecimento adquirido nesse encontro elabore a so-luo 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 respons-
vel por acender uma quantidade especifica de LED simultanea-
mente, 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 lti-
mo que ir acender todos os LED. Implemente o cdigo desse pro-
grama.
-
21
Quer mais informaes!?
Para um maior aprofundamento nos conceitos bsicos apresentados, procu-
re por sites sobre a utilizao do Arduino, isso ir contribuir muito para a
formao de novos conhecimentos com aplicaes prticas!
Dvidas podero ser encaminhadas aos tutores de vocs!
Lista de Sites interessantes
(1) Arduino - site oficial, conceitos e materiais para download.
(2) Site com cursos bsico e avanado sobre Arduino.
(3) Site do Laboratrio de Garagem, com conceitos diversos sobre
a utilizao, com projetos e downloads.
-
22
Oficinas Tecnolgicas para
alunos do Ensino Mdio
Prof. Dr. Leonardo Mesquita
Coordenador do Projeto
Prof. Dr. Galeno Jos de Sena
Prof. Dr. Marco Aurlio Alvarenga Monteiro
Prof. Jos Marcelo de A. Wendling Jr.
Felipe Barbosa da Silva
Ismael de Almeida Jnior
Letcia Miranda de Frana Mota
Renan Moura Santana
Samuel Jos de Carvalho