Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14

C#.NStar

22.11.2020, 01:26. Показов 37019. Ответов 523
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
С чего всё началось
Мой язык программирования развивается, в очередной раз меняя название. Пятое название после C↑ᶜC, C#++, C with stations и временного Unnamed2 имеет вид "C# .NStar". Это название не вызывает никаких ассоциаций со стрелками, с "симбиозом плюсов и шарпа", со "станционным программированием", а вызывает единственную - то, что этот язык - прямое продолжение C#. Теперь вы убедились, что этот язык - не пустая болтовня, одна версия уже увидела свет, поэтому надеюсь, что очередная презентация возможностей C# .NStar хоть и подвергнется критике, но не приведет ни к чему плохому. Вот что уже работает:
1. Пространства имен.
2. Ошибки списком строк - теперь отображение n ошибок не займет время, пропорциональное n2, и вообще я по максимуму убрал конкатенацию строк в цикле, что является экстремально важным признаком качества языка.
3. Списки - не только возврат списка, но и переменные списочных типов.
4. Индексы - последний и самый сложный из перечисленных пунктов. Такой код успешно работает:
Code
1
2
list(3) int a = (((1, 2, 3), (4, 5, 6), (7, 8, 9)), ((10, 11, 12), (13, 14, 15), (16, 17, 18)), ((19, 20, 21), (22, 23, 24), (25, 26, 27)));
return a[1, 2, 3];
Но для того, чтобы выложить версию, этого мало. Это просто презентация.
А вот несколько будущих возможностей:
1. Оператор switch с лямбда-выражением. Это невероятно мощная конструкция! Позволит убрать очень много дублирования в условиях. Вот два примера:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
if (task.StartsWith("Class "))
{
    return Action1(task.Substring("Class ".Length));
}
else if (task.StartsWith("Interface "))
{
    return Action2(task.Substring("Interface ".Length));
}
else if (task.StartsWith("Function "))
{
    return Action3(task.Substring("Function ".Length));
}
else if (task.StartsWith("Extent "))
{
    return Action4(task.Substring("Extent ".Length));
}
...
Code
1
2
3
4
5
6
7
8
return x => task == x + string s switch
{
    "Class " => Action1(s);
    "Interface " => Action2(s);
    "Function " => Action3(s);
    "Extent " => Action4(s);
    ...
};
Прошу обратить особое внимание на огромную мощь этой конструкции и написать, хотели бы вы ею воспользоваться или нет, и если нет, то почему.
2. Способ задания словаря будет отличаться от способа задания двумерного списка: ключ и значение будут разделяться оператором ":", а если словарь состоит из единственного элемента, доступного по всем ключам - достаточно указать один этот элемент. Пример:
Code
1
2
Dictionary[string, int] dic1 = ("Съешь": 1, "же": 2, "ещё": 3, "этих": 4, "мягких": 5, "французских": 6, "булок": 7, "да": 8, "выпей": 9, "чаю": 10, _: 0);
Dictionary[string, int] dic2 = -12345;
3. Оператор ![], позволяющий сменить внутренний тип коллекции без смены внешнего типа. Это позволит создать аналог LINQ нового поколения - Jaretorant, в котором не надо завершать каждое выражение функциями ToArray() или ToList(). Только посмотрите:
Code
1
2
3
4
() int oldList;
() real newList = oldList.TransformEach(x => 1r / x);
LinkedList[int] oldList2;
LinkedList[real] newList2 = oldList2.TransformEach(x => 1r / x);
А сама конструкция TransformEach записывается таким способом:
Code
1
2
3
4
5
6
7
8
9
10
Dictionary[(typename TSource, typename TCollection : IEnumerable[TSource], typename TDest), TCollection![TDest] Extent(TCollection source, Func[TDest, TSource] Transformator)] =
{
    TCollection![TDest] output = new TDest[source.Count()];
    int i = 0;
    for (TSource elem in source)
    {
        output[i++] = Transformator(elem);
    }
    return output;
}
P. S. Недавно я наткнулся на список торговых знаков Microsoft. Оказывается, там написано, что нельзя искажать, модифицировать или комбинировать с любыми словами, символами, изображениями или другими видами информации любые из этих торговых знаков. Но самих знаков немного: само слово "Microsoft", Windows, MSN, Bing, Skype, Microsoft Edge и еще один или два. C# там нет! Поэтому создать язык с названием C# .NStar мне ничего не мешает.


 Комментарий модератора 
