Deutsch

Мои программы

2924  1 2 3 4 все
alek4 старожил31.01.25 14:13
NEW 31.01.25 14:13 
Ветка закрыта 15.04.25 13:15 (gendy)

Пишу, как хобби, программы,на разные темы.

Дельфи 7.

Поделюсь.


#1 
alek4 старожил31.01.25 14:46
31.01.25 14:46 
в ответ alek4 31.01.25 14:13

"Анализ "Скатерти Улама" блоками"


|||||||||||||||||||||||||||||||||||||||||||||||||||||

Исходник программы

https://yadi.sk/d/D4zAXfuz3QVHS8

|||||||||||||||||||||||||||||||||||||||||||||||

Скачать файл doc

https://disk.yandex.ru/i/jbTKrr5AjHeMiw

||||||||||||||||||||||||||||||||||||||||||||||||||

Описание программы "Анализ "Скатерти Улама" блоками"

ПРОГРАММА «Анализ «Скатерти Улама» блоками»

1. Скатерть Улама

Математический объект «Скатерть Улама».

Описание, например, в:

http://www.school12-egorievsk.narod.ru/studies/informat/yr...

http://letopis.kulichki.net/2010/04-2010/nom1856.htm

2. Определение блоков

2.1 Вертикальные и горизонтальные блоки

Программа «Анализ «Скатерти Улама» блоками» анализирует «Скатерть Улама» на основе подсчёта блоков разных видов.

Блоками названы непрерывные последовательности единиц или нулей.

В квадратной матрице максимальная длина блока равна числу строк (столбцов).

Поясним на примерах вертикальные и горизонтальные блоки.

Горизонтальный блок из четырех 1:

Пять блоков из пяти 0 и один блок из двух 0.

000000

111100

000000

000000

000000

000000

Вертикальный блок из пяти 1.

Пять блоков из пяти 0 и один блок и из одного 0.

000001

000001

000001

000001

000001

000000

2.2.Диагональные блоки

Определение главной и побочной диагонали матрицы:

http://www.fxyz.ru/формулы_по_математике/линейная_алгебра/матрицы/

В квадратных матрицах, главная диагональ – диагональная линия элементов, проходящая с северо-запада на юго-восток.

Диагональ с юго-запада на северо-восток -побочная диагональ.

Кроме главной и побочной диагонали имеются малые диагонали параллельные главной или побочной диагоналям (мое определение).

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

- малая диагональ c блоком из трех 1;

- три малые диагонали с блоками из одного 0.

- две малые диагонали с блоками из двух 0.

- две малые диагонали с блоками из трех 0;

- однамалаядиагональ с блоком из четырех 0;

- двемалые диагонали с блоками из пяти0

000001

001010

010100

101000

010000

100000

Проверка.

Общее число элементов по числу различных диагоналей:

1х6 +1х3 + 3х1 + 2х2 +2х3 + 1х4+2х5 =

6 +3+ 3+4+6+4+10 = 36;

Подобная проверка предусмотрена и в программе «Анализ «Скатерти Улама» блоками».

Ниже матрица с главной диагональю из 1 и блока из трех 1.

Блоки из 0 аналогично примеру выше.

101000

010100

001010

000100

000010

000001

В программе закомментировано построение случайной матрицы. Полезно для анализа расчётов по программе провести расчёты со случайной матрицей.

3. Критерий упорядочения матриц

Для сравнения различных матриц предлагается «показатель длины блоков» по величине и количеству блоков.

Вычисление «Показателя длины блоков» проводится в три этапа:

1)Длины блоков уменьшаются на 1.

Вычисляется сумма произведений полученной величины и числа блоков.

2)Вычисляется целая часть из произведения корняквадратного величины по п.1 и 10000.

3)Вычисляется целая часть из частного от деления величины по п.2 и числа строк. Матрица квадратная.

For i1:=1 to mm do

aa:= aa+ (i1-1)*(i1-1)* uu4[i1];

aaa1:=round (Sqrt(aa)*10000);

aaa:= round (aaa1/mm);

Данный показатель одинаков для случайных матриц разной размерности. При внесении в матрицу горизонтальных или вертикальных блоков показатель меняет свое значение.


4. Структура программы «Анализ «Скатерти Улама» блоками»


Программа состоит из двух частей:

Часть 1.

Построение на квадратной матрице с нечетными числами строк и столбцов «Скатерти Улама»

Часть 2

Вычисление числа блоков разных видов.

Вначале введем множества малых диагоналей параллельных побочной диагонали: А1 и А2 и- главной диагонали Б1 и Б2.

Пояснение:

*

*

А2*А1

*

*

*

*

Б1*Б2А2

*

В результате выполнения программы определяются массивы:

uu2 – число блоков 1 по горизонтали

uu3 – число блоков 0 по горизонтали

uu4 – число блоков 1 по вертикали

uu5 – число блоков 0 по вертикали

uu6 – число блоков 1: побочная горизонталь + А1

uu7 – число блоков 1: А2

uu8 – число блоков 1: побочная горизонталь + А1 +А2

uu9 – число блоков 1: главная горизонталь + Б1

uu10 – число блоков 1: Б2

uu11 – число блоков 1: главная горизонталь + Б1 +Б2

uu12 – число блоков 0: главная горизонталь + Б1

uu13 – число блоков 0: Б2

uu14 – число блоков 0: главная горизонталь + Б1 +Б2

5. Вывод по программы «Анализ «Скатерти Улама» блоками»

Таблица 1: «Скатерть Улама».

Простые числа выделены *.

Таблица 3: На «Скатерти Улама» показаны только простые числа.

Таблица 2. Вывод массивов uu2 – uu14.

Каждый столбец:

Имя массива, вид блоков 0 или 1, суммарное число единиц или 0 в блоках, число блоков по нарастанию длины блока, начиная с единичной длины блока.

Кроме того, выведены показатели длины блоков.

Остальные величины для настройки.

6. Результаты

1.Число блоков из 1 (простые числа) длиной более 1 по горизонтали и вертикали весьма мало.

2.Блоки из 0 (составные числа) по горизонтали и вертикали имеют следующую особенность: число блоков нечетной длиной значительно больше числа блоков с четной длиной.

3.В меньшей мере эта закономерность справедлива и для диагональных блоков из 0.

||||||||||||||||||||||||||||||

||||||||||||||||||||||||||||||||||||||||||||||||||||||||

Программа создания "Скатерти Улама" в графическом формате

А. Жуков «Изучаем DELPHI»

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls;

type

TForm1 = class(TForm)

Image1: TImage;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

function good(Numb:integer):boolean;

