Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Общие вопросы по программированию, компьютерный форум
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2023, 11:30   #11
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Совместив графические разработки Кот и Xonix Ксоникс
https://www.programmersforum.ru/show...61#post1856161

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

120 kB

Код:
using System; using System.Drawing; // xonixmult.cs
using System.Windows.Forms; class xonix: Form

{ public static void Main()
  { Application.Run(new xonix());}
    public xonix()

{ Text = "XONIX"; Width = w; Height = h;
BackColor = System.Drawing.Color.Blue;
ForeColor = System.Drawing.Color.Magenta; 
}

public int w=550, h=330;
protected override void OnPaint(PaintEventArgs and)

{ Graphics dav = and.Graphics; int n=13, a=w-40, b=h-40; 
Random rand = new Random(); int[] f = new int[n]; 
int[] x = new int[n]; int[] y = new int[n];
int[] dx = new int[n]; int[] dy = new int[n]; 
int[] c = new int[n];

for (int i=1; i<n; i++) 
{ f[i] = (2+rand.Next(3))*5; c[i] = 1+rand.Next(3);  
x[i] = rand.Next(a); y[i] = rand.Next(b); 
dx[i] = rand.Next(5)-2; dy[i] = rand.Next(5)-3; 
}

for (int k=1; k <300; k++)
for (int i=1; i<n; i++) 

{ dav.DrawEllipse(new Pen(Color.Green,12), x[i]-dx[i],y[i]-dy[i],f[i],f[i]);
 
if (1==c[i]) dav.DrawEllipse(new Pen(Color.Magenta, 12),x[i],y[i],f[i],f[i]);
if (2==c[i]) dav.DrawEllipse(new Pen(Color.Yellow, 12),x[i],y[i],f[i],f[i]);
if (3==c[i]) dav.DrawEllipse(new Pen(Color.Red, 12),x[i],y[i],f[i],f[i]);

System.Threading.Thread.Sleep(1);

if ((x[i] + dx[i] < 1) || (x[i] + dx[i] > a)) dx[i] = -dx[i];
if ((y[i] + dy[i] < 1) || (y[i] + dy[i] > b)) dy[i] = -dy[i];
x[i] += dx[i]; y[i] += dy[i];
}}}

// dav.DrawEllipse(new Pen(Color.FromArgb(0,0,255,0),12), x[i]-dx[i],y[i]-dy[i],f[i],f[i]);
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 23.01.2023 в 10:03.
сфинкс вне форума Ответить с цитированием
Старый 26.01.2023, 17:22   #12
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Моя универсальная программа переведена на C#
пока без таймера и без ввода-вывода файлов
тогда позже запишется случайная матрица

Новшества для меня: форматирование текста
и в конце цикл считает внутри себя

Сценарий универсальной программы на странице 1
в принципе ясно по сообщениям

Далее попробую перевести на Python
зато другие читатели могут перевести на C++
и думаю хороший пример заданий студентам
где в 1 абзац решается 1 задача

Код:
using System; // universe.cs
namespace universe
{ class universe
{ static void Main(string[] args)

{ Random rand = new Random(); int i,j; int n=5; 
int[] d = new int[n]; int[] x = new int[n];
int[,] a = new int[n,n]; int[,] y = new int[n,n];

Console.WriteLine("Массив d в строку");
for (i=0; i<n; i++) 
{ d[i] = rand.Next(9); Console.Write("{0} ",d[i]); 
}

Console.WriteLine("\n \nМассив d чётные x=d^2");
for (i=0; i<n; i++) 
  { if (d[i] %2 ==0) x[i] = d[i] * d[i];
    else x[i]=d[i];
Console.WriteLine("{0} {1}", d[i], x[i]);
}

Console.WriteLine("\nМассив x сортировка");
for (i=0; i<n-1; i++) for (j = i+1; j<n; j++) 
if (x[i]>x[j]) { var temp=x[i]; x[i]=x[j]; x[j]=temp;}

Console.Write("и вывод x через while\n");
i=0; while (i < n)
       { Console.Write("{0} ",x[i]); i++; }

Console.WriteLine("\n\nМассив y сумма или нечётная y=d^2");
for (i=0; i<n; i++) 
  { for (j = 0; j<n; j++) 
    { a[i,j]=i+j; 
       if (a[i,j] %2 !=0) y[i,j] = a[i,j] * a[i,j];
       else y[i,j] = a[i,j];
Console.Write("{0} ",y[i,j]); }
Console.WriteLine(); }

Console.WriteLine("\nМассив d минимакс от:");
for (i=0; i<n; i++) Console.Write("{0} ", d[i]); 
Console.WriteLine("\n"); 

int min = d[0]; int max = d[0]; int nmin=0; int nmax=0;
for (i=1; i<n; i++)
  { if (d[i]< min) { min=d[i]; nmin=i;}
    if (d[i]> max) { max=d[i]; nmax=i;}
}
Console.WriteLine("{0} {1}   {2} {3}", min, nmin, max, nmax);

Console.WriteLine("\nСумма d и средний");
double s=0; for (i=-1; i<n-1; s += d[++i]); 
Console.WriteLine("{0} {1:f2}", s, s/n);

Console.ReadKey();
}}}
Universal C#
https://rextester.com/RYGR5556

