نوشته شده توسط
FastCode
اگر کدتون رو بزارید و توضیح بدید که هر حلقه چقدر اجرا میشه میتونم کمکتون کنم.
کدی که همینجوری روی هوا نوشته بشه معمولا سرعت برنامتون رو خیلی کم میکنه.
در ضمن این سوالات برای دقت ده هزارم ثانیه نبود.
برای دقت اشتباه نکردن بین ساعت و ثانیه بود.
برای اون دقت باید خیلی بیشتر از اینها سوال جواب داد و پارامتر به فرمول اضافه کرد.
من برناممو نمی تونم اینجا قرار بدم ( چون تو محل کارمه!!) ولی کدای یه برنامه کوچیک رو اینجا میزارم ; فقط متغییرهای برنامم و حلقه هاش بیشترن و بازه حلقه ها توسط کاربر مشخص میشه !!
using Microsoft.VisualBasic;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
Public Class Form1
{
private static int sum;
private static int t;
private static int s;
private void BackgroundWorker1_DoWork(System.Object sender, System.ComponentModel.DoWorkEventArgs e)
{
for (int i = 1; i <= 10000; i++) {
for (int j = 1; j <= 10000; j++) {
sum = (sum + i) % j;
}
if (BackgroundWorker1.CancellationPending) {
return;
}
// BackgroundWorker1.ReportProgress(i / 1000)
}
for (int k = 1; k <= 10000; k++) {
t = k + 2 * k;
}
s = t + sum;
}
private void Button1_Click(System.Object sender, System.EventArgs e)
{
Button1.Enabled = false;
Button2.Enabled = true;
ProgressBar1.Value = 0;
ProgressBar1.Visible = true;
BackgroundWorker1.RunWorkerAsync();
}
private void BackgroundWorker1_RunWorkerCompleted(System.Object sender, System.ComponentModel.RunWorkerCompletedEventArgs e)
{
Button1.Enabled = true;
Button2.Enabled = false;
ProgressBar1.Visible = false;
}
private void BackgroundWorker1_ProgressChanged(System.Object sender, System.ComponentModel.ProgressChangedEventArgs e)
{
ProgressBar1.Value = e.ProgressPercentage;
ProgressBar1.CreateGraphics().DrawString(e.Progres sPercentage.ToString() + "%", new Font("Arial", 8.25, FontStyle.Regular), Brushes.Black, new PointF(ProgressBar1.Width / 2 - 10, ProgressBar1.Height / 2 - 7));
}
private void Button2_Click(System.Object sender, System.EventArgs e)
{
BackgroundWorker1.CancelAsync();
}
}