Помощь новичкам


#2424

Что такое вложенность пространств имён в настройках Intellisense?


#2425

Думаю, это - давняя опция, которая позволяет распознавать в Intellisense чуть больше за счёт увеличения времени. Для реальной разработки она не нужна.


#2426

Если поставить 1, нажать Ctrl+Space и написать sys - показывает только System:

image

Если поставить 2 - показывает System+все пространства имён в нём:

image

И т.д.


#2427

Её надо убрать - сейчас все компьютеры быстрые - не то что 10 лет назад


#2428

Зачем нужны окна “Сообщения компилятора”, “Результат поиска символов”, “Просмотр выражений”, “Окно дизассемблирования” и панель навигации по коду.

Где найти допустимые параметры командной строки и зачем они нужны?

При каком минимальном положительном значении переменной типа BigInteger real(от этой переменной) = Infinity?


#2429

Убрано

Ну, ВЫ и не рекламировали. Но, в связи с тем, что такой строки больше нет, можете вернуть?


#2430

Просто лог действий компилятора

Можно найти все ссылки на какую-либо функцию или класс, например

По остальным не знаю…


#2431

В смысле?

Параметры - для запуска программы из .exe с параметрами. Программа - это та же функция, а зачем функции параметры, думаю, объяснять не надо. А про допустимые параметры - см. пункт первый


#2432

Допустимые для чего? Нужно точно знать программу, для которой они допустимые.


#2433

Короче, все ваши абстрактные ответы и вопросы на вопрос это просто ерунда. Я считаю, что привести конкретный пример будет куда лучше!

Аргументы командной строки можно задать при запуске любого приложения. В любом .NET-приложении их можно достать из класса System.Environment методом GetCommandLineArgs(). В PascalABC,NET существует упрощение в виде уже находящегося в контексте CommandLineArgs. Напишем, к примеру, код:

begin
  var mode: integer := -1;
  
  if CommandLineArgs.Length > 0 then
  begin
    if (CommandLineArgs[0] = '0') or (CommandLineArgs[0] = 'sum') then mode := 0;
    if (CommandLineArgs[0] = '1') or (CommandLineArgs[0] = 'prod') then mode := 1;
    if (CommandLineArgs[0] = '2') or (CommandLineArgs[0] = 'sqr') then mode := 2;
  end
  else exit;
  
  if mode = -1 then exit;
  
  case mode of
    0: //Сумма двух чисел
    begin
      var ints := ReadInteger2('Введите числа:');
      Writeln($'Сумма: {ints.Item1 + ints.Item2}');
    end;
    1: //Произведение двух чисел
    begin
      var ints := ReadInteger2('Введите числа:');
      Writeln($'Произведение: {ints.Item1 * ints.Item2}');
    end;
    2: //Квадрат числа
    begin
      var int := ReadInteger('Введите число:');
      Writeln($'Квадрат этого числа: {int * int}');
    end;
  end;
end.

Заставит приложение исходя из аргумента командной строки вести себя по разному. Если аргумент неправильный, или их нет — оно сразу же закроется благодаря exit

При попытке “запустить код” ничего не получится.

Если мы добавим параметр sum (или 0):

image

То всё запускается и, соответственно, будет выполняться код по нахождению суммы:

image

А если заменить параметр на prod (или 1), то будет выполняться код по нахождению произведения:

image

Надеюсь, не нужно объяснять, что будет если заменить параметр на sqr?)))

И, разумеется, всё это масштабируется! То есть, можно передавать два, три или тысячу параметров, а каждый параметр может быть очень большой строкой)


#2434

Понятно, но

Зачем нужны окна “Просмотр выражений”, “Окно дизассемблирования” и панель навигации по коду.

При каком минимальном положительном значении переменной типа BigInteger real(от этой переменной) = Infinity?


#2435

По хорошему еще вот эту фразу надо убрать - она в том контексте несёт негативный оттенок:

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

А здесь - категорическое отрицание, причем не связанное с контекстом вообще.

Я вижу, вы добавили ссылки на ваш проект. Убирать не буду.

Проект нужный - я его рекомендую своим студентам, которые во втором семестре перешли с PascalABC.NET на C#.


#2436

Убрано.


#2437

А у вас ещё претензии есть? Просто чем больше критики, тем нам лучше


#2438

Вообще, в своё время мы начинали проект PascalABC.NET в надежде увести школьников с Турбо-Паскаля. Так что вам надо поменять всё-таки к нему отношение как к проекту для использования в Production. Он для этого никогда не создавался.

Его правильное позиционирование мы попытались недавно переописать на сайте http://pascalabc.net/

В частности: “в первую очередь как язык программирования для сферы образования и научных исследований” и как язык, отбирающий лучшие конструкции из других Mainstream-языков. А для школьников конечно - как хорошая альтернатива Python. Школьники в массе своей никогда не будут начинать с C#.


#2439

Претензии по отношению к чему?

К тексту на сайте проекта сейчас никаких.

Есть вопрос - а почему вы привязываетесь к версии PascalABC.NET 3.5.1.2277 как оконечной?

Ещё - формат school.pct будет наверняка меняться - возможно, название. И допустимы локальные school.pct - они перекрывают действие основного - подумайте, нужно ли это вам.


#2440

Да, мы это понимаем. Но, поскольку обновляться каждый раз сразу при выходе новой версии PascalABC.NET мы не планируем - проблем с частым переименованием (для нас) school.pct быть не может. Мы даём возможность заменять стандартный school.pct, но заниматься ли этим - решает пользователь. Была бы возможность в настройках через интерфейс выбирать используемый school.pct - было бы удобно. Сниппетам такая возможность тоже не помешала бы.

— NETMouse projects ©


#2441

У вас получилось


#2442

Да, такие мысли были. Просто пока варианты использования еще не вполне устоялись, поэтому сделаем потом.


#2443

real.MaxValue+1, конечно.