Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
.NET 6

В какой момент переключать флаг EndCondition, чтобы все условия со всеми конфигурациями фигурных скобок работали?

14.09.2022, 14:47. Показов 1449. Ответов 27
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь протранслировать в C# .NET и выполнить следующий код:
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
real a = 0;
loop
{
    if !(a >= 10)
        a++;
    else if !(a >= 12)
    {
        a += 0.25;
        continue;
    }
    else if !(a > null)
        continue;
    else
        break;
}
return a;
Код транслятора в приложенном архиве. Какой есть, лучше не смог сделать Я не из тех, кто, получив помощь, просто исчезает: разберетесь как следует - получите +21, а за качественную помощь по делу без трёпа - до +50 (если несколько сообщений)! Надеюсь, упоминать об этом не запрещено?
Проблема возникает с условиями и всякими там else и else if. В отладчике установлено, что при такой конфигурации данный код 8 раз останавливается на continue и один раз - на break, игнорирует return и возвращает null. Стоит взять break в фигурные скобки - сразу прыгает на него и возвращает null. Кроме того, VariableRemoveRn() (см. приложенный архив) вызывается лишний раз, из-за чего, даже если бы return и вызвался, там в любом случае было бы null. Когда нужно устанавливать, а когда снимать EndCondition, чтобы все заработало? В идеале было бы вообще без EndCondition, с одним лишь TrueCondition, но, наверное, это невозможно. Ну, кто из вас достаточно смелый, чтобы проглотить эту лапшу? Прошу помочь.
Вложения
Тип файла: rar CSharp .NStar Sources.rar (76.8 Кб, 10 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.09.2022, 14:47
Ответы с готовыми решениями:

Есть в С++ способ выполнить участок кода, чтобы в этот момент все остальные потоки не работали?
Этот участок кода пишет в консоль лог ошибок, и запоминает текущее место курсора в консоле. Что происходит очень редко. Но между этими...

Экранирование фигурных скобок
Столкнулся с такой проблемой: Пытаюсь разобрать текст из файла, а там есть фигурные скобки. Следственно на выходе получаю ошибку строка...

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

27
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
14.09.2022, 23:42  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
из-за неизвестности правил синтаксиса неизвестного языка.
Язык называется "C# .NStar". real - действительное число, занимающее 8 байт, тип с 4 байтами там упразднен. loop - цикл, прерываемый только через break или return (как Do ... Loop в Basic). if !(x (op) y) - сокращение от if (!(x (op) y)). С a > null уже объяснил. Остальное, кажется, должно быть понятно.
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
15.09.2022, 04:26
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
тип с 4 байтами там упразднен.
Почему? Считается, что машина на которой будет крутиться такая программа имеет резиновую память и бесконечный кеш процессора? Или это очередной игрушечный\скриптовый язык накладные расходы на который, как и его производительность, значения не имеют?
0
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
15.09.2022, 09:43  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Или это очередной игрушечный\скриптовый язык накладные расходы на который, как и его производительность, значения не имеют?
Это профильная тема, я не желаю трепаться.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
15.09.2022, 12:19
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Язык называется "C# .NStar"
А это ваш собственный язык....
Там много с чем надо разбираться. В первую очередь с теоретическими основами, базой.
Нельзя сказать насколько то или иное решение для ЯП лучше подходит, если нет твердого понимания теории этого конкретного языка.
Например, многие хорошие решения для Плюсов будут считаться моветоном для Шарпа и наоборот.
Хотя они и будут работать в обоих ЯП.

Конкретно в этом примере, как в ТЕОРИИ вашего языка должны работать такие условия:
C#
1
2
3
if(null) // вместо bool пустая ссылка.
if(0) // вместо bool целое значение.
if(1.0) // вместо bool нецелое значение..
С точки зрения Шарпа все эти конструкции вызовут ошибки компиляции.
А, как я понял, у вас они считаются рабочими.
Поэтому объясните КАК они работаю и, это даже важнее, ПОЧЕМУ это не ошибки?
С какой целью, для какой практической надобности вам понадобилось неявное приведение к bool других типов?
Ведь все эти неявные приведения - это очень частая причина различных ошибок рунтайма и неверной работы алгоритмов.
Что и демонстрирует ваш пример.

Добавлено через 8 минут
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
real - действительное число, занимающее 8 байт, тип с 4 байтами там упразднен.
Зачем вы ещё и смешиваете стандарты?
У вас цель "а чтоб программисты за...сь!"?
Названия типов установлены спецификацией. 64-разрядный вещественный тип называется binary64 или double.
real - это общее название всех нецелых типов. В каком-то ЯП (не помню сейчас) это 48-разрядное число, которого нет в современной спецификации.
IEEE 754

Добавлено через 53 минуты
Цитата Сообщение от Элд Хасп Посмотреть сообщение
В каком-то ЯП (не помню сейчас) это 48-разрядное число
Конвертация из устаревшего типа Real48 в Double и обратно
1
Труд вопреки насмешкам
 Аватар для Etyuhibosecyu
363 / 181 / 41
Регистрация: 13.07.2017
Сообщений: 4,829
Записей в блоге: 14
15.09.2022, 12:34  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
if(null) // вместо bool пустая ссылка.
В C# .NStar любой тип, в том числе и bool, может иметь значение null. Также есть тип null, для которого null - единственное значение. Поэтому в данной строке нет неявных преобразований, null - корректное значение для типа bool, ничем не лучше и не хуже true или false.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
if(0) // вместо bool целое значение.
Это автоматически развернется в if(0 >= 1). if (n), где n - число, транслятор преобразует в if (n >= 1).
Цитата Сообщение от Элд Хасп Посмотреть сообщение
if(1.0) // вместо bool нецелое значение..
В C# .NStar это целое значение. Оно имеет тип byte. Чтобы оно стало типа real, нужно написать 1.0r, ну или окольным путем в стиле 0.5 * 2. Например, 1 / 3 должно возвращать 0, а 1r / 3 - 0.333...
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Поэтому объясните КАК они работаю и, это даже важнее, ПОЧЕМУ это не ошибки?
Как они работают - см. первые три абзаца этого сообщения. Не ошибки потому, что язык для новичков, и нацелен на то, чтобы писать как можно меньше "портянок текста".
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Ведь все эти неявные приведения - это очень частая причина различных ошибок рунтайма и неверной работы алгоритмов.
Если программист на C# .NStar попробует сделать приведение с серьезными потерями (например, real в int) - транслятор его предупредит. Но в этом языке нет универсального приведения (как (T)a) - целые типы приводятся через деление или остаток от деления, действительный к целому - через Round, Floor, Ceil или Truncate.
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Зачем вы ещё и смешиваете стандарты?
Потому что C# .NStar не следует стандартам, о которых знают только глубокие профессионалы. Я даю новичку просто "real", что буквально и означает "действительный", с достаточной для большинства целей точностью, без погружения в "дебри". Просто и красиво!
Элд Хасп, и давайте перейдем от обсуждения особенностей языка к обсуждению ошибок транслятора.

Добавлено через 3 минуты
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
транслятор его предупредит.
Добавлю: предупредит, но принуждать не будет. Это важно.

Добавлено через 1 минуту
Цитата Сообщение от Элд Хасп Посмотреть сообщение
С точки зрения Шарпа все эти конструкции вызовут ошибки компиляции.
К слову, в Плюсах все они работают (с поправкой на nullptr вместо null).
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
15.09.2022, 13:04
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Это профильная тема, я не желаю трепаться.
Я задал вполне профильный вопрос. Если за этим решением стоял здравый смысл, а не как обычно, то ответить вам не составит труда.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16158 / 11278 / 2891
Регистрация: 21.04.2018
Сообщений: 33,164
Записей в блоге: 2
15.09.2022, 13:46
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
Элд Хасп, и давайте перейдем от обсуждения особенностей языка к обсуждению ошибок транслятора.
Невозможно обсуждать ошибки транслятора не обсуждая сам ЯП.
Вот есть некая языковая конструкция. Она не работает.
Не работает потому, что не должна работать по правилам языка или потому, что не правильно работает компилятор/интерпретатор языка?

Языки "для новичков" никому сейчас не нужны.
У "новичков" впереди долгая карьера. И их нужно учить востребованным языкам на рынке труда.
А востребованность языка определяется профессионалами. И в первую очередь по реальным, мейнстриммовым, большим (корпоративным) задачам.
Для учебного понимания, что такое алгоритм, как его составить вполне хватает Бейсика и Фортрана.
Но их, по-моему, даже в школах уже перестали преподавать из-за очень сильного отсталости от реальных задач.

Что касается конкретно вашей проблемы в топе темы, то для её разбора нужно вникать в ваш ЯП.
Для меня оно всё правильно работает и неверны ваши ожидания от этого алгоритма, а не обработка алгоритма.
Для того чтобы получать помощь по таким нюансам (сильно специфичных и зависящих от ваших хотелок), вам нужно сначала сформировать стек энтузиастов вашего ЯП и с ними обсуждать такие проблемы.
Но опасаюсь, что без нормальной теоретической основы, определения области предназначения, вы не сможете найти таких разработчиков.
А без этого ваш ЯП останется всегда только вашим личным ЯП.

Добавлено через 5 минут
Цитата Сообщение от Etyuhibosecyu Посмотреть сообщение
К слову, в Плюсах все они работают (с поправкой на nullptr вместо null).
Потому, что задачи и области назначения у Плюсов и Шарпа разные.
Шарп - это строго типизированный язык программирования ООП.
Плюсы - оно как бы есть элементы ООП, но по сути это низкоуровневое процедурное программирование.
На данный момент типы задач решаемых этими ЯП практически не пересекаются.
Это не говорит о том, что на Плюсах не возможно решить любую задачу.
Можно, конечно, но есть много задач, которые на Плюсах будет решать много затратнее чем на Шарпе.
0
Эксперт .NET
 Аватар для Usaga
14368 / 9469 / 1360
Регистрация: 21.01.2016
Сообщений: 35,733
15.09.2022, 17:00
Etyuhibosecyu, а что там с "линейкой"-то? Уже всё? Или для неё понадобился новый язык программирования?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.09.2022, 17:00

Как сделать чтобы работали все игры которые работают на Windows 7, но чтобы оставался Windows XP
подскажите как поступить у меня такая ситуация хочу поиграть в старую игрушку которая работает на хр но не работает на севен, нои хочу...

Отсутствие фигурных скобок в блоке if
Разве такое возможно? В 5 строчке if внутри скобок прописано условие а знаков обозначающих then { ... } нету. При этом программа работает...

Допустим ли порядок фигурных скобок
Cоздайте функцию, которая принимает строку фигурных скобок и возвращает допустим ли порядок фигурных скобок. Все входные строки будут...

Баланс фигурных скобок в файле
Вообщем нужно прочитать текст (любая программа, в файле name.txt) из файла и проверить баланс фигурных скобок. Всё проходит нормально, но...

Как подключить Bootstrap 3, чтобы работали все стили
Привет. Пытаюсь подключить bootstrap 3 по той же схеме, что и bootstrap 2. Не выходит. Ни то bootstrap.min.css не подключается, ни то...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
Новые блоги и статьи
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни 1. Механизм отложенного высвобождения фосфора Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ Реализована разная скорость. . .
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2. Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
Как надо было делать правильно - вообще не слушать ИИ, его дело - текст.
Hrethgir 15.07.2026
А вообще надо было делать не так, чтобы не исправлять ошибку https:/ / www. cyberforum. ru/ blogs/ 223907/ 10996. html , правильно было : удалил кнопку, а потом добавил её. Всё это стресс конечно. Почему?. . .
Знаете, от чего появляется стресс?
kumehtar 15.07.2026
Стресс появляется оттого, что вы, зная как поступить правильно, делаете наоборот. Ларри Уингет
Нас бьют, а мы крепчаем? Какая чушь!
kumehtar 15.07.2026
Вот это вот бытующее мнение, что человек меняется только под действием проблем, всегда считал вредоносным. Поверь, от проблем у людей появляются не изменения, а нервное расстройство и ПТСР. А. . .
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров В текущей версии модели успешно реализован ключевой механизм. . .
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям Реализованные компоненты: Механизм закисления почвы через протонную помпу Конкуренция между типами микориз pH как триггер сукцессии C/ P соотношение. . .
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru