Перейти к содержанию
Форум на Кинопоиске

Языки программирования

Рекомендуемые сообщения

Не будучи знатоком Java, что такое враппер - не знаю.

Враппер - это уже скорее термин не джавовский=) Объект-обёртка, в котором можно преобразовать имеющуюся сущность удобным вам образом. В частности, приводить стандартную java-индексацию массива к нужной для вашей задачи.

Не будучи знатоком Java, что такое враппер - не знаю.

Да, в примере была опечатка. На всякий случай уже исправил.

Мне трудно себе пока четко представить, зачем вокруг int-овской переменной накручивать объект, чтобы решить простую задачу.

Честно говоря и я не понимаю, зачем делать методы, получающие примитивы по ссылке и изменяющие их в своем теле.:)

Ведь это потеря эффективности изначально.

Смотря что подразумевать под эффективностью. Если безопасность, отказоустойчивость, единообразие, простоту кода и логики - то я б назвал этой не потерей, а приростом эффективности. Если речь идет о скорости обработки, то да потеря.

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

Опять таки из вышеуказанных соображений.

 

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

Зато в Java этот пакет реализован более чем отлично и представить свою жизнь без него сейчас не в состоянии ни один java-кодер:)

Ну и конечно же никто не запрещает написать свои реализации сетов, листов, деревьев и т.п. Пожалуйста - тут все для людей:) Под конкретные задачи можно вообще нативные реализации подключить и работать это все будет ничуть не медленнее чем на C++. Вот только и недостатки C++ всплывут тут же.

 

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

Конечно есть, но это как правило весьма специфичные задачи. И их действительно не так уж и много.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2648415
Поделиться на другие сайты

  • Ответов 277
  • Создана
  • Последний ответ

Топ авторов темы

Топ авторов темы

Изображения в теме

В плане дискуссии "Возможности Java - ограничены? | Возможности C++ не ограничены ? | Java - супер-язык | Окольные пути не предлагать *в Моршанск через Париж*":

 

1) сущ. много алгоритмов, в которых участвуют базовые типы данных и результатом их работы является отнюдь не одно число. Например, в реализациях численных методов принято оператором return возвращать код ошибки, а остальное - через параметры. Зачем мне писать класс, когда можно обойтись функцией?

 

2) C++ объединяет в себе возможности как ООП, так и функционального программирования, чего не скажешь о Java, где только ООП и то не в полной мере.

 

3) Как на Java сделать такое:

 

My_Matrix <My_Own_Float> A(m, n);

My_Matrix <My_Own_Float> B(m, n);

My_Matrix <My_Own_Float> C(m, n);

 

...

 

C = A + 2 * B;

 

...

 

MY_DOI MY_DOJ if (A[j] < 0) ~(A[j]); // Здесь MY_DOI, MY_DOJ - макросы для сокращения записи часто используемых оп. цикла.

// Если элемент матрицы отрицателен, работает переопределенная одноместная операция ~,

// в элемент записывается что-то вроде NaN.

 

Рискну попасть впросак, но спрошу все же - в Java операцию можно переопределить? Можно приведение к типу переопределить?

 

My_Class1 a;

My_Class2 b;

...

b = a; // Работает метод, где обеспечивается приведение типов

 

Шаблонные типы данных поддерживаются?

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2649216
Поделиться на другие сайты

0JrQsNC70LXQvdC00LDRgNGMINC60L7QtNC10YDQsDogKNC30L3QsNGO0YnQuNC5INC00LAg0YDQsNGB0YjQuNGE0YDRg9C10YIpINC90LAgMjAxMi3QuSwg0LXRgdGB0L3Qvg==

 

(знающий да расшифрует)

 

пользуемся

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2841370
Поделиться на другие сайты

0JrQsNC70LXQvdC00LDRgNGMINC60L7QtNC10YDQsDogKNC30L3QsNGO0YnQuNC5INC00LAg0YDQsNGB0YjQuNGE0YDRg9C10YIpINC90LAgMjAxMi3QuSwg0LXRgdGB0L3Qvg==

 

(знающий да расшифрует)

 

пользуемся

 

Надо бы заинтриговать, мол, здесь зашифровано...

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2842420
Поделиться на другие сайты

Ну, на картинке календарь на 2012ый год, только цифры в шестнадцатеричном виде. Прикольно, кстати.

Но как это связано с абракадброй выше - ума не приложу :D

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2842524
Поделиться на другие сайты

Но как это связано с абракадброй выше - ума не приложу :D

 

Ну, там мои вступительные слова. Расшифруй и их : )

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2842603
Поделиться на другие сайты

Ну, на картинке календарь на 2012ый год, только цифры в шестнадцатеричном виде. Прикольно, кстати.

Но как это связано с абракадброй выше - ума не приложу :D

 

подсказка удалена