var

i:integer;

begin

good:= true;

for i:=2 to Trunc(Sqrt(Numb)) do

if (Numb mod i) =0then

begin

good := false;

exit;

end; end;

procedure TForm1.Button1Click(Sender: TObject);

label

up;

var

i,x,y,n,nx,ny,i1:integer;

begin

n:=2;

x:=Image1.Width div 2+1;

y:=x-1;

with Image1.Canvas do

begin Brush.Color:=clYellow;

FillRect(ClientRect);

Pixels[x,y]:=clBlack;

ny:=1;

up:for i:=1 to ny do

begin

dec(y); //1

inc(n);

if good(n) then Pixels[x,y]:=clBlack;

end;

nx:=ny+1;

for i:=1 to nx do

begin

dec (x); //2

inc(n);

if good(n) thenPixels[x,y]:=clBlack;

end;

ny:=nx;

for i:=1 to ny do

begin

inc(y);//3

inc(n);

if good(n) thenPixels[x,y]:=clBlack;

end;

nx:=ny+1;

for i:=1 to nx do

begin

inc(x);//4

inc(n);

if good(n) thenPixels[x,y]:=clBlack;

end;

if n>=Image1.Width*Image1.Height

then exit;

ny:=nx;

{ Application.ProcessMessages; }

goto up;

end;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Close

end;

end.

||||||||||||||||||||||||||||||||||||||||||||

#2 
AlexNek патриот31.01.25 17:50
AlexNek
NEW 31.01.25 17:50 
в ответ alek4 31.01.25 14:46

пост слишком длинный...


Математический объект «Скатерть Улама»

Может в институте кому-то и интересно, но зачем еще енто надо не могу понять смущ Да и дельфи остался в узко определенных кругах.


goto up;

Этой строки было достаточно, чтобы больше никуда не смотреть. спок


Займитесь чем-то более полезным и размещайте код на предназначенных для этого ресурсах типа гитхаб

#3 
alek4 старожил31.01.25 18:25
NEW 31.01.25 18:25 
в ответ AlexNek 31.01.25 17:50

Цель поста.

С компом даже не слишком одаренные могут прогуляться на полях одарённых

Зачем на СИ,если быстрей на Д?


#4 
gendy Dinosaur31.01.25 18:51
gendy
NEW 31.01.25 18:51 
в ответ alek4 31.01.25 14:46

когда я писал проектарбайт, я выбрал программу в bcb5 кажется или 6, уже не помню.

Вот я там точно так же распечатал помимо кода все формы, чтобы записка показалась потолще и меньше самому писать.


Но здесь это зачем? Эти формы создаются через гуй и никому даже в голову не придёт копировать отсюда в файлы и делать проект.


В крайнем случае откройте для себя Git . Ссылки на репрозиторий хватило бы с головой, если кто-то захочет посмотреть как писали 23 года назад

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#5 
AlexNek патриот31.01.25 20:40
AlexNek
NEW 31.01.25 20:40 
в ответ alek4 31.01.25 18:25
Цель поста.С компом даже не слишком одаренные могут прогуляться на полях одарённых

Возможно, эта новость могла показаться интересной на форуме домохозяек, но никак не тут.

Понятно, что интересно и хочется с кем-то поделиться. Но сейчас писать код вообще не проблема. Тем более такой https://regal-wisp-d7e1af.netlify.app/ вполне возможно, что что-то и неправильно, но ведь ни одной строчки кода не написано лично.


Зачем на СИ,если быстрей на Д?

Выбор языка в данном случае лежит на исполнителе. Просто Дельфи был хорош в 90. Сейчас ситуация несколько другая, как и с Си.

#6 
7495 коренной житель31.01.25 21:35
7495
NEW 31.01.25 21:35 
в ответ alek4 31.01.25 14:13

Пишу, как хобби, программы,на разные темы.

Дельфи 7.

Поделюсь.


А Вы по образованию математик? Сейчас надо писать не на Дельфи и Бейсике, а на Яваскрипт и Солидити,


тогда можно в интернетах публиковать, ХТМЛ и Яваскрипт у пользователя сам работает, без компиляции.


Мои темы, мне надо больше числовых последовательностей: https://foren.germany.ru/programmer/f/40788253.html

Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#7 
alek4 старожил02.02.25 09:36
NEW 02.02.25 09:36 
в ответ alek4 31.01.25 14:13

ПРОГРАММА «2-Арифметическая»

ОГЛАВЛЕНИЕ

1. Сведения об арифметической прогрессии

2 Цель программы

3. Исходные данные

4. Алгоритм

5.Вывод

6. Итоги

7. Скачать программу

Приложение 1

Распечатка программы «2-Арифметическая»


1. Сведения об арифметической прогрессии

Википедия

Арифметическая прогрессия

Материал из Википедии — свободной энциклопедии

Арифмети́ческая прогре́ссия - последовательность чисел (членов прогрессии), в которой каждое число, начиная со второго, получается из предыдущего добавлением к нему постоянного числа(шага, или разности прогрессии).

2. Цель программы

Программа «2—Арифметическая» есть продолжение исследований про программе «1-Ариметическая». Цель программы изучить закономерности серий простых чисел при разных комбинациях первого числа прогрессии и шага прогрессии.

3. Исходные данные.

Пример

Const

w1=199;//нижняя граница первых чисел арифметической прогресии

w=1000; //верхняя граница первых чисел арифметической прогресии

ma =30;// нижняя граница шагов арифметической прогрессии

m=600;//верхняяграница шагов арифметической прогрессии

n=300;// число членов арифметической прогрессии

4. Алгоритм

4.1.Общий цикл по переменой r.

На каждой итерации первое число равно r.

Генерируются арифметическиепрогрессии с шагами от 1 до m.

4.2. На каждой итерации цикла r формируется массивы

s:array [1..m,1..n] of cardinal;//таблица арифметических прогрессий,

//каждая из n элементов, при m величин шагов, вычисляется

//последовательнодля 1-w первых чисел

a: array [1..w, 1..m] ofcardinal;//длины маскимальных серий

//простых чисел при разных сочетанияхпервых чисел и величины шага

c: array [1..w,1..m] ofcardinal;

// номер шага началамаксимальных длин серий простых чисел

h: array [1..50] ofcardinal;

//распределениедлинсерий простых чисел

4.3. По матрице ф находится m1 – дли на максимальной серии протычх чисел.

4.4.По числу m1 и матрицам aи c находятся матрицы

p:array [1..10,1..100] ofcardinal;//

//p[1,t] первые числа в максимальной серии

//p[2,t]шагв максимальной серии

//p[3,t]номер шагав максимальной серии

//p[4,t]длинамаксимальной серии

// t- порядковый номер максимальной серии.

//Равен номеру окантовки.

u: array [1..50] of cardinal;

//распределениедлин максимальных серий простыхчисел

h: array [1..50] ofcardinal;

5. Вывод

Выводятся все массивы введенные выше.

Массивы c и a выводятся в одной таблице №1

Пары чисел: ca

6. Итоги

Найдены три сериипо 10 простых.

Первое число – шаг – номер шага – длина серии простых

199210110

21042012610

799420125..10

7. Скачать программу

zip

https://disk.yandex.ru/d/gCPBHHR82Djq8Q

Приложение 1

Распечатка программы2-Арифметическая

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button5: TButton;

Label1: TLabel;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Edit1: TEdit;

Label4: TLabel;

StringGrid1: TStringGrid;

StringGrid4: TStringGrid;

Edit2: TEdit;

procedure Button1Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const

{ w1=4;//нижняя граница начальных чисел арифметической прогресии

w=40 ;//верхняя граница начальных чисел арифметической прогресии

ma =1;// нижняя граница шагов арифметической прогрессии

m=12;//верхняяграница шагов арифметической прогрессии

n=25;// число членов арифметической прогрессии }

w1=1;//нижняя граница первых чисел арифметической прогресии

w=1500; //верхняя граница первых чисел арифметической прогресии

ma =300;// нижняя граница шагов арифметической прогрессии

m=300;//верхняяграница шагов арифметической прогрессии

n=1000;// число членов арифметической прогрессии

var

Tick: Cardinal;

s:array [1..m,1..n] of cardinal;//таблица арифметических прогрессий,

//каждая из n элементов, при m величин шагов, вычисляется

//последовательнодля 1-w первых чисел

a: array [1..w, 1..m] ofcardinal;//длины маскимальных серий

//простых чисел при разных сочетанияхпервых чисел и величины шага

c: array [1..w,1..m] ofcardinal;

// номер шага началамаксимальных длин серий простых чисел

p:array [1..10,1..100] ofcardinal;//

//p[1,t] первые числа в максимальной серии

//p[2,t]шагв максимальной серии

//p[3,t]номер шагав максимальной серии

//p[4,t]длинамаксимальной серии

// t- порядковый номер максимальной серии.

//Равен номеру окантовки.

u: array [1..50] of cardinal;

//распределениедлин максимальных серий простыхчисел

h: array [1..50] ofcardinal;

//расрпределениедлинсерий простых чисел

i,j,q ,z,r,i1,j1,tt,t,k,x,e ,aa,v,d,y:cardinal;

n1, n2, n3,n4: cardinal;//

m1,m2,m3,m4,m5: cardinal;//

f1,f2,f3,f4,f5:cardinal;//

// Функция нахождения простых чисел

// По книгеЖуков "Программируем в Delphi"

function good(Numb:integer):boolean;

var

i:integer;

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

good:= true;

for i:=2 to Trunc(Sqrt(Numb)) do

if (Numb mod i) =0then

begin

good := false;

exit;

end; end;

procedure TForm1.Button1Click(Sender: TObject);

// окантовка

begin

for q:=1 to m// нумерация по вертикалив табл №1 ,

do if good (q) then StringGrid2.Cells[0,q]:='*'+IntToStr(q)

elseStringGrid2.Cells[0,q]:=IntToStr(q);

for q:=1 to n //нумерация по горизонтали в табл №1 ,

doif good (q) thenStringGrid2.Cells[q,0]:='*'+IntToStr(q)

elseStringGrid2.Cells[q,0]:=IntToStr(q);

for q:= 1 to w// нумерация по вертикалив табл №1 ,

do if good (q) then StringGrid1.Cells[0,q]:='*'+IntToStr(q)

elseStringGrid1.Cells[0,q]:=IntToStr(q);

for q:=1 to m //нумерация по горизонтали в табл №1 ,

doif good (q) thenStringGrid1.Cells[q,0]:='*'+IntToStr(q)

elseStringGrid1.Cells[q,0]:=IntToStr(q);

for q:= 1 to 10// нумерация по вертикалив табл №1 ,

do if good (q) then StringGrid4.Cells[0,q]:='*'+IntToStr(q)

elseStringGrid4.Cells[0,q]:=IntToStr(q);

for q:=1 to 100//нумерация по горизонтали в табл №1 ,

doif good (q) thenStringGrid4.Cells[q,0]:='*'+IntToStr(q)

elseStringGrid4.Cells[q,0]:=IntToStr(q);

//////////////////

aa:=((2*3)*(5*7)) ;

for r:= w1 to w do

begin

n1:=0; n2:=0;

for i:=ma to m do

for j:=1 to n do

s[i,j] :=0;

for i:=mato mdo

s[i,1] :=r;

for I:=ma to m do

for J:=2 to n do

s[i,J] :=s[i,J-1] +i;

//отыскание максимальныхсерийпростых чисел

//вычисление матрицыс[i,j]

for I:=ma to m do begin

n2:=0;n1:=0;

for J:=1 to ndobegin

if good (s[i,j]) thenbegin

x:=1;n2:=n2+1 ;d:=d+1;END;

if good (s[i,j])=FALSE then

begin

h[n2] := h[n2] +1;

v:= v+1;

end;

if (good (s[i,j])=FALSE )AND (N2>N1)

then begin

n1:= n2; n2:=0; a[r,i] :=n1;

n4:=j;c[r,i] := J-n1;

end;

if (((j=n) and(n2>0))and good (s[i,j])) thenh[n2] := h[n2] +1;

if j=n then

if ((good (s[i,j])AND (N2>N1)))

then begin

n1:= n2;h[n1] := h[n1] +1; n2:=0; a[r,i] :=n1; n4:=j;

c[r,i] := J;

end;

if (good (s[i,j])=FALSE )then n2:=0;

end;

if x=0 then e:=e+1;

x:=0;

end;

end;

/////////распределение серий по длине

/////////////////////////////

//отыскание максимальной серии

for i:=w1 to w do

for j:=ma tom do

if a[i,j] >m1 then

begin m1:= a[i,j]; m2:=i; m3:= j;m4:=c[i,j];

end;

for i:=w1 to w do

for j:=ma tom do

if a[i,j]=m1 then

m5:= m5+1;

for i:=w1 to w do

for j:=ma tom do

if a[i,j] = m1 then begin

k:=k+1;p[1,k] :=i;p[2,k]:=j; p[3,k] := c[i,j]; p[4,k] := m1;

end;

u[50]:=0;

for i:=w1 to w dobegin

for j:=ma tom do

if a[i,j]>0 then

begin

t:=a[i,j];

u[t]:=u[t] +1;

end;

end;

for i:=1 to 50 do

if h>0 then

Z:=z+h*i;

for i:=1 to 50 do

if u>0 then

tt:=tt+u*i;

y:= v+d;

StringGrid2.Cells[0,0] := 's[..]';

StringGrid1.Cells[0,0] := 'a[]c[]';

StringGrid4.Cells[0,0] := '№ 4';

StringGrid4.Cells[0,1] := 'p[1,k]';

StringGrid4.Cells[0,2] := 'p[2,k]';

StringGrid4.Cells[0,3] := 'p[3,k]';

StringGrid4.Cells[0,4] := 'p[4,k]';

StringGrid4.Cells[0,7] := 'u[1..50]';

StringGrid4.Cells[0,8] := 'h[1..50]';

Form1.Caption:=IntToStr(GetTickCount-Tick);

for i:=1 to mdo

for j:=1 to n doif s[i,j]>0 then

if good (s[i,j]) then StringGrid2.Cells[j,i]:='*'+ ' '+ IntToStr(s[i,j])

else StringGrid2.Cells[j,i]:= IntToStr(s[i,j]);

Form1.Caption:=IntToStr(GetTickCount-Tick);

for i:=w1 to wdo

for j:=ma to m do

StringGrid1.Cells[j,i]:=

IntToStr( c[i,j])+''+ IntToStr( a[i,j]);

for i:=1 to 5do

for j:=1 to 100 do

if good (p[i,j]) then

StringGrid4.Cells[j,i]:='*'+IntToStr(p[i,j])

elseStringGrid4.Cells[j,i]:= IntToStr(p[i,j]);

for i1:=1 to 50 do

StringGrid4.Cells[i1,7]:= IntToStr(u[i1]);

for i:=1 to 50do

StringGrid4.Cells[i,8]:= IntToStr(h);

Edit1.Text :='n1=' +''+ IntToStr(n1)+''+

'n2=' +''+ IntToStr(n2)

+''+ 'n3=' +''+ IntToStr(n3)

+''+ 'n4=' +''+ IntToStr(n4)

+''+ 'm1=' +''+ IntToStr(m1)

+''+ 'm2=' +''+ IntToStr(m2)

+''+ 'm3=' +''+ IntToStr(m3)

+''+ 'm4=' +''+ IntToStr(m4)

+''+ 'm5=' +''+ IntToStr(m5)

+''+ 'f1=' +''+ IntToStr(f1)

+''+ 'f2=' +''+ IntToStr(f2)

+''+ 'h[1]=' +''+ IntToStr(h[1])

+'' +' h[2] '+''+ IntToStr(h[2])

+'' +'v='+ ''+ IntToStr(v)

+''+ 'd=' +''+ IntToStr(d)

+''+ 'y=' +''+ IntToStr(y) ;

Edit2.Text :=IntToStr(u[50])

+''+'z=' +''+ IntToStr(z)

+''+ ' tt=' +''+ IntToStr(tt)

+''+ ' e=' +''+ IntToStr(e)

+''+ ' x=' +''+ IntToStr(x)

+''+ ' aa=' +''+ IntToStr(aa);

Form1.Caption:=IntToStr(GetTickCount-Tick);

end;

////////////////////////////////////////////////////////////////

procedure TForm1.Button5Click(Sender: TObject);

begin

close

end;

initialization

randomize;

end.

#8 
AlexNek патриот02.02.25 12:15
AlexNek
NEW 02.02.25 12:15 
в ответ alek4 02.02.25 09:36

Странно, когда человек не понимает с первого раза. Банить что ли нужно обязательно?

Не надо постить здесь простыни программ и детский сад. Сделайте себе блог и играйтесь там.


Кстати, программы выводятся здесь с использованием тэга 'pre' в ручном режиме? Но лучше прилагать файл если больше десятка строк.

#9 
alek4 старожил02.02.25 14:11
NEW 02.02.25 14:11 
в ответ AlexNek 02.02.25 12:15
Но лучше прилагать файл если больше десятка строк.


Я прилагаю ссылки на папку программы и doc.

Текст для комфорта.


Что мне интересно, на то программа.


#10 
AlexNek патриот02.02.25 14:28
AlexNek
NEW 02.02.25 14:28 
в ответ alek4 02.02.25 14:11
Текст для комфорта.

не для комфорта, а для раздражения


Что мне интересно

Ну так и делайте то, что вам интересно, зачем это здесь?

Неужели непонятно, что это уровень детского сада.


Я прилагаю ссылки на папку программы и doc.

Неужели серьезно думаете, что кто то это будет смотреть?

#11 
alek4 старожил03.02.25 10:12
NEW 03.02.25 10:12 
в ответ alek4 31.01.25 14:13

Логические многочлены

Скачать текст

https://disk.yandex.ru/i/60DI4OG5bXSvEw

||||||||||||||||||||||||||||||||||||||||||||||||||

ПРОГРАММА

1-многочлен

Генерация случайногологического многочлена

1.Общее описание

2.Условные обозначения

3.Упрощения

4.Структура многочлена

5.Формированиеисходного многочлена

6.Формирование концовки многочлена

7.Ввод – вывод

1.Общее описание

Программа предназначена для формирования случайных логических многочленов.

Случайным образом выбирается порядок элементов логического многочлена:

логические операции (связки), скобки, логические операции (связки), переменные.

Связки: отрицание, конъюкция, дизъюнкция,импликация и эквиаленция

Скобки: левая иправая

Принято: 11 переменных.

2.Условные обозначения

Для упрощения программы введены условные обозначения.

Связки:

Отрицание: знак минус«-»

Связки:

Конъюнкция:1

Дизъюнкция: 2

Импликация:3

Эквиваленция: 4

Скобки:

Левая: 6

Правая: 7

Переменные

Числа в диапазоне:10 -11

В формуле(A связка B): A - первая переменная,B – вторая переменная

3.Упрощения

В ходе построения многочлена не формируются последовательности:

Отрицаниеотрицание,отрицаниеотрицаниеотрицание………………………………………..

Переменная связка переменная связкапеременная ……….

4. Структура многочлена

4.1 Вначале формируется исходный многочлен длиной y.

Левые скобки и переменные, перед которыми отрицания, считаются за один элемент многочлена.

Если исходный многочленлогически не завершен, добавляется концовка.

4.2.Построение многочлена начинается с левой скобки или переменной.

4.3. При формировании многочлена вычисляются:

k - Число левых скобокp – число правых скобок

При формировании многочлена проверяется условие: k>p

В сформированном многочлене k=p

4.4 Формирование исходного многочлена продолжается, пока с учётом концовки можно создать логически непротиворечивый многочлен.

То есть исходные многочлены имеют длину в диапазоне: 3 …y

5.Формированиеисходного многочлена

Левая скобка: левая скобка илипервая переменная

Связка: левая скобка, вторая переменная

Первая переменная: связка

Связка: левая скобка или вторая переменная

Правая скобка: связка или правая скобка

Вторая переменная: правая скобка

6.Формирование концовки многочлена

Левая скобка – правыескобки

Правая скобка – правые скобки

Вторая переменная – правые скобки

Связка – переменная – правые скобки

Первая переменная – связка – вторая переменная – правая скобка

7.Ввод и вывод

Входные данные:

y=25;//предельная длина исходного многочлена

a1 = 5;// для вычисления вероятности

b1 = 5 ; // для вычисления вероятности

b2=5; // для вычисления вероятности

d1=5;// для вычисления вероятности

w=5; // для вычисления вероятности

w1=5;// для вычисления вероятности

w2=5;// для вычисления вероятности

w3=5;// для вычисления вероятности

Вывод:

Первая строка: многочлен

Вторая строка: номер операции, в которой определен элементмногочлена

Третья строка: текущая величина k

Четвертая строка: текущая величина p

Пятая строка: метка T (0 и 1). Служит для определения переменой, первая или вторая.

Скачать

https://yadi.sk/d/TLyaE5TMSo9dFg

///////////////
//////////////////////////////////////

ПРОГРАММА

2- многочлен

Генерация случайногологического многочлена заданной длины

Программа 2- многочлен является развитием программы 1- многочлен.

Отыскиваются путем перебора исходный многочлен длиной y.

Введен циклrepeat …..until.

Числоитераций в этом цикле ограничено числом f.

Которое задается.

Текущее число итераций в цикле – число v.

Если найден исходный многочлен длиной y включается концовка.

Вывод многочлена.

Если за число итераций fискомый многочлен не найден, выводится текущий результат.

Скачать обновление 10 01 2020 h

Программа: 2-2 многочлен

https://yadi.sk/d/SSfiUDsWgz3W9Q

////////////////////////////////////////////

/////////////////////////////////////////////////////

ПРОГРАММА

Вычисление логического многочлена

]1.О программе

