AXForum  
Вернуться   AXForum > Прочие обсуждения > Курилка
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.02.2017, 18:44   #101  
AP-1055D is offline
AP-1055D
Участник
 
325 / 78 (3) ++++
Регистрация: 01.06.2011
А ещё бы я обратил внимание на стиль кода:

X++:
using System.Numerics;

class fibb
{        
    /// <summary>
    /// Runs the class with the specified arguments.
    /// </summary>
    /// <param name = "_args">The specified arguments.</param>
    public static void main(Args _args)
    {        
        int fibonacciSize = 10000;
        int i;

        BigInteger x = 0;
        BigInteger y = 1;
        BigInteger z;

        for(i=0; i<fibonacciSize; ++i)
        {
            z = BigInteger::Add(x,y);
            //info(z.ToString());
            x = y;
            y = z;
        }
        info(strFmt("last num: %1", z.ToString()));
    }

}
Не скажу, что для меня это было бы настолько важным, но точно бы резало глаз
X++:
for(i=0; i<fibonacciSize; ++i)
из-за отсутствия пробелов и то что инкремент делают с помощью префикса
X++:
++i
Ну и никто не обмолвился про тесты...
За это сообщение автора поблагодарили: mazzy (2).
Старый 15.02.2017, 09:18   #102  
Ace of Database is offline
Ace of Database
Участник
Аватар для Ace of Database
 
700 / 525 (19) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
А ещё бы я обратил внимание на стиль кода:
из-за отсутствия пробелов и то что инкремент делают с помощью префикса
Маззи позволено делать такие неточности. Программирование - это всего лишь одна из его ипостасей. Так как он в в мире Аксапты - как Ломоносов в мире науки.
Кстати, программирование без пробелов распространено в 1С, в самой популярной системе среди программистов. Может быть Маззи пытается таким образом повыстить популярность Аксапты. Может быть, в программирование без пробелов он вкладывает более глубокий смысл. А может быть, это просто гениальное чутье.
Старый 15.02.2017, 10:33   #103  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Ace of Database Посмотреть сообщение
Кстати, программирование без пробелов
в акс7 и в c# пробелы расставляются по-разному.
причем внутри МС очень жестокий контроль несоответствия бест-практису - несоответствующее просто не билдится.
поначалу было непривычно. потом перепривык.
теперь расставляю хаотически и смотрю ошибки компиляции от бест-практиса )))

префиксный ++ остался еще с C, где способ записи имел значение. оба способа могут выстрелить в колено. но префиксный был быстрее в общем случае.

интересная статья и комментарии про задачи на собеседованиях
http://alenacpp.blogspot.co.uk/2005/...ce-points.html

AP-1055D подметил совершенно точно - стиль, который выдает... )))

и таки да, я очень любил на собеседованиях задавать вопрос "что не нравится?"
ответ на этот вопрос лучше всего показывает с чем человек работал.
в частности, AP-1055D не понравился стиль. ок. почему бы и нет?
но сразу понятно что человек очень долго работал с продуктом, где применяется только такой стиль, чтобы считать такой стиль каноном ))))

Последний раз редактировалось mazzy; 15.02.2017 в 10:44.
За это сообщение автора поблагодарили: Ace of Database (3).
Старый 15.02.2017, 10:47   #104  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
последнее рассчитанное число:
54438373113565281338734260993750380135389184554695967026247715841208582865622349017083051547938960541173822675978026317384359584751116241439174702642959169925586334117906063048089793531476108466259072759367899150677960088306597966641965824937721800381441158841042480997984696487375337180028163763317781927941101369262750979509800713596718023814710669912644214775254478587674568963808002962265133111359929762726679441400101575800043510777465935805362502461707918059226414679005690752321895868142367849593880756423483754386342639635970733756260098962462668746112041739819404875062443709868654315626847186195620146126642232711815040367018825205314845875817193533529827837800351902529239517836689467661917953884712441028463935449484614450778762529520961887597272889220768537396475869543159172434537193611263743926337313005896167248051737986306368115003088396749587102619524631352447499505204198305187168321623283859794627245919771454628218399695789223798912199431775469705216131081096559950638297261253848242007897109054754028438149611930465061866170122983288964352733750792786069444761853525144421077928045979904561298129423809156055033032338919609162236698759922782923191896688017718575555520994653320128446502371153715141749290913104897203455577507196645425232862022019506091483585223882711016708433051169942115775151255510251655931888164048344129557038825477521111577395780115868397072602565614824956460538700280331311861485399805397031555727529693399586079850381581446276433858828529535803424850845426446471681531001533180479567436396815653326152509571127480411928196022148849148284389124178520174507305538928717857923509417743383331506898239354421988805429332440371194867215543576548565499134519271098919802665184564927827827212957649240235507595558205647569365394873317659000206373126570643509709482649710038733517477713403319028105575667931789470024118803094604034362953471997461392274791549730356412633074230824051999996101549784667340458326852960388301120765629245998136251652347093963049734046445106365304163630823669242257761468288461791843224793434406079917883360676846711185597501
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Ну и никто не обмолвился про тесты...
Что называется, тому кто с тестами работал, информации было дано достаточно ))))
Старый 15.02.2017, 11:36   #105  
online
fed
Moderator
Аватар для fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,178 / 4000 (138) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen,DE
Цитата:
Сообщение от mazzy Посмотреть сообщение
префиксный ++ остался еще с C, где способ записи имел значение. оба способа могут выстрелить в колено. но префиксный был быстрее в общем случае.
Уходя в некоторый офтопик: И на PDP-11 и на VAX, были префиксный автодекрементый и постфиксный автоинкрементный способы операции. То есть - система сначала уменьшала регистр на размер операнда, а потом брала значение операнда по адресу из регистра. Или наоборот - система сначала брала значение операнда по адресу из регистра, и потом регистр увеличивала на размер операнда.
Поэтому конструкция a=*(--ptr) и a=*(ptr++) транслировались в одну машинную команду, а конструкции a=*(ptr--) и a=*(++ptr) - в две.
Аналогично - операции ++ и -- были введены как раз потому что в PDP-11 были специальные машинные команды INC и DEC, которые увеличивали или уменьшали операнд на единицу и работали занимали меньше памяти и работали чуть быстрее чем обычные операции сложения и вычитания.
Старый 15.02.2017, 12:09   #106  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Vadik Посмотреть сообщение
P.S. Денис, без обид, но ты - мамонт.
)))))))))

