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)