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

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

02.09.2015, 20:24. Просмотров 1617. Ответов 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.09.2015, 20:24
Ответы с готовыми решениями:

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

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

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

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

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

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

Не по теме:

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

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

На оффтоп больше не отвечаю.
0
пофигист широкого профиля
4031 / 2685 / 765
Регистрация: 15.07.2013
Сообщений: 15,671
03.09.2015, 00:30 9
Цитата Сообщение от FIL Посмотреть сообщение
Как это связино с выложенным тобою, абсолютно бессмысленным кодом?
+1
SuvAlexander, ты хотя бы хоть какой-нибудь учебник найди и хоть начни его читать!
0
2 / 2 / 1
Регистрация: 02.09.2015
Сообщений: 15
Записей в блоге: 5
03.09.2015, 12:45  [ТС] 10
Цитата Сообщение от northener Посмотреть сообщение
ты хотя бы хоть какой-нибудь учебник найди и хоть начни его читать
Я вижу, вы ответа в книгах не нашли. А головой думать не привыкли.
0
154 / 297 / 47
Регистрация: 14.08.2012
Сообщений: 2,578
06.09.2015, 21:31 11
Задачки больше не на знания, а на вые$%#@$ мозга. Будете обсуждать особенности образования - удачи!
0
пофигист широкого профиля
4031 / 2685 / 765
Регистрация: 15.07.2013
Сообщений: 15,671
07.09.2015, 02:45 12
Цитата Сообщение от SuvAlexander Посмотреть сообщение
Я вижу, вы ответа в книгах не нашли. А головой думать не привыкли.
На "слабо" меня развести не надейся. Мне эти задачки не интересны.
0
2365 / 1204 / 210
Регистрация: 26.02.2009
Сообщений: 4,707
Записей в блоге: 5
07.09.2015, 16:35 13
Лучший ответ Сообщение было отмечено SuvAlexander как решение

Решение

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

PS: Если ответы есть то скорее всего нужно копать в сторону RTTI
1
2644 / 2267 / 278
Регистрация: 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
2365 / 1204 / 210
Регистрация: 26.02.2009
Сообщений: 4,707
Записей в блоге: 5
07.09.2015, 20:25 15
mss, не держит класс, проверено! Может под ios и компилит..
0
2644 / 2267 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 20:46 16
Подтверждаю - в XE7 не держит
99.9% не будет держать и при указании других платформ

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

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

Не по теме:

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

0
Модератор
3467 / 2593 / 738
Регистрация: 19.09.2012
Сообщений: 7,954
07.09.2015, 21:08 17
Код по ссылке вполне рабочий в ХЕ8.
0
2644 / 2267 / 278
Регистрация: 24.12.2010
Сообщений: 13,725
07.09.2015, 21:09 18
Он и в XE7 рабочий.
0
Модератор
3467 / 2593 / 738
Регистрация: 19.09.2012
Сообщений: 7,954
07.09.2015, 21:10 19
Тогда что с ним не так?
0
2644 / 2267 / 278
Регистрация: 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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.09.2015, 21:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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 - 2020, vBulletin Solutions, Inc.