Копипаст

Копипаст | Учим C# зная basic

Учим C# зная basic

Цель данной темы: разместить в интернет программы
по каким возможно быстро выучить C# зная basic

Никому никогда ничего не рекомендую и всегда пишу только про себя

Программы созданы мной на основе моей главной программы
где запрограммирован мой алгоритм в нескольких вариантах
и теперь программирую на C# сразу без перевода из basic

? Почему C# & basic?
Потому что компилируемые и есть онлайн компиляторы
и компилятор C# включен в Windows 7 Framework

Программы проверены: работают и каждый может проверить
и лично я компилирую и стартую через простейший bat

Квадратное уравнение qb64

' quadratic equation QB64 DAV 

INPUT "INPUT A"; A
INPUT "INPUT B"; B
INPUT "INPUT C"; C

D = B ^ 2 - 4 * A * C
IF D < 0 THEN PRINT "D<0 ": END

PRINT "OTBET: "
PRINT "D ="; D

X1 = (-B + SQR(D)) / (2 * A)
X2 = (-B - SQR(D)) / (2 * A)

PRINT "X1 ="; X1
PRINT "X2 ="; X2
END
Квадратное уравнение C#
// quadratic equation C# DAV 
using System;
using System.Text;
using System.IO;
namespace DAV
{
    class Program
        {
    static void Main(string[] args)
    {
Console.Write("INPUT A: ");
long a = Convert.ToInt32(Console.ReadLine());
Console.Write("INPUT B: ");
long b = Convert.ToInt32(Console.ReadLine());
Console.Write("INPUT C: ");
long c = Convert.ToInt32(Console.ReadLine());

long d = (b * b - 4 * a * c);
Console.WriteLine("OTBET: ");
Console.Write("D = ");
Console.WriteLine(d);

var x1 = (-b + Math.Sqrt(d)) / (2 * a);
var x2 = (-b - Math.Sqrt(d)) / (2 * a);

Console.Write("X1 = ");
Console.WriteLine(x1);
Console.Write("X2 = ");
Console.WriteLine(x2);

        Console.ReadKey();
        }
    }
}
'Угадай число

RANDOMIZE TIMER
s = INT(RND * 100)
t = 0

10 PRINT: t = t + 1:
INPUT "your variant"; a

IF a < s THEN PRINT "need MORE": GOTO 10
IF a > s THEN PRINT "need less": GOTO 10
PRINT "win by"; t; "steps"
END
//Угадай число
using System;
using System.Text;
namespace DAV 
{
	class Program
{
	static void Main(string[] args) 
	{
Random rand = new Random();
int s = rand.Next(100);
int t = 0;

dav:
Console.WriteLine();
t++;

Console.Write("your variant ");
string d = Console.ReadLine();
int a = Convert.ToInt32(d);

if(a > s)
	{
	Console.WriteLine("need less");
	goto dav;
	}
else if(a < s)
	{
	Console.WriteLine("need MORE");
	goto dav;
	}
Console.Write("win by ");
Console.Write(t);
Console.Write(" steps"); 
		Console.ReadKey();
		}
	}
}
'Угадывает 1 из 1000000
RANDOMIZE TIMER
t=0:h1=0:h2=10^6
c=INT(RND*h2) 'comp
h=INT(RND*h2) 'human
10 t=t+1: PRINT t; c; h;
IF h<c THEN PRINT "MORE": a=h: h=INT((h+h2)/2): h1=a: GOTO 10
IF h>c THEN PRINT "less": a=h: h=INT((h1+h)/2): h2=a: GOTO 10
PRINT "win by "; t; " steps"
END
//Угадывает 1 из 1000000000 за =log(10^9;2) за 30 ходов <br />// <a href="http://rextester.com/JRGX29275">rextester.com/JRGX29275</a> // онлайн проверка 
using System;
using System.Text;
namespace DAV 
{
	class Program
	{
	static void Main(string[] args) 
	{
int h2 = 1000000000;//or 500
int h1 = 0;
Random rand = new Random();
int c = rand.Next(h2); //computer
int h = rand.Next(h2); //human or h2/2; 
int t = 0;

dav: 
t++;
Console.WriteLine();
Console.Write(t);
Console.Write("  ");
Console.Write©;
Console.Write("  ");
Console.Write(h);
Console.Write("  ");

if(h < c)
	{
	Console.Write("MORE");
	int a = h; 
	h = (h + h2) / 2; 
	h1 = a; 
	goto dav;
	}
else if(h > c)
	{
	Console.Write("less");
	int a = h; 
	h = (h1 + h) / 2; 
	h2 = a; 
	goto dav;
	}
Console.Write("win by ");
Console.Write(t);
Console.Write(" steps"); 
		Console.ReadKey();
		}
	}
}
Учим C# зная basic
в реальности картинка анимационная
' псевдо 3д рельеф под 45
' с разными высотами и массив

SCREEN 12
RANDOMIZE TIMER
DIM a(12, 12)

FOR t = 1 TO 12

    FOR x = 1 TO 12
        FOR y = 1 TO 12
            a(x, y) = INT(RND * 20)
    NEXT: NEXT
    CLS
    FOR y = 1 TO 12
        FOR x = 1 TO 11
            LINE (50 + 20 * x + 20 * y, 400 - 20 * y - a(x, y))-(50 + 20 * (x + 1) + 20 * y, 400 - 20 * y - a(x + 1, y)), y
            FOR z = 1 TO 2 * 10 ^ 5: NEXT ' SLEEP 1
    NEXT: NEXT

    FOR x = 1 TO 12
        FOR y = 1 TO 11
            LINE (50 + 20 * x + 20 * y, 400 - 20 * y - a(x, y))-(50 + 20 * (x + 1) + 20 * y, 400 - 20 * (y + 1) - a(x, y + 1)), x
            FOR z = 1 TO 2 * 10 ^ 5: NEXT ' SLEEP 1
    NEXT: NEXT

    SLEEP 1

NEXT

END
Учим C# зная basic
в реальности картинка анимационная
//daRELIEF.cs
using System; 
using System.Drawing;
using System.Windows.Forms;

class daRELIEF: Form
	{
	public static void Main() 
	{
	Application.Run(new daRELIEF());
	}
	public daRELIEF()
		{
Text = "daRELIEF";
BackColor = System.Drawing.Color.Blue;
ForeColor = System.Drawing.Color.Red;
ResizeRedraw = true;
Width = 600;
Height = 360;
		}
	protected override void OnPaint(PaintEventArgs dan)
		{
int[,] a = new int[22, 22];
Random rand = new Random();
Graphics da = dan.Graphics;
SolidBrush BlueBrush = new SolidBrush(Color.Blue);

for (int k = 1; k < 22; k++) //da:
	{	
// массив высот
	for (int x = 1; x <=12; x++)
	for (int y = 1; y <=12; y++)
	a[x,y]=rand.Next(20);

da.FillRectangle(BlueBrush, 20, 20, 550, 300);

// паралл Х красный
	for (int y = 1; y <=12; y++)
	for (int x = 1; x <=11; x++)
da.DrawLine(new Pen(Color.Red, x/2), new Point(50+20*x+20*y, 300-20*y-a[x,y]), new Point(50+20*(x+1)+20*y, 300-20*y-a[x+1,y]));
	
// паралл У красный
	for (int x = 1; x <=12; x++)
	for (int y = 1; y <=11; y++)
da.DrawLine(new Pen(Color.Red, y/2), new Point(50+20*x+20*y, 300-20*y-a[x, y]), new Point(50+20*(x+1)+20*y, 300-20*(y+1)-a[x, y+1]));

System.Threading.Thread.Sleep(1000);
	Array.Clear(a, 0, 22);
	}//k	goto da;
	}
}
Учим C# зная basic
в реальности картинка анимационная
соединяет все 8 точек между собой
классическая школьная задача
и для вычисления суммы всех длин
используется корень из 1-й программы
про квадратное уравнение
//DAV.cs
using System; 
using System.Drawing;
using System.Windows.Forms;

class DAV: Form
	{
	public static void Main()
	{
	Application.Run(new DAV());
	}
	public DAV()
		{
		Text = "DAV";
BackColor = SystemColors.WindowText;
ForeColor = SystemColors.Window;
ResizeRedraw = true;
Width = 600;
Height = 360;
		}
	protected override void OnPaint(PaintEventArgs dan)
		{
int[] x = new int[10];
int[] y = new int[10];
Random rand = new Random();

	for (int i = 1; i <=8; i++)
		{
x[i]=50+rand.Next(400);
y[i]=50+rand.Next(200);
		}
	Graphics da = dan.Graphics;
	Pen pen = new Pen(ForeColor);

for (int i = 1; i <=8; i++)
da.DrawEllipse(new Pen(Color.Magenta, i), x[i]-10, y[i]-5, 20, 10);

for (int i = 1; i <= 7; i++)
			{
for (int j = i+1; j <= 8; j++)
				{
	Graphics dav = dan.Graphics;
dav.DrawLine(new Pen(Color.Red, i), new Point(x[i], y[i]), new Point(x[j], y[j]));
System.Threading.Thread.Sleep(200);
				} // j
			}//i
System.Threading.Thread.Sleep(5000);
	Array.Clear(x, 0, 10);
	Array.Clear(y, 0, 10);
	}
}
параметрическая анимация
Учим C# зная basic
в реальности картинка анимационная
кот перемещается и кивает головой и дышит

