IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Понятия идентичности и совместимости
Гость
сообщение 23.06.2005 6:37
Сообщение #1


Гость






Помогите разобраться
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 4)
VBproffi
сообщение 23.06.2005 6:47
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


вопрос вообщето дли теории (ИМХО), но я отвечу, а модерация, по своему усмотрению поступит с этой темой.
Идентичность.
Два типа могут быть идентичны, если они эквивалентны друг другу
или если они эквивалентны третьему типу
Примеры

1)
Код
type
   Mas    = 222..2222;
   Netto  = Mas;
   Brutto = Netto;


2)
Код
type
   Price = 12..12000
   Nal   = Price
   BNal  = Price


Совместимость

I. Совместимость типов
II. Совместимость по присваиванию

1.1. Наиболее понятный это если они оба принадлежат целочисленным (Byte, Integer, Word, LongInt, ShortInt)
или вещественным (Real, Double, Single, Extended)
1.2. Один типа представляет из себя диапазон другого
1.3. Оба типа представляют из себя диапазон другого - стандартного типа
1.4. Идентичность типов (см. выше)

Примеры
2)
Код
type
       Max = 50..100;
       Min = 60..70;


3)
Код
type
     Words = 'A'..'D';
 
  var
     ch : Char;
Здесь words - поддиапозон Char.

2.1. Идентичность типов выражений
2.2. Совместимость может быть между двумя выражениями если тип первого выражения - вещественный, а другой - целочисленный (но не наоборот)

Пример

Код
Var
      a : real
      b:  byte;
begin

      b:= 5;
     a:= b (True-  a = 5.0.)
end;


--------------------
Чтоб мудро жизнь прожить
Знать надобно не мало,
Ты лучше голодай,
Чем что попало есть
И лучше будь один,
Чем вместе с кем попало

О.Хаям
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.06.2005 8:03
Сообщение #3


Гость






Если уже давать такой развернутый ответ, то надо давать его полностью:
Цитата(VBproffi @ 23.06.05 6:47)
Совместимость
1.1. Наиболее понятный это если они оба принадлежат целочисленным (Byte, Integer, Word, LongInt, ShortInt)
  или вещественным (Real, Double, Single, Extended)
1.2. Один типа представляет из себя диапазон другого
1.3. Оба типа представляют из себя диапазон другого - стандартного типа
1.4. Идентичность типов (см. выше)

+ к этому:
1.5. Оба типа являются множественными типами, и при этом их базовые типы совместимы
1.6. Один тип является строковым, а другой - строковым или символьным типом
1.7. Один тип является бестиповым указателем (Pointer), а другой - указателем или ссылкой

Цитата(VBproffi @ 23.06.05 6:47)
2.1. Идентичность типов выражений     
2.2. Совместимость может быть между двумя выражениями  если тип первого выражения - вещественный, а другой - целочисленный  (но не наоборот)

И это всё? Попробуй тогда сделать вот так (из твоего описания не видно, что это запрещено):
Var f_in, f_out: text;
begin
f_in := f_out; { <--- Типы эквивалентны друг другу, почему не работает?}
end.
 К началу страницы 
+ Ответить 
VBproffi
сообщение 23.06.2005 15:49
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 13
Пол: Мужской

Репутация: -  0  +


Цитата
Если уже давать такой развернутый ответ...

А кто скзал, что ядаю развёртнутый ответ :D . Я привожу даю справку согласно имеющимся (не ошибочным) сведениям.

Цитата
+ к этому:

Вот это я понимаю. Просто я самоучка - прошу читающих не ухмыляться, я отнюдь не считаю что я такой единственный... но просто я привожу те сведения, из теории, которые узнаю из книг. Эти знания я почерпнул из книги Элиота Б.Коффмана. Но есть тут фишка, :nono: я вот не полно ответил, ты дополнил, кто - то ещё добавит и ... так происходит обмен информацией, преобретение опыта и улучшение умственных способностей. А разве не для этого мы здесь седим. Я прав брат? :D

Цитата
И это всё? Попробуй тогда сделать вот так (из твоего описания не видно, что это запрещено):

Var
      f_in, f_out: text;
begin
  f_in := f_out; { <--- Типы эквивалентны друг другу, почему не работает?}
end.


Хммм... ну не знаю, знаю что на заработает, но почему не знаю...
Поделишся опытом? rolleyes.gif

Сообщение отредактировано: VBproffi - 23.06.2005 15:52


--------------------
Чтоб мудро жизнь прожить
Знать надобно не мало,
Ты лучше голодай,
Чем что попало есть
И лучше будь один,
Чем вместе с кем попало

О.Хаям
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 23.06.2005 16:18
Сообщение #5


Гость






Цитата(VBproffi @ 23.06.05 15:49)
знаю что на заработает, но почему не знаю...

Потому, что совместимость по присваиванию подразумевает нечто иное... Вот 10 правил этой совместимости:

Значение типа Т1 может быть присвоено значению типа Т2, если ...
  1. Т1 и Т2 - тождественные типы, и ни один из них не является файловым типом или структурным типом, содержащим компонент файлового типа;
  2. Т1 и Т2 - совместимые перечислимые типы, и значения типа Т2 попадают в диапазон возможных значений Т1;
  3. Т1 и Т2 - вещественные типы, и значения типа Т2 попадают в диапазон возможных значений Т1;
  4. Т1 - вещественный тип, Т2 - целочисленный тип;
  5. Т1 и Т2 - строковые типы;
  6. Т1 - строковый тип, Т2 - символьный тип;
  7. Т1 и Т2 - совместимые множественные типы, и все члены значения множества типа Т2 попадают в диапазон возможных значений Т1;
  8. Т1 и Т2 - совместимые адресные типы;
  9. Тип объекта Т2 совместим по присваиванию с типом объекта Т1, если Т2 находится в области типа объекта Т1;
  10. Тип ссылки Ptr2, указывающий на тип объекта Т2, совместим по присваиванию с типом ссылки Ptr1, указывающим на тип объекта Т1, если Т2 находится в области типа объекта Т1
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.07.2025 10:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"