![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.11.2009
Сообщений: 13
|
![]()
Начиная програмировать я столкнулся с такой вещью когда в VB в отличии от Paskal есть некий нюанс: Если в Бейсике мы можем сложить одно число с другим и получить 3, то в Паскале мы можем сложить целые числа только с целыми и т.д. Стоит ли обращать на это внимание? Чисто для меня то я считаю это абсурдом, даже если рассуждать просто теоретически, то нельзя сделать такого: сложить арбузы с яблоками и получить груши - вот это как раз и происходит в Бейсике! Хотел бы узнать Ваше мнение на счет данного аргумента!
Последний раз редактировалось mihali4; 28.11.2009 в 16:25. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Это сделано специально по двум причинам:
1. Это быстрей, если Вы не знали, то раньше Бейсик был интерпретатором, а для них главное удобство общения с пользователем, а не скорость и объем программы. 2. Контроль над ошибками. В Паскале (и не только в нем, но и во многих языках программирования) жесткое разграничение типов - это значит, что над каждым типом свои операции, их количество конечно и строго разграничено. Да целые можно складывать как целые, в случае если результат будет целый. А если вещественный (то есть число дробное), то можно складывать целые с не целыми. На это стоит обращать внимание, таким образом Вы легко избавитесь от ряда ошибок (программиста) - невнимательность при наборе (например некоторые идентификаторы похожи и отличаются только одной буквой). Это нужно когда пишешь большие программы или используешь чужие фрагменты программ. Кроме того, вы рассуждаете совершенно не теоретически, в теории чисел нет ни арбузов ни яблок, аналогия явно неудачная. В Бейсике все происходит правильно ибо философия там другая (а Вы не знали, что каждый язык программирования имеет свои концепции и парадигмы, и что все моменты в них не с бухты барахты, а имеют определенную основу?). Считайте что в Бейсике нет целых чисел, только вещественные и число 5 это тоже самое что и 5.0 - все просто и логично. Поэтому 5 + 3.2 = 8.2, никаких ошибок и никаких проблем, так было задумано с самого начала. И лично я считаю, что это даже правильней ибо в реальной жизни тоже нет разграничений на целые и вещественные числа. Например в магазине когда Вы даете деньги за товар, то сдача она целая или вещественная? Так что никаких странностей, просто побольше литературы о программировании.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() Последний раз редактировалось Utkin; 26.11.2009 в 08:50. |
![]() |
![]() |
![]() |
#3 |
Oldschool geek
Форумчанин
Регистрация: 09.03.2009
Сообщений: 611
|
![]()
Она с фиксированной точкой.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
В моей Вселенной нет такого типа данных. В этом легко убедится просмотрев биржевые (не банковские) котировки, например курс доллара по отношению к рублю.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#5 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Я могу в Паскале сложить любое число с любым.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 09.09.2008
Сообщений: 2,624
|
![]()
в php можно сложить всё со всем и получить число
Код:
Стрелок-охотник
|
![]() |
![]() |
![]() |
#7 |
Trust no one.
Старожил
Регистрация: 07.04.2009
Сообщений: 6,526
|
![]()
Стоп, стоп, может товарищ Уткин слегка неудачно выразился, но тут вся разница в результате:
4 + 3 = 7 (цел) 4 + 3.0 = 7.0 (вещ)
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
в паскале просто надо отбросить все что после точки...то есть пишем Trunc и все.
то есть там действительно более жесткий контроль данных. в С++ просто автоприведение типов есть...то есть тот же Trunc автоматически. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 30.11.2009 в 17:17. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ваше мнение о СМИ | Juffin | Свободное общение | 6 | 29.10.2009 16:40 |
Ваше мнение | ArtiombI4 | Помощь студентам | 3 | 11.05.2009 16:24 |
Нужно ваше мнение! | Sandra-z | Софт | 6 | 27.03.2009 23:45 |
ваше мнение | Мамочка | Свободное общение | 0 | 08.05.2008 13:46 |
Необходимо Ваше мнение!!! | DIMONHR | Софт | 0 | 20.02.2008 23:15 |