2.Исходные данные

3.Алгоритм

4.Данные для отладки

5.Итог

6.Вывод

7.Скачивание

1.О программе

Программа «Вычисление логического многочлена» предназначено для вычисления логического многочлена.

Программа на Дельфи7.

Вычисляется многочлен, генерируемый программой «Генерация случайногологического многочлена».

Цель программы.

Оценить корректность программ:

«Генерация случайногологического многочлена» и«Вычисление логического многочлена».

То есть этап исследования.

]2.Исходные данные[/color]

Исходные данные для вычисления логического многочлена те же, что в программе

«Генерация случайногологического многочлена».

3.Алгоритм

Переменным случайно присваиваются величины 1 и 0.

Затем последовательно осуществляются итерации.

Итерация 1.

Последовательность:

Левая скобка – переменная – правая скобка

Заменяется на– переменная.

Если такой последовательности в многочлене нет, многочлен не меняется.

Итерация 2

Последовательность

Переменная – связка – переменная

Вычисляется: 0 или 1.

Если такой последовательности в многочлене нет, многочлен не меняется.

Последовательность:

переменная 1- связка 1 –переменная 2 – связка 2 – переменная 4

Вычисляется в такой последовательности:

переменная 1- связка 1(переменная 2 – связка 2 – переменная 4)

