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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.08.2011, 12:40   #11
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

http://www.delphikingdom.ru/asp/view...catalogid=1172 - читать до полного просветления. Пункт 2.2 - типы данных.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 17.08.2011, 12:48   #12
HyperZen
Пользователь
 
Аватар для HyperZen
 
Регистрация: 20.07.2010
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Olya1985 Посмотреть сообщение
и еще почему то в этой строке выводит ошибку y:=strtofloat(edt1.text);
incompatible types integer and extended
incompatible types integer and extended - написано же, посмотри как у тебя объявлена переменная "y". Короче, смени integer на real.
Плохого человека должно быть мало...
HyperZen вне форума Ответить с цитированием
Старый 17.08.2011, 12:56   #13
Olya1985
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 113
По умолчанию

но если сделать y real, тогда для других действий она не работает.

как можно сделать y: real только для
procedure TForm1.btn18Click(Sender: TObject);



begin


y:=strtofloat(edt1.text);

opertype:=5;

inputstate:=1;

end;
Olya1985 вне форума Ответить с цитированием
Старый 17.08.2011, 12:57   #14
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Код:
y:=strtoint(edt1.text);
http://www.delphikingdom.ru/asp/view...catalogid=1172 - читать до полного просветления. Пункт 2.2 - типы данных.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 17.08.2011, 13:16   #15
HyperZen
Пользователь
 
Аватар для HyperZen
 
Регистрация: 20.07.2010
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Olya1985 Посмотреть сообщение
но если сделать y real, тогда для других действий она не работает.
Начинаю поддерживать:

Цитата:
Сообщение от GunSmoker Посмотреть сообщение
http://www.delphikingdom.ru/asp/view...catalogid=1172 - читать до полного просветления. Пункт 2.2 - типы данных.
Плохого человека должно быть мало...
HyperZen вне форума Ответить с цитированием
Старый 17.08.2011, 13:27   #16
Olya1985
Форумчанин
 
Регистрация: 31.12.2010
Сообщений: 113
По умолчанию

всем спасибо!

еще такой вопрос возник. при возведении в степень получается не целое чилсо, а много знаков после запятой. это тоже связано с типами данных или все же формулу заменить нужно?

form1.edt1.Text:=floatToStr(exp(y)* ln(strtofloat(form1.edt1.Text)));
Olya1985 вне форума Ответить с цитированием
Старый 17.08.2011, 13:59   #17
HyperZen
Пользователь
 
Аватар для HyperZen
 
Регистрация: 20.07.2010
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Olya1985 Посмотреть сообщение
еще такой вопрос возник. при возведении в степень получается не целое чилсо, а много знаков после запятой.
1) Используй функцию округления чисел Round()
2) Используй преобразование числа с плавающей запятой в целое FloatToInt()
Плохого человека должно быть мало...
HyperZen вне форума Ответить с цитированием
Старый 17.08.2011, 14:01   #18
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а кто сначало текст переведет?
Код:
edt1.text:=FloatToStr(Sqrt(StrToFloat(edt1.text)));
вообще хорошо бы исключения обрабатывать на некорректный ввод.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 17.08.2011, 14:59   #19
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

Возведение в степень - функция Power модуля Math,
Цитата:
и еще почему то в этой строке выводит ошибку y:=strtofloat(edt1.text);

incompatible types integer and extended
Результат функции strtofloat действительное значение, поэтому,
Y должен быть действительного типа (Float, Double, Single)
Цитата:
edt1.text:=FloatToStr(Sqrt(StrToFlo at(edt1.text)));
С таким подходом к программированию оч сложно. Не пробовали все писать не в одной сточке, например StrToFloat(edt1.text) надо отлавливать исключение EConvertError и тд
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Калькулятор Hilda Помощь студентам 3 25.04.2010 16:04
Калькулятор manick Общие вопросы Delphi 8 23.04.2010 20:42
калькулятор Bat{CMD}_Men Общие вопросы Delphi 1 22.04.2010 09:36
Калькулятор на с#.... Kamil H. Помощь студентам 0 10.04.2010 15:37
Калькулятор program09 Общие вопросы C/C++ 1 01.06.2009 15:39