Valaki segítene a C# programommal? (többi lent)
Annyit kéne tudnia alapból, hogy egy szabadon megadott alsó és felső intervallumon belül generál 50db számot amiket aztán kiír és kiszámolja az átlagot.
Gondoltam egy kicsit továbbfejlesztem ellenőrzött bekéréssel, szóval, hogy akkor ha a minimum érték nagyobb mint a maximum akkor egy hibaüzenetet írjon ki illetve ha nincs vagy csak egy érték van megadva akkor arról is tájékoztasson. És itt van a gond, valamiért az utóbbi nem működik.
Eddig ezekkel próbálkoztam de semelyik sem működött.
1.
if (textBox1.Text.Length==0 || textBox2.Text.Length==0)
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
2.
if (textBox1.Text="" || textBox2.Text="")
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
3.
if (textBox1.Text.Trim() == "" || textBox2.Text.Trim() == "")
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
4.
if (String.IsNullOrEmpty(textBox1.Text.Trim()) || String.IsNullOrEmpty(textBox2.Text.Trim()))
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
Ezen kívül más nem jut eszembe, így is az utolsót netről néztem de semelyik sem működik sajnos. Ha kipróbálom akkor egyszerűen kidob a program, hogy ilyen helyzet nincs kezelve.
Előre is köszönöm!
A GyK nem engedte elküldeni a pastebin-es linket, mert hogy tiltott, sajnos, ezért bemásolom ide.
Az átlagnál azért 50-el oszt, mert a feladat pontosan 50 random számot kért :)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
int min = int.Parse(textBox1.Text);
int max = int.Parse(textBox2.Text);
Random R=new Random();
int osszeg = 0;
int atlag;
int randomszam;
if (textBox1.Text="" || textBox2.Text="") //Itt a gond
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
else if (min>max)
{
MessageBox.Show("Az alsó érték nem lehet nagyobb a felső értéknél!");
}
else
{
listBox1.Items.Clear();
for (int i = 0; i < 50; i++)
{
randomszam = R.Next(min, max + 1);
osszeg = osszeg + randomszam;
atlag = osszeg / 50;
listBox1.Items.Add(randomszam);
label1.Text = "A generált számok átlaga: " + atlag;
}
}
}
}
}
if (textBox1.Text="" || textBox2.Text="")
Két egyenlőség jel kell, ha feltételt vizsgálsz. Egynél értéket adsz neki.
Gondolom nem fordult a program mivel a feltételben "=" van "==" helyett. Fordulás után viszont rögtön exception-t kapsz a parse-olásnál abban az esetben ha legalább az egyik textbox üres. Ez azért van mert a null vagy empty értéket akartál parseolni. Ha így rakod be, akkor már jobb lesz:
private void button1_Click(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(textBox1.Text.Trim()) || String.IsNullOrEmpty(textBox2.Text.Trim())) //Itt a gond
{
MessageBox.Show("Nem vagy kevés értéket adott meg");
}
else
{
int min = int.Parse(textBox1.Text);
int max = int.Parse(textBox2.Text);
Random R = new Random();
int osszeg = 0;
int atlag;
int randomszam;
if (min > max)
{
MessageBox.Show("Az alsó érték nem lehet nagyobb a felső értéknél!");
}
else
{
listBox1.Items.Clear();
for (int i = 0; i < 50; i++)
{
randomszam = R.Next(min, max + 1);
osszeg = osszeg + randomszam;
atlag = osszeg / 50;
listBox1.Items.Add(randomszam);
label1.Text = "A generált számok átlaga: " + atlag;
}
}
}
}
Viszont ha pl. szöveget írsz be valamelyik textbox-ba, akkor megintcsak széthullik. Nézz utána pl. az int.tryParse metódusnak, hogy ezt ki tudd küszöbölni.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!