Форум программистов, компьютерный форум, киберфорум
Священные войны
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
Результаты опроса: Что лучше?
Delphi 64 24.43%
C# 123 46.95%
Они дополняют друг друга 20 7.63%
Ни один из них 55 20.99%
Голосовавшие: 262. Вы ещё не голосовали в этом опросе

 
 
160 / 159 / 13
Регистрация: 14.01.2010
Сообщений: 1,497

Delphi vs C#

24.01.2010, 11:31. Показов 82199. Ответов 861
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.
Я уже давно люблю покодить на делфи(7) и вот решил попробовать на с#.
Тема глупая и затасканная, но все же какие преимущества я получу(и недостатки) с точки зрения любителя.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.01.2010, 11:31
Ответы с готовыми решениями:

Что лучше брать Delphi XE2, Delphi XE, Delphi 7?
Привет форумчане! У меня вопрос: что лучше брать Delphi XE2, Delphi XE, Delphi 7? Как вообще различаются серия Delphi XE, и Delphi 7?

Какие отличия Delphi 5, Delphi 6 и Delphi 7
Кто-нибудь юзал Delphi 6? Если да, то напишите, плиз, его отличия от 5-ой версии (плюсы и минусы) Кстати, никто не слышал ничего о Delphi...

ZipForge для Delphi Xe - интерфейс стал выглядеть как в Delphi 2007
Народ!!! Помоготи!!! Установил компонент ZipForge для Delphi Xe и после этого интерфейс моей программы стал таким, как будто я его в delphi...

861
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
12.04.2019, 15:26
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Прекрасно меняются по частям при помощи побитовых операторов юнионов и т.д.
Побитовые операции не меняют значение, а возвращают новое.
Юнион просто по-разному интерпретирует значение в памяти. Как если бы Вы взяли адреса двух переменных и, используя memcpy, скопировали кусок памяти из одного адреса в другой.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При этом операция к примеру ++ заменяет инт или изменяет?
Заменяет.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2019, 15:42
Shamil1
C++
1
2
3
4
5
6
7
8
9
10
11
union RGBA {
    unsigned __int32 value;
    unsigned __int8 channels[4] ;
    struct {unsigned __int8 R,G,B,A;};
};
int main(){
    RGBA foo;
    foo.value = 0xFFFFFFFF; // задал целяком.
    foo.A = 0; // ниче никуда не копирую. Просто часть заменил.
    foo.A++; //а теперь часть изменил.
}
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
12.04.2019, 16:19
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
ниче никуда не копирую. Просто часть заменил.
Это как создать, например, complex, а затем, используя memcpy, поменять ему imag. И после этого утверждать, что это не readonly свойство.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
12.04.2019, 19:05
Цитата Сообщение от Shamil1 Посмотреть сообщение
Это как создать, например, complex, а затем, используя memcpy, поменять ему imag.
complex это по сути вектор в 2D пространстве. И компоненты его можно менять абсолютно независимо. И никакой memcpy для этого не нужен. Так же как и в примере с RGBA. На самом деле unsigned в примере с RGBA нужен только для возможности задания цвета привычным литералом вместо сборки его покомпонентно.
Если в языке который вы используете нельзя этого делать - ну этот язык остался на уровне развития "перфолента".
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
13.04.2019, 15:13
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
complex это по сути вектор в 2D пространстве.
Не вектор, а точка. Нельзя поменять точку, можно только выбрать другую. Поэтому совершенно сознательно в С++ класс complex не добавили сеттеров для real и imag, а к аргументы всех операторов сделали const.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
а самом деле unsigned в примере с RGBA нужен только для возможности задания цвета привычным литералом вместо сборки его покомпонентно.
Если в языке который вы используете нельзя этого делать - ну этот язык остался на уровне развития "перфолента".
Цвет состоит из четырёх компонент. Если Вы меняете одну из них, то получаете другой цвет. По сути, цвет - это точка в четырёхмерном пространстве, и поменять его нельзя. Можно поменять свойство "цвет" какого-нибудь объекта, сам цвет поменять нельзя.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если в языке который вы используете нельзя этого делать - ну этот язык остался на уровне развития "перфолента".
Я не припомню ни одного языка, в котором нельзя предоставить возможность менять цвет покомпонентно.
Если Вы предпочитаете использовать для этого union, то значит Вы остались на уровне ассемблера. Страуструп категорически против использования в С++ низкоуровневых фич языка Си. С++ - это высокоуровневый язык программирования и использование низкоуровневых фич портит код.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.04.2019, 17:42
Цитата Сообщение от Shamil1 Посмотреть сообщение
Не вектор, а точка.
Только у точки координат нет. Они есть только у ее радиус-вектора.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Поэтому совершенно сознательно в С++ класс complex не добавили сеттеров для real и imag, а к аргументы всех операторов сделали const.
Да что вы https://en.cppreference.com/w/... mplex/real https://en.cppreference.com/w/... mplex/imag
При этом не стоит путать С++ и STL. С++ это язык, а STL это всего лишь кривая библиотека для самых бедных, и то что в ней есть к самому языку вообще никакого отношения не имеет, даже при том что обязано быть в поставке компилятора.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Страуструп категорически против использования в С++ низкоуровневых фич языка Си.
Низкоуровневые - это вырезать из оного инта компоненты цвета побитовыми операциями. А union-ы и битфилды это высокоуровневые функции, которые оные побитовые операции и т.д. генерят под капотом.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
13.04.2019, 19:01
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
олько у точки координат нет. Они есть только у ее радиус-вектора.
Спорить о терминологии не собираюсь.

Видимо, наследие сишных времён. В те древние времена часто путали числа с объектами.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
С++ это язык, а STL это всего лишь кривая библиотека для самых бедных
Видимо, Вы чего-то не понимаете о С++. До сих пор пишите на "Си с классами". Страуструп настоятельно рекомендует использовать STL, а не писать самописные велосипеды для решения стандартных задач.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Низкоуровневые - это вырезать из оного инта компоненты цвета побитовыми операциями. А union-ы и битфилды это высокоуровневые функции, которые оные побитовые операции и т.д. генерят под капотом.
Нет. Низкоуровневые - это когда идёт обращение к памяти напрямую, игнорируя типы данных. Например, union.
1
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
13.04.2019, 21:10
Цитата Сообщение от Shamil1 Посмотреть сообщение
Страуструп настоятельно рекомендует использовать STL, а не писать самописные велосипеды для решения стандартных задач.
Лично мне сугубо пофиг что говорит Страутсруп в том что касается стандартной библиотеки. STL это точно такой же велосипед только очень кривой. При этом Страуструп это говорит для тех кому моск в школе явой изнасиловали.
А те кто всегда жил на плюсах давно более годные чем STL библиотеки того же назначения имеют.

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Нет. Низкоуровневые - это когда идёт обращение к памяти напрямую, игнорируя типы данных. Например, union.
И где в union игнорирование типа? Просто выбор одного из который просто экономит каламбуры типизации ограничивая их набором допустимых для типа. Ну типа предохранителя работает - пока можешь через поля обратится каламбур допустим. Не можешь - стоит подумать а стоит ли приводить.

Добавлено через 4 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
В те древние времена часто путали числа с объектами.
Та нет. Это из новых времен когда память стала перезаписываемой и необходимость в костыле типа иммутабельный объект отпала. Вообще в реалиях ООП объекты мутабельны по определению. Актор при отслеживании окружающей среды изменяет свое состояние в рамках необходимых для корректных реакций на эти изменения. В том числе накапливает/разрывает взаимосвязи.

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Спорить о терминологии не собираюсь.
А никакого спора быть и не может. Координаты имеют смысл только относительно какой то системы отсчета. А соответсвенно координаты точки - геометрическая бессмыслица. Смысл имеют только координаты радиус-вектора точки которые имеют смысл только в рамках заданного базиса. При этом при переходе от базиса к базису координаты радиус-вектора изменяются, при том что сама точка остается неизменной.

Добавлено через 7 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Страуструп настоятельно рекомендует использовать STL,
Этот кривой лисапед потенциал плюсов в плане создания к примеру смартпоинтеров и контейнеров не использует и на 5%. Так что глюпости слушать не будем. Все что там есть толкового было написано лично Страуструпом в 80-х (т.е. основные контейнеры). И на 80-е действительно было очень хорошей штукой. Но потенциал плюсов именно в плане контейнеров с тех пор вырос многократно. А использовать его STL до сих пор даже не пытается.

Добавлено через 13 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Видимо, Вы чего-то не понимаете о С++. До сих пор пишите на "Си с классами".
Видимо вы не понимаете что такое "С c классами" - это тоже что и С++ только без шаблонов. Мои же шаблоные классы требуют для компиляции С++ не ниже 2017-го стандарта.
И по всей видимости не понимаете что такое STL. Такую роскошь как требование 2017-го стандарта компилятором она сможет себе позволить лет через 20 не раньше.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
13.04.2019, 23:04
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Это из новых времен когда память стала перезаписываемой и необходимость в костыле типа иммутабельный объект отпала.
Это вообще не имеет отношения к железу. Число - это значение. Его в принципе нельзя изменить. Если поменять, например, дробную часть числа или красную составляющую цвета, то это будет уже другое число и другой цвет.
И ещё. Два объекта различаются, даже если они одинаковые по всем свойствам. А два числа "пять" - это одно и то же число. Это азы ООП.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Видимо вы не понимаете что такое "С c классами" - это тоже что и С++ только без шаблонов.
Видимо Вы не понимаете, что парадигмы программирования отличаются не синтаксисом, а смыслом, который вкладывается в код. С++ позволяет писать программы, как пишут на Си. Но если Вы пишете в сишном стиле на С++, это не делает Ваш код высокоуровневым или объектно-ориентированным.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
И где в union игнорирование типа?
Задаётся несколько альтернатив. Одна альтернатива приводится к другой. Типы альтернатив игнорируются. Вы только что привели пример, где массив байт приводится к целому числу.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А никакого спора быть и не может. Координаты имеют смысл только относительно какой то системы отсчета. А соответсвенно координаты точки - геометрическая бессмыслица.
Элемент множества комплексных чисел можно визуально представить точкой на плоскости. Если Вам не нравится терминология, то это Ваше дело. Я спорить об этом не хочу.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 02:49
Цитата Сообщение от Shamil1 Посмотреть сообщение
Задаётся несколько альтернатив. Одна альтернатива приводится к другой. Типы альтернатив игнорируются. Вы только что привели пример, где массив байт приводится к целому числу.
Задается список бинарно совместимых альтернатив. В этом и есть суть - работает как предохранитель от использования несовместимых каламбуров типизации.
Это конечно можно юзать для других целей типа костыленья записей с вариантами, но такие дела лучше под капот шаблону упрятывать.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Если поменять, например, дробную часть числа или красную составляющую цвета, то это будет уже другое число и другой цвет.
Ну это никак не мешает ему использовать тот же буфер что и старому. Так же как и тому кто смотрит на светофор сто лет не надо какой там цвет был позавчера.
Цитата Сообщение от Shamil1 Посмотреть сообщение
А два числа "пять" - это одно и то же число.
Если одно из них обозначает направление открытия двери трактора а другое красноту цвета помидора - то это таки разные числа и изменяться они могут независимо. При этом алгебра таки оперирует букофками а не конкретными значениями.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Элемент множества комплексных чисел можно визуально представить точкой на плоскости
Можно. Только точка координат иметь не может. Их имеет только радиус-вектор

Добавлено через 4 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Видимо Вы не понимаете, что парадигмы программирования отличаются не синтаксисом, а смыслом, который вкладывается в код.
Видимо вы вообще не въезжаете в суть ООП.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Два объекта различаются, даже если они одинаковые по всем свойствам.
два объекта различаются если operator == возвращает false.

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Число - это значение.
Только вот алгебра она как бы не значениями оперирует а переменными. А соответственно абсолютно не важно какое там конкретное значение, важно чтобы оно находилось в пределах допустимого диапазона значений и было актуально. Вот в актуализацию значений, которая важна для ООП, иммутабельность и вносит ненужные затруднения.

