Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- namespace Fishki
- {
- public partial class Form1 : Form
- {
- public bool _flag;
- public int c = 0;
- public Form1 ( )
- {
- InitializeComponent ( );
- this._flag = true;
- }
- private void button_Click ( object sender, EventArgs e )
- {
- Thread th = new Thread( this.run );
- th.Start ( );
- }
- private void output ( int[] data )
- {
- this.c++;
- try
- {
- this.Invoke ( new EventHandler ( delegate
- {
- textBox1.Text += String.Join ( "/", data ) + "\r\n";
- progressText.Text = c.ToString ( );
- Application.DoEvents ( );
- } ) );
- }
- catch
- {
- textBox1.Text += String.Join ( "/", data ) + "\r\n";
- progressText.Text = c.ToString ( );
- Application.DoEvents ( );
- }
- }
- private void run ( )
- {
- this.c = 0;
- int step = ( int ) this.Step.Value; // 10
- int pos = ( int ) this.Position.Value; // 6
- int sum = ( int ) this.Summa.Value; // 1000
- bool rules = this.Rules.Checked; // true or false
- int[] data = new int[ pos ];
- int count = step;
- while ( data.Length == pos )
- {
- // флаг выхода
- _flag = false;
- for ( int j = 0; j < pos; j++ )
- {
- for ( int i = 0; i < pos ; i++ )
- {
- data[ i ] = count;
- }
- int total = sum - ( ( data.Length - 1 ) * count );
- data[ j ] = total;
- // чтобы не получить в массиве отрицательных значений
- if ( total <= 0 )
- {
- // ставим флаг выхода и прерываем первый цикл for
- _flag = true;
- break;
- }
- // распечатываем массив
- output ( data );
- // если отмечена галочка "Сохранять порядок"
- if ( rules )
- {
- // прерываем первый цикл for
- j = pos;
- }
- }
- // если есть флаг выхода, то прерываем цикл while
- if ( _flag )
- {
- break;
- }
- count = count + step;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement