O código é bem simples, o valor do litro do álcool é dividido pelo valor do litro da gasolina, se o resultado for maior ou igual a 0,7 compensa abastecer com gasolina, caso contrário, abasteça com álcool.
1: using System;
2: using System.Text;
3: using System.Windows.Forms;
4:
5: namespace AlcoolGasolina
6: {
7: public partial class frmPrincipal : Form
8: {
9: public frmPrincipal()
10: {
11: InitializeComponent();
12: }
13:
14: /// <summary>
15: /// Método de validação da entrada. Considera inválidos strings vazias e
16: /// valores menores ou iguais a zero.
17: /// </summary>
18: /// <param name="valor">O valor de entrada, formato string</param>
19: /// <returns>True para válido, False para inválido.</returns>
20: private bool isValid(string valor)
21: {
22: // Não deve ser uma string vazia ou nula
23: if (String.IsNullOrEmpty(valor))
24: return false;
25: try
26: {
27: // deve ser um valor numérico válido
28: double num = Convert.ToDouble(valor);
29:
30: // não deve ser menor ou igual a zero
31: if (num > 0)
32: return true;
33: else
34: return false;
35: }
36: catch (Exception)
37: {
38: return false;
39: }
40: }
41:
42: /// <summary>
43: /// Verifica se os valores digitados são válidos e, em caso positivo,
44: /// faz o cálculo e apresenta a mensagem para o usuário informando
45: /// qual é mais viável abastecer, álcool ou gasolina. Se os valores
46: /// não forem válidos para o cálculo, será exibida uma mensagem de
47: /// alerta, informando que os valores de entrada são inválidos.
48: /// </summary>
49: /// <param name="sender"></param>
50: /// <param name="e"></param>
51: private void btnCalcular_Click(object sender, EventArgs e)
52: {
53: if (isValid(txtAlcool.Text.Trim()) && isValid(txtGasolina.Text.Trim()))
54: {
55: double alcool = Convert.ToDouble(txtAlcool.Text.Trim());
56: double gasolina = Convert.ToDouble(txtGasolina.Text.Trim());
57:
58: double resultado = alcool / gasolina;
59: if (resultado >= 0.7)
60: lblResultado.Text = "Abasteça com Gasolina";
61: else
62: lblResultado.Text = "Abasteça com Álcool";
63: }
64: else
65: {
66: MessageBox.Show("Valores de entrada inválidos.",
67: "Erro",
68: MessageBoxButtons.OK,
69: MessageBoxIcon.Exclamation,
70: MessageBoxDefaultButton.Button1);
71: }
72: txtAlcool.Text = string.Empty;
73: txtGasolina.Text = string.Empty;
74: }
75:
76: /// <summary>
77: /// Fecha a aplicação.
78: /// </summary>
79: private void mnuSair_Click(object sender, EventArgs e)
80: {
81: Application.Exit();
82: }
83:
84: /// <summary>
85: /// Menu "Sobre...", exibe uma mensagem com o nome da aplicação,
86: /// nome do autor e endereço do blog do autor.
87: /// </summary>
88: private void mnuSobre_Click(object sender, EventArgs e)
89: {
90: StringBuilder mensagem = new StringBuilder("Álcool ou Gasolina\n\n");
91: mensagem.Append("Por Rogério Bragil\n\nBlog do Bragil - www.bragil.net");
92: MessageBox.Show(mensagem.ToString(),
93: "Sobre",
94: MessageBoxButtons.OK,
95: MessageBoxIcon.None,
96: MessageBoxDefaultButton.Button1);
97: }
98: }
99: }