














Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Algoritmos e programação para auxiliar na aprendizagem e aprimoramento de conhecimentos sobre informática computacional.
Tipologia: Transcrições
Compartilhado em 11/05/2023
2 documentos
1 / 22
Esta página não é visível na pré-visualização
Não perca as partes importantes!















(Retirado do livro Lógica de programação , de Camila Ceccatto da Silva e Everaldo Antonio de Paula, adaptado)
Algoritmo é uma sequencia lógica de passos que levam a um determinado objetivo. Apesar de a palavra algoritmo pa-
recer estranha e desconhecida, é claro que todos nós sabe- mos construir algoritmos.
Se isto não fosse verdade, não conseguiríamos 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 é necessário uma série 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 colégio,
podemos escolher diversos meios de transportes em
função do preço, conforto, rapidez, etc. A escolha será feita em função do critério
que melhor se adequar as nossas necessidades.
(Retirado do livro Lógica de programação , de Camila Ceccatto da Silva e Everaldo Antonio de Paula, adaptado).
Veja e analise a solução necessária para o exemplo abaixo:
Retirado do Curso de Programação Computadores, Prof. Aníbal Tavares e Profa. Cassilda Ribeiro, disponível em <http:// www.feg.unesp.br/~cassilda/aulas_PC/C_Aulas2.pdf>
Para o desenvolvimento de programas de computador é neces-
sário o desenvolvimento de uma lógica bem estruturada para que o
computador possa realizar com sucesso os procedimentos deseja-
dos para a solução 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 lógica de programação:
1 - Analise o que deve ser realizado; 2 - Imagine como o seu cérebro processa esta ação; 3 - Divida isto em passos distintos e muito específicos; 4 - Estruture estes passos em uma sequência lógica; 5 - Verifique o funcionamento e exatidão da sua lógica.
Podemos desenvolver a lógica de simples atividades de nosso cotidiano, como “fritar um ovo”: 1- É necessário fritar um ovo; 2- Para fritar um ovo deve-se ir até a cozinha, ter um ovo, uma frigideira, óleo, um fogão e gás. O fogão 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 não tenha obtido um ovo, obte- nha um ovo, faça isso até obter um ovo; 2- Obtenha uma frigideira, caso não tenha obtido uma fri- gideira, obtenha uma frigideira, faça isso até obter uma frigideira; 3- Obtenha o óleo, caso não tenha obtido o óleo, obtenha o óleo, faça isso até obter o óleo; 4- Obtenha um fogão, caso não tenha obtido um fogão, obtenha um fogão, faça isso até obter um fogão; 5- Obtenha o gás, caso não tenha obtido o gás, obtenha o gás, faça isso até obter o gás;
Passo 2 - Preparar: 1- Ligue o fogo, caso o fogo não tenha ligado, ligue o fogo, 2- faça isso até ligar o fogo; 3- Coloque a frigideira no fogo; 4- Aqueça a frigideira, caso a frigideira não esteja aqueci- da, aqueça a frigideira, faça isso até a frigideira aquecer; 5- Coloque o óleo na frigideira; 6- Aqueça o óleo, caso o óleo não esteja aquecido, aqueça o óleo, faça isso até o óleo aquecer; 7- Quebre a casca do ovo; 8- Retire o ovo, se o ovo não estiver bom obtenha outro ovo, quebre a casca do ovo e retire o ovo.
Quase todos os algoritmos que apresentamos até este ponto foram escritos em linguagem natural, ou seja, no
nosso caso, habitantes do Brasil, o português. O algoritmo em linguagem humana deve ser traduzido
em uma linguagem de programação de computadores. De- pois que é gerado um programa, a linguagem é outra vez
traduzida para a linguagem de máquina (computador, no nosso caso) para que o computador possa entender as ins-
truções fornecidas. Os algoritmos irão obter os dados necessários para que a máquina possa manipular estes dados, que normalmente
são fornecidos pelos usuários, 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 variáveis.
Imagine uma variável
como uma caixinha que
pode ser nomeada e esta
pode guardar um valor,
como no desenho ao lado.
Portanto, a variável é um recurso que pode servir para ex- plorar uma infinidade de valores em uma situação em que há medi- das desconhecidas assim como na matemática. Embora uma mesma variável possa assumir diferentes valores, ela só pode ar- mazenar um valor a cada instante. Existem três tipos básicos de dados que iremos manipular nos algoritmos que iremos criar:
Dados como números - numéricos ; Dados como letras - literária ; Dados lógicos.
Num programa, em cada instante, cada variável possui seu tipo, seu nome e seu conteúdo como exemplificado na figura, onde a variável chamada “NOME” que é do tipo “LITERÁRIA” tem como conteúdo a palavra “Maria” e a variável nomeada “IDADE” que é do tipo “NUMÉRICA” possui o número “26” armazenado enquanto as outras variáveis não tem nem conteúdo nem tipo definido:
Entrada de dados
Como en-
trada de dados,
podemos ter os
dispositivos de-
monstrados ao
lado.
Saída de dados Como saída de dados, podemos ter os dis- positivos demonstra- dos ao lado.
Antes de começarmos a trabalhar com o Arduino preci- samos aprender alguns conceitos de eletrônica e programa-
ção que serão importantes ao decorrer do curso.
LED – (Diodo Emissor de Luz) – Pode-se compreender o LED como uma pequena lâmpada que consome baixa energia, mas que fornece uma luminosidade comparável a uma lâm- pada do mesmo porte.
Push-button - (Botão ou chave) – Uma chave, ou se preferir chamar de botão, tem o mesmo princípio 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 resistência elé- trica de acordo com a intensidade luminosa sobre o mesmo.
Sensor de temperatura – Segue a mesma ideia do LDR, mas neste caso sua resistência varia de acordo com a temperatura e não com a luminosidade.
LCD – Display que pode ser utilizado para exibir mensa- gens através do Arduino.
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- servação: para essas primeiras aplicações não é necessário fonte externa, pois o próprio computador fornece energia ao Arduino, antes de ligar no computador verifique todas as ligações no- vamente;
(2) Com o circuito montado e verificado conecte o Arduino na USB do computador, abra o programa e copie o código descrito na próxima página:
int Pinoled = 13; //led no pino 13 int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //Variável para ler o status do pushbutton void setup() { pinMode(Pinoled, OUTPUT); //Pino do led será saída pinMode(Botao, INPUT); //Pino com botão será entrada } void loop() { EstadoBotao = digitalRead(Botao); /* novo estado do botão vai ser igual ao que Arduino ler no pino onde está o botão. Poderá ser ALTO (HIGH)se o botão estiver Pressionado, ou BAIXO (LOW),se o botão estiver solto */ if (EstadoBotao == HIGH) //Se botão estiver pressionado (HIGH) { digitalWrite(Pinoled, HIGH); // acende o led do pino 13. } else //se não estiver pressionado { digitalWrite(Pinoled, LOW); //deixa o led do pino 13 apagado } }
(3) Verifique se o código não possui erros, caso tudo esteja devidamente preparado é só pressionar o botão de gravar. É necessário que você siga to- dos os passos a risca para não correr o risco de danificar a plataforma.
Para pensar... Através do primeiro experimento pense como seria o programa caso quisés- semos inverter o estado do LED, ou seja, ele só seria ligado caso a chave não estivesse pressionada, e caso contrário o LED apagaria.
(2) Com o circuito montado e verificado conecte o Arduino na USB do com- putador, abra o programa e copie o código 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; //Botão 1 ligado no pino 2 int Botao2 = 3; //Botão 2 ligado no pino 3 int Botao3 = 4; //Botão 3 ligado no pino 4 int EstadoBotao1 = 0; //Botão 1 desligado int EstadoBotao2 = 0; //Botão 2 desligado int EstadoBotao3 = 0; //Botão 3 desligado void setup(){ //Configurações dos pinos pinMode(ledPin1, OUTPUT); //pino do Led 1 configurado como saída pinMode(Botao1, INPUT); //pino do botão 1 configurado como entrada pinMode(ledPin2, OUTPUT); //pino do led 2 configurado como saída pinMode(Botao2, INPUT); //pino do botão 2 configurado como entrada pinMode(ledPin3, OUTPUT); //pino do led 3 configurado como saída pinMode(Botao3, INPUT); //pino do botão 3 configurado como entrada } void loop(){ EstadoBotao1 = digitalRead(Botao1); // Lê o estado do botão 1 EstadoBotao2 = digitalRead(Botao2); // Lê o estado do botão 2 EstadoBotao3 = digitalRead(Botao3); // Lê o estado do botão 3 if (EstadoBotao1 == HIGH){ //Se o botão 1 está pressionado digitalWrite(ledPin1, HIGH); //acende o led 1 } else{ //Se não digitalWrite(ledPin1, LOW); //apaga o led 1 } if (EstadoBotao2 == HIGH){ //Se o botão 2 está pressionado digitalWrite(ledPin2, HIGH); //acende led 2 } else{ //Se não digitalWrite(ledPin2, LOW); //apaga o led 2 } if (EstadoBotao3 == HIGH){ //Se o botão 3 está pressionado digitalWrite(ledPin3, HIGH); //acende o led 3 } else{ //Se não digitalWrite(ledPin3, LOW); //apaga led 3 } }
(3) Verifique se o código não possui erros, caso tudo esteja devidamente preparado é só pressionar o botão de gravar. É necessário que você siga to- dos os passos a risca para não correr o risco de danificar a plataforma. Note que neste experimento o programa apesar de parecer mais complexo nada mais é do que uma ampliação do primeiro.
Para pensar... Com base no experimento 2 altere o código 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 botão pres- sionados ao mesmo tempo.
Exercitando o conhecimento
Com o conhecimento adquirido nesse encontro elabore a so- lução para os seguintes problemas:
1 – Com base no experimento 2, altere o código de programação, para que sejam trocados de lugar os pinos onde estão conectados os LED - troque para os pinos 8, 9, e 10) e as chaves - para os pinos 5, 6, 7.
2 - Você tem 4 botões e 4 LED, sendo que cada botão será responsá- vel por acender uma quantidade especifica de LED simultanea- mente , sendo o 1º botão responsável por acender o primeiro LED, o segundo botão responsável por acender os 2 primeiros LED, o terceiro botão responsável por acender os 3 primeiros LED, e o últi- mo que irá acender todos os LED. Implemente o código desse pro- grama.