Prévia do material em texto
INSTITUTO DE CIÊNCIA E TECNOLOGIA – ICT DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA UC: Lógica de Programação – 2015 Propostos por Aron Ifanger Lista de Exercícios 1 Escreva cada um dos algoritmos abaixo utilizando fluxograma e pseudo- código, realizando os testes de mesa para as entradas fornecidas. Nota da P3 1 - Suponha que o cálculo da média do aluno seja feito da seguinte forma: 𝑃1 + 𝑃2 + 𝑃3 3 O aluno será aprovado se tiver nota maior que seis. Próximo ao final do semestre, os alunos já fizeram as duas primeiras provas (P1 e P2). Escreva um algoritmo que determine a nota mínima da P3 para que o aluno seja aprovado sem necessidade de fazer o exame. (Entradas: P1 = 5, P2 = 6) Resposta: Queremos calcular a nota P3, basta isolar a variável de saída. 6 ⩽ 𝑃1 + 𝑃2 + 𝑃3 3 ⇔ 18 ⩽ 𝑃1 + 𝑃2 + 𝑃3 ⇔ 18 − 𝑃1 − 𝑃2 ⩽ 𝑃3 De acordo com a expressão acima, a nota deve ser maior ou igual a 18 – P1 – P2, portanto esta é a nota mínima. Pseudo-código: NotaDaP3 (P1, P2) { Ler(P1, P2); P3 = 18 – P1 – P2; Imprimir (P3); } Fluxograma: Testes de mesa: P1 P2 P3 5 6 5 6 7 Saída 7 2 - Suponha que o cálculo da média do aluno seja feito da seguinte forma: 𝑃1 + 2𝑃2 + 3𝑃3 6 O aluno será aprovado se tiver nota maior que seis. Próximo ao final do semestre, os alunos já fizeram as duas primeiras provas (P1 e P2). Escreva um algoritmo que determine a nota mínima da P3 para que o aluno seja aprovado sem necessidade de fazer o exame. (Entradas: P1 = 3, P2 = 6) Resposta: Queremos calcular a nota P3, basta isolar a variável de saída. 6 ⩽ 𝑃1 + 2𝑃2 + 3𝑃3 6 ⇔ 36 ⩽ 𝑃1 + 2𝑃2 + 3𝑃3 ⇔ 36 − 𝑃1 − 2𝑃2 ⩽ 3𝑃3 ⇔ 12 − 𝑃1 + 2𝑃2 3 ⩽ 𝑃3 De acordo com a expressão acima, a nota deve ser maior ou igual a 12 – (P1+ P2)/3, portanto esta é a nota mínima. Pseudo-código: NotaDaP3 (P1, P2) { Ler(P1, P2); P3 = 12 – (P1+ P2)/3; Imprimir (P3); } Fluxograma: Teste de mesa: P1 P2 P3 3 6 3 6 9 Saída 9 3 - Suponha que o cálculo da média do aluno seja feito da seguinte forma: ( 𝑃1+2𝑃2+3𝑃3 6 )𝑓𝑟𝑒𝑞 O aluno será aprovado se tiver nota maior que seis. Próximo ao final do semestre, os alunos já fizeram as duas primeiras provas (P1 e P2). Escreva um algoritmo que determine a nota mínima da P3 para que o aluno seja aprovado sem necessidade de fazer o exame. (Entradas: P1 = 5, P2 = 7) Obs: A frequência (freq) é a quantidade de aulas em que o aluno esteve presente, dividida pela quantidade de aulas dadas. Como o semestre ainda não terminou, considere que se o aluno não faltar mais, sua frequência será de 0,8. Considere também que o aluno não irá faltar. Resposta: Queremos calcular a nota P3, basta isolar a variável de saída. 6 ⩽ ( 𝑃1 + 2𝑃2 + 3𝑃3 6 )0.8 ⇔ 61 0.8⁄ ⩽ 𝑃1 + 2𝑃2 + 3𝑃3 6 ⇔ 61.25 × 6 ⩽ 𝑃1 + 2𝑃2 + 3𝑃3 ⇔ 62.25 − 𝑃1 − 2𝑃2 3 ⩽ 𝑃3 De acordo com a expressão acima, a nota deve ser maior ou igual a 12 – (P1+ 2P2)/3, portanto esta é a nota mínima. Pseudo-código: NotaDaP3 (P1, P2) { Ler(P1, P2); P3 = (6^2.25 – P1 – 2P2)/3; Imprimir (P3); } Fluxograma: Teste de mesa: P1 P2 P3 5 7 5 7 12.45 Saída 12.45 Obs: Este aluno não conseguirá passar sem exame. Problema da calculadora 4 - Escreva um algoritmo que calcule a multiplicação de dois números, sem usar a operação de multiplicação. (Entradas: 7, 9) Resposta: Ideia: 9 + 9 + ...(7 vezes)... + 9 Pseudo-código: Multiplicacao (a, b) { Real resultado; Ler(a, b); resultado = 0; enquanto (b>0) faça { resultado = resultado + a; b = b – 1; } Imprimir (resultado); } Fluxograma: Teste de mesa: a b resultado 7 9 0 7 8 7 7 7 14 7 6 21 7 5 28 7 4 35 7 3 42 7 2 49 7 1 56 7 0 63 Saída 63 5 - Escreva um algoritmo que calcule a soma de dois números, sem utilizar a operação de soma. (Entradas: 10, 15) Resposta: Ideia: resultado = - a - b; imprime(-resultado); Pseudo-código: Soma (a, b) { Real resultado; resultado = - a - b; Imprimir (-resultado); } Fluxograma: Testes de mesa: a b resultado 10 15 0 10 15 -25 Saída -(-25) 6 - Escreva um algoritmo que calcule a multiplicação de dois números, utilizando apenas a operação de subtração. (Entradas: 3, 4) Resposta: Ideia: -a - a - a - … (b vezes)... - a Pseudo-código: Multiplicacao2 (a, b) { Real resultado; Ler(a, b); resultado = 0; enquanto (b<0) faça { resultado = resultado - a; b = b – 1; } Imprimir (-resultado); } Fluxograma: Teste de mesa: a b resultado 3 4 0 3 3 -3 3 2 -6 3 1 -9 3 0 -12 Saída -(-12) Operadores mod e div: O operador mod representa o resto de uma divisão de inteiros e o operador div representa a parte inteira do quociente de uma divisão de inteiros. Exemplos: 5 mod 2 = 1 8 mod 3 = 2 9 mod 5 = 4 5 div 2 = 2 8 div 3 = 2 9 div 5 = 1 7 - Escreva um algoritmo que calcule o resto da divisão, sem utilizar o operador módulo. (Entradas: 75, 23) 8 - Escreva algoritmo que calcule a parte inteira do quociente utilizando o operador mod. (Entradas: 62, 18) 9 - Escreva um algoritmo que calcule o mod usando div. (Entradas: 4, 18) Problema da divisão decimal 10 - Escreva um algoritmo que calcule a divisão (não exata) de dois inteiros com três casas decimais, utilizando apenas variáveis inteiras e tenha como saída duas variáveis inteiras “parte_inteira” e “parte_decimal”. (Entradas: 43, 13) Ex: 8/3 = 2.666... saída: parte_inteira = 2, parte_decimal = 666 10/4 = 2.25 saída: parte_inteira = 2, parte_decimal = 250 101/100 = 1.01 saída: parte_inteira = 1, parte_decimal = 10 Imposto de renda Considere a tabela de alíquotas abaixo: Tabela de alíquotas do Imposto de Renda 2015: Valor Base (R$) Alíquota (%) Dedução (R$) Até 1.787,77 N/A 0 De 1.787,78 á 2.679,29 7,5% 134,08 De 2.679,30 á 3.572,43 15% 335,03 De 3.572,44 á 4.463,81 22,5% 602,96 Acima 4.463,81 27,5% 826,15 11 - Escreva um algorítmo que calcule a dedução do imposto dado um salário de entrada. (Entrada: 2700) Problemas 12 - João tem três barris. No barril A, que está vazio, cabem 8 litros. No barril B, 5. No barril C, 3 litros. Que deve ele fazer para deixar os barris A e B com 4 litros cada e o C vazio? (fonte: livro "Lógica de programação" do Forbellone) 13 – Três senhoras - dona Branca, dona Rosa e dona Violeta – passeavam pelo parque quando dona Rosa disse: - Não é curioso que estejamos usando vestidos nas cores branco, rosa e violeta, embora nenhuma de nós esteja usando um vestido com a cor igual ao próprio nome? - Uma simples coincidência – respondeu a senhora com o vestido violeta. Qual a cor do vestido de cada senhora? (fonte: livro "Lógica de programação" do Forbellone) Lógica Operadores lógicos: Símbolo Descrição == igual < menor <= menor igual > maior >= maior igual != diferente && E || OU ! Negação F Falso V Verdadeiro 14 - Calcule o resultado das expressões lógicas abaixo: a) 2*4 == 24/3 b) 15 mod 4 < 19 mod 6 c) (3*5) div 4 <= (3^2)/0.5 d) 2+ (8 mod 7) >= 3*6-15 e) 2<5 && 15/3==5 f) 2<5 || 15/3==5 g) F || 20 div (18/3) != (21/3) div 2 h) ! V || 3^2/3 < 15 – (35 mod 7) i) ! (5 != 10/2 || V && 2-5 > 5-2 || V j) 2^4 != 4 || 2+3*5/3 mod 5 < 0