



Quanto custa um carro 0km?
Desenvolva um programa que calcule o preço de um carro, considerando a
inclusão de acessórios e impostos.
Uma fábrica de veículos novos necessita de um sistema para o cálculo do preço
de um automóvel 0 km que varia de acordo com os opcionais que o cliente deseja.
Existem três itens opcionais:
1- Trio elétrico (alarme, vidro elétrico e tranca elétrica);
2- Ar condicionado;
3- Direção hidráulica;
O valor acrescido para cada item está relacionado ao preço básico do carro
da seguinte forma:
1- trio elétrico: 2% do valor de fábrica sem o IPI.
2- ar condicionado: 2% do valor de fábrica sem o IPI.
3- direção hidráulica: 2% do valor de fábrica sem o IPI.
4- completo (trio elétrico, ar condicionado e direção hidráulica): a soma dos
acréscimos isolados.
Os modelos completos estão com uma promoção adicional de
3.5% do valor total, sendo este composto pelo preço de fábrica acrescido dos
opcionais e do valor do IPI.
Você foi escolhido para desenvolver um programa que, a partir do valor de
fábrica do modelo, isto é, sem o IPI, calcule o preço final para venda.
Para a seleção dos acessórios, considere a elaboração de um menu em que a
“opção 0” seja equivalente a “nenhum opcional”.
O IPI dos automóveis é de 8% do valor de fábrica.
Observações:
1- O programa deverá ser executado continuamente até que o usuário indique
que não deseja mais continuar.
2- O programa deverá mostrar o valor total do automóvel, após a opção
escolhida de opcionais pelo usuário.
3- Ao encerrar o programa, este deverá mostrar o total de vezes que cada
opcional foi escolhido.
Sugestão de resposta em Linguagem algorítmica
1 |
Sugestão de resposta em Delphi Console
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 | program CustoCarro; {$APPTYPE CONSOLE} {$R *.res} uses SysUtils, Windows; const // Percentual de IPI PERCENT_IPI = 8; // Percentuais de acrescimo sobre os opcionais TRIO_ELETRICO = 2; // 2% AR_CONDICIONADO = 2; // 2% DIRECAO_HIDRAULICA = 2; // 2% COMPLETO = TRIO_ELETRICO + AR_CONDICIONADO + DIRECAO_HIDRAULICA; // Desconto consedigo ao modelo completo DESCONTO_MODELO_COMPLETO = 3.5; var vValorVeiculoFabrica, vPrecoFinal, vDesconto : Currency; vOpcao, vContinua : Integer; vTrio, vArCond, vDirecao : Integer; begin try vTrio := 0; vArCond := 0; vDirecao := 0; repeat SetConsoleTitle('Algoritmo 00001 - Algoritmos com laços. Show Delphi.'); Writeln('Algoritmo 00001 - Algoritmos com laços. Show Delphi.'); Write(#10#13 + 'Informe o valor de fábrica: '); Readln(vValorVeiculoFabrica); vOpcao := -1; while not (vOpcao in [0..7]) do begin Writeln(#13 + 'Selecione o opcional'); Writeln('0 - Nenhum'); Writeln('1 - Trio Eletrico'); Writeln('2 - Ar condicionado'); Writeln('3 - Direção hidráulica'); Writeln('4 - Trio Eletrico + Ar condicionado'); Writeln('5 - Trio Eletrico + Direção hidráulica'); Writeln('6 - Ar condicionado + Direção hidráulica'); Writeln('7 - Completo'); Write(#13 + 'Opção selecionada: '); Read(vOpcao); Writeln('--------------------------'); case vOpcao of 0 : Writeln('Nenhum opcional selecionado!'); 1 : begin Writeln('1 - Trio Eletrico'); Inc(vTrio); end; 2 : begin Writeln('2 - Ar condicionado'); Inc(vArCond); end; 3 : begin Writeln('3 - Direção hidráulica'); Inc(vDirecao); end; 4 : begin Writeln('4 - Trio Eletrico + Ar condicionado'); Inc(vTrio); Inc(vArCond); end; 5 : begin Writeln('5 - Trio Eletrico + Direção hidráulica'); Inc(vTrio); Inc(vDirecao); end; 6 : begin Writeln('6 - Ar condicionado + Direção hidráulica'); Inc(vArCond); Inc(vDirecao); end; 7 : begin Writeln('4 - Completo'); Inc(vTrio); Inc(vArCond); Inc(vDirecao); end; else Writeln('Opção inválida!' + #13#13); end; Writeln(''); end; // Verificando os acrescimos dos adicionais vPrecoFinal := vValorVeiculoFabrica; case vOpcao of 1 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * TRIO_ELETRICO / 100); 2 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * AR_CONDICIONADO / 100); 3 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * DIRECAO_HIDRAULICA / 100); 4 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * (TRIO_ELETRICO + AR_CONDICIONADO) / 100); 5 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * (TRIO_ELETRICO + DIRECAO_HIDRAULICA) / 100); 6 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * (AR_CONDICIONADO + DIRECAO_HIDRAULICA) / 100); 7 : vPrecoFinal := vPrecoFinal + (vPrecoFinal * COMPLETO / 100); end; // Colocando o valor de IPI vPrecoFinal := vPrecoFinal + (vPrecoFinal * PERCENT_IPI / 100); // Consedendo o desconto se for modelo completo vDesconto := 0; if (vOpcao = 4) then begin vDesconto := (vPrecoFinal * DESCONTO_MODELO_COMPLETO) / 100; vPrecoFinal := vPrecoFinal - vDesconto; end; Writeln('Preço de final: ' + FormatFloat('##0.00', vPrecoFinal)); Write(#13 + 'Deseja continuar? (1 para sim - 0 para não: '); Readln(vContinua); until vContinua = 0; Writeln(#13 + 'Vezes Trio Eletrico: ', vTrio); Writeln('Vezes Ar condicionado: ', vArCond); Writeln('Vezes Direção hidráulica: ', vDirecao); Writeln(#13 + 'Enter para sair...'); Readln; except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end. |
Sugestão de resposta em C/C++
1 |