DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
voltar

PARA QUEM GOSTA DE DELPHI

Calcule o preço de venda dos veículos de uma empresa…

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
 
Facebook Comments Box
  • InfusTec
  • 3.272 views
  • 0 comentários
  • 22 de maio de 2015

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

Deixe um comentário


Posts Relacionados - Continue Aprendendo

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados