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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 19:51   #1
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
По умолчанию Не понял урок

Здравствуйте! У меня такой вопрос: я проходил урок вот по этой ссылке

http://www.intuit.ru/department/pl/intdelphi/3/ первая часть
http://www.intuit.ru/department/pl/intdelphi/3/2.html вторая часть

Именно я не понял тут вот что: во второй части урока написано что нужно вставить код процедуры - выше процедуры обработки кнопки. Я именно не понял что на что нужно заменить... подскажите пожалуйста.

код процедуры:

Цитата:
procedure Soobshenie;
begin
ShowMessage('Ошибка! На ноль делить нельзя!');
end;
Тоже самое и с функцией. Я тоже не понял вместо чего нужно вставить функцию(создать ее между нашей процедурой и процедурой нажатия на кнопку).

код функции:

Цитата:
function Delenie(a,b : Integer) : Real;
begin
Result := a / b;
end;
beygul вне форума Ответить с цитированием
Старый 20.05.2009, 22:08   #2
L_M
Форумчанин Подтвердите свой е-майл
 
Регистрация: 25.02.2008
Сообщений: 289
По умолчанию

там написано - заменить
Код:
ShowMessage('Ошибка! На ноль делить нельзя!');
на
Код:
Soobshenie;
то есть в итоге можно получить
Код:
  If Perem2 = 0 then begin                   //если это ноль, то:
    Soobshenie;   //вызываем функцию, котора должна быть описана выше
    Edit3.Text := '0';                 //как результат записываем ноль
  end
  else begin                            //иначе:
    Perem3 := delenie(perem1,perem2);         //делим
    Edit3.Text := FloatToStr(Perem3);  //преобразуем вещественное в 
                                       //строку и записываем результат
  end;
Упс...
L_M вне форума Ответить с цитированием
Старый 21.05.2009, 11:47   #3
beygul
Форумчанин
 
Аватар для beygul
 
Регистрация: 15.09.2008
Сообщений: 335
По умолчанию

когда я так делаю - делфи выдаёт ошибку компиляции... что делать? а?
beygul вне форума Ответить с цитированием
Старый 21.05.2009, 12:27   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
когда я так делаю
Полный код в студию.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.05.2009, 14:52   #5
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

Код:
unit Main;

interface

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

type
  TfMain = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Edit1Change(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  fMain: TfMain;

implementation

{$R *.dfm}

procedure TfMain.Button1Click(Sender: TObject);
var
  Perem1, Perem2 : Integer; // Делимое и делитель - целые числа
  Perem3 : Double; // Частное, то есть результат - дробное число
begin
  Perem1 := StrToInt(Edit1.Text);  // Делимое
  Perem2 := StrToInt(Edit2.Text);  // Делитель

  {защита от дураков:}
  If Perem2 = 0 then begin
    Soobshenie;
    Edit3.Text := '0';
  end
  else begin
    Perem3 := Delenie(Perem1, Perem2);
    Edit3.Text := FloatToStr(Perem3);
  end;


end;

procedure TfMain.Edit1Change(Sender: TObject);
begin
Edit2.Clear;
Edit3.Clear;
end;

end.

это полный код - если я заменяю то что сказал L_M выше... При этом коде у меня выдаёт ошибку...

при ошибке - выделяется строчка Soobshenie;

Код:
{защита от дураков:}
If Perem2 = 0 then begin
Soobshenie;
Edit3.Text := '0';
end
else begin
Perem3 := Delenie(Perem1, Perem2);
Edit3.Text := FloatToStr(Perem3);
end;
В тюрьме столько не сидят, сколько в ИНЭТЕ!

Последний раз редактировалось Stilet; 21.05.2009 в 15:36.
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 21.05.2009, 15:34   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
unit Main;

interface

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

type
TfMain = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Button1: TButton;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
fMain: TfMain;

implementation

{$R *.dfm}

procedure Soobshenie;
begin
 ShowMessage('Ошибка! На ноль делить нельзя!');
end;

function Delenie(a,b : Integer) : Real;
begin
 Result := a / b;
end;

procedure TfMain.Button1Click(Sender: TObject);
var
Perem1, Perem2 : Integer; // Делимое и делитель - целые числа
Perem3 : Double; // Частное, то есть результат - дробное число
begin
Perem1 := StrToInt(Edit1.Text); // Делимое
Perem2 := StrToInt(Edit2.Text); // Делитель

{защита от дураков:}
If Perem2 = 0 then begin
Soobshenie;
Edit3.Text := '0';
end
else begin
Perem3 := Delenie(Perem1, Perem2);
Edit3.Text := FloatToStr(Perem3);
end;


end;

procedure TfMain.Edit1Change(Sender: TObject);
begin
Edit2.Clear;
Edit3.Clear;
end;

end.
видимо оформлять код вы не умеете(но это личная придирка)

а по делу, вам сказали же что создать(описать) процедуру нужно до того как вы будете её вызывать
что я и показал...а потом заменяете те строки вызавами фунок и все..
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.05.2009, 15:34   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при ошибке - выделяется строчка Soobshenie;
Естесственно выдается.
Эта процедура нигде не описана.
Цитата:
Пепел Феникса
Тогда уж обьявить ее не забудь - чтоб по правилам было.
I'm learning to live...

Последний раз редактировалось Stilet; 21.05.2009 в 15:37.
Stilet вне форума Ответить с цитированием
Старый 21.05.2009, 15:40   #8
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

я так и не понял какой код должен получиться? отправьте мне пожалуйста полный правильный код, если не сложно... а?
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Старый 21.05.2009, 15:51   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Стилет, для локального использования код полный
для глобального конечно нужно описать их в интерфесном блоке

ТС по заданию(как я понял) нужно было локальное использование
его я и написал
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.05.2009, 16:03   #10
Инспектор ГУЛ
Пользователь
 
Аватар для Инспектор ГУЛ
 
Регистрация: 21.05.2009
Сообщений: 55
По умолчанию

кто нибудь мне код скажет который полный правильный? а? пожалуйста!!!
В тюрьме столько не сидят, сколько в ИНЭТЕ!
Инспектор ГУЛ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Среда Turbo Pascal 7.0 (урок для начинающих) Arigato Обсуждение статей 19 30.11.2009 18:01
Напишите кто то урок по OpenGL. spamer Обсуждение статей 2 07.05.2009 23:50
Как заснять видео урок в программе камтазия??? Рогаль Иван Софт 4 05.04.2009 19:21
решить с использованием рекурсивной подпрограммы. помогите пожалуйста ваще ни че не понял st1m Паскаль, Turbo Pascal, PascalABC.NET 2 02.04.2009 15:31
[Delphi]Окно как выводить понял,а вот.. Ученик(школьник) Помощь студентам 5 26.12.2008 13:55