Изменено 11.02.2012 00:49 пользователем Psychonaut
подсказка удалена
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2843254
Поделиться на другие сайты

Ааа. Встречал лишь мельком, поэтому не распознал по внешнему виду.

0YLQtdC/0LXRgNGMINCx0YPQtNGDINC30L3QsNGC0YwK :)

 

UPD. Вспомнилось на тему.

Изменено 10.02.2012 23:25 пользователем BlackTemplar
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2843292
Поделиться на другие сайты

0YLQtdC/0LXRgNGMINCx0YPQtNGDINC30L3QsNGC0YwK :)

 

Быстро учишься. Слушай, Блэк, предлагаю теперь общаться так, чтобы нас понимало малое количество людей : )

0YjRg9GH0YMsINC90L4g0YEg0LTQvtC70LXQuSDQv9GA0LDQstC00Ys=

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2843462
Поделиться на другие сайты

Не люблю простые шифры. Могу предложить разгадать результаты применения моего алгоритма шифрования с ключом длиной "бесконечность".
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2843485
Поделиться на другие сайты

Срочное.

 

Microsoft Visual Studio знает кто-нибудь?

Есть вопрос, связанный с ошибкой линковщика.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2867099
Поделиться на другие сайты

Срочное.

 

Microsoft Visual Studio знает кто-нибудь?

Есть вопрос, связанный с ошибкой линковщика.

 

Ох, вот только что увидел. MVS - гигант. Какой язык? Какой тип проекта, что за ошибка?

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2868373
Поделиться на другие сайты

Вопрос ещё не до конца решён. Сергей, у вас версия Visual Studio 2010 года? Если она с первым сервис паком, то разговор продолжим. Если нет - тогда вы мне не сможете помочь.
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2868408
Поделиться на другие сайты

Вопрос ещё не до конца решён. Сергей, у вас версия Visual Studio 2010 года? Если она с первым сервис паком, то разговор продолжим. Если нет - тогда вы мне не сможете помочь.

У меня только 2008. Не инсталлированная. А работаю на 2003, т.к. лицензионная. И только на С++ в проектах MFC, WIN32. В дисплейных классах работаем на 2008, тоже только MFC.

Проблемы с линковкой обычно возникают, когда не подключены какие-то библиотеки, причем статические. Или продублированные внешние имена. К примеру, в проекте 2 независимых модуля (файла) и в каждом из них, так получилось, находятся две функции с одинаковыми именами. Это error на стадии линкования, когда единый готовый расчетный модуль формируется из разрозненных объектных модулей проекта + статические библиотеки. Ошибки линкования могут также возникать из-за неправильно установленных опций, например, требуется ATL-модули, а соответствующая галка не проставлена.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2868447
Поделиться на другие сайты

Тогда ладно. Мне нужен был теперь файлик один, но именно от того человека, у которого была бы 10.0 версия. В любом случае благодарю : )
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2868459
Поделиться на другие сайты

 

3) Как на Java сделать такое:

 

My_Matrix <My_Own_Float> A(m, n);

My_Matrix <My_Own_Float> B(m, n);

My_Matrix <My_Own_Float> C(m, n);

 

...

 

C = A + 2 * B;

 

...

 

MY_DOI MY_DOJ if (A[j] < 0) ~(A[j]); // Здесь MY_DOI, MY_DOJ - макросы для сокращения записи часто используемых оп. цикла.

// Если элемент матрицы отрицателен, работает переопределенная одноместная операция ~,

// в элемент записывается что-то вроде NaN.

 

Я так понимаю, в этом коде все сплошь перегруженные операторы?)

Что происходит в результате этой записи C = A + 2 * B ? Матрица B умножается на число и складывается почленно с матрицей A и результат присваевается матрице C ? Не вижу никакой проблемы в том, чтобы реализовать это на Java:)

 

Рискну попасть впросак, но спрошу все же - в Java операцию можно переопределить?

А зачем?) Ведь можно написать метод:)

Можно приведение к типу переопределить?

Можно написать метод приводящий из типа в тип), у примитивов переопределить приведение, насколько я знаю, нельзя. Да и опять таки зачем, ведь в Java полно стандартных средств приведения, способных решить любую задачу, конечно не так быстро как на C++, но уж точно в разы безопаснее, а главное будет работать везде)

 

И вообще,

посоны! ))))
Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2869416
Поделиться на другие сайты

Vagabond!

 

Я так понимаю, в этом коде все сплошь перегруженные операторы?)

Что происходит в результате этой записи C = A + 2 * B ? Матрица B умножается на число и складывается почленно с матрицей A и результат присваевается матрице C ? Не вижу никакой проблемы в том, чтобы реализовать это на Java:)

 

Единственное "НО" - в уголках стоит <мой собственный тип>.

