Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2009, 10:09   #1
Егор527
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 14
По умолчанию DELPHI задача.Создание класса.

«Четные числа» Сформировать класс четных натуральных чисел. Определить для этого класса операции возведения во вторую и третью степень. Составить программу ввода нескольких четных чисел, и вывода обеих их степеней.

Помогите сформировать класс в Delphi.Я не очень просто понимаю как его описывать или дайте код проги с несложным новым классом.Заранее благодарен.

вот легкий набросок кода.

Код:
type Chislo = class(TObject)
num:integer;
procedure step2;
procedure step3;
construcor Create;
destrucot Destroy;
end;

procedure TChislo.step2;
begin
num:=num*num;
end;

Последний раз редактировалось Stilet; 10.12.2009 в 10:20.
Егор527 вне форума Ответить с цитированием
Старый 10.12.2009, 10:26   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну вот тебе легенький пример:
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;
TYPE

 MyClass=class
 Public
  Chislo:array[1..4] of Extended;
  Function Stepen(Num:byte;AExp:Extended):Extended;
 end;

{ MyClass }

function MyClass.Stepen;
begin
 if (num>=1)and(num<=4) then
  Result:=exp(Aexp*ln(chislo[num]))
 else
  result:=0;
end;

var m:MyClass;
begin
 m:=MyClass.Create;
  m.Chislo[1]:=3;m.Chislo[2]:=5;
  write(m.Stepen(1,3):10:3,m.Stepen(2,2.6):10:3);
 m.Free;
 readln;
end.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2009, 10:58   #3
Егор527
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 14
По умолчанию

Извените за тупость..Просто мы на уроках очень плохо разобрали классы.
При вставлении в делфи это должно выглядеть так?
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
MyClass = class
Public
Chislo:array[1..4] of Extended;
Function Stepen(Num:byte;AExp:Extended):Exte nded;
end;
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}
function MyClass.Stepen;
begin
if (num>=1)and(num<=4) then
Result:=exp(Aexp*ln(chislo[num]))
else
result:=0;
end;

var m:MyClass;
begin
m:=MyClass.Create;
m.Chislo[1]:=3;m.Chislo[2]:=5;
write(m.Stepen(1,3):10:3,m.Stepen(2 ,2.6):10:3);
m.Free;
readln;
end.
Егор527 вне форума Ответить с цитированием
Старый 10.12.2009, 11:40   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Нет.
Ты смешал класс формы и свой класс.
Отдельно их разнеси. Да и испортил ты модуль с формой безнадежно.
Создай просто Application и добавь сразу после type описание своего класса
А после implementation его реализацию.
Посмотри как класс TForm1 сделан.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 10.12.2009, 11:44   #5
SNUPY
Форумчанин
 
Регистрация: 15.02.2008
Сообщений: 621
По умолчанию

Вот тебе класс (писал на прямик так что за работо способность не отвечаю):
Код:
TEvenNumber=Class
private
  EvenNumber:integer;
public
  constructor SetNumber(Number:integer);
  function pow_2:integer;
  function pow_3:integer;
end;

...

constructor TEvenNumber.SetNumber(Number:integer);
begin
  EvenNumber:=(Number div 2)*2;//это на случай если число не четное =)))
end;

function TEvenNumber.pow_2:integer;
begin
  result:=EvenNumber*EvenNumber;
end;

function TEvenNumber.pow_2:integer;
begin
  result:=EvenNumber*EvenNumber*EvenNumber;
end;
Помог? Ну так нажми на весы!
SNUPY вне форума Ответить с цитированием
Старый 10.12.2009, 12:04   #6
Егор527
Пользователь
 
Регистрация: 31.05.2008
Сообщений: 14
По умолчанию

Все всем спасибо большое я понял.Вот код программы может кому-то пригодится в будущем.
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
TEvenNumber=Class
private
EvenNumber:integer;
public
constructor SetNumber(Number:integer);
function pow_2:integer;
function pow_3:integer;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

constructor TEvenNumber.SetNumber(Number:intege r);
begin
EvenNumber:=(Number div 2)*2;//это на случай если число не четное =)))
end;

function TEvenNumber.pow_2:integer;
begin
result:=EvenNumber*EvenNumber;
end;

function TEvenNumber.pow_3:integer;
begin
result:=EvenNumber*EvenNumber*EvenN umber;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
T:TEvenNumber;
begin
T:=TEvenNumber.SetNumber(strtoint(e dit1.Text));
edit2.Text:=inttostr(T.pow_2);
edit3.text:=inttostr(T.pow_3);
end;

end.
Егор527 вне форума Ответить с цитированием
Старый 10.12.2009, 12:31   #7
s.Creator
Форумчанин
 
Регистрация: 28.09.2008
Сообщений: 344
По умолчанию

Блин неуспел но все равно отсылаю.
Так не очень сложно?:
Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

type
TChislo = class
Fnum:integer;
function SetChetnoeChislo(num:integer): boolean;
function step2:integer;
function step3:integer;
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TChislo }

function TChislo.SetChetnoeChislo(num: integer): boolean;
begin
Fnum := num;
Result := (Fnum mod 2) = 0; // если четное то true
end;

function TChislo.step2: integer;
begin
Result := Fnum * Fnum;
end;

function TChislo.step3: integer;
begin
Result := step2 * Fnum;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
chislo: TChislo;
begin
chislo:= TChislo.Create;
if chislo.SetChetnoeChislo(StrToInt(Ed it1.Text)) then
begin
Memo1.Lines.Add('число: ' + IntToStr(chislo.Fnum)
+ ' четное, квадрат = ' + IntToStr(chislo.step2) + ' куб = ' + IntToStr(chislo.step3));
end
else
begin
Memo1.Lines.Add('число: ' + IntToStr(chislo.Fnum) + ' нечетное');
end;
chislo.Free;
end;

end.
( оказывается в этом разделе не так то и просто
расшифровать задание да понять уровень исполнения )
Вложения
Тип файла: zip ChetnyInt.zip (2.0 Кб, 17 просмотров)
s.Creator вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание своего класса в Delphi 7 - фигуры для шахматной доски electric Компоненты Delphi 18 24.10.2013 15:06
Delphi 7, создание функционального калькулятора с использованием класса ulala Помощь студентам 16 27.03.2013 23:00
Создание класса в Delphi program123 Помощь студентам 6 16.06.2009 14:39
[Delphi]: Создание нового класса с наследованием Kolhan Помощь студентам 6 17.04.2009 00:03