Редко получается фрагмент многочлена, не доступный сокращению.

4.Данные для отладки

Матрица 1

Первые 5 строк – программа «Генерация случайногологического многочлена».

Строка 6

Число левых скобок после каждой итерации.

rr:array[1..2*y] of integer ;//

Строка 7

Число правых скобок после каждой итерации.

dd:array[1..2*y] of integer ;//

Строка 8

Величины переменных

za:array[1..11] of integer ;//

Строка 9

Позиция в многочлене при очередной итерации 1

Строка 9

xa:array[1..50] of integer ;//

Строка 10

Позиция в многочлене при очередной итерации 2

fa:array[1..300] of integer ;//

строка 11

Переменная aa

1 итерация 1, 0 итерация 0

ga:array[1..300] of integer ;//

Со строки 14 последовательность преобразований исходного многочлена

m:array[1..(2*y),1..300]of Int64;//

Матрица 4

Для отладки

v1:array[1..(2*y),1..300]of Int64;//

5.Итог

Edit 5

www – число итераций, цикл - ii

vvv – значение многочлена

]6.Вывод

Необходимо дальнейшее исследование для исключения

не корректных ситуаций.

]7.Скачивание

Скачать программу

Вычисление логического многочлена.

Исправлено10 01 2012

Программа 2-2 многочлен

]

https://yadi.sk/d/ZwuM25wo4mJyOw

//////////////////////////////

//////////////////////////////////////

ПРОГРАММА

3-1 многочлен

1.Общее описание

2.Алгоритм

3.Вывод

1.Общее описание

Программа, версия 3-1, предназначена для выявления соответствия в многочлене правых и левых скобок.

Кстати.

Недостаток Дельфи 7:

Скобкиbeginend не пронумерованы.

В сложной программе можно совершить ошибку.

]2.Алгоритм

Исходный многочлен генерируется по программе генерации случайного многочлена:

Версия 1-1.

Сканируется многочлен.

На каждом шаге определяется соответствие правой и левой скобки.

Находится фрагментыправая …… левая скобка.

Скобки нумеруются по номеру шага, на котором выявлено соответствие.

Нумерованные скобки исключаются из рассмотрения.

3.Вывод:

Первая строка в таблице № 2: исходный многочлен

Вторая строка: номера левых и правых.

Скачать: версия3-1

https://yadi.sk/d/vg8iwKUdKV5xdQ

/////////////////////////////////

/////////////////////////////////////

#12 
kukka местный житель03.02.25 14:09
kukka
NEW 03.02.25 14:09 
в ответ alek4 31.01.25 14:13

Что даёт эта программа конкретно, учитывая критичность.


#13 
alek4 старожил03.02.25 18:09
NEW 03.02.25 18:09 
в ответ kukka 03.02.25 14:09

А ИИ может решить задачу с логическим многочленом?

Это не туман квантовых вычислений.


#14 
gendy Dinosaur03.02.25 18:41
gendy
NEW 03.02.25 18:41 
в ответ alek4 03.02.25 18:09

Конечно! Вот пример программы на Delphi 7, которая случайным образом генерирует логические многочлены, используя логические операции (связки), скобки и переменные.


unit LogicalPolynomial;

interface

uses

SysUtils, Classes, Controls, Forms, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

function GenerateRandomPolynomial(Depth: Integer): string;

public

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const

Operations: array[0..4] of string = ('~', '&', '|', '->', '<->');

Variables: array[0..3] of string = ('A', 'B', 'C', 'D');

procedure TForm1.Button1Click(Sender: TObject);

begin

Memo1.Lines.Clear;

Memo1.Lines.Add('Случайный логический многочлен:');

Memo1.Lines.Add(GenerateRandomPolynomial(3));

end;

function TForm1.GenerateRandomPolynomial(Depth: Integer): string;

var

OpIndex, VarIndex: Integer;

SubFormula1, SubFormula2: string;

begin

if Depth = 0 then

begin

VarIndex := Random(Length(Variables));

Result := Variables[VarIndex];

Exit;

end;

OpIndex := Random(Length(Operations));

if Operations[OpIndex] = '~' then

begin

Result := Operations[OpIndex] + '(' + GenerateRandomPolynomial(Depth - 1) + ')';

end

else

begin

SubFormula1 := GenerateRandomPolynomial(Depth - 1);

SubFormula2 := GenerateRandomPolynomial(Depth - 1);

Result := '(' + SubFormula1 + ' ' + Operations[OpIndex] + ' ' + SubFormula2 + ')';

end;

end;

end.


это сочинил copilot проверять не стану.


Кстати это была тема той самой проектарбайт и ваша программа смотрится на фоне той очень бледно. Хотя сейчас понимаю, что сделана она была абсолютно неграмотно. У меня не было ограничения по количеству переменных и итераций. Ну разве что размером окна ввода

Фашизм будет разбит


Человека карают только те боги, в которых он верит

#15 
kukka местный житель03.02.25 20:00
kukka
NEW 03.02.25 20:00 
в ответ alek4 03.02.25 18:09

Вопрос поставлен неверно. Что было последним, так это верность предсказаний типа predict analyse. При данных обстоятельствах работала эффективнее другая схема, состоящая возможно из 7-8 параметров.

#16 
alek4 старожил03.02.25 20:49
NEW 03.02.25 20:49 
в ответ gendy 03.02.25 18:41

Дурной тон давать не законченную прогр, а какой-то фрагмент без комментариев.

Игнор.

#17 
alek4 старожил05.02.25 17:30
NEW 05.02.25 17:30 
в ответ alek4 31.01.25 14:13

ПРОГРАММА «Простые 1»

ОГЛАВЛЕНИЕ

1. Общее

2. Математика

3. Вывод

4.Анализ результатов

5. Примеры многочленов

6.Скачать программу «Простые 1

Приложение 1

Распечатка программы «Простые 1»

1. Общее

Не всем дано доказывать теоремы.

Но каждый может внести что-то новое в науку при помощи компьютера.

Моделируя ситуации в разных областях науки.

Это интересней, чем компьютерные игры, которые, по сути, пустая трата времени.

Но для моделирования всяких ситуаций надо владеть какими-то познаниями в программировании. Изучение современных языков трудностей не представляет.

Так для овладения языком Дельфи 7 достаточно месяца три.

2. Математика

Многие многочлены в определенном диапазоне x дают последовательность простых чисел.

Об этом, например, a*x*x +b*x +c

http://vlad-utenkov.narod.ru/personal2/informat/km/pr/pr.h...

Наиболее известный многочлен такого вида открыт Эйлером:

x*x - x + 41

В программе «Простые 1» собирается статистика по значениям квадратных многочленов

a*x*x +b*x +cв диапазоне от 1 до n.

Статистика собирается для двух многочленов:

a*i*i +b*i +cи a1*i*i+b1*i +c1

где i текущая переменная от 1 до n

a, b, c, a1, b1, c1 и nзадаются, как const, в тексте программы.

Такая же статистика и для ряда натуральных чисел.

3. Вывод

Массивы

s1:array [1..n] of integer;// значения многочлена № 1

s2:array [1..n] of integer;//1 -простое число, 0 - составное число

//многочлен № 1

s3:array [1..n] of integer;// значения многочлена № 2

s4:array [1..n] of integer;// 1 -простое число, 0 - составное число

//многочлен № 21

s5:array [1..n] of integer;// простые числа натурального ряда

s6:array [1..n] of integer;//составные числа натурального ряда

s7:array [1..n] of integer;//ряд простых чисел

s8:array [1..50] of integer;// сравнение максимальных

//цепей простых чисел в многочленах№1 и №2,

// Если длина цепей одинакова

const

n =10000;// число вычислений значений многочленови ряда натуральных чисел

// многочлен Эйлера

a=1;

b = -1;

c=41;

// двойник многочлена Эйлера

a1= 4;

b1= -258 ;

c1=4201;

Переменные

a= 1-первый коэффициент многочлена

b= -1 – второй коэффициент многочлена

c=41 – третий коэффициент многочлена

v=0- равна 0, если все величины многочлена больше нуля.

Если величина многочлена меньше или равна нулю,v равно текущему i(x)

z1=4149- число простых

z2=5851- число составных

w=40 – максимальная длина цепи из простых

m=0 -текущее величина цепи из простых

j1=40- величина i в конце максимальной цепи из простых

j2= 1- величина i в начале максимальной цепи из простых

s=19- максимальная длина цепи из составных

t=2- текущее величина цепи из составных

u1=9283- величина i в конце максимальной цепи из составных

u2= 9265 - величина i в начале максимальной цепи из простых

y1= 9999 – величина i для последнего простого из n величин многочлена

s2[n]= 0

d1= 262125,82080 – средняя величиназначений многочлена

h1= 0,4149 – отношение числа простых к n

Вывод для многочлена №2 и ряда натуральных чисел аналогичен

Рядпростых чисел

n4=5736397 – сумма простых

z7=1230- число простых

d4= 4663,73740- средняя величина простого

4.Анализ результатов

4.1. Последовательности от многочленов можно сравнивать по доле простых.

В натуральном ряду среди первых 10000 доля простых – 0,123

4.2. Подбором коэффициентов многочлена можно получить последовательность без простых.

Например, все члены последовательности делятся на 2 или 3.

4.3. Имеется многочлена с простыми и составными, но доля простых мала.

Например

h2= 0,047

a1=1;

b1= -3 ;

c1=17;

4.4.Многочлен Эйлера даёт последовательность в 40 простых чисел при изменении x от1 до 40.

Величины простых чисел возрастают, но их последовательность не совпадает с последовательностью простых натурального ряда.

Для удобства сравнения во множестве простых натурального рядапростые даны с 41, как и для многочлена Эйлера.

4.5. Найден двойник многочлена Эйлера.

a1= 4;

b1= -258 ;

c1=4201

При n=10000 доля простых для многочлена Эйлера- 0, 4149, для двойника – 0, 3802

Тоже цепочка из 40 простых, но при x = 13-52

Величины многочлена в этом диапазоне те же, что и для многочлена Эйлера, но порядок другой.

Результат сравнения множествоs8.

5. Примеры многочленов

// многочлен Эйлера

a=1;

b = -1;

c=41;

// двойник многочлена Эйлера

//a1= 4;

// b1= -258 ;

//c1=4201;

// двойник многочлена Эйлера

//a1= 1;

//b1= -3 ;

//c1=43;

// нетпростых, только чётные

//a1= 1;

// b1= -5 ;

//c1=40;

//мало простыхполовина чётных

//a1= 1;

// b1= -8 ;

//c1=41;

/// очень мало простых половина чётных

//a1= 2;

//b1= -3 ;

//c1=39;

// простых нет все значения делятся на три

//a1=3;

// b1= -3 ;

//c1=39;

// мало простыхh2= 0,047

//a1=1;

//b1= -3 ;

// c1=17;

6.Скачать программу «Простые 1

https://disk.yandex.ru/d/SVq4kurS6Eo6Ug

Приложение 1

Распечатка программы «Простые 1»

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, Grids, StdCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Button5: TButton;

Label1: TLabel;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Edit1: TEdit;

Label2: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Label3: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

const

n =10000;// число вычмислений значений многочленов

// многочлен Эйлера

a=1;

b = -1;

c=41;

// двойник многочлена Эйлера

//a1= 4;

// b1= -258 ;

//c1=4201;

// двойник многочлена Эйлера

//a1= 1;

//b1= -3 ;

//c1=43;

// нетпростых, только чётные

//a1= 1;

// b1= -5 ;

//c1=40;

//мало простыхполовина чётных

//a1= 1;

// b1= -8 ;

//c1=41;

/// очень мало проствых половина чётных

//a1= 2;

//b1= -3 ;

//c1=39;

// простых нет все занчения делятся на три

//a1=3;

// b1= -3 ;

//c1=39;

// мало простыхh2= 0,047

//a1=1;

//b1= -3 ;

// c1=17;

var

Tick: Cardinal;

s1:array [1..n] of integer;// значения многочлена № 1

s2:array [1..n] of integer;//1 -простое число, 0 - составное число

//многочлен № 1

s3:array [1..n] of integer;// значения многочлена № 2

s4:array [1..n] of integer;// 1 -простое число, 0 - составное число

//многочлен № 21

s5:array [1..n] of integer;// простые числа натурального ряда

s6:array [1..n] of integer;//составные числа нарурального ряда

s7:array [1..n] of integer;//ряд простых чисел

s8:array [1..50] of integer;// сравнение максимальных

//цепей простых чисел в многочленах№1 и №2

r,w, w1, w2, k,f,g, h, ha,q,i,j : integer; //

j1,j2,j3,j4,j5,j6,j7,j8,i2,i1, i3,i4,i5,i6,i7,i8,i9,i0, l: integer; //

x1, x2, z,z1, z2, z3, z4,z5, z6,z7,v,v1,v2, e: integer;//

m, m1, m2, mm, a2,m3,m4,m5 ,vv: integer;//

y, y1, y2,y3, d, p, s, t, u1,u2 , p1, t1, u3,u4 : integer;//

h1,h2,h3: variant;//

n1, n2, n3,n4: cardinal;//

d1, d2, d3, d4: variant;//

// Функция нахождения простых чисел

// По книгеЖуков "Программируем в Delphi"

function good(Numb:integer):boolean;

var

i:integer;

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

good:= true;

for i:=2 to Trunc(Sqrt(Numb)) do

if (Numb mod i) =0then

begin

good := false;

exit;

end; end;

procedure TForm1.Button1Click(Sender: TObject);

// окантовка

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

for q:=1 to n //нумерация по горизонтали в табл №1 ,

do StringGrid2.Cells[q,0]:=IntToStr(q);

for q:=1 to n// нумерация по вертикалив табл №1 ,

doStringGrid2.Cells[0,q]:=IntToStr(q);

////////////////// a b c

for i:=1 to ndo

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

s1:=(a*i*i + b*i + c);

if s1<=0 then begin v:=i; break

end; end;

for j:= 1 to N dobegin

IF S1[j]> 0 then

if good (s1[j]) then

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

s2[j]:=1 ; z1:= z1+1; end

elsebegin s2[j]:=0;z2:= z2+1;

end;end;

// простые - многочлен № 1

for i:=1 to n dobegin

if s2=1 then m:=m+1 ;

if s2 =0 then begin

if m>w then

beginw:=m;j1:= i-1;end;

m:=0

end;

end;

//end;

j2 := j1-w+1;

//составные - многочлен № 1

for i:=1 to n dobegin

if ((s2[i-1] =1) and(s2 =0)) then y1 := i ;

if s2=0 thent:=t+1 ;

if s2 =1 then begin

if t>s then

begins:=t; u1:= i-1;end;

end;

if s2 =1 then t:=0;

end;

u2 := u1-s+1;

///////////a1 b1 c1

for i:=1 to ndo

begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

s3:=(a1*i*i+ b1*i+ c1);

if s3<=0 then begin v1:=i; break

end; end;

for j:= 1 to N dobegin

Form1.Caption:=IntToStr(GetTickCount-Tick);

IF S3[j]> 0 then

if good (s3[j]) then

begin

s4[j]:=1 ; z3:= z3+1; end

elsebegin s4[j]:=0;z4:= z4+1;

end;end;

m1:=0;

for i:=1 to n dobegin//простые- многгочлен № 2

if s4=1 then m1:=m1+1 ;

if s4 =0 then begin

if m1>w1 then

beginw1:=m1;j3:= i-1;end;

m1:=0

end;

end;

j4 := j3-w1+1;

//составные- многочлен № 2

for i:=1 to n dobegin

if ((s4[i-1] =1) and(s4 =0)) then y2 := i ;

if s4=0 then t1:=t1+1 ;

if s4 =1 then begin

if t1>d then

begind:=t1;u3:= i-1;t1:=0; end;

