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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.02.2017, 18:44   #101  
AP-1055D is offline
AP-1055D
Участник
 
322 / 77 (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
 
688 / 521 (19) +++++++
Регистрация: 14.10.2004
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
А ещё бы я обратил внимание на стиль кода:
из-за отсутствия пробелов и то что инкремент делают с помощью префикса
Маззи позволено делать такие неточности. Программирование - это всего лишь одна из его ипостасей. Так как он в в мире Аксапты - как Ломоносов в мире науки.
Кстати, программирование без пробелов распространено в 1С, в самой популярной системе среди программистов. Может быть Маззи пытается таким образом повыстить популярность Аксапты. Может быть, в программирование без пробелов он вкладывает более глубокий смысл. А может быть, это просто гениальное чутье.
Старый 15.02.2017, 10:33   #103  
online
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
28,364 / 3324 (167) ++++++++++
Регистрация: 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  
online
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
28,364 / 3324 (167) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от mazzy Посмотреть сообщение
последнее рассчитанное число:
54438373113565281338734260993750380135389184554695967026247715841208582865622349017083051547938960541173822675978026317384359584751116241439174702642959169925586334117906063048089793531476108466259072759367899150677960088306597966641965824937721800381441158841042480997984696487375337180028163763317781927941101369262750979509800713596718023814710669912644214775254478587674568963808002962265133111359929762726679441400101575800043510777465935805362502461707918059226414679005690752321895868142367849593880756423483754386342639635970733756260098962462668746112041739819404875062443709868654315626847186195620146126642232711815040367018825205314845875817193533529827837800351902529239517836689467661917953884712441028463935449484614450778762529520961887597272889220768537396475869543159172434537193611263743926337313005896167248051737986306368115003088396749587102619524631352447499505204198305187168321623283859794627245919771454628218399695789223798912199431775469705216131081096559950638297261253848242007897109054754028438149611930465061866170122983288964352733750792786069444761853525144421077928045979904561298129423809156055033032338919609162236698759922782923191896688017718575555520994653320128446502371153715141749290913104897203455577507196645425232862022019506091483585223882711016708433051169942115775151255510251655931888164048344129557038825477521111577395780115868397072602565614824956460538700280331311861485399805397031555727529693399586079850381581446276433858828529535803424850845426446471681531001533180479567436396815653326152509571127480411928196022148849148284389124178520174507305538928717857923509417743383331506898239354421988805429332440371194867215543576548565499134519271098919802665184564927827827212957649240235507595558205647569365394873317659000206373126570643509709482649710038733517477713403319028105575667931789470024118803094604034362953471997461392274791549730356412633074230824051999996101549784667340458326852960388301120765629245998136251652347093963049734046445106365304163630823669242257761468288461791843224793434406079917883360676846711185597501
Цитата:
Сообщение от AP-1055D Посмотреть сообщение
Ну и никто не обмолвился про тесты...
Что называется, тому кто с тестами работал, информации было дано достаточно ))))
Старый 15.02.2017, 11:36   #105  
fed is offline
fed
Moderator
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Ex AND Project
Соотечественники
 
2,120 / 3877 (134) ++++++++++
Регистрация: 13.03.2002
Адрес: Hüfingen
Цитата:
Сообщение от mazzy Посмотреть сообщение
префиксный ++ остался еще с C, где способ записи имел значение. оба способа могут выстрелить в колено. но префиксный был быстрее в общем случае.
Уходя в некоторый офтопик: И на PDP-11 и на VAX, были префиксный автодекрементый и постфиксный автоинкрементный способы операции. То есть - система сначала уменьшала регистр на размер операнда, а потом брала значение операнда по адресу из регистра. Или наоборот - система сначала брала значение операнда по адресу из регистра, и потом регистр увеличивала на размер операнда.
Поэтому конструкция a=*(--ptr) и a=*(ptr++) транслировались в одну машинную команду, а конструкции a=*(ptr--) и a=*(++ptr) - в две.
Аналогично - операции ++ и -- были введены как раз потому что в PDP-11 были специальные машинные команды INC и DEC, которые увеличивали или уменьшали операнд на единицу и работали занимали меньше памяти и работали чуть быстрее чем обычные операции сложения и вычитания.
Старый 15.02.2017, 12:09   #106  
online
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
28,364 / 3324 (167) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Цитата:
Сообщение от Vadik Посмотреть сообщение
P.S. Денис, без обид, но ты - мамонт.
)))))))))

да, и использование машинной инструкции привело к огромным последствиям впоследствии.
даже не столько из-за отсутствия инструкций на некоторых процессорах.
сколько из-за логических проблем с сущностью, которую впоследствии назвали "точки следования"
Старый 15.02.2017, 12:19   #107  
online
mazzy
Administrator
Аватар для mazzy
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
Most Valuable Professional
 
28,364 / 3324 (167) ++++++++++
Регистрация: 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
Участник
 
322 / 77 (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
Участник
 
322 / 77 (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
Участник
 
181 / 59 (2) ++++
Регистрация: 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, время: 12:07.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.