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

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

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

 
 Ответить  Открыть новую тему 
> ооп в Паскале
сообщение
Сообщение #1





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

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


здравствуйте. подскажите пожалуйста мне с задачей. я недавно начала изучать эту тем, но до сих пор путаюсь.
Создать класс chisla, заданный тремя целыми числами. Выполнить следующие пункты в виде методов класса:
1)равны ли суммы их цифр,
2)посчитать количество цифр «0 » и «5 » в каждом числе.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Знаток
****

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

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


Вот пример создания класса - http://delphi-faq.zoxt.net/a17.htm.

Попробуй реализовать что-нубудь подобное, только в Create будет какая-то инициализация трёх чисел. Покажи, что конкретно непонятно...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

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


Это пример создания класса, причем в ObjectPascal/Delphi... В Турбо Паскале (в большинстве своем в этом разделе именно задачи на Турбо-Паскаль) это не сработает. Там Объекты, и никаких свойств...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Знаток
****

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

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


Кстати да.

Я предполагаю, что топикстартер не придумал термины, а честно переписал условие из методички. И даже тогда, несмотря на традиции, вопрос подпадает под тематику раздела "Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи >".

Ждём реплику топикстартера. Желательно с собственными попытками решения.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

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

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


Volvo, а подскажите пожалуйста, что от меня хочет JCF (JEDI форматтер кода).
Я попробовал реализовать на FPC решение. Получилось примерно следующее:
{$mode Delphi}
program Lab;
.................
type
TArray = array[1..3] of integer;

TChisla = class(TObject)
private
{в массиве A будут храниться целые числа}
A: TArray;
{проверка на равенство суммы цифр}
function EqualSumma: boolean;
{подсчёт количества цифр 0 и 5 в числе с номером Number}
function CountDigit(Number: integer): integer;
public
constructor Create(AFirst, ASecond, AThird: integer);
destructor Destroy; override; <---------------------------------------- указание на эту строку
end;

{ TChisla }

constructor TChisla.Create(AFirst, ASecond, AThird: integer);
begin
inherited Create; {вызов конструктора класса родителя}
A[1] := AFirst;
A[2] := ASecond;
A[3] := AThird;
end;

destructor TChisla.Destroy;
begin
inherited;
end;

function TChisla.EqualSumma: boolean;
.................

function TChisla.CountDigit(Number: integer): integer;
.................

var
chisla: TChisla;
begin
chisla := TChisla.Create(10023, 230456, 40554);
WriteLn(chisla.EqualSumma);
WriteLn(chisla.CountDigit(1));
WriteLn(chisla.CountDigit(2));
WriteLn(chisla.CountDigit(3));
chisla.Free;
end.

Потом пропустил это через JCF. Помимо прочего, было сообщение с указанием на строку в описании типа
Цитата
Destroy should not normally be called. You may want to use FreeAndNil(MyObj), or MyObj.Free, or MyForm.Release near Destroy at line 36 col 16


Я догадываюсь, что это warning. Но если бы вместо массива использовался TCollection - его бы потребовалось освобождать, а для этого переопределить Destroy. Как я понимаю Free и FreeAndNil (которые настоятельно рекомендуют применять) обращаются к Destroy. О чём тогда предупреждать?

Сообщение отредактировано: Федосеев Павел -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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