Добавлено через 9 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Но если Вы пишете в сишном стиле на С++, это не делает Ваш код высокоуровневым или объектно-ориентированным.
Суть ООП в моделировании поведения , взаимодействия и взаимосвязей объектов предметной области. Какое может вообще быть моделирование поведения и установки/разрыва взаимосвязей, если состояние объекта неизменяемо?

Добавлено через 43 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
С++ позволяет писать программы, как пишут на Си.
А Си позволяет разрабатывать софт по ООП методологии. "С с классами" просто делает этот процесс гораздо проще за счет средств автоматической имплементации правил наследования и автоматики генерации и вызова деструкторов. А С++ еще проще за счет обобщенного программирования которое позволяет сократить кота в сотни раз.
А STL не более чем кривая либа которая к этому никакого отношения не имеет. Мало того ее концепция полностью противоречит концепции С++ - а именно максимальной кастамизируемости всех средств под задачу, что очень актуально для топ-разрабов для которых С++ и создавался. STL же проектируется с ориентацией на мифический "наиболее частый случай" и в общем то скатывается до уровня очередного средства обеспечения "безопасного программирования" для школоты. Единственное ее достоинство - она не мешает ее не использовать. Хотя в принципе она годна для весьма широкого круга задач за счет того что очень мало для чего лучшая. В первую очередь из за напрочь обрезанных возможностей параметрической кастомизации ее компонентов. И главный ее негаразд который абсолютно противоречит концепции С++ - это то что она превращается в очередную мантру, в ущерб возможностям заложенным в сам язык. Особенно это касается костыльных искоробочных смартпоинтеров. По исходной задумке Страуструпа смартпоинтеры должны быть задаче-ориентированными, а не каким-то эмулятором ущербного GC, хоть и корректно работающим с ресурсами и слабыми ссылками. Хотя и этой ущербной троице мелкие задачки по силам. Но добавили их именно по тому что в школах препожают яву. До того как ввели преподавание явы они были нафиг не нужны, ибо люди имели привычку думать головой и использовать то что более подходит для решения задачи а не ограничиваться тем то что есть искоропки.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
14.04.2019, 13:40
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Мало того ее концепция полностью противоречит концепции С++ - а именно максимальной кастамизируемости всех средств под задачу, что очень актуально для топ-разрабов для которых С++ и создавался.
С++ создавал Страуструп. Полагаю, он лучше Вас знает концепцию С++. Страуструп писал, что почти всегда лучше использовать класс из стандартной библиотеки, чем писать свой. Даже если самописный будет более эффективным для решения какой-то задачи.


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Суть ООП в моделировании поведения , взаимодействия и взаимосвязей объектов предметной области.
Опять Вы про графический интерфейс пользователя. Для описания предметной области не нужен никакой интерфейс. Возьмём, например, классический MVC. Предметную область описывает Модель, а интерфейс к ней можно прикрутить любой.
Суть любого программирования в разделении большой задачи на небольшие независимые подзадачи (в выделении идей и написании и повторном использовании отдельного кода для отдельных идей). В ООП для этого используется полиморфизм подтипов. При этом даже не важно, что в С++ полиморфизм подтипов эмулируется через ad-hoc полиморфизм (перегрузка функций и приведение типов).


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Только вот алгебра она как бы не значениями оперирует а переменными.
Я не понял, что Вы имеете ввиду, но переменные в алгебре - это совсем не то, что переменные в программировании.


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Если одно из них обозначает направление открытия двери трактора а другое красноту цвета помидора - то это таки разные числа и изменяться они могут независимо.
Числа не могут изменяться. Задавая цвет помидору, Вы задаёте конкретное значение свойству конкретного объекта. При этом Вы не можете изменить красный цвет. Даже если Вы сделаете помидор зелёным, красный цвет останется красным.


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну это никак не мешает ему использовать тот же буфер что и старому.
Буфер - это переменная. Да, переменной можно присвоить другое значение. Если Вы мыслите исключительно в терминах ЯП, то могу сказать по-другому. Значение - это литерал. Вы не можете изменить литерал.


Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Задается список бинарно совместимых альтернатив. В этом и есть суть
Суть в том, что компилятор ничего не знает про "бинарно-совместимость". Поэтому во время компиляции он не может проверить корректность использования типов.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 14:42
Цитата Сообщение от Shamil1 Посмотреть сообщение
Опять Вы про графический интерфейс пользователя.
При чем тут вообще графический интерфейс? Моделируются поведение взаимосвязи и взаимодействие именно объектов именно предметной области. Если вы нигде кроме используемой вами библиотеки ГУИ подобного не видели ну как бы это уже о многом говорит.