if s2 =0 then t1 :=0;

end;

end;

u4 := u3-d+1;

/////////////////////////////натуральный ряд чисел

for j:= 1 to N dobegin

if good (j) then

begin

s5[j]:=j ; z5:= z5+1; end

elsebegin s6[j]:=j;z6:= z6+1;

end;end;

m2:=0;

// натуральный ряд составные числа

for i:=1 to n dobegin

if ((s5[i-1] >0) and(s6 >0)) then y3 := i ;

if s5=0 then m2:=m2+1 ;

if s5 >0 then begin

Form1.Caption:=IntToStr(GetTickCount-Tick);

if m2>w2 then

beginw2:=m2;j5:= i-1;end;

m2:=0

end;

end;

j6 := j5-w2+1;

// ряд простых числел

for j:= 1 to N do

if good (j) then

begin

z7:= z7+1; s7[z7]:=j end;

// частное простых и всех чисел

h1 := z1/n;//многочлен № 1

h2 := z3/n;//многочлен № 2

h3:= z5/n; // ряд натуральных чисел

for i:= 1 to n do

n1 := n1 + s1;

for i:= 1 to n do

n2 := n2 + s3;

for i:= 1 to n do

begin

if s5>0 then n3 := n3+s5;

if s6>0 then n3 := n3+s6;

end;

for i:= 1 to n do

n4 := n4 + s7;

d1 :=n1/n;

d2 :=n2/n;

d3 :=n3/n;

d4 := n4/z7;

for i:= j2 to j1 do

for j:= j4to j3 do

ifs1 = s3[j] then s8 :=s1 ;

//////////////////////////

for i:=1 to ndobegin

StringGrid2.Cells[i,1]:=

IntToStr( s1);

StringGrid2.Cells[i,2]:=

IntToStr( s2);

StringGrid2.Cells[i,4]:=

IntToStr( s3);

StringGrid2.Cells[i,5]:=

IntToStr( s4);

ifs5=0 then

StringGrid2.Cells[i,7]:= '-';

ifs5>0 then

StringGrid2.Cells[i,7]:=IntToStr(i);

ifs5>0 then

StringGrid2.Cells[i,8]:= '-';

ifs5=0 then

StringGrid2.Cells[i,8]:=IntToStr( i);

IntToStr( s6);

StringGrid2.Cells[i,10]:=

IntToStr( s7);

// выоод простых чисел с 41

if s7>=41 then

StringGrid2.Cells[i-13,10]:=

IntToStr( s7);

end;

for i:=1 to 50do

if i<=w then

StringGrid2.Cells[i,12]:=

IntToStr( s8)

else StringGrid2.Cells[i,12]:='-';

Edit1.Text :=

'a='+' '+IntToStr(a)+''+

'b='+' '+IntToStr(b)+''+

'c='+''+IntToStr(c)+''+

'v='+''+IntToStr(v)+''+

'z1='+''+IntToStr(z1)+''+

'z2='+''+IntToStr(z2)+''+

'w='+''+IntToStr(w)+''+

'm='+''+IntToStr(m) +''+

'j1='+''+IntToStr(j1) +''+

'j2='+' '+IntToStr(j2) +''+

's='+''+IntToStr(s) +''+

't='+''+IntToStr(t)+''+

'u1='+''+IntToStr(u1) +''+

'u2='+' '+IntToStr(u2) +''+

'y1='+' '+IntToStr(y1) +''+

's2[n]='+' '+IntToStr(s2[n]) +''+

'd1='+' '+FormatFloat('0.00000',d1)+''+

'h1='+' '+FormatFloat('0.00000',h1);

Edit2.Text :=

'a1='+''+IntToStr(a1)+''+

'b1='+' '+IntToStr(b1)+''+

'c1='+''+IntToStr(c1)+''+

'v1='+''+IntToStr(v1)+''+

'z3='+''+IntToStr(z3)+''+

'z4='+''+IntToStr(z4)+''+

'w1='+''+IntToStr(w1)+''+

'm1='+''+IntToStr(m1) +''+

'j3='+''+IntToStr(j3) +''+

'j4='+' '+IntToStr(j4)+''+

'd='+''+IntToStr(d) +''+

't1='+''+IntToStr(t1)+''+

'u3='+''+IntToStr(u3) +''+

'u4='+' '+IntToStr(u4) +''+

'y2='+' '+IntToStr(y2) +''+

's4[n]='+' '+IntToStr(s4[n]) +''+

'd2='+' '+FormatFloat('0.00000',d2)+''+

'h2='+' '+ FormatFloat('0.00000',h2);

Edit3.Text :=

'v2='+''+IntToStr(v2)+''+

'z5='+''+IntToStr(z5)+''+

'z6='+''+IntToStr(z6)+''+

'w2='+''+IntToStr(w2)+''+

'm2='+''+IntToStr(m2) +''+

'j5='+''+IntToStr(j5) +''+

'j6='+''+IntToStr(j6) +''+

'y3='+''+IntToStr(y3) +''+

's5[n]='+' '+IntToStr(s5[n]) +''+

'd3='+' '+FormatFloat('0.00000',d3)+''+

'h3='+''+FormatFloat('0.00000',h3);

Edit4.Text :=

'n4='+''+IntToStr(n4) +''+

'z7='+''+IntToStr(z7) +''+

'd4='+' '+FormatFloat('0.00000',d4);

end;

////////////////////////////////////////////////////////////////

procedure TForm1.Button5Click(Sender: TObject);

begin

close

end;

initialization

randomize;

end.

///////////////////////////////////

#18 
AlexNek патриот05.02.25 19:39
AlexNek
NEW 05.02.25 19:39 
в ответ alek4 05.02.25 17:30, Последний раз изменено 05.02.25 19:39 (AlexNek)

обидно, когда человек не может научится работать с форумом. хммм

Пожалели бы тех, кто в первых раз пришел, столько скроллировать и смотреть неформатированный код. Ну хоть бы так сделали, если нравиться мусор выкладывать

BEGIN
     ShowTheMenu;
     GetUserChoice;
     IF (UserChoice = 'a') OR (UserChoice = 'b') THEN BEGIN
          GetNumberToConvert;
          DoTheConversion;
          DisplayTheAnswer;
          Wait;
     END;
END;
#19 
7495 коренной житель06.02.25 07:04
7495
NEW 06.02.25 07:04 
в ответ AlexNek 05.02.25 19:39
обидно, когда человек не может научится работать с форумом, если нравиться мусор выкладывать


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



Вопросы и Ответы - Программируем калькулятор пособий для беженцев вместе.
#20 
1 2 3 4 все