Prova 01 - 2019 - B - Respostas.
alg Wednesday, April 10, 2019
1 // Prova 01 - 2019 - [Link]
2
3 // --------------------------------------------------------------------------------------
4 // Questão 1
5 // Implemente um algoritmo e faça o fluxograma de um algoritmo que realize
6 // a multiplicação de A até B.
7 // Não é necessário tratar os casos de o usuário entrar com os dados errados.
8 // Importante! A e B podem ser negativos também.
9 // --------------------------------------------------------------------------------------
10 Início
11 inteiro: A, B, i;
12 inteiro: produtorio;
13
14 // Interage com o usuário
15 imprime("Produtório de A até B");
16 imprime("Digite o valor de A:");
17 leia(A);
18 imprime("Digite o valor de B:");
19 leia(B);
20
21 // Inicializa o valor do produtório
22 produtorio = 1;
23
24 // Soma de A até B
25 PARA i DE A ATE B FACA
26 produtorio *= i;
27 FIM-PARA
28
29 // Mostra o resultado do produtório
30 imprime("O somátoria de A até B é: " + produtorio);
31 Fim
32
33 // --------------------------------------------------------------------------------------
34 // Questão 2
35 // Implemente um algoritmo que leia o valor de todos os itens da conta, se o pagamento é
36 // em dinheiro ou não, e imprima o total da conta e o valor do desconto (R$ 0,00 se não
37 // for em dinheiro). Em dinheiro, desconto de 10%.
38 // --------------------------------------------------------------------------------------
39 Início
40 booleano: emDinheiro;
41 real: valor, somaItens, valorDesconto;
42
43 // Interage com o usuário
44 imprime("Entre com os valores dos itens.")
45 imprime("Valor 0 encerra a entrada")
46
47 // Inicializa os valores.
48 valor = 0.0;
49 somaItens = 0.0;
50
51 REPITA
52 somaItens+=valor;
53 imprime("Digite o valor do item: R$");
-1-
Prova 01 - 2019 - B - [Link] Wednesday, April 10, 2019
54 leia(valor);
55 ATE valor != 0;
56
57 // Mostra o resultado da conta
58 imprime("Valor total: R$" + somaItens);
59
60 // Solicita se o pagamento será em dinheiro
61 imprime("O pagamento será em dinheiro?")
62 leia(emDinheiro);
63
64 // Calcula o desconto
65 SE emDinheiro ENTAO
66 valorDesconto = somaItens * 0.1;
67 SENAO
68 valorDesconto = 0.0;
69 FIM-SE
70
71 // Imprime o valor do desconto
72 imprime("Valor do desconto: R$" + valorDesconto);
73
74 // Imprime o total a ser pago
75 imprime("Valor total com desconto: R$" + (somaItens - valorDesconto));
76 Fim
77
78 // --------------------------------------------------------------------------------------
79 // Questão 3
80 // Implemente um algoritmo que leia uma data (dia, mês e
81 // ano) e calcule quantos anos, meses e dias se passaram desde 14 de julho
82 // de 1789. Como não vimos o tipo “Data”, use inteiro para ler as três
83 // informações. Considere que a data apresentada deve ser constante no seu
84 // algoritmo.
85 // --------------------------------------------------------------------------------------
86 Início
87 constante inteiro: DIA_X = 14, MES_X = 7, ANO_X = 1789;
88 inteiro: dia, mes, ano;
89 inteiro: nDias, nMeses, nAnos;
90 inteiro: nDiasX, nDiasData, nDiasDiferenca;
91
92 // Interage com o usuário
93 imprime("Entre com a data a ser comparada.");
94 imprime("Digite o dia [1:31]");
95 leia(dia);
96 imprime("Digite o mês [1:12]");
97 leia(mes);
98 imprime("Digite o ano");
99 leia(ano);
100
101 // Calcula quantos dias se passaram para ambas as datas
102 nDiasX = DIA_X + 30 * MES_X + 365 * ANO_X;
103 nDiasData = dia + 30 * mes + 365 * ano;
104 nDiasDiferenca = nDiasData - nDiasX;
105
106 // Calcula o número de dias, meses e anos
-2-
Prova 01 - 2019 - B - [Link] Wednesday, April 10, 2019
107 // @IMPORTANTE É possível fazer com MOD também.
108 nAnos = nDiasDiferenca / 365;
109 nDiasDiferenca-= (nAnos * 365);
110 nMeses = nDiasDiferenca / 12;
111 nDiasDiferenca-= (nMeses * 12);
112 nDias = nDiasDiferenca;
113
114 // Mostra o tempo passado
115 imprime("Já se passaram " + nAnos + " ano, " + nMeses + " meses e " + nDias +
116 " dias desde 14/7/1789.");
117
118 Fim
119
-3-