PROGRAMAÇÃO - PRG ALGORITMOS Prof. Stefano 1 Prof. Stefano • • • • • • • 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 ser1 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; FR1 FR2 FR3 FR4 Preço por kg(R$) 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 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; 11 Operadores • Operador Aritmético Operador Operação realizada + * / % ++ -- Soma Subtração Multiplicação Divisão Resto da divisão Incremento Decremento 12 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 13 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 14 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) 15 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 16 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 17 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 18 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 19 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 20 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; 21 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 22 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 23 Declarações de Controle • OPÇÃO 1: Somente verdadeiro; Pergunta pergunta ? V Comandos Verdadeiro 24 Declarações de Controle • OPÇÃO 1: 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; 25 Declarações de Controle • Resolução Início In Ler Tforno V Tforno >= 700 Ligar Alarme F Fim In 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. 26 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 27 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 28 Declarações de Controle • Resolução Início In Ler S1 S1 == 1 F M1= 0 V M1= 1 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. Fim In 29 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 30 Declarações de Controle • Resolução 31 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. 32 Declarações de Controle • Resolução 33 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. 34 Declarações de Controle • Resolução 35 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. 36 Declarações de Controle • Resolução 37 Declarações de Controle • CASO 3: IF ANINHADO. Quando vários laços são utilizados, um dentro de outro; V Pergunta1 ? Comandos1 N V Comandos2 Pergunta2 ? N V Pergunta3 ? Comandos3 N Comandos4 38 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 39 Declarações de Controle • Resolução 40 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. 41 Declarações de Controle 42 Declarações de Controle • Resolução 43 REFERÊNCIAS • • • • • Robert Schildt. C completo e total. User´s Manual MikroC Fábio Pereira. Programação em C Notas de aula do Prof. Stefano Curso básico de lógica de programação. Unicamp 44