//cat.cs
using System; 
using System.Drawing;
using System.Windows.Forms;

class cat: Form
	{
	public static void Main()
	{
	Application.Run(new cat());
	}
	public cat()
		{
		Text = "cat";
BackColor = System.Drawing.Color.Blue;
ForeColor = System.Drawing.Color.Red;
	ResizeRedraw = true;
	Width = 600;
	Height = 360;
		}
	protected override void OnPaint(PaintEventArgs dan)
		{
Pen pen = new Pen(ForeColor);
SolidBrush BlueBrush = new SolidBrush(Color.Blue);
Graphics dav = dan.Graphics;

	for (int k = 1; k <=5; k++)
	for (int x = -50; x <=50; x++)
	{
int y=0;
if (x< 50) y=-x/5;
if (x< 25) y= x/5;
if (x<-25) y=-x/5;
if (x<-50) y= x/5;

dav.FillRectangle(BlueBrush, 0, 120, 600, 200);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+195, 225, 10, -80);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+200, 200, 100, 50);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+280, y+170, 50, 50);
 
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+290, y+190, 10, 10);//x/5, x/5
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+294, y+194, 2, 2);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+310, y+190, 10, 10);//x/5, x/5
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+314, y+194, 2, 2);

dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+280, y+205, 25, 10);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+310, y+205, 25, 10);

dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+280, y+190), new Point(x*k+280, y+160));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+290, y+175), new Point(x*k+280, y+160));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+330, y+190), new Point(x*k+330, y+160));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+320, y+175), new Point(x*k+330, y+160));

dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+210, 240), new Point(x*k+210, 280));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+220, 230), new Point(x*k+220, 290));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+280, 230), new Point(x*k+280, 290));
dav.DrawLine(new Pen(Color.Magenta, 3), new Point(x*k+290, 240), new Point(x*k+290, 280));

dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+205, 275, 10, 10);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+215, 285, 10, 10);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+275, 285, 10, 10);
dav.DrawEllipse(new Pen(Color.Magenta, 3), x*k+285, 275, 10, 10);

System.Threading.Thread.Sleep(10);
}
}
}

типовое оформление для онлайн компилятора
и для форумов: структура сдвинута влево 
и есть заголовок для сохранения и для поиска 
// name.cs // for copypaste filename cs bat exe
// https://rextester.com/BXWC6536 // adress online 
using System;
using System.Text;
namespace name
{
	class name
	{
static void Main(string[] args) 
	{
int[,] a = new int[22,22];
Random rand = new Random();
	for (int x = 1; x <=12; x++)
	for (int y = 12; y >=1; y--)
a[x,y]=rand.Next(10);
	for (int x = 1; x <=12; x++)
	{
	for (int y = 12; y >=1; y--)
		{
Console.Write(a[x,y]);
Console.Write("  ");
		}
Console.WriteLine();
	}
Console.ReadKey();
	}
	}
}
Со временем понял про оформление циклов короче
однако предыдущие программы не переписываю
а также есть наработки про текстовые строки
и про запись/считывание и есть главная программа

Далее исследую Windows окна и формы
соблюдающие принцип 1cs=1exe
чтоб компилировались без сред

Сборники тысяч программ 

http://rosettacode.org/wiki/Category:C_sharp
http://rosettacode.org/wiki/Category:QB64

Никому никогда ничего не рекомендую и всегда пишу только про себя

★4
23 комментария
Я не про но чёта на сколько я помню (у меня в этом вечные заморочки)
Надо объявлять переменные в C# жеж?
Width = 600;
разве не
int Width = 600;
avatar
порывшись в интернете испытав 100 графических 
включились из программ аж 2: маятник и диагонали 

данный фрагмент лучшего найденного образца 
поэтому использую не думая

C#_за_час.mp4 55 МБ: просмотр пол-часа
_https://cloud.mail.ru/public/p495/7eiY8sbwB
ссылка без счётчика про начало C# видео
переведено в тёмный фон методом инверсии и искажения
юмористическая картинка показывает почему важно:
basic не воспринимают всерьёз 




 

//c# строковые функции и операции со строками
//c# из цифры строка и из строки цифра и код символа
//c# составление строк и разделение строк и сравнение строк
// rextester.com/RGTBXB16905
using System;
using System.Text;
namespace DAV
{
class Program
{
static void Main(string[] args)
{
string s = "";
Random rand = new Random();

for (int i = 1; i <= 64; i++)
{
int a = rand.Next(9);
string dop = (a.ToString());
s=s+dop;
Console.WriteLine(s);
}

int b = 2+rand.Next(8);
Console.WriteLine();
Console.WriteLine(«Место „);
Console.WriteLine(b);

if (s[b-1] == s[b])
Console.WriteLine(“Знаки Равны „);
else Console.WriteLine(“Знаки НЕ равны „);

Console.WriteLine(s[b-1]);
Console.WriteLine(s[b]);

string d1 =(s[b-1].ToString());
string d2 =(s[b].ToString());
string d = d1+d2;
Console.WriteLine(“Вместе „);
Console.WriteLine(d);
Console.WriteLine();
System.Threading.Thread.Sleep(5000);

string q = “»;
int sum = 0;
int k=3;
for (int i = 0; i <= s.Length-k; i++)
{
string e=(s.Substring(i,k));
Console.WriteLine(e);

string f=(s.Substring(i, 1));
q = q+f;
sum = sum + int.Parse(f);
Console.WriteLine(f);
Console.WriteLine(s);
Console.WriteLine(q);
Console.Write(«Сумма цифр „);
Console.WriteLine(sum);
Console.WriteLine();
System.Threading.Thread.Sleep(500);
}
for (int i = 121; i >= 32; i--)
Console.Write(Convert.ToChar(i));
Console.ReadKey();
System.Threading.Thread.Sleep(5000);
}
}
}


онлайн проверка 
https://rextester.com/RGTBXB16905
Давно не видел такого дикого трэша — goto, программы даже без разбивки на функции, не говоря о классах… как будто в школьный кружок 80х вернулся )))
avatar
goto для знающих basic и нормально для начинающих
и все могут в своих темах показать свои программы

особенно пригодные для онлайн компилятора
rextester.com

и соблюдающие принцип 1cs=1exe
чтоб компилировались без сред

а вместо goto всё больше использую циклы
или флаг для совпадения 2-х условий
но слишком сложные конструкции не заинтересовали



зато программы угадывающие квадриллион без goto:

C# Миллиард угадывает 1 из 1'000'OOO'ooo
за =log(10^9;2) за 30 ходов

using System; using System.Text; //Milliard.cs
namespace DANILIN
{ class Program
    { static void Main(string[] args)
    { Random rand = new Random();int t=0;
int h2=100000000; int h1=0; int f=0;
int comp = rand.Next(h2);
int human = rand.Next(h2);
while (f<1)
{ Console.WriteLine();Console.Write(t);
Console.Write(" ");Console.Write(comp);
Console.Write(" ");Console.Write(human);
if(comp < human)
{ Console.Write(" MORE");
int a=comp; comp=(comp+h2)/2; h1=a; }
else if(comp > human)
{ Console.Write(" less");
int a=comp; comp=(h1+comp)/2; h2=a;}
else {Console.Write(" win by ");
Console.Write(t); Console.Write(" steps");f=1;}
t++; }}}}

rextester.com/DYVZM84267

 

import random #quadrillion.py
h1=0; h2=10**16;t=0; f=0
c = random.randrange(0,h2) #comp
h = random.randrange(0,h2) #human
while f<1:
    print(t,c,h)
    if h<c:
        print('MORE')
        a=h
        h=int((h+h2)/2)
        h1=a
    elif h>c:
        print('less')
        a=h
        h=int((h1+h)/2)
        h2=a
    else:
        print('win by', t, 'steps')
        f=1
    t+=1

rextester.com/JUNBW90242


qbasic qb64 milliard


h1=0: h2=10^3: t=1: f=0: Randomize Timer 'daMilliard.bas
human = Int(Rnd*h2) 'human
comp = Int(Rnd*h2) 'comp
While f < 1
Print t; «human =»; human; "     comp ="; comp;
If comp < human Then
Print " MORE": a=comp: comp=Int((comp+h2)/2): h1=a
  Else If human < comp Then
  Print " less": a=comp: comp=Int((h1+comp)/2): h2=a
    Else If human=comp Then
    Print " win by "; t; " steps": f=1
End If: End If: End If: t = t + 1
Wend: End

Результаты для диапазона от 1 до 100

1    40    11    MORE
2    40    55    less
3    40    33    MORE
4    40    44    less
5    40    38    MORE
6    40    41    less
7    40    39    MORE
8    40    40    win by 8 steps

Логарифм Интегралович, сообщу по секрету — в ряде языков вообще нет goto. Именно для того, чтобы «начинающие» сразу учились писать код правильно.
avatar
пока неизвестно насколько зависит от goto
и от возможности нескольких команд в 1-й строке

но программы на basic короче в разы
а другие языки вытянутые вертикально




Логарифм Интегралович, потому что Вы писать на них не умеете. Кроме того, возможности «других языков» примерно в бесконечность раз шире, чем бейсика.
avatar
использую для компиляции name.bat
в каталоге FrameWork где csc.exe
и другие сообщают у них стартует

csc.exe /nologo name.cs
pause

но неизвестно стартуют ли оконные с кнопками 
и с элементами без среды программирования
аватары из параметрического мультфильма



и возможно нарисовать в qb & C#
и параметрически анимировать

другие программы C# & basic есть в теме

Русская сортировка половинами: человеческая сортировка быстрее в 4 раза и МЫ

smart-lab.ru/blog/copypaste/489819.php

и накануне распечатал мини книжку из данных программ
чтоб проверить: могут ли другие изучить
сначала подписывая комментарии в строки вручную

гистограмма




// rand file write read cursor pause time
// случайные файл запись чтение курсор пауза время
using System;
using System.Text;
using System.IO;
namespace DAV
{     class Program
    {     static void Main(string[] args)
    { var start = DateTime.Now;
Random rand = new Random();
var outFile = new StreamWriter(«dav.txt»);

for (int i = 1; i <= 64; i++)
{ int a = 3+rand.Next(7);
outFile.WriteLine(a);
}
outFile.Close();

var inpFile = new StreamReader(«dav.txt»);

Console.Clear();
for (int i = 1; i <= 64; i++)
{ int b = Convert.ToInt32(inpFile.ReadLine());
Console.SetCursorPosition(i+5,5);
Console.Write(b);

for (int j = 1; j <= b; j++)
{ Console.SetCursorPosition(i+5,16-j);
Console.Write("*");
System.Threading.Thread.Sleep(100);
} }
inpFile.Close();
var finish = DateTime.Now;
Console.SetCursorPosition(30,17);
Console.Write(finish-start);
Console.ReadKey();
}}}

 

 

квадратное уравнение
с расчётами при каждом изменении A B C
и с записью результатов на диск



//winquall.cs
using System;
using System.Windows.Forms;
using System.IO;

class winQUAll: Form
{
winQUAll()
{
Text= «winQUAll Например A=6 B=7 C=2»;
BackColor = System.Drawing.Color.Green;
ForeColor = System.Drawing.Color.Yellow;
ResizeRedraw = true;
Width = 400;
Height = 250;
{
var buttons = new Button();
buttons.Text= «SAVE»;
buttons.Dock = DockStyle.Bottom;
    var zc = -7;
    var labelc = new Label();
    var buttonc = new Button();
    buttonc.Text= «C+3»;
    buttonc.Dock = DockStyle.Bottom;
var zb = 12;
var labelb = new Label();
var buttonb = new Button();
buttonb.Text= «B-1»;
buttonb.Dock = DockStyle.Bottom;
    var za = 2;
    var labela = new Label();
    var buttona = new Button();
    buttona.Text= «A+1»;
    buttona.Dock = DockStyle.Bottom;
var labelx = new Label();
    var d = (zb * zb — 4 * za * zc);
    double x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    double x2 = (-zb — Math.Sqrt(d)) / (2 * za);
    var labeld = new Label();
labeld.Text= «d= » + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= «X1=» + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(80, 37);
Controls.Add(labeld);
Controls.Add(labelx);
    labelc.Text= «C=» + zc + ".....";
    labelc.Location = new System.Drawing.Point(20, 100);
Controls.Add(labelc);
buttonc.Click += delegate
    {
    zc = zc+3;
    d = (zb * zb — 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb — Math.Sqrt(d)) / (2 * za);
labeld.Text= «d= » + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= «X1=» + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(80, 37);
labelc.Text= «C=» + zc + "  ...";
labelc.Location = new System.Drawing.Point(20, 100);
    };
Controls.Add(buttonc);
Controls.Add(labeld);
Controls.Add(labelx);
    labelb.Text= «B=» + zb + ".....";
    labelb.Location = new System.Drawing.Point(20, 80);
Controls.Add(labelb);
buttonb.Click += delegate
    {
    zb--;
    d = (zb * zb — 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb — Math.Sqrt(d)) / (2 * za);
labeld.Text= «d= » + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= «X1=» + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(80, 37);
labelb.Text= «B=» + zb + "  ...";
labelb.Location = new System.Drawing.Point(20, 80);
    };
Controls.Add(buttonb);
Controls.Add(labeld);
Controls.Add(labelx);
    labela.Text= «A=» + za + ".....";
    labela.Location = new System.Drawing.Point(20, 60);
Controls.Add(labela);
buttona.Click += delegate
    {
    za++;
    d = (zb * zb — 4 * za * zc);
    x1 = (-zb + Math.Sqrt(d)) / (2 * za);
    x2 = (-zb — Math.Sqrt(d)) / (2 * za);
labeld.Text= «d= » + d +"   X1= " + x1 + "   X2= " + x2 + "  ";
labeld.Dock = DockStyle.Top;
x1 = (Math.Truncate(x1 * 100))/100;
x2 = (Math.Truncate(x2 * 100))/100;
    //labeld.Location = new System.Drawing.Point(80, 15);
labelx.Text= «X1=» + x1 + " X2=" + x2 + "  ";
labelx.Location = new System.Drawing.Point(80, 37);
labela.Text= «A=» + za + "  ...";
labela.Location = new System.Drawing.Point(20, 60);
    };
Controls.Add(buttons);
buttons.Click += delegate
    {
var outFile = new StreamWriter(«dan.txt»);
outFile.WriteLine(za);
outFile.WriteLine(zb);
outFile.WriteLine(zc);
outFile.WriteLine(d);
outFile.WriteLine(x1);
outFile.WriteLine(x2);
outFile.Close();
    };
Controls.Add(buttona);
Controls.Add(labeld);
Controls.Add(labelx);
    };
}
    static void Main()
    {
Application.Run(new winQUAll());
    }
}