Добавлено через 3 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
При этом Вы не можете изменить красный цвет.
Почему это вдруг? Я изменяю не какой то там цвет а цвет конкретного помидора. Если не важно какой там был цвет позавчера и при этом точно известно что изменился один канал почему нельзя переиспользовать буфер и те значения которые в нем уже есть если точно известно что они при этом изменении цвета не поменялись?

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
Суть в том, что компилятор ничего не знает про "бинарно-совместимость". Поэтому во время компиляции он не может проверить корректность использования типов.
Вот программист и задает список типов которые в данном конкретном случае для данного конкретного применения бинарно совместимы. И компилятор в результате проверяет на соответствие одному из.

Добавлено через 2 минуты
Цитата Сообщение от Shamil1 Посмотреть сообщение
Значение - это литерал
Значение это то что записано в ячейке памяти. И изменить вы его не можете только если эта ячейка физически находится на перфоленте. Но состояния объектов меняются со временем а соответственно нужно менять и описывающие их значения. Вот на перфоленте и пришлось костылить дозапись в конец с указанием диспозиции. Потом по исчерпании ленты выбирать последние переписанные и копировать на новую ленту - не правда ли один в один похоже на то что делает GC? С появлением даже магнитной ленты необходимость в таких костылях отпала от слова совсем. С появлением ОЗУ с поизвольным доступом тем более.

Добавлено через 17 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Числа не могут изменяться
Изменяются значения переменных, набор которых и является описанием состояния объекта.

Добавлено через 6 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
С++ создавал Страуструп. Полагаю, он лучше Вас знает концепцию С++. Страуструп писал, что почти всегда лучше использовать класс из стандартной библиотеки, чем писать свой. Даже если самописный будет более эффективным для решения какой-то задачи.
А так же создавал основу STL. Естественно и затачивал ее начальные части именно под свой круг задач. Т.е. его мнение касается только его круга задач. А соответсвенно равноценно тому что делайте каждый свою STL что в общем то не совсем правильно. Правильнее было бы использовать возможности параметрической кастомизации компонентов заложенных в плюсы. а не лепить в STL глюпости типа принудительно атомарных счетчиков, потребность в которых при правильном проектировании мультипотока обязана стремится к нулю, неуправляемых политик роста векторов и т.д.

Добавлено через 7 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Я не понял, что Вы имеете ввиду, но переменные в алгебре - это совсем не то, что переменные в программировании.
Абсолютно одно и тоже. Способ записи пути решения задачи без привязки к конкретным числовым значениям. Вообще слова алгебра и алгоритм растут из одного источника.

Добавлено через 7 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
что почти всегда лучше использовать класс из стандартной библиотеки, чем писать свой
А мне в детстве говоили к примеру что библиотеки внутри которых нечиитабельный говнокод лучше вообще не использовать, а тем более если она имеет интерфейс превращающий любой использующий ее код в плохо читабельный говнокод.
А так же говорили что перед использованием любых библиотечных средств нужно анализировать и доказывать их применимость и оптимальность для задачи.
0
 Аватар для rerf2010rerf
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
14.04.2019, 16:07
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Только точка координат иметь не может. Их имеет только радиус-вектор
Да ладно? Неужто за прошедшие несколько лет с моего окончания вуза математику переписали?
См., например, Кострикин, Манин "Линейная алгебра и геометрия"
1
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 16:32
rerf2010rerf, Ну дак там прямо написано что координаты есть у точки только в заданной системе координат. Т.е. у радиус-вектора. Координаты штука относительная, в отличии от самой точки которая неизменна при смене базиса.
0
 Аватар для rerf2010rerf
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
14.04.2019, 16:38
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Ну дак там прямо написано что координаты есть у точки только в заданной системе координат.
Ага, что несколько противоречит вашим утверждениям, не находите?
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Только точка координат иметь не может.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
координаты точки - геометрическая бессмыслица.
А то, что любые координаты - вещь, зависимая от базиса, так это ежу понятно, причем относится это не только к точкам, но и к координатам векторов тоже - они задаются в определенном базисе и меняются при смене базиса. Так что в этом смысле никакой разницы между координатами точки в аффинном пространстве и вектора в линейном - нет.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 16:57
Цитата Сообщение от rerf2010rerf Посмотреть сообщение
Ага, что несколько противоречит вашим утверждениям, не находите?
Чему потиворечат? Тому что это координаты радиус-вектора который не имеет смысла без системы координат? Ню-ню.
Цитата Сообщение от rerf2010rerf Посмотреть сообщение
причем относится это не только к точкам,
Точка не зависима от базиса поэтому и координат не имеет. Под ее координатами всегда подразумевают координаты ее радиус-вектора в определенном базисе.

