Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
SuvAlexander
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
1

Задачки на знание компилятора Delphi

02.09.2015, 20:24. Просмотров 1385. Ответов 32
Метки нет (Все метки)

Задачки, для людей, хорошо знающих компилятор Delphi 2007 - Delphi XE8.
1) Не новая. Реализовать TMy, чтобы функция Test вернула 'A = B'.
Delphi
1
2
3
4
5
6
7
8
function Test: String;
var
  A, B: TMy;
begin
  A := TMy.Create('A');
  B := TMy.Create('B');
  Result := A = B; // 'A = B'
end;
2) Эту задачу я ещё не задавал. Реализовать IsConstant. На входе целое, на выходе Boolean. Результат должен быть True, если на вход подано значение, которое рассчитано на этапе компиляции. Иначе (если переменная, выражение этапа выполнения) False.
Например код:

Delphi
1
2
3
4
5
6
7
var
  i: Integer;
begin
  Writeln(IsConstant(1));  // True
 
  i := 1;
  Writeln(IsConstant(i)); // False
должен вывести:
TRUE
FALSE
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.09.2015, 20:24
Ответы с готовыми решениями:

Диагностическое сообщения компилятора Delphi
Суть такова. Создаю DLL библиотеку. Делаю вот так: exports ShowAbout index 22; Компилирую....

Особенности компилятора Delphi по сравнению с C# .Net
Здравствуйте, товарищи! Есть dll (сервер), написанная на C# и Delphi-приложение (клиент),...

Тест на знание Delphi
На знание Delphi то есть мне нужны просто готовые вопросы с ответами чтобы вставить в компонент...

Delphi XE10 Настройка компилятора
Перевожу проект с Delphi 7 =))) на новую версию и столкнулся с проблемой, что при компиляции...

Delphi xe4 баг компилятора
В общем, при вводе стандартных объектов вместо процедур, функций и переменных(а-ля Edit1.text)...

32
mmm_corp
Эксперт Pascal/Delphi
101 / 89 / 32
Регистрация: 30.05.2015
Сообщений: 576
02.09.2015, 20:31 2
не понял, а в чем смысл вопроса?

Вы не знаете как решить задачки? Или что? Как пробовали?
0
SuvAlexander
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
02.09.2015, 20:33  [ТС] 3
Задачки поставила жизнь. Решил сам.
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
02.09.2015, 20:46 4
Цитата Сообщение от SuvAlexander Посмотреть сообщение
Решил сам
Ну решил и решил.
А сюда-то что заходил ?)
0
02.09.2015, 20:46
SuvAlexander
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
02.09.2015, 20:54  [ТС] 5
Странный вопрос. Я предпологал здесь люди любящие подумать. Если это не так - пускай модератор закрывает тему. Извините. Я считаю, что задачки заставляют по новому взлянуть на возможности компилятора.
0
mss
02.09.2015, 20:59
  #6

Не по теме:

Массовик-затейник)

0
FIL
Модератор
3445 / 2574 / 734
Регистрация: 19.09.2012
Сообщений: 7,944
02.09.2015, 21:28 7
Цитата Сообщение от SuvAlexander Посмотреть сообщение
Я предпологал здесь люди любящие подумать.
Как это связино с выложенным тобою, абсолютно бессмысленным кодом?
Над чем тут думать?
0
SuvAlexander
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
02.09.2015, 21:50  [ТС] 8
Цитата Сообщение от FIL Посмотреть сообщение
Над чем тут думать
Тебе не над чем.