квадратное уравнение
и формы: окна и кнопки



//poleQUA.cs
using System;
using System.Windows.Forms;
namespace poleQUA
{
    public class Program
    {
    static void Main()
    {
Application.Run(new poleQUA());
    }
    }
    class poleQUA: Form
    {
    TextBox textBoxA, textBoxB, textBoxC;
    Button buttonD;
public poleQUA()
    {                       
    textBoxA=new TextBox();
    textBoxB=new TextBox();
    textBoxC=new TextBox();
textBoxA.Location = new System.Drawing.Point(150, 50);
textBoxB.Location = new System.Drawing.Point(100, 100);
textBoxC.Location = new System.Drawing.Point(50, 150);
    this.Controls.Add(textBoxA);
    this.Controls.Add(textBoxB);
    this.Controls.Add(textBoxC);
var labelq = new Label();
labelq.Text = «Input A= 6 & B= 7 & C= 2»;
labelq.Dock = DockStyle.Top;
Controls.Add(labelq);
    var labelA = new Label();
    labelA.Text = «A= »;
    labelA.Location = new System.Drawing.Point(130, 52);
    Controls.Add(labelA);
var labelB = new Label();
labelB.Text = «B= »;
labelB.Location = new System.Drawing.Point(80, 102);
Controls.Add(labelB);
    var labelC = new Label();
    labelC.Text = «C= »;
    labelC.Location = new System.Drawing.Point(30, 152);
    Controls.Add(labelC);
buttonD = new Button();   
    buttonD.Location = new System.Drawing.Point(100, 200);
    buttonD.Text = «D= x1= x2=»;
    buttonD.Click+=buttonD_Click;
    this.Controls.Add(buttonD);
    }
private void buttonD_Click(object sender, EventArgs e)
        {
    int za = Convert.ToInt32(textBoxA.Text);
    int zb = Convert.ToInt32(textBoxB.Text);
    int zc = Convert.ToInt32(textBoxC.Text);
double d = (zb * zb — 4 * za * zc);
double x1 = (-zb + Math.Sqrt(d)) / (2 * za);
double x2 = (-zb — Math.Sqrt(d)) / (2 * za);
    string dd = (d.ToString());
    string xx1 = (x1.ToString());
    string xx2 = (x2.ToString());
    string m = «D= » + dd + "  x1= " + xx1 + "  x2= " + xx2;
        {
MessageBox.Show(m);
        }
    }
    }  
}


осенние программы: разности между элементами

<code>// razn.cs 
using System;
using System.Text;
namespace razn_dav
{
    class Program
    {
static int n = 6;
static void Main(string[] args)
        {
int[] d = new int[n];
Random rand = new Random();

for (int i = 1; i < n; i++)
	{
d[i] = rand.Next(1, 36);
Console.Write(d[i]);
Console.Write(" ");
	}
Console.WriteLine();
Console.WriteLine();

for (int i = 1; i < n-1; i++)
	for (int j = i+1; j < n; j++)
		Console.WriteLine(d[j] - d[i]);

Console.WriteLine();
Console.WriteLine("Press any key");
Console.ReadKey();
        }
    }
}</code>

rextester.com/HOR30031

результаты: 26 31 2 23 15
5 -24 -3 -11 -29 -8 -16 21 13 -8

<code>// poparno.cs 
using System;
using System.Text;
namespace razn_dav
{
    class Program
    {
static int n = 6;
static void Main(string[] args)
        {
int[] d = new int[n];
Random rand = new Random();

for (int i = 1; i < n; i++)
	{
d[i] = rand.Next(1, 36);
Console.Write(d[i]);
Console.Write(" ");
	}

Console.WriteLine();
Console.WriteLine();

for (int i = 1; i < n-1; i++)
	for (int j = i+1; j < n; j++)
	{
if (d[i] > d[j])
	{var temp = d[j];d[j] = d[i];d[i] = temp;}
	}
            
for (int i = 1; i < n; i++)
	{
Console.Write(d[i]);
Console.Write(" ");
	}

Console.WriteLine();
Console.WriteLine();

for (int i = 1; i < n-1; i++)
Console.WriteLine(d[i+1] - d[i]);

Console.WriteLine();
Console.WriteLine("Press any key");
Console.ReadKey();
        }
    }
}</code>

rextester.com/YTEV67279

результаты:
9 19 12 6 24
6 9 12 19 24
3 3 7 5

особенность программ:
легко переделать ряд строк в 1 строку вида:
{var temp = b; b = a; a = temp;}

и применяется комбинаторика

qbasic игра угадай число: 1 строка

1 IF Russia = 0 THEN Russia = 2222: RANDOMIZE TIMER: num = INT(RND * 100) + 1: GOTO 1 ELSE IF Russia <> 0 THEN INPUT n: IF n < num THEN PRINT «MORE»: GOTO 1 ELSE IF n > num THEN PRINT «less»: GOTO 1 ELSE IF n = num THEN PRINT «da»: END ELSE GOTO 1 'DANILIN Russia 9-9-2019 guessnum.bas

qbasic version of «guess my number game» 1 line

c# игра угадай число: 1 строка

using System; using System.Text; namespace DANILIN { class Program { static void Main(string[] args) { Random rand = new Random(); int Russia = 0; int n = 0; int num = 0; dav: if(Russia == 0) {Russia = 2222; num = rand.Next(10)+1; goto dav; } else if (Russia != 0) {Console.Write("? "); n = rand.Next(10)+1; Console.Write(" {0} {1} ", num, n); } if (n < num) { Console.WriteLine(«MORE»); goto dav; } else if (n > num) { Console.WriteLine(«less»); goto dav; } else if (n == num) {Console.Write(«da»); } else goto dav; } } } // n = Convert.ToInt32(Console.ReadLine()); Console.ReadKey(); DANILIN Russia 9-9-2019 rextester.com/XZGC82928 guessnum.cs

c# version of «guess my number game» 1 line
бегущая строка dos c#
// strundos.cs
// строка бегущая с востока на запад и слева направо
// вводятся тексты и ширина экрана влияет на скорость
// rextester.com/TQFHVE3360
// ideone.com/MoC86R

using System; using System.Text; namespace DAV
{ class Program { static void Main(string[] args)

{ int ekran = 44; string space = " ";
string ost = «Экспорт Ориентированное Импорто Замещение»;
string west = «Export Oriented Replace of Import»;
for (int i = 1; i <= ekran+20; i++) {space = space + " ";}

ost = space + ost + space;
west = space + west + space;

for (int i = 1; i <= west.Length-ekran -1; i++)
{ Console.SetCursorPosition(0,2);
Console.Write(ost.Substring(i, ekran ));
Console.SetCursorPosition(0,5);
Console.Write(west.Substring(west.Length-ekran +1-i, ekran ));
System.Threading.Thread.Sleep(100-ekran);}

Console.ReadKey(); System.Threading.Thread.Sleep(100); }}}
qbasic qb64 бегущая строка running string c# dos

' strunqb64.bas
' running strings from ost to west and from left to right
' plus width of screen include in velocity

ost$ = «Russian Export Orientirovannoe Importo Zameschenie»
west$ = «Russian Export Oriented Replace of Import»
ekran = 66: s$ = " ": FOR i = 1 TO ekran + 10: s$ = s$ + " ": NEXT

ost$ = s$ + ost$ + s$: west$ = s$ + west$ + s$
ost = LEN(ost$): west = LEN(west$)

FOR i = 1 TO west — ekran
    LOCATE 2, 1: PRINT MID$(ost$, i, ekran)
    LOCATE 5, 1: PRINT MID$(west$, west — ekran + 1 — i, ekran)
    _DELAY (.1 — ekran / 1000)
    ' FOR j = 1 TO 10 ^ 7 — ekran ^ (1.5) * 1 * 10 ^ 4: NEXT
NEXT
' struniq.bas
' running strings from ost to west and from left to right
' multi-string plus width of screen include in velocity

DIM q$(5): ekran = 55: s$ = " "
FOR i = 1 TO ekran + 10: s$ = s$ + " ": NEXT

q$(1) = «RRR  U U  SSS  SSS  I   A   N  N    III  QQ  „
q$(2) = “R R  U U  S    S    I  AAA  NN N     I  Q  Q „
q$(3) = “RR   U U  SSS  SSS  I  A A  N NN     I  Q  Q „
q$(4) = “R R  U U    S    S  I  AAA  N  N     I  Q QQ „
q$(5) = “R R  UUU  SSS  SSS  I  A A  N  N    III  QQ Q»

FOR i = 1 TO 5: q$(i) = s$ + q$(i) + s$: NEXT: q = LEN(q$(1))