да, и использование машинной инструкции привело к огромным последствиям впоследствии.
даже не столько из-за отсутствия инструкций на некоторых процессорах.
сколько из-за логических проблем с сущностью, которую впоследствии назвали "точки следования"
Старый 15.02.2017, 12:19   #107  
mazzy is offline
mazzy
Administrator
Аватар для mazzy
Most Valuable Professional
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
28,759 / 3627 (178) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от fed Посмотреть сообщение
Поэтому конструкция a=*(--ptr) и a=*(ptr++) транслировались в одну машинную команду, а конструкции a=*(ptr--) и a=*(++ptr) - в две.
да... помнится делали мы на PDP...

возвращаясь к более привычным архитектурам.
префиксные ++ -- компилировались в прямой поток инструкций
постфиксные ++ -- как правило приводили к тому, что сначала промежуточный результат куда-то сохранялся, затем инкрементировался, сохранялся, затем восстанавливался.

во времена, когда оптимизаторы были глупенькими и наивными это еще имело значение
Старый 16.02.2017, 14:31   #108  
AP-1055D is offline
AP-1055D
Участник
 
325 / 78 (3) ++++
Регистрация: 01.06.2011
А в Qlik Sense с помощью кода:

X++:
Let n = 50;

For v = 0 to n
  If v = 0 then
    Let f = 0;
  ElseIf v = 1 then
    Let f = 1;
  Else
    Let f = f_2 + f_1;
  End If;

  Fibonacci:
  Load * Inline
  [
    N, F
    $(v), $(f)
  ];
  
  Let f_2 = f_1;
  Let f_1 = f;
Next
можно увидеть вот такую красивую визуализацию чисел Фибоначчи:



А чтобы вычислить n-значение можно использовать матричную алгебру:

X++:
Let f00 = 1; Let f01 = 0;
Let f10 = 0; Let f11 = 1;

Let m00 = 1; Let m01 = 1;
Let m10 = 1; Let m11 = 0;

Let v = n;

Do while v > 0
  If Mod(v, 2) = 1 then
    Let a = f00 * m00 + f01 * m10;
    Let b = f00 * m01 + f01 * m11;
    Let c = f10 * m00 + f11 * m01;
    Let d = f10 * m01 + f11 * m11;
    Let f00 = a;
    Let f01 = b;
    Let f10 = c;
    Let f11 = d;
  End If

  Let v = Div(v, 2);
  
  Let a = m00 * m00 + m01 * m10;
  Let b = m00 * m01 + m01 * m11;
  Let c = m10 * m00 + m11 * m01;
  Let d = m10 * m01 + m11 * m11;
  Let m00 = a;
  Let m01 = b;
  Let m10 = c;
  Let m11 = d;
Loop

Fibonacci:
Load * Inline
[
  N, F
  $(v), $(f10)
];

Последний раз редактировалось AP-1055D; 16.02.2017 в 16:00.
Старый 20.02.2017, 10:27   #109  
AP-1055D is offline
AP-1055D
Участник
 
325 / 78 (3) ++++
Регистрация: 01.06.2011
С помощью JavaScript:

X++:
var n = 10;
var data = [];
var f, f_1, f_2;

for (v = 0; v <= n; v++) {
  if (v === 0) {
    f = 0;
  } else if (v === 1) {
    f = 1;
  } else {
    f = f_2 + f_1;
  }  
  
  data.push({
    name: v.toString(),
    value: f
  });
  
  f_2 = f_1;
  f_1 = f;
}

Highcharts.chart('container', {
  series: [{
    type: "treemap",
    data: data
  }],
  title: {
    text: 'Fibonacci numbers'
  }
});
https://jsfiddle.net/GEP442/6sf37dv3/

Последний раз редактировалось AP-1055D; 20.02.2017 в 10:29.
Старый 20.02.2017, 21:40   #110  
ALES is offline
ALES
Участник
Злыдни
 
213 / 44 (2) +++
Регистрация: 11.08.2004
... а вот кто напишет для машины Тьюринга алгоритм вычисления "Фибоначчи" ? ))
Старый 04.03.2017, 21:47   #111  
NetBus is offline
NetBus
Участник
 
185 / 73 (3) ++++
Регистрация: 08.07.2005
Адрес: Москва
Немного в тему тут.

Цитата:"Дэвид Хэнссон, создатель Ruby on Rails, признался в своём твиттере, что не написал бы сортировку пузырьком на доске. Дэвид подсматривает код в интернете всё время: :"
Старый 09.03.2017, 21:01   #112  
user_ax is offline
user_ax
Участник
Аватар для user_ax
 
558 / 33 (3) +++
Регистрация: 07.10.2012
Адрес: ZP
Цитата:
Сообщение от ax_mct Посмотреть сообщение
Я кстати вообще не имею понятия что такое Фибоначи и Золотое сечение. Всегда считал "математиков" больными на всю голову как и тех кто считает что программирование это математика.
Я думал, что один такой...
За это сообщение автора поблагодарили: Julieta (1).
 

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:15.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.