Результат при n=5
Код:
Массив d в строку
6 0 7 8 5

Массив d чётные x=d^2
6 36
0 0
7 7
8 64
5 5

Массив x сортировка
и вывод x через while
0 5 7 36 64

Массив y сумма или нечётная y=d^2
0 1 2 9 4
1 2 9 4 25
2 9 4 25 6
9 4 25 6 49
4 25 6 49 8

Массив d минимакс от:
6 0 7 8 5

0 1   8 3

Сумма d и средний
26 5,20
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 27.01.2023 в 10:37.
сфинкс вне форума Ответить с цитированием
Старый 31.01.2023, 15:15   #13
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Моя универсальная программа переведена на Python

Код:
import random # universe.py
n = 5; d=[1]; a=[1,1]; x=[1]; y=[1,1]

print('Array d in a string')
for i in range (0,n): 
    d[i]=d.append(i)
    x[i]=x.append(i)
    d[i] = random.randrange(0,9)
    print (d[i], end=' ')
    
print('\n\nArray d even x=d^2')
for i in range (0,n): 
    if d[i] % 2 == 0: 
         x[i]=d[i] * d[i]
    else:
         x[i]=d[i] 
    print (d[i], x[i], end=' ')
    print()

print('\nArray x sorting')
for i in range (0,n-1):
    for j in range (i+1,n):
       if x[i] > x[j]:
           temp=x[i]
           x[i]=x[j]
           x[j]=temp
      
i=0; print('and output x via while')
while i < n:
    print (x[i], end=' ')
    i=i+1

print('\n\nArray y sum or odd y=d^2')
a=[[i+j for i in range (n)] for j in range (n)]
y=[[i+j for i in range (n)] for j in range (n)]

for i in range (0,n):
    for j in range (0,n):
        if a[i][j] % 2 != 0:
            y[i][j] = a[i][j] * a[i][j] 
        print ("%2d" % y[i][j], end=' ') 
    print()
print()

dmin = d[1]; dmax = d[1]; nmin=1; nmax=1
for i in range (1,n):
    if d[i]< dmin:
        dmin=d[i]; nmin=i
    if d[i]> dmax: 
        dmax=d[i]; nmax=i

print('Array d minimax from:')
for i in range (0,n): 
    print (d[i], end=' ')

print ('\n', dmin, nmin, '   ', dmax, nmax, end=' ')

s=0; print('\n\nSum d and average')
for i in range (1,n): 
    s=s+d[i]
print(s, s/n, end=' ')
https://rextester.com/VXCJ24727

Плюс создана версия на c++
и отдельно на 5 языках ввод и сохранение на диск
чтобы далее использовать только мои наработки

Плюс графическая программа выше работает без торможения
и вообще следующий шаг: анимация
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую

Последний раз редактировалось сфинкс; 31.01.2023 в 15:19.
сфинкс вне форума Ответить с цитированием
Старый 31.01.2023, 22:02   #14
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Подумал, что некоторые вещи избыточны, некоторые не оптимальны, ...
Код:
# universe.py
from random import randrange
n = 5

