Болталка PascalABC.NET

Поближе – в смысле ЕС? Так это не мы к ним, а они к нам все мечтают быть поближе :slight_smile: А я вот, чем старше становлюсь, тем все чаще вспоминаю с сожалением времена утраченного великого Союза.

Да наверно это общее у всех, кто бОльшую и лучшую часть жизни прожил в СССР

Глеб, не забывайте чистить топики от бураков и лисапедов

3 лайка

А мы и пишем в расчете на Глеба. Что же делать: все живые люди, и если что-то хочется обсудить, а самим нельзя перенести с какого-то момента обсуждение в “Болталку” ?

1 лайк

:rofl:

n1 := n1 shr 1 // не знаю, как реализовано в компиляторе, но должно быстрее деления работать.

1 лайк

Попробуйте так, Введите числа 2018 309 - Вам должно понравиться:

begin 
  var answ := BigInteger(1); 
  var (a, n) := ReadInteger2('Введите число и степень:'); 
  var (a1, n1) := (BigInteger(a), n); 
  while (n1 > 0) do 
  begin  
    if n1 mod 2 <> 0 then answ *= a1; 
    a1 *= a1; 
    n1 := n1 div 2 
  end; 
  Println($'{a}^{n}={answ}') 
end.

С чего вдруг? И целочисленное деление, и побитовый сдвиг - оба низкоуровневые процессорные процедуры. При чём стандартные, так что они в каждом процессоре должны быть.

Где написано, что их нет в процессоре? Но только компилятор, к примеру, с Fortran, - он целочисленное деление на степени двойки реализует сдвигом на нужное число разрядов, а другие многие другие компиляторы - именно делением. И не факт, что эти команды выполняются за одинаковое время. И аппаратно сдвиг намного проще деления реализуется.

  • with
  • using

0 голосов

Для тех кто не читал всё из issue:

  • using это в стиле C#, при переходе ничего менять не придётся.
  • вариант with возник потому, что у with и using чем то похожий функционал.

Нужен третий пункт - оставить все, как есть. А то получается, как выбор " вино или водка ? " для непьющего.

4 лайка

Но вопрос интересный. Такое иногда нужно.

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

Голосование создано.

1 лайк

Нужно ли создание аналога using из C#?

  • Да
  • Нет
  • Воздержусь от голосования

0 голосов

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

Не замусоривайте темами, господа

2 лайка

А дамам, стало быть, не возбраняется, буде таковые тут объявятся?:grinning:

Дам на нашем форуме не особо много, да и не посещают они раздел PascalABC.NET.

Я поддерживаю введение конструкции. Использование with в PascalABC.NET ограничивается синтаксисом TP(которого уже явно не хватает), к тому же его признали устаревшим. Добавлю ещё предложение от себя. В C# можно через using переопределить имя пространства имён для текущего файла кода. Это нужно добавить в Паскаль.

using Graph = GraphABC;
using WinForm = System.Windows.Forms;

Begin
  Graph.Window.Height := 480;
End.
3 лайка

Думаю, что это предложение стоит вынести в отдельную Issue, но перед этим обсудить с разработчиками.