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

> Правила раздела!

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

> Присвоение записей, Возможно ли и в каких версиях Паскаля
сообщение
Сообщение #1


Я.
****

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

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


Собственно вопрос - в названии темы.
Пример:
type rec = record 
x, y: integer;
end;
var
a, b: rec;
begin
a :=b;
//a.x := b.x;
//a.y := b.y;
end.

Будет ли работать и в каких версиях? Просто препод доказывал, что так записи присваивать нельзя, а нужно только поочередно присваивать поля.
PS: TP, FPC, Delphi - ест как миленький.
ЗЗЫ: Или препод как обычно мороз сморозил lol.gif ?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Я.
****

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

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


А можете это предоставить в виде цитаты из книги?
(я не нашел ничего)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

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


Цитата(sheka @ 11.11.2010 1:29) *
А можете это предоставить в виде цитаты из книги?
(я не нашел ничего)
Я боюсь, что именно такую цитату: "записи можно присваивать" - ты и не найдешь никогда. Это же просто неотделимо от самой КОНЦЕПЦИИ ПЕРЕМЕННОЙ. А иначе половина ее смысла теряется. Формально же следует из общих принципов и определения а) оператора присваивания; б) совместимости типов.

Например, берем вот это описание стандарта Pascal ISO 7185 :1990. Читаем описание оператора присваивания:
Цитата
6.8 .2.2 Assignment-statements
An assignment-statement shall attribute the value of the expression of the assignment-statement either to the variable denoted by the variable-access of the assignment-statement or to the activation result that is denoted by the function-identifier of the assignment-statement ; the value shall be assignment-compatible with the type possessed, respectively, by the variable or by the activation result. The function-block associated (see 6 .6.2) with the function-identifier of an assignment-statement shall contain the assignment-statement.

assignment-statement = ( variable-access | function-identifier ) ` :=' expression .

Главное я выделил, вот перевод: "значение должно быть совместимым по присваиванию". Заметим, что других ограничений не наложено.
Про "совместимость по присваиванию" читаем ранее:
Цитата
6.4.6 Assignment-compatibility
A value of type T2 shall be designated assignment-compatible with a type T1 if any of the following five statements is true:
a) T1 and T2 are the same type ...
...

Ч., как говорится, и Т.Д.

ГНАТЬ В ШЕЮ

Добавлено через 1 мин.
Блин, долго я писал, однако.. ))


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


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

 





- Текстовая версия 27.04.2024 13:12
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name