Prévia do material em texto
Unidade São Gabriel Aluna: Júlia Sabrina Pereira Brisch 1. Escrever um algoritmo para ler três números inteiros A, B e C e imprimir o maior deles. 2. Dados três valores inteiros positivos: A, B, e C, verificar se eles podem ser valores dos lados de um triângulo e, se formarem um triângulo, determinar o seu tipo: triângulo equilátero (3 lados iguais), triângulo isósceles (2 lados iguais), ou triângulo escaleno (três lados diferentes). 3. Algoritmo para cálculo do valor do desconto de imposto de renda (IRPF). Considere a tabela a seguir: Base de cálculo (R$) Alíquota (%) Parcela a deduzir do IRPF (R$) Até 1.903,98 – – De 1.903,99 até 2.826,65 7,5 142,80 De 2.826,66 até 3.751,05 15,0 354,80 De 3.751,06 até 4.664,68 22,5 636,13 Acima de 4.664,68 27,5 869,36 Para cada um dos problemas: Problema 01 a) Elaborar um algoritmo para solucioná-lo. public static void main(String[] args) { MaiorNumero(1, 3, 2); } 1- public static void MaiorNumero(int a, int b, int c) { 2- if (a > b) 3- System.out.print("O maior valor é: " + a); 4- else if (b > c) 5- System.out.print("O maior valor é: " + b); 6- else 7- System.out.print("O maior valor é: " + c); } b) Elaborar o grafo de fluxo de controle para o algoritmo. c) Calcular a complexidade ciclomática, V(G), do grafo. Complexidade ciclómatica = arestas – nós + 2 * qtd componentes conectado M = 6 – 7 + (2 * 3)= 5 d) Elaborar casos de teste para a cobertura de instruções/comandos nós Predicados dados {1,2,3} A > b (3,1) {1,4,5} B > c (3,1) {1,6,7} C > a (3,1) e) Elaborar casos de teste para a cobertura de decisões. nós Predicados dados {(1,2), (2,3)} A > b (3,1) {(1,4), (4,5)} B > c (3,1) {(1,6), (6,7)} C > a (3,1) Problema 02 a) Elaborar um algoritmo para solucioná-lo. public static void main(String[] args) { 1- Triangulo(7, 3, 2); } 2-public static void Triangulo(int a, int b, int c) { 3-if (a - b < c && a - c < b && b - c < a) { 4- if (a == b || b == c || c == a) { 5- if (a == b && b == c) { 6- System.out.print("Triângulo Equilátero"); 7- } else { 8- System.out.print("Triângulo Isósceles"); } } 9- else if (a != b && b != c && c != a) { 10- System.out.print("Triângulo Escaleno"); } } 11- else { 12- System.out.print("Não é triangulo"); } } b) Elaborar o grafo de fluxo de controle para o algoritmo. c) Calcular a complexidade ciclomática, V(G), do grafo. Complexidade ciclómatica = arestas – nós + 2 * qtd componentes conectado M = 11 – 12 + (2 * 2) = 3 d) Elaborar casos de teste para a cobertura de instruções/comandos nós Predicados dados {1,2,11,12} a - b > c && a - c > b && b - c > a (7,3,2) {1,2,3,9,10} a - b < c && a - c < b && b - c < a , a != b && b != c && c != a (3,4,5), (3,4,5) {1,2,3,4,5,6} a == b || b == c || c == a, a == b && b == c (3,3,3), (3,3,2) {1,2,3,4,7,8} a ==b || b == c (3,2,2) e) Elaborar casos de teste para a cobertura de decisões. nós Predicados dados {(1,2), (2,11),(11,12)} a - b > c && a - c > b && b - c > a (7,3,2) {(1,2), (2,3),(3,9),(9,10)} a - b < c && a - c < b && b - c < a , a != b && b != c && c != a (3,4,5), (3,4,5) {(1,2), (2,3),(3,4),(4,5),(5,6)} a == b || b == c || c == a, a == b && b == c (3,3,3), (3,3,2) {(1,2), a == b || b == c (3,2,2) (2,3),(3,4),(4,7),(7,8)} Problema 03 a) Elaborar um algoritmo para solucioná-lo. public static void main(String[] args) { 1- CalculaIRPF(1903.99); } 2- public static void CalculaIRPF(double valor) { 3- double result = 0; 4- if (valor <= 1903.98) 5- System.out.print("Isento de imposto"); 6- else if (valor > 1903.98 || valor <= 2826.65) { 7- result = valor * 0.075; 8- System.out.print("Valor do imposto: R$" + result); 9- } else if (valor > 2826.65 || valor <= 3751.05) { 10- result = valor * 0.15; 11- System.out.print("Valor do imposto: R$" + result); 12- } else if (valor > 3751.05 || valor <= 4664.68) { 13- result = valor * 0.225; 14- System.out.print("Valor do imposto: R$" + result); 15- } else if (valor > 4664.68) { 16- result = valor * 0.275; 17- System.out.print("Valor do imposto: R$" + result); } } b) Elaborar o grafo de fluxo de controle para o algoritmo. c) Calcular a complexidade ciclomática, V(G), do grafo. Complexidade ciclómatica = arestas – nós + 2 * qtd componentes conectado M = 16 – 17 + (2 * 4) = 5 d) Elaborar casos de teste para a cobertura de instruções/comandos nós Predicados dados {1,2,3,4,5} <= 1903.98 (1800.00) {1,2,3,6,7,8} valor > 1903.98 || valor <= 2826.65 (2000.00) {1,2,3,9,10,11} valor > 2826.65 || valor <= 3751.05 (3000.10) {1,2,3,12,13,14} valor > 3751.05 || valor <= 4664.68 (4000.30) {1,2,3,15,16,17} valor > 4664.68 (5000.00) e) Elaborar casos de teste para a cobertura de decisões. nós Predicados dados {(1,2),(2,3),(3,4),(4,5)} <= 1903.98 (1800.00) {(1,2),(2,3),(3,6),(6,7),(7,8)} valor > 1903.98 || valor <= 2826.65 (1904.00) {(1,2),(2,3),(3,6),(6A,7),(7,8)} valor > 1903.98 || valor <= 2826.65 (2826.65) {(1,2), (2,3),(3,9),(9,10),(10,11)} valor > 2826.65 || valor <= 3751.05 (3000.30) {(1,2), (2,3),(3,9),(9A,10),(10,11)} valor > 2826.65 || valor <= 3751.05 (3751.05) {(1,2),(2,3),(3,12),(12,13),(13,14)} valor > 3751.05 || valor <= 4664.68 (3752.30) {(1,2),(2,3),(3,12),(12A,13),(13,14)} valor > 3751.05 || valor <= 4664.68 (4664.68) {(1,2),(2,3),(3,15),(15,16),(16,17)} valor > 4664.68 (5000.00)