Автор | Программирование Delphi |
Вычитание рандомных двух чисел. Два лэбела + 1 едит + баттона. Короче у меня тут дельфи не врубается что такое а и b. Помогите. Буду признателен.
procedure TForm1.Button1Click(Sender: TObject);
var a, b, r:integer;
begin
r:=StrToInt(edit1.Text);
If r=(a-b) then Label2.caption:='Правильно' else
If r<(a-b) then Label2.caption:='Вы ошиблись' else
If r>(a-b) then Label2.caption:='Вы ошиблись' else
end;
procedure TForm1.Button2Click(Sender: TObject);
begin 9
a:=random(100);
b:=random(100);
Label1.Caption:='Сколько будет '+inttostr(a)+' - '+inttostr(b);
end;
end. |
Оно и понятно, они ж объявлены для первой процедуры, и вне ее не существуют. |
что такое а и b
это первое и второе числа из вычитания. |
Пардон все запускается теперь. Однако обнаружилась следующая проблема.
1) В рандомных числах "а" может быть меньше "b"... А надо чтобы "а" вечно был больше.
2) If r=(a-b) then Label2.caption:='Правильно' else
If r<(a-b) then Label2.caption:='Вы ошиблись' else
If r>(a-b) then Label2.caption:='Вы ошиблись' else
Вот это почему то пашет не правильно. Для примера было "66-20" В едите написал "46" пишет "не правильно" =___= |
var
a, b:integer; {объяви глобальными переменными}
procedure TForm1.Button1Click(Sender: TObject);
var
r:integer;
begin
r:=StrToInt(edit1.Text);
If r=(a-b) then Label2.caption:='Правильно' else
If r<(a-b) then Label2.caption:='Вы ошиблись' else
If r>(a-b) then Label2.caption:='Вы ошиблись' else
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
a:=random(100);
b:=random(100);
Label1.Caption:='Сколько будет '+inttostr(a)+' - '+inttostr(b);
end;
end. |
Выводить сообщение Project1.exe raised exception class EConvertError with message "Edit1" is not a valid floating point value'. Process stopped.
Use Step or Run to continue.
OK/Help |
для Mangecu:
в Edit1 точно число вводишь? |
для Anaremix:
Упс... Я забываю вводить сообщение в Едит :Р Биг спс. Работает все кроме:
1) В рандомных числах "а" может быть меньше "b"... А надо чтобы "а" вечно был больше. |
Еще задачка.
procedure TForm1.Button1Click(Sender: TObject);
var a, b, c, d:integer;
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
c:=2;
d:=a*c;
If c=1 then Label4.caption:='Стоимость разговора: ' + 'a*c' else
If c=2 then Label4.caption:='Стоимость разговора: ' + 'a*c' else
If c=3 then Label4.caption:='Стоимость разговора: ' + 'a*c' else
If c=4 then Label4.caption:='Стоимость разговора: ' + 'a*c' else
If c=5 then Label4.caption:='Стоимость разговора: ' + 'a*c' else
If c=6 then Label4.caption:='Стоимость разговора: ' + 'a*c*1.2' else
If c=7 then Label4.caption:='Стоимость разговора: ' + 'a*c*1.2' else
end;
Как мне сделать чтобы вместо "а*с" были числа из алгоритма решения а не буквы? |
2) Дружба строк и массивов:
Написать два метода, один из которых преобразует строку в массив строк-слов (символ-разделитель передается в параметрах пользователем, это не обязательно пробел), а второй делает обратную операцию. Написать пример использования их в main, подобный такому:
Пример:
String s = "Hello.my.dear.students";
String[] wordArray = method1(s,'.');
System.out.println(wordArray[2]);
//выведет dear
String s1 = method2(wordArray,'*');
System.out.println(s1);
//выведет Hello*my*dear*students
Мою слабо кому на джаве?) |
Назойливая проблема появилась =___= Когда пишу в Дельфи символ который стоит справа от курсора удаляется. Что сделать что бы этого не было? |
символ который стоит справа от курсора удаляется
хакеры в таких случаях жмут Insert |
для Anaremix:
а что на счет задачки в №9 сообщении? |
Как мне сделать чтобы вместо "а*с" были числа из алгоритма решения а не буквы?
преобразуй в а*с строку: IntToStr(a*c)
Label4.caption:='Стоимость разговора: ' + IntToStr(a*c); |
для Anaremix:
Ничего не поменялось...
begin
a:=strtoint(edit1.Text);
b:=strtoint(edit2.Text);
c:=2;
If b=1 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c)' else
If b=2 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c)' else
If b=3 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c)' else
If b=4 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c)' else
If b=5 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c)' else
If b=6 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c*1,2)' else
If b=7 then Label4.caption:='Ñòîèìîñ 2;ü ðàçãîâîðà: ' + 'IntToStr(a*c*1,2)' else
end;
end. |
IntToStr это функция, ее не надо в скобки)) |
If b=1 then Label4.caption:='Стоимость разговора: ' + 'IntToStr(a*c)' else |
If b=1 then Label4.caption:='Стоимость разговора: ' + IntToStr(a*c) else
Лучше с Паскаля начни |
для Anaremix:
+ IntToStr(a*c) * '1,2' else
тут пишет мне
[Error] Unit1.pas(46): Operator not applicable to this operand type |
1) В рандомных числах "а" может быть меньше "b"... А надо чтобы "а" вечно был больше.
иф а<б тхен бегин с:=а а:=б б:=с энд |