На оффтоп больше не отвечаю.
0
northener
пофигист широкого профиля
3465 / 2358 / 640
Регистрация: 15.07.2013
Сообщений: 14,061
03.09.2015, 00:30 9
Цитата Сообщение от FIL Посмотреть сообщение
Как это связино с выложенным тобою, абсолютно бессмысленным кодом?
+1
SuvAlexander, ты хотя бы хоть какой-нибудь учебник найди и хоть начни его читать!
0
SuvAlexander
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
03.09.2015, 12:45  [ТС] 10
Цитата Сообщение от northener Посмотреть сообщение
ты хотя бы хоть какой-нибудь учебник найди и хоть начни его читать
Я вижу, вы ответа в книгах не нашли. А головой думать не привыкли.
0
саша40
-109 / 295 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
06.09.2015, 21:31 11
Задачки больше не на знания, а на вые$%#@$ мозга. Будете обсуждать особенности образования - удачи!
0
northener
пофигист широкого профиля
3465 / 2358 / 640
Регистрация: 15.07.2013
Сообщений: 14,061
07.09.2015, 02:45 12
Цитата Сообщение от SuvAlexander Посмотреть сообщение
Я вижу, вы ответа в книгах не нашли. А головой думать не привыкли.
На "слабо" меня развести не надейся. Мне эти задачки не интересны.
0
snake32
1842 / 1154 / 203
Регистрация: 26.02.2009
Сообщений: 4,316
Записей в блоге: 5
07.09.2015, 16:35 13
Лучший ответ Сообщение было отмечено SuvAlexander как решение

Решение

Цитата Сообщение от SuvAlexander Посмотреть сообщение
Решил сам.
Интересно как? Сам интересуюсь возможностями компилятора делфи.
Первый вопрос: Не понятно какого типа TMy?
Если это record то можно попробовать перегрузку операторов, но фишка в том что оператор Equal способен вернуть только boolean. И других результатов он не возвращает. http://docwiki.embarcadero.com/RADSt...oading_(Delphi)
Если TMy это class то для классов вообще перегрузки нет. По-крайней мере в том компиляторе, которым пользуюсь я XE2 Win32/64

PS: Если ответы есть то скорее всего нужно копать в сторону RTTI
1
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 19:48 14
Цитата Сообщение от snake32 Посмотреть сообщение
для классов вообще перегрузки нет
А вот Эмбаркадеро утверждает что в XE2..ХЕ8 есть..
Цитата из:

This example shows how to write and invoke class or record operator overloads
0
snake32
1842 / 1154 / 203
Регистрация: 26.02.2009
Сообщений: 4,316
Записей в блоге: 5
07.09.2015, 20:25 15
mss, не держит класс, проверено! Может под ios и компилит..
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 20:46 16
Подтверждаю - в XE7 не держит
99.9% не будет держать и при указании других платформ

Знать враньё в первоисточнике..

Добавлено через 7 минут

Не по теме:

Цитата Сообщение от snake32 Посмотреть сообщение
копать в сторону RTTI
Механизм RTTI никак не кореллирует с механизмом перегрузки опереторов.
Хотя бы потому что эти механизмы находятся по разные стороны "границы" - первый работает в ран-тайм, второй - в компайл-тайм

0
FIL
Модератор
3445 / 2574 / 734
Регистрация: 19.09.2012
Сообщений: 7,944
07.09.2015, 21:08 17
Код по ссылке вполне рабочий в ХЕ8.
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 21:09 18
Он и в XE7 рабочий.
0
FIL
Модератор
3445 / 2574 / 734
Регистрация: 19.09.2012
Сообщений: 7,944
07.09.2015, 21:10 19
Тогда что с ним не так?
0
mss
2639 / 2263 / 277
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 21:13 20
С ним-то все так ..
Не так в предшествующем коду описании:

This example shows how to write and invoke class or record operator overloads
0
07.09.2015, 21:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.09.2015, 21:13

Delphi оболочка для компилятора csc.exe
Добрый день. Задача: написать на delphi оболочку для компилятора csc.exe Пишем код в окне memo1,...

Delphi 7 зделать задачки
Не могу понять как их делать помогите лрузья пожалуйста За рание спасибо ! :good: 6. Знайти...

смена версии компилятора с delphi 7 на rad studio 2010
Перешел с delphi 7 на rad studio 2010 из-за того что она полноцено поддерживает unicode, но старый...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru