PDA

Просмотр полной версии : Меня это заводит в тупик...


SanicX2
01.02.2014, 13:37
Ребят, кто знает делфи?
Я начинаю только программировать, и начинаю с самых низов, первое что пишу, так это обыкновенный калькулятор. Только проблема вот в чем: я написал инструкцию для деления, но он выводит мне ошибку и я даже понять не могу, почему. Вроде все правильно
Вот исходник деления
procedure TForm1.Button4Click(Sender: TObject);
var A, B, C: Integer; // Delenie
begin
// Nachalo
A := StrToInt(Edit1.Text);
B := StrToInt(Edit2.Text);
C := A/B ;
Label1.Caption := IntToStr (C);
// Konec
end;
Что в нем не так?
В Сложение, умножение и вычитание все работает, а в делении нет. Сверил уже несколько раз. Помогите пожалуйста

OldTimeWhiskey
01.02.2014, 15:18
Вместо StrToInt попробуй StrToFloat

SanicX2
01.02.2014, 16:06
Вместо StrToInt попробуй StrToFloat

Не помогает,
в строке var A, B, C: Integer; // Delenie выявляет ошибку, но не пойму какую

tltneon
01.02.2014, 16:24
У тебя С - целое, а выполняется деление (С не может быть целым)

SanicX2
01.02.2014, 16:40
У тебя С - целое, а выполняется деление (С не может быть целым)

Получается IntToStr нужно заменить на StrToFloat?
Но если заменяю, у меня выявляется ошибка в той строке, которую я указал выше.

OldTimeWhiskey
01.02.2014, 16:51
C: Real

SanicX2
01.02.2014, 17:09
C: Real

procedure TForm1.Button4Click(Sender: TObject);
var a,b :Integer;
C: REAL;
begin
A :=StrToInt(Edit1.Text);
B :=StrToInt(Edit2.Text);
C :=A/B;
Label1.Caption:= FloatToStr(C);
end;
Написал вот так, он вообще делить не хочет, но теперь хотя бы программа запускается

OldTimeWhiskey
01.02.2014, 17:18
procedure TForm1.Button4Click(Sender: TObject);
var a,b :Integer;
C: REAL;
begin
A :=StrToFloat(Edit1.Text);
B :=StrToFloat(Edit2.Text);
C :=A/B;
Label1.Caption:= FloatToStr(C);
end;

SanicX2
01.02.2014, 17:18
C: Real

Делить начал. Наконец!
Но блин, если я делю 15 на 3 к примеру, должн по сути получится 5,но он считает у меня 0.2, почему?

~Керя~
01.02.2014, 17:40
Делить начал. Наконец!
Но блин, если я делю 15 на 3 к примеру, должн по сути получится 5,но он считает у меня 0.2, почему?

procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a/b;
Label1.Caption:=FloatToStr(c);
end;

SanicX2
01.02.2014, 17:51
procedure TForm1.Button1Click(Sender: TObject);
var a,b,c:real;
begin
a:=StrToFloat(Edit1.Text);
b:=StrToFloat(Edit2.Text);
c:=a/b;
Label1.Caption:=FloatToStr(c);
end;
Тоже самое,ничего не изменилось

~Керя~
01.02.2014, 17:56
Тоже самое,ничего не изменилось

Поменяй Edit1 и Edit2 местами
Или же припили цикл, if a>b then c:=a/b else c:=b/a;

SanicX2
01.02.2014, 18:01
Поменяй Edit1 и Edit2 местами
Или же припили цикл, if a>b then c:=a/b else c:=b/a;

Циклы такие еще не изучал, поэтому не буду вставлять
Чуть позже протестирую, поменяв местами Edit1 и Edit2
Спасибо за помощь:)

~Керя~
01.02.2014, 18:03
Циклы такие еще не изучал, поэтому не буду вставлять
Чуть позже протестирую, поменяв местами Edit1 и Edit2
Спасибо за помощь:)

Не изучал if then else????? Это как?

if a>b then c:=a/b else c:=b/a; {Если а больше b тогда c:=а/b иначе c:=b/a;}

MembRupt
01.02.2014, 18:06
Это условный переход :)

~Керя~
01.02.2014, 18:10
Это условный переход :)

Да, я чуток не верно написал, со своей задачкой мучаюсь просто, одни циклы в циклах...

SanicX2
01.02.2014, 22:43
Да, я чуток не верно написал, со своей задачкой мучаюсь просто, одни циклы в циклах...
:)
Нет, я еще не изучал, как буду изучать, буду ей пользоваться
и да, Edit1 и Edit2 поменял местами, мне помогло. Как же я сильно тупанул, на счет этого, никак догадаться не мог:)
Спасибо ребята /nyan

~Керя~
01.02.2014, 23:10
:)
Нет, я еще не изучал, как буду изучать, буду ей пользоваться
и да, Edit1 и Edit2 поменял местами, мне помогло. Как же я сильно тупанул, на счет этого, никак догадаться не мог:)
Спасибо ребята /nyan

Обращайся, поможем чем сможем :)

ятру2
01.02.2014, 23:43
хочу что нибудь написать, вот только совершенно не понимаю о чем идет речь

/dgs

SanicX2
02.02.2014, 01:21
хочу что нибудь написать, вот только совершенно не понимаю о чем идет речь

/dgs

Это только начало /dgs

vokovl
02.02.2014, 11:23
какой сложный язык делфи, начинай лучше шарп учить

ятру2
02.02.2014, 11:44
Это только начало

да не, не прогру "написать" а в этой теме написать
/dgs

SanicX2
02.02.2014, 12:46
какой сложный язык делфи, начинай лучше шарп учить

Не такой и сложный кстати, главное найти место, где подробно разжуют
Пытался учить язык с++, толку 0, начал учить язык делфи, уже хотябы продвижения есть
Из вот этой исходной Label1.Caption:=IntToStr(StrToInt(Edit1.Text)+StrT oInt(Edit2.Text));, я сумел сделать другой вид исходной, который мне больше нравится, в добавок к этому добавил: умножение, вычитаение и деление. Для меня это очень большой рывок на второй день изучения делфи:)

vokovl
03.02.2014, 13:49
а где проверка? может то что введут в текстбокс не будут являться цифрами? будет критическая ошибка и еррор