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

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

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

Восстановить пароль

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

Ответ
 
Опции темы
Старый 29.03.2019, 09:33   #1
Evgen2019
 
Регистрация: 28.03.2019
Сообщений: 4
По умолчанию Формулы

Здравствуйте, у меня вопрос про Delphi7.
У меня не получается ввести в Delphi7 формулу N=n*k*T, где k-Постоянная Больцмана(1,38*10^-23) десять в минус 23-ей степени и Т-шумовая температура 290. Подскажите пожалуйста как это реализовать Delphi 7?
Спасибо заранее
Evgen2019 вне форума Ответить с цитированием
Старый 29.03.2019, 09:47   #2
Russian_watson
Пользователь
 
Регистрация: 15.02.2016
Сообщений: 39
По умолчанию

Покажите свои наработки
Russian_watson вне форума Ответить с цитированием
Старый 29.03.2019, 10:00   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

например так
Код:
r:=n*1.38*IntPower(10,-23)*290;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 29.03.2019, 10:22   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

раз постоянная, то можно её и в константы записать:
Код:
const
  k = 1.38E-23;
var
 r, n,T : extended;
begin
  n := 6.06E23;
  T := 290;
  r := n * k * T;
  WriteLn(r:0:30);
  Readln
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2019, 10:41   #5
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,762
По умолчанию

А может, собака порылась в том, что ТС в формуле, как и в посте, разделителем запятую имеет, а не точку ? Или экспоненциальный формат не вкурил. https://ru.wikipedia.org/wiki/%D0%AD...B8%D1%81%D1%8C
Цитата:
можно её и в константы записать:
и нужно.
А про число Авогадро n := 6.022E23 в исходном посте ничо не было Там, может быть, молекул гораздо меньше было.

Последний раз редактировалось digitalis; 29.03.2019 в 10:53.
digitalis вне форума Ответить с цитированием
Старый 29.03.2019, 11:26   #6
Evgen2019
 
Регистрация: 28.03.2019
Сообщений: 4
По умолчанию

Вот,только какое бы я число 'а' не вводил постоянно один и тот же ответ получается
procedure TForm1.Button1Click(Sender: TObject);
const k=1.38e-23;
var a,T,N:extended;
begin
T:=290;
a:=10;
N:=a*k*T;
Label1.Caption:=floattostr(N)
end;
Evgen2019 вне форума Ответить с цитированием
Старый 29.03.2019, 11:39   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

чтобы ответ был адекватным, число a должно быть достаточно большим.
ну, как минимум с 20 нулями (лучше, если ~с 22-23 нулями).
иначе будете получать ноль в ответе.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.03.2019, 11:41   #8
Evgen2019
 
Регистрация: 28.03.2019
Сообщений: 4
По умолчанию

Вот именно,мне не нужно такие большие цифры. Мне по заданию нужно будет ввести 2,3,4 и получить разные ответы и все! Как мне это лучше сделать? После написания формул у меня будут графики.
Evgen2019 вне форума Ответить с цитированием
Старый 29.03.2019, 11:45   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,762
По умолчанию

Ну и будут одинаковые, если вводить куда-то в белый свет a , а потом присваивать a:=10;
Все выводит нормально.
Код:
procedure TForm1.Button1Click(Sender: TObject);
const k=1.38e-23;
var a,T,N:extended;
begin
T:=290;
a:=StrToFloat (Edit1.Text);
N:=a*k*T;
Memo1.Lines.Add (FloatToStr(a) + ' === ' + FloatToStr(N))
end;
Serge_Bliznykov
Цитата:
чтобы ответ был адекватным, число a должно быть достаточно большим.
ну, как минимум с 20 нулями (лучше, если ~с 22-23 нулями).
иначе будете получать ноль в ответе.
Это - новое открытие в физике ?
Изображения
Тип файла: jpg Avogad.JPG (8.0 Кб, 82 просмотров)

Последний раз редактировалось digitalis; 29.03.2019 в 11:52.
digitalis вне форума Ответить с цитированием
Старый 29.03.2019, 11:55   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Это - новое открытие в физике ?
да нет. просто есть ограничение на хранение значимой части.
тут не тот случай.
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как поменять положительное число на отрицательное при получении результата после формулы "если", При использовании формулы "если" выходят положительные и отрицательные числа asanee Помощь студентам 2 05.01.2017 08:45
C# Формулы LeNZZZ08 Помощь студентам 1 07.11.2014 06:24
Формулы shadezx Помощь студентам 1 03.12.2013 20:07
Формулы SunKnight Общие вопросы Delphi 2 07.04.2008 09:38