Добавлено через 2 минуты
Цитата Сообщение от rerf2010rerf Посмотреть сообщение
А то, что любые координаты - вещь, зависимая от базиса, так это ежу понятно,
При этом тому же ежу понятно что точка от базиса не зависит. А зависит только ее радиус-вектор который и подразумевают под координатами точки для краткости.
0
Модератор
Эксперт функциональных языков программирования
3140 / 2288 / 469
Регистрация: 26.03.2015
Сообщений: 8,900
14.04.2019, 17:22
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Почему это вдруг? Я изменяю не какой то там цвет а цвет конкретного помидора.
Вот именно. Вы можете поменять цвет помидора. Для этого Вы одно значение заменяете на другое. А сам цвет поменять нельзя. Не надо путать переменные и значения.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Вот программист и задает список типов которые в данном конкретном случае для данного конкретного применения бинарно совместимы. И компилятор в результате проверяет на соответствие одному из.
Программист задаёт. Но компилятор ничего проверить не может. Типизация пропадает.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Значение это то что записано в ячейке памяти.
Значение не имеет никакого отношения к железу. Есть число "один". Вы можете хоть карандашом на бумаге написать, хоть из спичек выложить. И если Вы потом его где-то исправите на "два", то смысл значения "один" от этого не поменяется.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Т.е. его мнение касается только его круга задач.
Старауструп утверждает противоположное. И в вопросах программирования на С++ его мнения явно авторитетней Вашего.

Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
А мне в детстве говоили к примеру что библиотеки внутри которых нечиитабельный говнокод лучше вообще не использовать
Откуда мне знать, что внутри Ваших библиотек?
Вам в детстве не говорили, что малоизвестные библиотеки лучше вообще не использовать? Хотя, если учесть, что в те времена в каждой библиотеке был свой класс для строк...
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 18:31
Цитата Сообщение от Shamil1 Посмотреть сообщение
Хотя, если учесть, что в те времена в каждой библиотеке был свой класс для строк...
А он и сейчас есть. Причем очень часто ни разу не один.
Цитата Сообщение от Shamil1 Посмотреть сообщение
Откуда мне знать, что внутри Ваших библиотек?
Ну вот и приходим к тому что свое под свои задачи оно лучше. От чего и отталкивался Страуструп при разработке плюсов. Именно для этого все по максимуму вынесено на уровень библиотек и настолько развиты средства обобщенного программирования.

Добавлено через 1 минуту
Цитата Сообщение от Shamil1 Посмотреть сообщение
И в вопросах программирования на С++ его мнения явно авторитетней Вашего.
Авторитетность его мнения может ограничиваться исключительно тем кругом задач которые решает лично он.
При этом как известно наука не терпит авторитетов. Техника тем более.

Добавлено через 5 минут
Цитата Сообщение от Shamil1 Посмотреть сообщение
Программист задаёт. Но компилятор ничего проверить не может. Типизация пропадает.
Как это не может? Он проверяет тип при присваивании полю. А вот какие типы при этом в каком случае бинарно совместимы какие нет это действительно может знать только программист. И задает это компилятору при помощи union один раз при описании, вместо использования каламбуров типизации при каждом доступе. Что и предохраняет от ошибок с использованием неправильного каламбура.