В котором я оговариваю, например, кодировку, в которой хранятся числа (к примеру, речь идет об интервальном анализе, о числах с регулируемой точностью представления, о числах DECIMAL FIXED и т.п.). Могу свои действия оговорить: +, -, *, /.

 

В С++ классы, использующие абстрактные определения, называются шаблонными. К примеру

 

My_class <int> a;

My_class <double> b;

My_class_1 <double, double &> b; // Т.е. типов данных в <...> может быть несколько.

 

А зачем?) Ведь можно написать метод:)

 

Можно написать метод приводящий из типа в тип), у примитивов переопределить приведение, насколько я знаю, нельзя. Да и опять таки зачем, ведь в Java полно стандартных средств приведения, способных решить любую задачу, конечно не так быстро как на C++, но уж точно в разы безопаснее, а главное будет работать везде)

 

А вот так можно:

 

My_class1 a;

My_class2 b;

 

...

b = (My_class1)a;

 

?

 

Насчет замены операций на методы: от этого ушли еще в 1968 г., когда один французский поэт придумал язык программирования Algol-68, до сих пор не имеющий аналогов.

 

В С++ сделали это, но лишь частично. А в Java вообще отказались.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2869678
Поделиться на другие сайты

Vagabond!

 

Я так понимаю, в этом коде все сплошь перегруженные операторы?)

Что происходит в результате этой записи C = A + 2 * B ? Матрица B умножается на число и складывается почленно с матрицей A и результат присваевается матрице C ? Не вижу никакой проблемы в том, чтобы реализовать это на Java:)

 

Единственное "НО" - в уголках стоит <мой собственный тип>.

В котором я оговариваю, например, кодировку, в которой хранятся числа (к примеру, речь идет об интервальном анализе, о числах с регулируемой точностью представления, о числах DECIMAL FIXED и т.п.). Могу свои действия оговорить: +, -, *, /.

 

В С++ классы, использующие абстрактные определения, называются шаблонными. К примеру

 

My_class <int> a;

My_class <double> b;

My_class_1 <double, double &> b; // Т.е. типов данных в <...> может быть несколько.

 

А зачем?) Ведь можно написать метод:)

 

Можно написать метод приводящий из типа в тип), у примитивов переопределить приведение, насколько я знаю, нельзя. Да и опять таки зачем, ведь в Java полно стандартных средств приведения, способных решить любую задачу, конечно не так быстро как на C++, но уж точно в разы безопаснее, а главное будет работать везде)

 

А вот так можно:

 

My_class1 a;

My_class2 b;

 

...

b = (My_class1)a;

 

?

 

Насчет замены операций на методы: от этого ушли еще в 1968 г., когда один французский поэт придумал язык программирования Algol-68, до сих пор не имеющий аналогов.

 

В С++ сделали это, но лишь частично. А в Java вообще отказались.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2869878
Поделиться на другие сайты

Vagabond!

 

 

 

Единственное "НО" - в уголках стоит <мой собственный тип>.

В котором я оговариваю, например, кодировку, в которой хранятся числа (к примеру, речь идет об интервальном анализе, о числах с регулируемой точностью представления, о числах DECIMAL FIXED и т.п.). Могу свои действия оговорить: +, -, *, /.

 

Ну ок, в Java создаешь свой класс, в котором описываешь поля хранения и т.п. и методы add, multiply, divide и т.п. Или весь вопрос в том, можно ли именно значками запись делать? А зачем? Я может что то не понимаю.

 

А вот так можно:

 

My_class1 a;

My_class2 b;

 

...

b = (My_class1)a;

 

?

 

Можно) Но не все подряд классы конечно же.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2870409
Поделиться на другие сайты

Ну ок, в Java создаешь свой класс, в котором описываешь поля хранения и т.п. и методы add, multiply, divide и т.п. Или весь вопрос в том, можно ли именно значками запись делать? А зачем? Я может что то не понимаю.

...

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

Что же касается замены add на +: эдак мы и на Фортран-4 можем любую задачу решить, если постараться. Все выражения заменим на вызовы функций. Языки совершенствуются приближаясь к тем областям знаний, где используется программирование. В частности, к математике.

В общем Java - язык для кроссплатформенных приложений (объединительного толка), для Андроида, для экономических задач бухгалтерского направления. Численные методы, теория графов, теория групп, экономическая математика - мимо.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2870972
Поделиться на другие сайты

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

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

Object object = DBUtil.getEmployee(emplId);

Employee employee = (Employee) object;

 

или короче

Employee employee = (Employee) DBUtil.getEmployee(emplId);

Так что, чего там в Java нельзя, я не совсем понял.

Что же касается замены add на +: эдак мы и на Фортран-4 можем любую задачу решить, если постараться.

А смысл?) Не понимаю твоих претензий к Java =)

В общем Java - язык для кроссплатформенных приложений (объединительного толка), для Андроида, для экономических задач бухгалтерского направления.

Java - язык для самого разного рода приложений. Одними интеграционными и бухгалтерскими системами дело тут никак не ограничивается. Java - это и электронная коммерция, это и электронный банкинг, это и статистика, это и интеллектуальные системы принятия решений, и экспертные системы и т.д. и т.п. Вплоть до игр на ПК.

 

Численные методы, теория графов, теория групп, экономическая математика - мимо.

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

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2871024
Поделиться на другие сайты

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

Object object = DBUtil.getEmployee(emplId);

Employee employee = (Employee) object;

 

или короче

Employee employee = (Employee) DBUtil.getEmployee(emplId);

Так что, чего там в Java нельзя, я не совсем понял.

 

Сергей, это совсем не то, что я имел в виду. То, что написано может даже функция join примитивнейшего PHP.

Начнем с того, что на Java нельзя написать класс, работающий с матрицами, элементы которых имеет одинаковый, но произвольный тип на уровне определения объектов класса.

Или с векторами. Или с группами. Или с матриоидами. Или с множествами. Или с кортежами. И т.д.

И наконец: Java не поддерживает событийно-управляемый контекст программирования. Т.е. в задачах имитационного моделирования ее использовать затруднительно.

 

Переведи на Java функцию умножения матрицы на вектор.

 

void

matrvec(

// INPUT:

int m, // Строчная размерность матрицы A, размерность вектора c

int n, // Столбцовая размерность матрицы A, размерность вектора b

double **A, // Матрица m*n

double *b, // Вектор из n элементов

// OUTPUT:

double *c // Вектор из m элементов, результат умножения

)

{

double s;

int i,j;

for (i = 0; i < m; i++)

{

s = 0;

for (j = 0; j < n; j++) s += A[j] * b[j];

c = s;

}

}

 

Можно ли на Java написать классово-независимую функцию?

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2871124
Поделиться на другие сайты

Вплоть до игр на ПК.

 

Громкие слова.

Одной-двух игр, причём определённого склада. Майн, Дварф Фортресс, etc. Девелоперы с мировым именем на java ни одной компьютерной игры не пишут. Даже инди не пишут! Поэтому точнее сказать: вплоть до игр на телефонах, как вон и флеши на экшн скрипте.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2871160
Поделиться на другие сайты

Громкие слова.

Ничего громкого не вижу. Майнкрафт - игра? Игра. На PC ? на PC:) С многомиллионным тиражом? С многомиллионным. Так что не надо ляля:)

 

 

Сергей, это совсем не то, что я имел в виду. То, что написано может даже функция join примитивнейшего PHP.

А что ты имел ввиду?) Поясни подробнее)

 

Начнем с того, что на Java нельзя написать класс, работающий с матрицами, элементы которых имеет одинаковый, но произвольный тип на уровне определения объектов класса.

Имеется ввиду матрица состоящая из произвольного числа различных объектов что ли? Как это "одинаковый, но произвольный тип" ? Можно пример?

 

Массив типа Object может содержать в себе объекты абсолютно произвольной организации, если это то, о чем ты говоришь.

 

И наконец: Java не поддерживает событийно-управляемый контекст программирования. Т.е. в задачах имитационного моделирования ее использовать затруднительно.

Еще как поддерживает) Есть целый ряд Java библиотек посвященный именно событийно-управляемому программированию.

 

 

Переведи на Java функцию умножения матрицы на вектор.

 

void

matrvec(

// INPUT:

int m, // Строчная размерность матрицы A, размерность вектора c

int n, // Столбцовая размерность матрицы A, размерность вектора b

double **A, // Матрица m*n

double *b, // Вектор из n элементов

// OUTPUT:

double *c // Вектор из m элементов, результат умножения

)

{

double s;

int i,j;

for (i = 0; i < m; i++)

{

s = 0;

for (j = 0; j < n; j++) s += A[j] * b[j];

c = s;

}

}

 

Легко:

 

public double[] matrvec(double[][] a, double[] b){

double [] c = new double[a.length];

for(int i=0; i<a.length;i++){

double s = 0;

for(int j=0; j<a.length; j++){

s+=a[j]*b[j];

}

c=s;

}

 

return c;

}

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2871508
Поделиться на другие сайты

Ничего громкого не вижу. Майнкрафт - игра? Игра. На PC ? на PC:) С многомиллионным тиражом? С многомиллионным. Так что не надо ляля:)

 

Это не ляля, а объективность. Игра без интеллекта людей в ней, звука хорошего и т.д. На яве только такое и пишется. Касаемо игр, разумеется. Язык в целом годен для определённых целей, но я всё равно учить бы его не стала. Мейн, мейн ибо.

Ссылка на комментарий
https://forumkinopoisk.ru/topic/41116-yazyki-programmirovaniya/page/9/#findComment-2871548
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Сейчас на странице   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...