Rambler's Top100
"Knowledge itself is power"
F.Bacon
Поиск | Карта сайта | Помощь | О проекте | ТТХ  
 Базарная площадь
  
О разделе

Основная страница

Группы обсуждений


Тематический каталог обсуждений

Архив

 
 К н и г и
 
Книжная полка
 
 
Библиотека
 
  
  
 


Поиск
 
Поиск по КС
Поиск в статьях
Яndex© + Google©
Поиск книг

 
  
Тематический каталог
Все манускрипты

 
  
Карта VCL
ОШИБКИ
Сообщения системы

 
Форумы
 
Круглый стол
Новые вопросы

 
  
Базарная площадь
Городская площадь

 
   
С Л С

 
Летопись
 
Королевские Хроники
Рыцарский Зал
Глас народа!

 
  
ТТХ
Конкурсы
Королевская клюква

 
Разделы
 
Hello, World!
Лицей

Квинтана

 
  
Сокровищница
Подземелье Магов
Подводные камни
Свитки

 
  
Школа ОБЕРОНА

 
  
Арсенальная башня
Фолианты
Полигон

 
  
Книга Песка
Дальние земли

 
  
АРХИВЫ

 
 

Сейчас на сайте присутствуют:
 
  
 
Во Флориде и в Королевстве сейчас  15:25[Войти] | [Зарегистрироваться]
Обсуждение темы:
Оберон-технология: особенности и перспективы


Тематика обсуждения: Оберон-технология. Особенности, перспективы, практическое применение. 

Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру


Всего в теме 6256 сообщений

Добавить свое сообщение

Отслеживать это обсуждение

Обсуждение из раздела
Школа ОБЕРОНА

<<<... | 1146—1137 | 1136—1127 | 1126—1117 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 513


№ 1136   28-11-2006 09:42 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1135« (Андрей Хохлов)
___________________________
>>>Немного не по теме, кто-нибудь из знатоков ЕС-IBM/360 может объяснить следующий пример на PL/I:
Это скорее не к языку, а к аппаратуре :)
На многих АЦПУ плохо различались 0 и 6.
Вместо 1/100 получить 1/160 можно было очень просто.


№ 1135   28-11-2006 08:38 Ответить на это сообщение Ответить на это сообщение с цитированием
2Img - не цепляйтесь к убогому.

То что можно проверить - должно быть проверено (и Оберон здесь не безгрешен), но к сожалению очень многое проверить нельзя.

Немного не по теме, кто-нибудь из знатоков ЕС-IBM/360 может объяснить следующий пример на PL/I:


  S=1.0;
  N=100;
  H=S/N; // результат = 0.00625


Насчет типов не уверен, скорее всего S - вешественное, N - целое
(возможно с указанной точностью)




№ 1134   28-11-2006 05:49 Ответить на это сообщение Ответить на это сообщение с цитированием
>>>неявное приведение типов это исторически сложившаяся фича васика
>>>не нравится, пишите
>>>Option Strict On

Вот о том и речь! То, что должно быть "по умолчанию", т.е. максимальная защита от "небезопасного" программирования, требует специальной директивы. А то, что требует разрешения, идет "по умолчанию". Как говорится, Бейсик уже не исправишь - "исторические фичи", понимаете ли...






№ 1133   28-11-2006 04:17 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1131« (Img)
___________________________
неявное приведение типов это исторически сложившаяся фича васика
не нравится, пишите
Option Strict On


№ 1132   28-11-2006 01:13 Ответить на это сообщение Ответить на это сообщение с цитированием
>>>Вот о чем идет речь!
И последнее - чтобы прояснить смысл до конца.
String не является расширением типа Double - это совершенно разные типы данных. И получив в качестве параметра значение совершенно другого типа, чем заданный в определении, надежная функция не должна делать вид, что все хорошо. Ибо значение другого типа, не являющегося расширением определенного в сигнатуре функции, скорее всего говорит об ошибке программиста - именно это и происходит в данной ситуации. Насколько я понимаю, в Оберонах такая ситуация при обращении к процедуре Math.Sqrt абсолютно невозможна.



№ 1131   27-11-2006 23:25 Ответить на это сообщение Ответить на это сообщение с цитированием
>>>Вы же должны понимать, что "строка"+"строка"="строкастрока"

