![]() |
Модераторы: LSD Страницы: (15) Все « Первая ... 7 8 [9] 10 11 ... Последняя »
( Перейти к первому непрочитанному сообщению ) |
![]() ![]() ![]() |
|
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: нет Всего: 101 |
Вы еще кипятите? |
|||
|
||||
archimed7592 |
|
||||||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 2 Всего: 93 |
![]() У сишников, в отличии от паскалистов, ptr + 4 - это сдвиг на sizeof(ptr) * 4, так что не надо "ля-ля". Есть конечно моменты, на которые нужно обратить внимание при портировании кода, но их ограниченное кол-во и сложность портирования не так уж и высока. Ню-ню ![]()
А как, вообще Delphi к паскалю относится? С тем же успехом можно под одну гребёнку и C++, и Java, и PHP и т.д., ибо у них синтаксис от Си происходит. Есть выбор: писать самому, допустить ошибки, отладить, снова отладить и т.д. Потом выяснится, что алгоритм неэффективен, переписать, отладить, снова отладить и так до бесконечности. Или же можно взять готовый, обобщённый алгоритм(к контейнерам то же самое относится).
А ты поищи, поищи. Давно это в паскале(да, лан, пусть, даже, в Deplhi) шаблоны появились, чтобы эта мелочёвка вообще в природе появилась? ![]() -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
||||||
|
|||||||
Lazin |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
я тебе про одно, а ты мне про другое, я о том, что при работе с указателем как с целым может возникнуть проблема с переносом на 64-х битную архитектуру, например представим что в С нету арифметики указателей (прям как в паскале ![]()
код нормально отработает при компиляции под 32х а если скомпилировать под 64х то то-же будет работать, почти всегда ![]() ну вот недавно собирал библиотеку - 30 000 строк (Си), секунды 3 или 4 ![]() ![]() И вообще ты не о том, вот есть к примеру в Delphi шаблоны, а может ли он самостоятельно выводить типы шаблонных параметров, а есть ли в Delphi(Pascal) аналог шаблон-шаблонных параметров (это когда в шаблон передается не тип, а другой шаблон) и тд... Шаблоны в Delphi - это элементарная параметризация типов, а в С++ это тьюринг полный язык, на котором можно писать программы, которые будут выполняться во время компиляции и вычислять значения и типы. наверное потому-что STL использует шаблоны, и без них очень кривой STL получится ![]() ![]() Вот был сначала Visual Basic, дожил он до 6-й версии, а потом взял и исчез, прекратил развиваться, а все из-за того, что он зависел от одной известной компании. Это сообщение отредактировал(а) Lazin - 6.5.2008, 08:11 |
||||
|
|||||
jackfrost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
![]() ![]() ![]() Люди, все эти языки фуфло, ну сколько уже лет математикам приходится писать один и тоже цикл для вычисления банальной суммы: for (double i=1; double tmp=0 ,i<N,i++) {tmp+=1/i; } неужели сложно сделать что-то типа: sum(i,1,N,1/i); или даже sum(i,1,N, sum(j,1,N,1/i+1/x(j) ) ) ну это же проще пареной репы!!! веть вообще это можно было-бы решить макросом, если бы в Си составной оператор мог бы быть выражением: result = ( for (double i=1; double tmp=0 ,i<N,i++) {tmp+=1/i;} , tmp ); идиотизм писать математику на языке заточенным по работу с железом. А все эти паскали явы и ады не далеко ушли... таже фигня.. ..а те замечательные изменения которые приняли в С99 - пошли коту под хвост. Никто не хочет поддерживать уже почти 10лет, по IT меркам почти вечность.... Это сообщение отредактировал(а) jackfrost - 19.6.2008, 13:50 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
jackfrost, используй пакеты Математика, матлаб и проч. Там все предельно просто.
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
jackfrost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
МАТЛАБ пользую для прототипирования алгоритмов, а писать потом все равно все на Си приходится. кстати действительно из смешного - в МАТЛАБе нат такой операции ![]() если под знаком суммы стоит функция строго одного аргумента, то нужно раскрывать все в цикл... |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
а почему нельзя написать функцию sum? ![]() |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
Потому что она без счетчика. Без счетчика такая функция есть, по крайней мере в модуле Math. Выбирайте на любой вкус ![]()
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
jackfrost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
да не об этом речь,
вот о каком синтаксисе мечтают люди, а функции тут не причем - просто препроцессор долженбы развернуть этот в код: for (tm1=0,i=1,i<N,i++ ) { for (tmp2=0,j=1,j<M, j++) { tmp2+=1/i+1/x(j); } tmp1+=y(i)*tmp2; } res=tmp1; а через функции никак - ибо выражение 1/i+1/x(j), должно быть вычесленно до вызова функции... может в Яве или в Си-шарпе есть механизмы сделать нечто подобное? собственно для этого достаточно чтобы сложный оператор (цикла) имел значение и мог быть правым значением в присвоении: res={for (.... } для рекурентного вызова... ну и механизм макросов как в Сях или желательно помощнее.... всех делов... Это сообщение отредактировал(а) jackfrost - 19.6.2008, 15:57 |
|||
|
||||
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 14 Всего: 459 |
jackfrost, так вполне можно написать в Delphi. Смотри x(j), y(i) - это функции. Функции можно передавать в качестве параметра в другие функции. Точнее функцией будет 1/i+1/x(j) .
Добавлено через 1 минуту и 55 секунд Хотя пожалуй вложенно не получиться. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Mayk |
|
||||||
![]() ^аВаТаР^ сообщение>> ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2616 Регистрация: 22.5.2005 Где: за границей разум а Репутация: 2 Всего: 134 |
Кому сложно? Это делается элементарно. В одну строку. Но не на си и не на паскале. Ф-циональные языки и их особенности не запрещали.
Добавлено через 1 минуту и 54 секунды
Посмотри в сторону Nemerle. Там есть очень мощная система макросов. -------------------- Здесь был кролик. Но его убили. Человеки < кроликов, йа считаю. |
||||||
|
|||||||
Любитель |
|
|||
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 5 Всего: 92 |
||||
|
||||
lukas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 771 Регистрация: 23.2.2007 Репутация: нет Всего: 15 |
вообще написали бы еще в теме Глагол vs С++
![]() -------------------- http://code.google.com/p/orionphp/ - opensource скриптовой язык Orion (аналог PHP) для freepascal/delphi. |
|||
|
||||
jackfrost |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 16.11.2007 Репутация: нет Всего: нет |
нафих глаголъ и лямбду с питоном,
вот нашел решение, работает только в GNU C и его портах: #define SUM(n,N0,N,eq) ({double tmp_##n=0; for (int n=(N0);n<(N);n++) {tmp_##n+=(double)(eq);} tmp_##n; }) Понятно, что такой код, далеко не безопасен и далек от оптимальности, но на этапе прикидки сложной математики просто супер!! Теперь можно писать запросто вот так: main() { double A[2][3]={{1,2,3},{4,5,6}}; double sumall=SUM(k,0,2, SUM(n,0,3, A[k][n]) ); printf("%f\n", sumall ); } такчто Си рулит и по сей день. |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 4 Всего: 154 |
покойся с миром
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила ведения Религиозных войн | |
|
1. Уважайте собеседника 2. Собеседник != враг 3. Старайтесь воздерживаться от тем вида "Windows Rulez" или "Linux Rulez" С уважением, Smartov. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Религиозные войны | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |