Jump to content
Fernatic Dias

Registar temperatura, média e maior valor

Recommended Posts

Fernatic Dias

Olá tenho que fazer uma aplicação para a escola e tenho que desenvolver uma pequena aplicação que registe uma temperatura para cada capital de cada país da UE e tenho que ter a média de temperatura e a maior. Pos a maior já tenho só me falta mesmo a média e tou um pouco atrapalhado se alguem me conseguir ajudar agradeço a minha aplicação encontra-se asim:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace Temperatura_de_Capitais
{
   public partial class Form1 : Form
   {
       int[] vect = new int[27];
       String[] vecc = new string[27];
       int i = 0;
       public Form1()
       {
           InitializeComponent();
       }
       public int temperatura(int a,int b)
       {
           int t = 0;

           t = Convert.ToInt32(textBox1.Text);

           return t;
       }

       private void button1_Click(object sender, EventArgs e)
       {

           if (comboBox1.Text == "" && textBox1.Text == "")
           {
               MessageBox.Show("Não colocou o país/capital ou a temperatura");
           }
           else
           {
               vecc[i] = comboBox1.Text;
               vect[i] = Convert.ToInt32(textBox1.Text);
               i += 1;
               textBox1.Clear();

           }

       }

       private void Form1_Load(object sender, EventArgs e)
       {

       }

       private void button3_Click(object sender, EventArgs e)
       {

       }

       private void button2_Click(object sender, EventArgs e)
       {
           int max = 0;
           int indice = 0;
           for (int i = 0; i < 27; i++)
           {
               if (max < vect[i])
               {
                   max = vect[i];
                   indice = i;
               }

           }
           textBox3.Text = Convert.ToString(vecc[indice])+" "+Convert.ToString(max);
       }

       private void button4_Click(object sender, EventArgs e)
       {
              [b]Aqui tenho que fazer a média para a apresentar na TextBox2[/b]
       }       
   }
}

Obrigado :thumbsup:

Share this post


Link to post
Share on other sites
softklin

A média aritmética obtém-se somando todos os valores, e divides pelo número de amostras. Basicamente, tens um ciclo que percorre o teu vector de temperaturas, soma cada um para uma variável (soma), e ao mesmo tempo, conta quantos valores já leu (valores). No final basta dividires a soma pelo número de valores lidos.

Para este caso, aconselho-te a usar valores que suportem casas decimais para a média, por exemplo, o float.


Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Share this post


Link to post
Share on other sites
cffm

Só um detalhe, mas isto vai-te dar problemas. Deve ser ou (||) e não e (&&).

if (comboBox1.Text == "" && textBox1.Text == "") //Assim só é true se os dois estiverem vazios!
            {
                MessageBox.Show("Não colocou o país/capital ou a temperatura");
            }
            else 
            {
                vecc[i] = comboBox1.Text;
                vect[i] = Convert.ToInt32(textBox1.Text);
                i += 1;
                textBox1.Clear();
            
            }

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Bem-Vindo ao Fórum

Isto deve de fazer o que pretendes

private void button4_Click(object sender, EventArgs e)
        {
            double media = 0;
            double soma = 0;
            int registos = 0;

            for (int i = 0; i < 27; i++)
            {
                if (vect[i] != 0) // Se o valor for 0, é porque o vector não está preenchido, e mesmo que o utilizador tenha posto uma temperatura de 0, não faz diferença, porque é 0
                {
                    soma += vect[i]; // Faz a soma de todas as temperaturas
                    registos += 1; // Conta o numero de registos de temperaturas
                }
                             
            }

            media = soma / registos; // Divide a soma total pelos numeros de registos de temperaturas
           textBox4.Text = media.ToString();
        }  


A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Share this post


Link to post
Share on other sites
Fernatic Dias

Obrigado a todos por me ajudares :) :) :P

Se eu colocar // ai ele irá ficar a comentar! Eu já o testei e deu todo certonão dá erros...

Só mais uma duvida eu tenho um botão para guardar os senhores(as) sabem algum código que dê para eu guardar em Txt que guarde a maior temperatura e para guar a média??

Obrigado

Share this post


Link to post
Share on other sites
kongas

Olá Fernatic

Pelo que vejo, é um trabalho para a escola, e bom bom para desenvolveres capacidades de te safares é procurar... Dou-te uma dica:

procura no google por StreamWriter e por StreamReader associado ao C#.

Se precisares de ajuda, com certeza vai haver aqui muita gente para te ajudar!

Abraço,

(um formador :) )

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.