Update от 09.02.2026


ПОБЕДА!!! C#.NStar достиг версии (Alpha RC) 0.9! Это первое приложение от Red-Star-Soft, когда-либо достигавшее подобной версии! (Фреймворк - это не приложение.) Теперь, надеюсь, я перестал быть "профессиональным недоделывателем"? И, надеюсь, я получу тест?
1. Работа с файлами.
2. При техническом крахе сохраняется лог во временную папку.
3. Потоки. Причем нет этого ужасного разбиения на две воюющих стороны - синхронные и асинхронные - переключение контекста происходит автоматически.
4. "Швейцарский нож" (оператор is, сопоставление шаблонов). Пока что реализованы семь шаблонов: константа, тип, тип с объявлением переменной, var с объявлением переменной, шаблон сравнения (больше/меньше), пустой шаблон (_) и составной шаблон - несколько шаблонов, объединенных операторами and, or, not. Есть одна замеченная, но не исправленная ошибка, что попытка применить шаблон сравнения не к числу вызывает технический крах. Возможно, в будущем исправлю.
5. Сокращенный оператор for - можно написать так:
Code
1
2
3
4
for (i in collection)
{
    ...
}
- или так:
Code
1
2
3
4
for (i in a..b)
{
    ...
}
6. Сокращенные константы - если есть ключевое слово const, необзательно писать var или тем более полный тип.
7. Записи (Record - с прописной буквы). В отличие от C#.NET, это по терминологии Мартина чистые структуры данных, имеющие свойства, совпадащие по именам и типам с параметрами, конструктор из эих параметров и стандартные методы Equals и GetHashCode и неспособные иметь другие методы и свойства.
8. Структуры (Struct - с прописной буквы).
9. Прототип полиморфизма в виде словарей от рекурсивного типа к классу, одним из следующих способов (ключевое слово Class в случае полиморфизма обязтельно брать в скобки):
Code
1
2
3
4
const [typename T, (Class)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T, (Class)] ClassName = new [typename T, (Class)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new(
{
    ...
});
Code
1
2
3
4
const ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const var ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Code
1
2
3
4
const [typename T : BaseType, (Class : BaseType2)] ClassName = new [typename T : BaseType, (Class : BaseType2)](
{
    ...
});
Словари от чисел, строк или других типов, кроме typename, пока лучше даже не пытаться создавать - они не работают!
10. Обработка исключений:
Code
1
2
3
4
5
6
7
8
try
{
    ...
}
catch (ExceptionType var) if (condition) // if, а не when
{
    ...
}
В текущей версии доступен базовый набор исключений: Exception, ArgumentException (включает в себя ArgumentNullException и ArgumentOutOfRangeException, хотя явно указать их нельзя), IndexOutOfRangeException, InvalidOperationException, NullReferenceException и IOException.
11. И самое невероятное - ПАКЕТНЫЙ МЕНЕДЖЕР!!! Вы можете подключить любой пакет, доступный в публичном репозитории NuGet - достаточно зайти в настройки и указать его имя.
Рабочие примеры кода на C#.NStar, в дополнение к предыдущим версиям:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Threading;
Class MyClass
{
    Constructor()
    {
    }
    int Function Sync()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async1()
    {
        var x = MyClass2.MyFunc(5);
        return x;
    }
    Task[int] Function Async2(int n)
    {
        return n * n;
    }
}
 
static Class MyClass2
{
    Func[Task[int], int] MyFunc = new MyClass().Async2;
}
 
return new MyClass().Async1();
Code
1
2
3
object item = "Welcome!";
if (item is string text)
    return text;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
abstract Class BaseStack
{
    required typename T { get, init };
    
    abstract T Function Peek();
    abstract T Function Pop();
    abstract null Function Push(T item);
}
 
const [typename T, (Class : BaseStack[T])] Stack = new(
{
    private () T list = new(32);
 
    T Function Peek()
    {
        return list[^1];
    }
 
    T Function Pop
    {
        return list.GetAndRemove(list.Length - 1);
    }
 
    null Function Push(T item)
    {
        list.Add(item);
    }
});
 
BaseStack[int] intStack = new Stack[int]();
intStack.Push(5);
intStack.Push(10);
var x = (intStack.Pop(), intStack.Peek());
BaseStack[string] stringStack = new Stack[string]();
stringStack.Push("A");
stringStack.Push("B");
var y = (stringStack.Pop(), stringStack.Peek());
return (x, y);
Code
1
2
3
4
5
6
() int list = new();
for (i in Chain(0, 10)) while (i * i % 20 < 10)
{
    list.Add(i);
}
return list;
Code
1
2
3
4
5
6
int n = 0;
for (i in 1..1000)
{
    n++;
}
return n;
Code
1
2
3
Record Pair(string Name, int Value);
Pair pair = new("Status", 100);
return pair;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
const [typename T : IComparable[T], (Class)] Repository = new(
{
    private () T items = new();
 
    null Function Add(T item)
    {
        items.Add(item);
    }
 
    T Function GetMax()
    {
        if (items.Length == 0)
            return null;
        return Max(items);
    }
});
 
Class Product : IComparable[Product]
{
    int Id;
    int Function CompareTo(Product product)
    {
        return Id.CompareTo(product.Id);
    }
}
 
var repo = new Repository[Product]();
repo.Add(new Product[1]());
repo.Add(new Product[5]());
return repo.GetMax().Id;
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.IO;
try
{
    () int list = (1, 2, 3);
    return list.IndexOf(1, 5);
}
catch (ex) if (ex is not ArgumentException)
{
    return 1;
}
catch (ex)
{
    return "" + ex.Message;
}
return 2;
P. S. Можно также скачать из облаков, ссылка на странице версии.
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.11.2020, 01:26
Ответы с готовыми решениями:

Мелкомягкие мыслят местами точно как и я или следят за моим компьютером и крадут идеи, записанные на нем для C# .NStar?
Кто знает? Вот неполная цитата из файла, созданного в феврале этого года: А тут оказывается, что...

Стал ли .NStar в меньшей степени "сборной солянкой"?
sau, это тема для вас! Хотя обоснованные, не содержащие трёпа и троллинга мнения других...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
523
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 13:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
никогда не видел, чтобы его название писали в такой мерзкой форме, не приводя сначала настоящее название. Язык тоже, конечно, с особенностями, но разумеется, не такой мерзкий, как "раст".

Я хз что на это ответить
1
59 / 71 / 2
Регистрация: 04.12.2014
Сообщений: 176
10.02.2025, 13:35
Цитата Сообщение от Usaga Посмотреть сообщение
Катафалк, скорее всего речь о ****раст. Матерный синоним слова "голубой".
Я не удивлён, что Коля зациклен на сортирно-половой теме вспоминая его "кисок" и "петухов" в его линейке...
неудивительно, учитывая поломанную психику Николая.
он же тут создавал тему, что ему мама запрещает в девочку переодеваться, ноги отсюда и растут.
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 13:40
Но докопаться просто до слова "раст" - это вообще какой-то запредельный уровень шизы, конечно.
0
59 / 71 / 2
Регистрация: 04.12.2014
Сообщений: 176
10.02.2025, 13:43
ну так у таких людей зачастую самые безобидные слова могут интерпретироваться в негативном ключе.
0
Эксперт .NET
 Аватар для Rius
13823 / 7866 / 1703
Регистрация: 25.05.2015
Сообщений: 23,890
Записей в блоге: 14
10.02.2025, 13:44
Скайрим кишит великанами, летучими ящерицами и двуногими кошколюдями… а тебя удивляет говорящая собака? Да. Я заговорил. И буду говорить, между прочим
- Барбас. Скайрим.
0
Эксперт .NET
 Аватар для Usaga
14731 / 9507 / 1363
Регистрация: 21.01.2016
Сообщений: 35,857
10.02.2025, 14:47
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
чтобы его название писали в такой мерзкой форме, не приводя сначала настоящее название
Остаётся только гадать, что мерзкого в прямой транскрипции "раст" слова "ржавчина" (eng. 'rust')...

Пути поломанной в хламину психики неисповедимы...
0
Software Engineer
 Аватар для Custos
338 / 342 / 55
Регистрация: 23.09.2014
Сообщений: 1,050
10.02.2025, 15:13
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
А вам это слово нравится? Никаких "скользких" ассоциаций не вызывает?
Ты б это... Таблеточки попил какие-то что ли...
0
282 / 485 / 12
Регистрация: 21.06.2019
Сообщений: 3,020
10.02.2025, 16:55
Вот так сидит его правительские звания, старается, придумывает новую схему версий, что то программирует даже... И всем пофиг. Но стоило написать всего лишь одно сообщение дичи - и обсуждение на пару страниц тут как тут
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,698
Записей в блоге: 29
10.02.2025, 20:11
мдее, все ответы его свелись к тому, что я сам должен найти, нагуглить и вычислить, вот это я понимаю документация и подход! а другие Япы почему то это не используют
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
10.02.2025, 20:13  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
мдее, все ответы его свелись к тому, что я сам должен найти, нагуглить и вычислить
Неправда, не все ответы, а только один. Остальные вполне прямые.
0
Эксперт .NET
 Аватар для Rius
13823 / 7866 / 1703
Регистрация: 25.05.2015
Сообщений: 23,890
Записей в блоге: 14
10.02.2025, 20:22
Etyuhibosecyu, что там с регистратором?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
10.02.2025, 20:25  [ТС]
Rius, получил ответ от этого брокера, в такой ситуации они не могут предоставить домен. Подожду, как вы писали, до 21 февраля, потом посмотрим, что делать дальше.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,698
Записей в блоге: 29
10.02.2025, 20:27
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
а только один
ровно один по делу, остальные все мимо. Я пользователь, пришедший в документацию нового ЯП, я не собираюсь ходить по википедиям и я не знаю сишарп, а твоя "дока" не дает никаких ответов. Подозреваю, что ты и сам не знаешь их.

Задаю конкретный вопрос - как именно ты проверяешь, что при работе с твоим ЯП стек не используется?

Второй конкретный вопрос - как именно ты проверяешь, что булин у тебя занимает 1 бит памяти?

Третий конкретный вопрос - что значит "почти вся" типизация статическая? А какая не статическая, в каких случаях она не статическая, почему? Я не знаю сишарпа, потому расскажи о своем ЯП
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
10.02.2025, 20:34  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Задаю конкретный вопрос - как именно ты проверяешь, что при работе с твоим ЯП стек не используется?
Конкретный ответ - в настоящее время в текущей версии используется, еще предстоит сделать, чтобы не использовался.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Второй конкретный вопрос - как именно ты проверяешь, что булин у тебя занимает 1 бит памяти?
Класс BitList писал более чем наполовину я, следовательно, я знаю, что занимает в моем классе сколько памяти.
Цитата Сообщение от Welemir1 Посмотреть сообщение
Третий конкретный вопрос - что значит "почти вся" типизация статическая? А какая не статическая, в каких случаях она не статическая, почему?
Не статическая, только если явно указать динамический тип, в остальных случаях статическая.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,698
Записей в блоге: 29
10.02.2025, 20:42
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Класс BitList писал более чем наполовину я, следовательно, я знаю, что занимает в моем классе сколько памяти.
да неужели? на глазок? конкретные инструменты есть для измерения? Сколько памяти занимает пустой битлист? Сколько памяти занимает битлист с 1 значением?

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
в настоящее время в текущей версии используется, еще предстоит сделать, чтобы не использовался.
не ври! в доке мне сказали "в принципе нет стека"

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
указать динамический тип
о, интересно! покажи пример применения динамического типа или дай ссылку на документацию, где такой пример есть
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
10.02.2025, 20:49  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Сколько памяти занимает пустой битлист? Сколько памяти занимает битлист с 1 значением?
Разумеется, если пустой или с одним значением, то проверка нерепрезентативна. Вот с миллиардом значений - специально для вас проверю.
Цитата Сообщение от Welemir1 Посмотреть сообщение
не ври! в доке мне сказали "в принципе нет стека"
Не в "доке", а в разделе "Наш стиль". Стиль - это общая логика, система в целом, если хотите, "философия" языка, а не то, что работает в настоящее время. К документации это не имеет никакого отношения. Ссылка на документацию внизу страницы.
Цитата Сообщение от Welemir1 Посмотреть сообщение
о, интересно! покажи пример применения динамического типа или дай ссылку на документацию, где такой пример есть
Это не быстро, при случае покажу.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,698
Записей в блоге: 29
10.02.2025, 21:07
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Стиль - это общая логика, система в целом, если хотите, "философия" языка, а не то, что работает в настоящее время.

так дай ссылку на доку, мне интересен раздел о памяти - стек, куча, сколько занимают в памяти объекты и примитивы.

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
если пустой или с одним значением, то проверка нерепрезентативна.
о, позволь мне судить, начни именно с пустого и с 1 значением.
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,845
Записей в блоге: 14
10.02.2025, 21:13  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
так дай ссылку на доку, мне интересен раздел о памяти - стек, куча, сколько занимают в памяти объекты и примитивы.
=>
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Ссылка на документацию внизу страницы.
Там и типы, и много чего другого.
Цитата Сообщение от Welemir1 Посмотреть сообщение
о, позволь мне судить, начни именно с пустого и с 1 значением.
В коллекции с одним значением намного больше места займут длина, емкость и другие поля, чем это значение.
0
Модератор
Эксперт Java
 Аватар для alecss131
2896 / 1402 / 412
Регистрация: 11.08.2017
Сообщений: 4,489
Записей в блоге: 2
10.02.2025, 21:22
Вот с чем с чем, но с ТС по поводу ржавчины согласен на 100%
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,698
Записей в блоге: 29
11.02.2025, 07:19
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Там и типы, и много чего другого.
понял, ответа не знаешь, раздела про память нет, ок

Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
В коллекции с одним значением намного больше места займут длина, емкость и другие поля, чем это значение.
вот те и раз... то есть булин занимает 1 бит, но структура в которой он хранится гораздо больше? или как? если я сниму дамп памяти и потом создам 8 булинов то память увеличится ровно на 1 байт?

Добавлено через 1 минуту
кстати, если огрызаться и не отвечать на конкретные вопросы то это точно привлечет к тебе людей и новых пользователей...а , нет, погодите ка...наоборот!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Опции темы

Новые блоги и статьи
Был там один разговор по поводу свободы в материальном мире.
kumehtar 19.08.2026
Суть: рассматривается живое существо, оказавшееся внутри довольно странной системы (этого мира) и пытающееся обустроить в ней свой кусок пространства. Жизнь действительно предъявляет каждому. . .
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru