PROGRAMAÇÃO - PRG Introdução aos algoritmos de programação Prof. Rodrigo Coral 1 Prof. Rodrigo Coral 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; 2 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; 3 Algoritmos • EXERCÍCIO 1: – Escreva um algoritmo para obter a média de três números a seguir em sua calculadora; Lembre-se que qualquer um que não conheça sua calculadora deverá ser capaz de realizar essa atividade sem que dúvidas surjam. MEDIA = 12 + 6 + 9 3 4 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 5 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 6 Fluxograma • EXERCÍCIO 2: – Implemente um algorítimo que poderia ser utilizado pelo computador para calcular a média aritmética de duas avaliações de um aluno. Ao final o programa deverá ser capaz de fornecer a informação se o aluno está aprovado ou reprovado. A média para aprovação é de 6,0; – Use indicadores de variáveis para esse exercício 7 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 8 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; 9 Operadores • Operador Aritmético Operador Operação realizada + * / % ++ -- Soma Subtração Multiplicação Divisão Resto da divisão Incremento Decremento 10 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 11 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 12 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) 13 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 14 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 15 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 16 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 17 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 18 Programação estruturada • Em 1960 Böhm e jacopini provaram que todo algorítimo computacional pode ser descrito em termos de apenas três padrões de passos, denominados de estruturas de controle, que são passos básicos que auxiliam na construção dos programas: • Sequência; • Seleção; • Repetição; 19 Programação estruturada • Sequência: estrutura que permite indicar dois ou mais passos que devem ser executados sequencialmente, na ordem que são especificados; 20 Programação estruturada • Condição: permite indicar dois ou mais passos que devem ser executados de forma mutuamente exclusiva, dependendo de uma determinada condição; V ? F 21 Programação estruturada • Repetição: permite indicar um ou mais passos que devem ser executados repetidamente, dependendo de uma determinada condição; V ? F 22 Programação estruturada • 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 e o forno desligado. Elabore um algoritmo que implemente essa situação; 23 Declarações de Controle • Resolução Variáveis: Tforno – temperatura do forno Início In Ler Tforno V Tforno >= 700 F Ligar Alarme Desliga o forno Ler Tforno 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. Fim In 24 Declarações de Controle Início In F Alarme == 1? Variáveis-entrada: Tforno; S_Forno; Variáveis-sáida: Alarme; Forno; S_Forno == 1? V F Ligar forno? V V Ler Tforno S_Forno = 1 Desligar alarme? V Alarme = 0 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. F F F Tforno >= 700? V F Alarme = 1 Finalizar programa? V Forno = 0 Fim In 25 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 26 Declarações de Controle • Exercício 5: Implemente um algoritmo em programação estruturada na qual é possível converter temperaturas em graus celcius em graus fahrenheit ou Kelvin 27 Declarações de Controle • Resolução 28 Declarações de Controle • Exercício 6: 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. 29 Declarações de Controle • Resolução 30 Declarações de Controle • Exercício 7: 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. 31 Declarações de Controle • Resolução 32 Declarações de Controle • Exercício 8: 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. 33 Declarações de Controle • Resolução 34 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 35 Declarações de Controle • Exercício 9: 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 36 Declarações de Controle • Resolução 37 Declarações de Controle • Exercício 10: 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. 38 Declarações de Controle 39 Declarações de Controle • Resolução 40 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 41