Я то как раз все прекрасно понял :)
Это Вы не поняли, о чем я хотел сказать.
Если в определении функции написано, что параметр функции имеет тип Double, то никакого НЕЯВНОГО преобразования из передаваемого типа к тому типу, который требует функция в надежном языке быть НЕ МОЖЕТ!
Это, извините, не полиморфизм, а просто чушь. В полиморфной функции может передаваться экземпляр базового класса, тогда все его потомки тоже допустимы. Но здесь-то полная чушь! Функция требует в качестве параметра Double. Я передаю ей String. И вместо того, чтобы просигналить о несогласовании типов, она его неявно преобразовывает в тот тип, который ей нужен и выполняет свою функцию. Никаким безопасным программированием тут и не не пахнет! Даже в смысле полиморфизма ООП!
Вот о чем идет речь!



№ 1130   27-11-2006 14:16 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1128« (Img)
___________________________

' А Бейсику все равно - ему на определение функции наплевать
' Он квадратный корень из любого мусора вычислит!
' И получим мы корень из ("2"+"2")=4,69041575982343
' Но ведь мы передали функции не Double, а черт знает что,
' т.е. String - Значит ей все равно, какой тип у параметра?
' Зачем тогда людей в смущение вводить всякими "d As Double"?

Ну как же? 4,6904... - это SQRT(22), т.е. так же, как и в примере с JavaScript, "2"+"2" = "22", неявное преобразование к типу параметра функции и понеслась душа в рай... :о))
Вы же должны понимать, что "строка"+"строка"="строкастрока"


№ 1129   27-11-2006 10:26 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1119« (Антон Григорьев)
___________________________

AVC, info21: .. вы столкнулись с банальным флеймогоном, которого интересует только сам процесс придирок к вашим словам. Здесь это пока не очень заметно ..

Антон, большое спасибо. Уже и здесь заметно, особенно хорошо с подсказкой :))


№ 1128   27-11-2006 09:38 Ответить на это сообщение Ответить на это сообщение с цитированием
Все-таки не поленился, подумал неужели за то время, которое я не общался с Бейсиком он поумнел?
Написал тест. Суть теста такая. Вводим две строки. А потом их как бы складываем и пробуем извлечь из полученного квадратный корень.
При этом смотрим определение функции System.Math.Sqrt

Public Shared Function Sqrt(d As Double) As Double

Отлично! Если передать функции нечто, что вовсе не является величиной типа Double и вообще числом не является, то функция при таком издевательстве должна возмутиться и отвергнуть такое насилие.
Ничего подобного! Все проглатывает и даже извлекает корень из
суммы двух строк.
(Проверено на MS Visual Basic 2005 Express Edition)
А вот сам тест:

Public Class Form1
    Dim x As String, y As String, z As Double
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        x = TextBox1.Text
        y = TextBox2.Text
        ' Здесь какие-то операции ...
        ' А здесь человек забыл, что x и y это строки и их надо
        ' преобразовать в числовые типы. Забыл и написал бред:
        z = System.Math.Sqrt(x + y)
        Label1.Text = z
        ' А Бейсику все равно - ему на определение функции наплевать
        ' Он квадратный корень из любого мусора вычислит!
        ' И получим мы корень из ("2"+"2")=4,69041575982343
        ' Но ведь мы передали функции не Double, а черт знает что,
        ' т.е. String - Значит ей все равно, какой тип у параметра?
        ' Зачем тогда людей в смущение вводить всякими "d As Double"?
    End Sub
End Class

В общем "надежный" язык, надежнее некуда.


№ 1127   27-11-2006 09:07 Ответить на это сообщение Ответить на это сообщение с цитированием
Ответ на »сообщение 1126« (Img)
___________________________

Многие люди не осознают смысл слов Джорджа Оруэлла:

"Свобода - это рабство!"

Предлагаю сделать эту фразу официальным девизом языка Оберон! :о)) В смысле:

"Свобода в написании программы оборачивается рабским трудом при её отладке!"


<<<... | 1146—1137 | 1136—1127 | 1126—1117 | ...>>>
Всего сообщений в теме: 6256; страниц: 626; текущая страница: 513


Добавить свое сообщение

Отслеживать это обсуждение

Дополнительная навигация:
Количество сообщений на странице

Порядок сортировки сообщений
Новое сообщение вверху списка (сетевая хронология)
Первое сообщение вверху списка (обычная хронология)

Перейти на конкретную страницу по номеру
  
Время на сайте: GMT минус 5 часов

Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter.
Функция может не работать в некоторых версиях броузеров.

Web hosting for this web site provided by DotNetPark (ASP.NET, SharePoint, MS SQL hosting)  
Software for IIS, Hyper-V, MS SQL. Tools for Windows server administrators. Server migration utilities  

 
© При использовании любых материалов «Королевства Delphi» необходимо указывать источник информации. Перепечатка авторских статей возможна только при согласии всех авторов и администрации сайта.
Все используемые на сайте торговые марки являются собственностью их производителей.

Яндекс цитирования