print('Array d in a string')
d = [randrange(0,9) for _ in range(n)]
print(*d, end=' ')
    
print('\n\nArray d even x=d^2')
x = [0] * n
for i in range(n):
    x[i] =  d[i] if d[i] % 2 else d[i]**2
    print(d[i], x[i], end=' ')
    print()

print('\nArray x sorting')
x.sort()
print('and output x')
print(*x)  # вывод результата

print('\n\nArray y sum or odd y=d^2')
a=[[i+j for i in range(n)] for j in range(n)]
y=[[i+j for i in range(n)] for j in range(n)]

for i in range(n):
    for j in range(n):
        if a[i][j] % 2 != 0:
            y[i][j] = a[i][j]**2 
        print ("%2d" % y[i][j], end=' ') 
    print()
print()

# по первому вхождению (как в исходном коде)
dmin = min(d); nmin = d.index(dmin)
dmax = max(d); nmax = d.index(dmax)
print(*d, end=' ')
print()
# по последнему вхождению
print('First\n', dmin, nmin, '   ', dmax, nmax, end=' ')
nmin = n - 1 - d[::-1].index(dmin) # поиск с "хвоста" (в перевёрнутом списке)
nmax = n - 1 - d[::-1].index(dmax)
print()
print('Last\n', dmin, nmin, '   ', dmax, nmax, end=' ')

print('\n\nSum d and average')
s = sum(d)
print(s, s/n, end=' ')
PS:
1. Не следует отделять имя функции от скобок:
Код:
print ('Привет!) # так не следует делать
print('Привет!)
Мы же не делаем этого в мат. выражениях:
Код:
f(x, y) = sin(x)*cos(y)
2. В Python операцию обмена вида:
Код:
t = a
a = b
b = a
можно записать и так:
Код:
a, b = b, a
x, y, z = z, x, y # и даже более
3. Не следует импортировать из библиотеки все функции, к тому же, если вы пользуетесь одной.
Код:
import random   # так не следует ...

from random import randrange
4. Зачем инициировать так много переменных, если они всё равно формируются вновь?

5. Если этот код для Вас любимого, то его стоит улучшить.
Если этот код для новичков, то его тем более стоит улучшить.

6. Я не программист, но некоторые решения режут глаз, если можно сделать "вкуснее".
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 14.02.2023, 12:49   #15
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Моя универсальная программа переведена на C++

Код:
#include <iostream> // universe.cpp
using namespace std; int main() // rextester.com/DHHKPJ12975
{ setlocale (LC_ALL, "RUS");
  srand(time(NULL)); int i,j; int n=5;
  int d[n], x[n], a[n][n], y[n][n],temp;

cout << "Массив d в строку" << endl;
for (i=0; i<n; i++)
{ d[i] = rand() % 9; cout << d[i] << " ";
}

cout << "\n \nМассив d чётные x=d^2" << endl;
for (i=0; i<n; i++)
  { if (d[i] %2 ==0) x[i] = d[i] * d[i];
    else x[i]=d[i];
    cout << d[i] << "  " << x[i] << endl;
   }

cout << "\nМассив x сортировка" << endl;
for (i=0; i<n-1; i++) for (j = i+1; j<n; j++)
if (x[i]>x[j]) { temp=x[i]; x[i]=x[j]; x[j]=temp;}

cout << "и вывод x через while\n" << endl;
i=0; while (i < n)
       { cout << x[i] << " "; i++; }

cout << "\n\nМассив y сумма или нечётная y=d^2" << endl;
for (i=0; i<n; i++)
  { for (j = 0; j<n; j++)
    { a[i][j]=i+j;
       if (a[i][j] %2 !=0) y[i][j] = a[i][j] * a[i][j];
       else y[i][j] = a[i][j];
cout << y[i][j] << "\t"; }
cout << endl; }

cout << "\nМассив d минимакс от:" << endl;
for (i=0; i<n; i++) cout << d[i] << " ";
cout << "\n";

int min = d[0]; int max = d[0]; int nmin=0; int nmax=0;
for (i=1; i<n; i++)
  { if (d[i]< min) { min=d[i]; nmin=i;}
    if (d[i]> max) { max=d[i]; nmax=i;}
  }
cout << min << " " << nmin << "\t"  << max << " " << nmax;

cout << "\n\nСумма d и средний" << endl;
double s=0; for (i=-1; i<n-1; s += d[++i]);
cout << s << "\t" << s/n << "\n";

system("pause");
}
Universal C++: https://rextester.com/DHHKPJ12975

Далее одинаковые наработки про матрицы
и про ввод-вывод в файлы на 5 языках
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 21.02.2023, 15:59   #16
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Матрица и файл

Принципиально использую только мои наработки

Синтезировать имя файла как 2 цифры для записи и чтения
в c++ имя файла переменной как непонятно

Сформировать таблицу умножения до 5*5 в 2-мерный массив

Сохранить таблицу на диск наизнанку начав с "25" =5*5

Считать таблицу в новый 2-мерный массив и вывести на экран

Особенность: qb64 считывает таблицу оформленную в файле
зато для C# & Python сохраняются 25 ячеек в столбик
иначе C# & Python из файла отдельные через табуляции
элементы в таблицу не считывают

Matrix C++

Код:
#include <iostream> // matrix.cpp
#include <fstream>
using namespace std; int main()  
{ setlocale (LC_ALL, "RUS");
  srand(time(NULL)); int i,j; int n=5;
int a[n][n]; int y[n][n];        

for (i=0; i<n; i++)
  { for (j=0; j<n; j++)
    { a[i][j]=(i+1)*(j+1);    
      cout << a[i][j] << "\t";
    } cout << endl;
  } cout << endl;

ofstream fw("54321.txt");

for (i=n-1; i>=0; i--)
  { for (j=n-1; j>=0; j--)
      fw << a[i][j] << "\t";
      fw << endl;
  } fw << endl;
fw.close();

ifstream fr("54321.txt");

for (i=0; i<n; i++)
  { for (j=0; j<n; j++)
    { fr >> y[i][j];
      cout << y[i][j] << "\t";
    } cout << endl;
  } cout << endl;
fr.close();

system("pause");}
Код:
Результат

 1  2  3  4  5
 2  4  6  8 10
 3  6  9 12 15
 4  8 12 16 20
 5 10 15 20 25

25 20 15 10  5
20 16 12  8  4
15 12  9  6  3
10  8  6  4  2
 5  4  3  2  1
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 28.02.2023, 13:13   #17
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Матрица и файл C#
Код:
using System; using System.IO; // matrix.cs
namespace matrix { class matrix
{ static void Main(string[] args)

{ Random rand = new Random(); int i,j; int n=5;
int[,] a = new int[n,n]; int[,] y = new int[n,n];
string s = ((10+rand.Next(88)).ToString())+".txt";

for (i=0; i<n; i++)
  { for (j=0; j<n; j++)
    { a[i,j]=(i+1)*(j+1);
      Console.Write("{0}\t",a[i,j]);
    } Console.WriteLine();
  } Console.WriteLine();

var outFile = new StreamWriter(s);

for (i=n-1; i>=0; i--)
  { for (j=n-1; j>=0; j--)
    outFile.WriteLine(a[i,j]);
  } outFile.Close();

var inpFile = new StreamReader(s);

for (i=0; i<n; i++)
  { for (j=0; j<n; j++)
    { y[i,j] = Convert.ToInt32(inpFile.ReadLine());
      Console.Write("{0}\t ",y[i,j]);
    } Console.WriteLine();
  } inpFile.Close();
Console.ReadKey();
}}}
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 07.03.2023, 07:30   #18
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Недавно на форуме решалась задача про 2-мерный массив на c++
и далее создал алгоритм сортирующий раздельно столбцы и строки
и далее за минуты перевёл из c++ на python

применив для 2-х массивов заполнение и расширение см. в начале
a=[[random.randrange(0,9) for i in range (m)] for j in range (n)]

Однако хотя по логике должны быть циклы i=n & j=m
почему в начале работают наоборот циклы i=m & j=n

Программа создаёт 2-мерный массив
и сортирует раздельно столбцы и строки

Python
https://rextester.com/LVIB34467

Код:
import random # matrixsortp.py
n=3; m=5; a=[1,1]; b=[1,1]
a=[[random.randrange(0,9) for i in range (m)] for j in range (n)]
b=[[1 for i in range (m)] for j in range (n)]

for i in range (n):
    for j in range (m):
        print ("%2d" % a[i][j], end=' ')
        b[i][j]=a[i][j]
    print()
print()

for i in range (n):
    for j in range (m-1):
        for k in range (j+1,m):
           if (a[i][j]>a[i][k]):
               t=a[i][j]; a[i][j]=a[i][k]; a[i][k]=t;

for i in range (n):
    for j in range (m):
        print ("%2d" % a[i][j], end=' ')
    print()
print()

for i in range (n):
    for j in range (m):
        print ("%2d" % b[i][j], end=' ')
    print()
print()

for j in range (m):
    for i in range (n-1):
        for k in range (i+1,n):
            if (b[i][j]>b[k][j]):
               t=b[i][j]; b[i][j]=b[k][j]; b[k][j]=t;

for i in range (n):
    for j in range (m):
        print ("%2d" % b[i][j], end=' ')
    print()
Код:
 2  6  3  6  0 
 8  5  0  6  7 
 8  5  2  1  1 

 0  2  3  6  6 
 0  5  6  7  8 
 1  1  2  5  8 

 2  6  3  6  0 
 8  5  0  6  7 
 8  5  2  1  1 

 2  5  0  1  0 
 8  5  2  6  1 
 8  6  3  6  7
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 14.03.2023, 23:43   #19
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Предыдущее сообщение улучшено в сообщении
https://www.programmersforum.ru/show...68#post1858168

В данной теме хорошо бы изучить на разных языках функции

Функция функций включает математические функции
и каждая реализация выдаёт одинаковый результат
90 0 1322 примерно
Код:
#include <iostream> // func.cpp
#include <cmath> // rextester.com/TYYM47600
using namespace std; 

double func(double x)
{ double rad,a,b,c,d,e,f,func;
    rad = x * M_PI / 180;
    a = pow(x, 1/4);
    b = sqrt(x);  // cout << b << endl;
    c = cos(rad);    cout << c << endl;
    d = log10(x); // cout << d << endl;
    e = exp(b);
    f = log10(b) * log(e);
    func = a + b + c + d + e + f;
    return func;
}

int main()    
{ double x = 90.; 
    cout << x << "     " << func(x) << endl;
    system("pause");
}
https://rextester.com/TYYM47600
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Старый 21.03.2023, 09:18   #20
сфинкс
Форумчанин
 
Аватар для сфинкс
 
Регистрация: 17.06.2012
Сообщений: 957
По умолчанию

Функция функций JavaScript включает математические функции
и каждая реализация выдаёт одинаковый результат 90 0 1322 примерно
Код:
function funj(x) 
{   rad = x * Math.PI / 180
    a = Math.pow(x, 1/4)
    b = Math.sqrt(x);  // document.write(b)
    c = Math.cos(rad);    document.write(c)
    d = Math.log10(x); // document.write(d)
    e = Math.exp(b)
    f = Math.log10(b) * Math.log(e)
    funj = a + b + c + d + e + f
    return funj
}

x = 90 
document.write(x + "\t")
document.write("\n" + funj(x))
https://jdoodle.com/h/2Uj
Случайные и Массивы https://programmersforum.ru/showthread.php?t=344371 Учим C# & basic & excel & python https://programmersforum.ru/showthre...=327446&page=5 ничего нерекомендую
сфинкс вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив 12 элементов,случайные положительные и отрицательные. Найти элемент наиболее близкий к среднему значению(Паскаль 1998y8m1d Помощь студентам 6 16.12.2013 17:06
Случайные буквы StudentMarat Помощь студентам 6 17.10.2011 17:24
Случайные числа. Си. meta Помощь студентам 1 31.05.2011 01:48
случайные числа NeVerSS Общие вопросы Delphi 3 01.10.2010 22:22
Случайные числа.... Teen4jump Общие вопросы Delphi 4 28.11.2008 23:52