Microcontroladores Programação: fluxogramas, pseudocódigos e lógica Prof. Daniel 1
Introdução Algoritmos Fluxograma Constantes e variáveis Operadores Declarações de Controle Exercícios 2
Introdução Lógica de programação: Técnica para gerar uma determinada sequência de atividades para atingir um determinado objetivo; Sequência Lógica: São os diferentes passos ou instruções para solucionar um problema; Instruções: São um conjunto de regras ou normas definidas para realização de uma atividade. É uma ação elementar executada pelo computador; 3
Algoritmos Algoritmos é uma maneira de formalizar uma sequência de passos para execução de uma atividade. A formalização é necessária para que diferentes pessoas possam entender e repetir os passos para chegar a solução do problema; Ex.: Executar a operação de soma em uma calculadora; Fazer uma transferência bancária; Ajustar o horário no celular; Programar um DVD para gravar um programa; 4
Algoritmos EXERCÍCIO 1: Descreva passo a passo como você faria para obter a média de três números a seguir em sua calculadora; MEDIA = 12 + 6 + 9 3 5
Fluxograma Para representar graficamente um algoritmo utilizaremos o fluxograma; Um fluxograma é a representação das diferentes etapas de um processo através de elementos gráficos ligados conforme a lógica de programação; Simbologia Símbolo Função Início ou Fim de um algoritmo Processamento geral Decisão 6
Fluxograma EXERCÍCIO 2: Implemente em um fluxograma o algoritmo do cálculo da média de três números a seguir em sua calculadora do exercício anterior; 7
Constantes e variáveis Identificadores: São nomes arbitrários dados as funções, variáveis, constantes. Os identificadores podem ser 1 letras de A à Z, números de 0 à 9 e _ (underline). Não pode começar com número. Exemplos: Temperatura_media Temp _T1 1 Depende de cada compilador 8
Constantes e variáveis Constantes: são elementos que tem um valor fixo, não podendo ser mudados durante a execução do programa; Exemplo: π = 3,1415927... Em vez de escrever toda vez o número podemos nomear uma constante PI = 3,1415927 e durante programa utilizar PI; Variáveis: são elementos que permitem a alteração do seu valor durante a execução do programa. É recomendável que no início do programa seja atribuído um valor inicial a elas, que elas sejam inicializadas; Exemplo: Calcule consumo médio de combustível de um automóvel. CONSUMO= KM/L 9
Constantes e variáveis EXERCÍCIO 3: Para preparar uma salada de frutas, um cozinheiro foi comprar 4 frutas, onde cada fruta tem seu preço e a quantidade que o cozinheiro precisa descrito na tabela a seguir. Monte um algoritmo que calcule quanto ele terá que pagar por cada fruta e o valor total da despesa; Preço por kg(r$) FR1 FR2 FR3 FR4 1,30 1,90 4,50 0,98 Peso (kg) 2,5 1,3 0,6 3,8 Observar a utilização de constantes e variáveis 10
EXERCÍCIO 3: Constantes e variáveis 11
Operadores Operador é um símbolo que faz com que compilador execute alguma operação matemática ou lógica; Os principais operadores são aritméticos, de relação, lógicos e bit a bit; A seguir serão apresentados os principais elementos de cada operador. Este tópico será visto em maiores detalhes na linguagem de programação aplicado diretamente ao compilador utilizado; 12
Operador Aritmético Operadores Operador Operação realizada + Soma - Subtração * Multiplicação / Divisão % Resto da divisão + + Incremento - - Decremento 13
Operadores Operador de Relação: eles testam as relações nas expressões. Seu resultado é 1 se for verdadeiro ou 0 se for falso; Operador Operação realizada = = Igual a! = Não igual a > Maior que < Menor que > = Maior ou igual a < = Menor ou igual a 14
Operadores Exemplos de Operador de Relação: 4 = = 3; retorna 0 - FALSO 3 = = 3; retorna 1 - VERDADEIRO 7 > = 3; retorna 1 VERDADEIRO 4 < = 3; retorna 0 - FALSO 4! = 3; retorna 1 VERDADEIRO 4 > 3; retorna 1 VERDADEIRO 15
Operadores Operadores lógicos: realizam operações lógicas nas expressões. Os operandos são considerados verdadeiros(1) ou falsos(0). Seu resultado é 1 se for verdadeiro ou 0 se for falso; Operador & & Operação realizada AND OR! NOT (Negado) 16
Operadores Exemplos de Operador Lógico: a) (3 > 1) & & (2= = 2); 1 & & 1; resulta em 1 - verdadeiro b) (3 > 7) (2= = 2); 0 1 ; resulta em 1 - verdadeiro c)!{(3 > 1) & & (2= = 2)} ;!{ 1 & & 1};!{ 1} ; - resulta em 0 - falso 17
Operadores Operadores Bit a Bit: eles testam as relações dos operadores nas expressões bit a bit; Operador & Operação realizada AND OR ^ XOR ~ NOT > > SHIFT RIGHT,desloca bits a direita < < SHIFT LEFT, desloca bits a esquerda 18
Operadores Exemplos de Operador Bit a Bit: a) v1= 101101, v2=110011, v3 = v1 & v2; AND v1 = 1 0 1 1 0 1 v2 = 1 1 0 0 1 1 v3 = 1 0 0 0 0 1 b) v1= 110001, v2=010111, v3 = v1 v2; OR v1 = 1 1 0 0 0 1 v2 = 0 1 0 1 1 1 v3 = 1 1 0 1 1 1 19
Operadores Exemplos de Operador Bit a Bit: c) v1= 101101, v2=110011, v3 = v1 ^ v2; XOR v1 = 1 0 1 1 0 1 v2 = 1 1 0 0 1 1 v3 = 0 1 1 1 1 0 d) v1= 110001, v2 = ~ v1 ; NOT v1 = 1 1 0 0 0 1 v2 = 0 0 1 1 1 0 20
Operadores Exemplos de Operador Bit a Bit: e) v1= 000101, v2=v1 << 2; SHIFT LEFT (x 2) = 001010; <<1 v2 = 010100; <<2 f) v1= 010100, v2=v1 >> 2; SHIFT RIGHT ( 2) = 001010; >> 1 v2 = 000101; >> 2 21
Declarações de Controle As declarações controlam o fluxo de execução de um algoritmo, sendo assim de fundamental importância o domínio da sua correta utilização; Em uma linguagem de programação existem diferentes declarações, mas aqui, para um primeiro contato, utilizaremos a declaração de controle condicional; 22
Declarações de Controle Declaração de controle condicional IF...THEN...ELSE SE...ENTÃO...SENÃO Ele é utilizado para executar um determinado comando se uma determinada condição for verdadeira. A opção ELSE não é obrigatória. IF (true) THEN CommandsTrue ELSE CommandsFalse IF (verdadeiro) THEN ComandosVerdadeiro ELSE ComandosFalso 23
Declarações de Controle Para implementação do caso geral no algoritmo utilizamos o losango; As saídas V e F podem ser trocadas Pergunta pergunta? V Comandos Verdadeiro F Comandos Falso 24
Declarações de Controle OPÇÃO 1: Somente verdadeiro; Pergunta pergunta? V Comandos Verdadeiro 25
Declarações de Controle CASO 2: Com verdadeiro e falso o algoritmo fica da forma como já visto anteriormente; Pergunta pergunta? V Comandos Verdadeiro F Comandos Falso 26
Declarações de Controle Exercício 4: Considere um forno onde a temperatura limite seja de 700º C. Se a temperatura atual do forno atingir este valor o alarme deve ser ligado. Elabore um algoritmo que implemente essa situação; 27
Resolução Declarações de Controle A inclusão da etapa de leitura do sensor do forno, considerando ser um sinal analógico, foi colocada aqui porque geralmente requer um tratamento adicional no programa. 28
Declarações de Controle Exercício 5: Na esteira abaixo quando o sensor S1 for acionado o motor M1 deve ser ligado. Implemente um algoritmo que atenda o solicitado. S1 M1 29
Declarações de Controle Resolução A inclusão da etapa de leitura do sensor S1 em muitas situações pode ser considerada redundante, sendo colocada aqui para chamar a atenção ao fato, podendo ser omitida no futuro. 30
Declarações de Controle Exercício 6: Na esteira abaixo quando o sensor S1 for acionado por uma peça o motor M1 deve ser ligado e quando a peça acionar o sensor S2 o motor deve ser desligado. Implemente um algoritmo que atenda o solicitado. S1 S2 M1 31
Resolução Declarações de Controle 32
Declarações de Controle Exercício 7: Na esteira abaixo a peça é colocada na posição dada pelo sensor S1, e com isso o motor M1 é ligado, levando a peça até o sistema de aquecimento. Neste instante o motor M1 é desligado e a peça espera 10 segundos, sendo o motor M1 ligado novamente para levar a peça para o resfriamento, quando então o motor M1 é desligado novamente, aguardando agora 20 segundos neste estágio. Após decorrido o tempo o motor M1 é ligado novamente para levar a peça até a posição dada pelo sensor S4, quando o motor é desligado novamente. Implemente um algoritmo que atenda o solicitado. 33
Resolução Declarações de Controle 34
Declarações de Controle Exercício 8: No sistema abaixo quando uma peça é colocada na posição dada pelo sensor S1 o motor M1 é ligado, levando a peça até o sensor S2 e caindo na caixa de saída. Sabe-se que a caixa suporta até 20 peças. Implemente um contador(cont) para que somente quando somente 20 peças caírem na caixa o motor M1 é desligado e a lâmpada L1 é ligada, alertando ao operador da necessidade de trocar a caixa. Implemente um algoritmo que atenda o solicitado. 35
Resolução Declarações de Controle 36
Declarações de Controle Exercício 9: No exercício anterior foi acrescentado o botão B1 no painel para que quando o operador trocar a caixa ele irá apertar o botão a lâmpada L1 irá apagar, o motor M1 é ligado novamente, o contador é zerado e o ciclo se inicia novamente. 37
Resolução Declarações de Controle 38
Declarações de Controle CASO 3: IF ANINHADO. Quando vários laços são utilizados, um dentro de outro; Pergunta1? N Pergunta2? N Pergunta3? V V V Comandos1 Comandos2 Comandos3 N Comandos4 39
Declarações de Controle Exercício 10: No reservatório da figura abaixo um sensor mede o nível (NIVEL) de líquido existente. Elabore um algoritmo que controle o acionamento das bombas de acordo com a tabela abaixo; NIVEL B1 B2 B3 NIVEL>9 0 0 0 6<NIVEL 9 1 0 0 2<NIVEL 6 1 1 0 NIVEL 2 1 1 1 40
Resolução Declarações de Controle 41
Declarações de Controle Exercício 11: No sistema de seleção da página seguinte quando uma caixa é colocada na posição dada pelo sensor S1 o motor M1 é ligado levando a caixa até o sensor S5, quando então é desligado. Implemente um algoritmo para que de acordo com o tipo de caixa, dada pela figura e identificada no sistema através do acionamento dos sensores S2,S3 e S4, somente a lâmpada correspondente fique ligada. Esta lâmpada somente poderá ficar ligada até a caixa correspondente chegar ao sensor S5. O sistema é contínuo. Implemente também um contador para cada tipo de caixa. 42
Declarações de Controle 43
Resolução Declarações de Controle 44
REFERÊNCIAS Robert Schildt. C completo e total. User s Manual MikroC Fábio Pereira. Programação em C Curso básico de lógica de programação. Unicamp 45