C# ekvations problem!
*Problemet löst!*
Lösing:
if (bignum > 200)
{
a = bignum / 200;
while ((int)(200 - (bignum / a)) < 0)
{
a += 0.1;
}
}
else a = 200 / bignum;
else
{
g.FillRectangle(bitbrush, (rad * 40), (int)(200 - (calculated[rad] / a)), 20, 2000); //Detta behöver jag hjälp med!
}
Tjenare alla sweclockare, har stött på ett problem med mitt nyskapade program. Det programmet gör är att:
Slumpmessigt slå ett visst antal tärningsslag (som användaren matar in). Den sparar alla värden i en array t.ex. ifall den slår 1 på tärningen så sparas det att den slagit 1 en gång. När den har slumpat igenom så många gånger användaren matade in så skriver den ut hur många ettor, tvåor, treor osv den slog. Man kan därefter rita ut ett diagram på det hela.
Det är här jag har stött på ett mindre problem. Så länge värdet på den högst slagna siffran är under 200 funkar det prima. Men blir den större än 200 ritar den inte ut det. Jag har därför gjort två stycken ekvationer för hur den ska rita ut diagrammet. Ett ifall värdet är under 200 och ett ifall det är över 200.
För att klargöra det ännu mer: Jag behöver hjälp med hur ekvationen på den andra ska se ut
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 Inlämningsuppgift_8_del_3
{
public partial class Form1 : Form
{
int[] calculated = new int[7];
int slag, inmatat;
Random randomtal = new Random();
Graphics g;
Bitmap bm = new Bitmap(300, 200);
SolidBrush bitbrush = new SolidBrush(Color.Purple); //pensel
bool randomizedone = false;
bool drawbm = false;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e) //"slår tärning" random, och sparar resultat i calculated[slag]
{
if (drawbm)
{
g.Clear(Color.White);
pictureBox1.Image = bm;
}
Array.Clear(calculated, 1, 6);
textBox1.Clear();
if (textBox2.TextLength > 0)
{
inmatat = Convert.ToInt32(textBox2.Text);
for (int x = 1; x <= inmatat; x++)
{
slag = randomtal.Next(1, 7);
calculated[slag]++;
}
for (int i = 1; i < 7; i++)
{
textBox1.Text += calculated[i] + " st " + i + ":or" + Environment.NewLine;
switch (i)
{
case 1:
label2.Text = Convert.ToString(calculated[i]);
break;
case 2:
label3.Text = Convert.ToString(calculated[i]);
break;
case 3:
label4.Text = Convert.ToString(calculated[i]);
break;
case 4:
label5.Text = Convert.ToString(calculated[i]);
break;
case 5:
label6.Text = Convert.ToString(calculated[i]);
break;
case 6:
label7.Text = Convert.ToString(calculated[i]);
break;
}
}
randomizedone = true;
}
else MessageBox.Show("You have to insert a number in the black textbox!");
}
private void button2_Click(object sender, EventArgs e) //Rita ut diagrammet
{
drawbm = true;
if (randomizedone)
{
g = Graphics.FromImage(bm);
int bignum = calculated[1];
double a;
for (int biggest = 1; biggest < 6; biggest++)
{
if (bignum < calculated[biggest + 1])
{
bignum = calculated[biggest + 1];
}
}
if (textBox2.Text.Length <= 3)
{
a = 200 / bignum;
}
else a = bignum / 200;
for (int rad = 1; rad < 7; rad++)
{
if (textBox2.Text.Length <= 3)
{
g.FillRectangle(bitbrush, (rad * 40), (200 - (calculated[rad] * (int)a)), 20, 2000); // x, y, width, height
}
else
{
g.FillRectangle(bitbrush, (rad * 40), (200 - (calculated[rad] / (int)a)), 20, 2000); //Detta behöver jag hjälp med!
}
}
pictureBox1.Image = bm;
}
else MessageBox.Show("You have to randomize first!");
}
}
}
Är något otydligt så skriv gärna vad!
CPU:AMD 7950X3D UV (Noctua NH-D15) GPU: Powercolor 7900XTX Red Devil UV MINNE:32gb 5600mhz CL 32-36-36-36 MODERKORT:ASUS x670e PRIME NÄTAGG:Gigabyte 1000w SSD: Samung 980 PRO 2TB m.2, SK hynix PC401 512gb m.2, Samsung 860 EVO 500GB, Samsung SM871b 512GB, Samsung 830 256GB, Samsung 840 PRO 256GB CHASSI: Fractal Design Define R5 Titanium LJUDKORT: ASUS Xonar Essence STX HÖRLURAR: Xtrfy H1 OS: Windows 11 pro