FOR n = 1 TO 5: FOR i = 1 TO q — ekran: FOR j = 1 TO 5
            LOCATE j + 5, 5: COLOR j + i / 15: PRINT MID$(q$(j), i, ekran)
            LOCATE j + 15, 5: COLOR j + i / 22: PRINT MID$(q$(j), q — ekran + 1 — i, ekran)
NEXT: _DELAY (.1 — ekran / 3000): NEXT: NEXT



Решаем ребус УДАР+УДАР=ДРАКА через массив

' dadraka.bas

start = TIMER

DIM a(5)

FOR u = 1 TO 9: a(1) = u
    FOR d = 1 TO 9: a(2) = d
        FOR a = 0 TO 9: a(3) = a
            FOR r = 0 TO 9: a(4) = r
                FOR k = 0 TO 9: a(5) = k

FOR x = 1 TO 4
   FOR y = x + 1 TO 5
   IF a(x) = a(y) THEN GOTO 55
NEXT y: NEXT x

udar = 1000 * u + 100 * d + 10 * a + r
draka = d * 10000 + r * 1000 + a * 100 + k * 10 + a

 IF udar + udar = draka THEN PRINT udar, draka

55 NEXT k: NEXT r: NEXT a: NEXT d: NEXT u

finish = TIMER

PRINT finish — start

END

Рюкзак 0-1 & rosettacode & qbasic qb64 и МЫ

Классическая задача про рюкзак решается многими способами
оглавление: rosettacode.org/wiki/Knapsack_problem

Long read: rosettacode.org/wiki/Knapsack_problem/0-1

Новейшая моя программа синтезирует все шифры 0 и 1
добавляя лишний регистр и 0 остаются слева в шифре 

Количество сравнений уменьшается с N! до 2^N
например N=5 N!=120 >> 2^N=32

Автоматически присваиваются случайные значения
количества и качества и получается интеграл стоимости
причём возможно и делить только любой человек не поймёт

Программа пишет в каталог qb64

Open «knapsack.txt» For Output As #1
N=7: L=5: a = 2^(N+1): Randomize Timer 'knapsack.bas DANILIN
Dim L(N), C(N), j(N), q(a), q$(a), d(a)

For m=a-1 To (a-1)/2 Step -1: g=m: Do ' sintez shifr
    q$(m)=LTrim$(Str$(g Mod 2))+q$(m)
    g=g\2: Loop Until g=0
    q$(m)=Mid$(q$(m), 2, Len(q$(m)))
Next

For i=1 To N: L(i)=Int(Rnd*3+1) ' lenght & cost
C(i)=10+Int(Rnd*9): Print #1, i, L(i), C(i): Next ' origin

For h=a-1 To (a-1)/2 Step -1
    For k=1 To N: j(k)=Val(Mid$(q$(h), k, 1)) ' from shifr
        q(h)=q(h)+L(k)*j(k)*C(k) ' 0 or 1
        d(h)=d(h)+L(k)*j(k)
    Next
    If d(h) <= L Then Print #1, d(h), q(h), q$(h)
Next
max=0: m=1
For i=1 To a: If d(i)<=L Then If q(i) > max Then max=q(i): m=i
Next
Print #1,: Print #1, d(m), q(m), q$(m): End

Результат сокращён вручную

 1             2             17
 2             2             14
 3             2             17
 4             1             11
 5             2             18
 6             3             14
 7             3             10

 5             73           1101000
 4             62           1100000
 5             79           1011000
 4             68           1010000
 2             28           0100000
 5             81           0011100 !!!
 3             45           0011000
 4             70           0010100
 5             76           0010010
 2             36           0000100

 5             81           0011100

Главное очень кратко и понятно даже школьникам

Knapsack 0-1 & rosettacode & qbasic qb64 & WE

For all people: send yours algorithms to rosettacode
otherwise forum may disappear even in google search

Classic Knapsack problem is solved in many ways

Contents: rosettacode.org/wiki/Knapsack_problem
Long read: rosettacode.org/wiki/Knapsack_problem/0-1

Previous topics and long programs: Knapsack
qb64forum.alephc.xyz/index.php?topic=3091
Ordered Combinations Generator
qb64forum.alephc.xyz/index.php?topic=2999

My newest program synthesizes all ciphers from 0 & 1
adding an extra register and 0 remain on left in cipher

Number of comparisons decreases from N! to 2^N
for example N=5 N!=120 >> 2^N=32

Random values origin are automatically assigned
quantity and quality and integral of value is obtained
and it is possible to divide only anyone will not understand

Program write results to qb64 directory

Main thing is very brief and clear to even all

Results is reduced manually

теги блога Логарифм Интегралыч

....все тэги



UPDONW
Новый дизайн