Добавлено через 46 секунд
Цитата Сообщение от Shamil1 Посмотреть сообщение
Для этого Вы одно значение заменяете на другое.
Только зачем мне заменять весь цвет если изменяется значение одного канала?
0
 Аватар для rerf2010rerf
46 / 79 / 6
Регистрация: 10.08.2013
Сообщений: 237
14.04.2019, 18:34
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
При этом тому же ежу понятно что точка от базиса не зависит. А зависит только ее радиус-вектор который и подразумевают под координатами точки для краткости.
Вектор точно так же никоим образом от базиса не зависит и при смене базиса остается тем же самым, меняются только его координаты. Как и точка, да.
Цитата Сообщение от Fulcrum_013 Посмотреть сообщение
Точка не зависима от базиса поэтому и координат не имеет. Под ее координатами всегда подразумевают координаты ее радиус-вектора в определенном базисе.
У вас в этих двух предложениях противоречие. Вы уж определитесь, точка у вас координат не имеет, или таки имеет и под ними что-то там подразумевается. Ибо, как подсказывает простой здравый смысл, то чего нет, подразумеваться под чем бы то ни было не может.
0
 Аватар для Fulcrum_013
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
14.04.2019, 18:48
Цитата Сообщение от rerf2010rerf Посмотреть сообщение
Вектор точно так же никоим образом от базиса не зависит и при смене базиса остается тем же самым, меняются только его координаты.
Это для просто вектора. Для радиус-вектора меняется вектор по определению радиус-вектора.

Добавлено через 2 минуты
Цитата Сообщение от rerf2010rerf Посмотреть сообщение
Вы уж определитесь, точка у вас координат не имеет, или таки имеет и под ними что-то там подразумевается
Она их не имеет. Но для того чтобы не говорить крокозябру "координаты радиус-вектора точки" по сто раз подряд, слова "радиус-вектор" опускают, поскольку и ежу понятно что никаких других координат у точки нет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.04.2019, 18:48

Какова разница работы одного кода в Delphi 7 и в Delphi XE5?
Почему приложение состоящие из одинакового кода, но компилируемое в разных средах работает по разному? Есть клиент-серверное приложение,...

где найти delphi c компилятором? и с чего начинать программирование в delphi?
здравствуйте, вот начинаю изучать delphi с чего начинать лучше?

Почему функция работающая в Delphi 7 не работает в Delphi 2007 и в 2009 ??
Данный код работал нормально в D7: procedure TForm1.Button1Click(Sender: TObject); begin ShowWindow(Application.Handle, 0); end;...

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

Как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7?
Добрый вечер! Подскажите пожалуйста, как в Lazarus сделать интерфейс Delphi 2006 вместо Delphi 7? Т.е. чтобы окна были прикрепленные, а не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
560
Ответ Создать тему
Новые блоги и статьи
Когда логика программы не спасает от человеческих ошибок
Maks 18.08.2026
В последнее время всё чаще и чаще сталкиваюсь с таким явлением, как абсолютная невнимательность (или глупость) пользователей. Проявляется это чаще всего на работе в коллективе. Допустим, человек с. . .
Лето уходит
kumehtar 17.08.2026
Мысли в слух
kumehtar 17.08.2026
Забавно, насколько сейчас стала доступна информация. Например о магии, духовном развитии, медитациях, и других подобных направлениях, ранее зачастую тайных, передаваемых от учителя к ученику. Хотя. . .
Перемещение строк из ТЧ в другой документ с учетом текущего пробега
Maks 17.08.2026
Реализация из решения ниже выполнена на примере нетипового документа "Автозапчасти", с ТЧ "Шины". За основу взят алгоритм отсюда: https:/ / www. cyberforum. ru/ blogs/ 359708/ 10838. html Задача: . . .
Саморегулирующийся социальный контракт для сервера cross-section.
Hrethgir 14.08.2026
С кодом конечно таких глубоких размышлений пока не было, впрочем я уже привык к алгоритмизации. Суть предмета записи: снова в диалоге с нейросетью (я взял пока себе ник для учётки админа - Rector). . . .
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru