Re: Програма розв'язування задач з фізики! Для учнів 7-го класу.
Підкажіть будь-ласка. Який компонент в Delphi 10.3 відповідає такому як на картинці компоненту MapleSoft 2019?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → Pascal/Delphi → Програма розв'язування задач з фізики! Для учнів 7-го класу.
Сторінки Попередня 1 … 13 14 15 16 17 … 26 Наступна
Для відправлення відповіді ви повинні увійти або зареєструватися
Підкажіть будь-ласка. Який компонент в Delphi 10.3 відповідає такому як на картинці компоненту MapleSoft 2019?
Який компонент в Delphi 10.3 відповідає такому як на картинці компоненту MapleSoft 2019?
Ніякий.
Maple зроблений в основному на Java. І навіть в популярних Java-бібліотеках не завжди можна знайти компонент, який би мав подібну поведінку і відрисовку.
Але це не означає, що ви не можете використовувати подібні компоненти. Ви можете створити власні компоненти і потім додати їх на форму.
Але це не означає, що ви не можете використовувати подібні компоненти. Ви можете створити власні компоненти і потім додати їх на форму.
Прийдеться щось пробувати. В Java вони і поле редагування розробили де дроби виводяться і редагуються. Шкода що в Delphi ніякого компонента немає для виведення математичних перетворень з дробами. Хоча б як у ворді конструктор формул якийсь був.
Підкажіть будь-ласка. Який компонент в Delphi 10.3 відповідає такому як на картинці компоненту MapleSoft 2019?
TCategoryPanel буде так виглядати, якщо повісити йому на кнопки картинки з формулами.
leofun01 написав:Але це не означає, що ви не можете використовувати подібні компоненти. Ви можете створити власні компоненти і потім додати їх на форму.
Прийдеться щось пробувати. В Java вони і поле редагування розробили де дроби виводяться і редагуються. Шкода що в Delphi ніякого компонента немає для виведення математичних перетворень з дробами. Хоча б як у ворді конструктор формул якийсь був.
Просто шукати треба вміти. Ось безкоштовний варіант: QDSEquations, а ось платний: TRichView.
Просто шукати треба вміти. Ось безкоштовний варіант: QDSEquations, а ось платний: TRichView.
Дякую пане Torbins!!! Ато я вже почав ліпити компонент з двох Edit - чисельник і знаменник.
Просто шукати треба вміти. Ось безкоштовний варіант: QDSEquations, а ось платний: TRichView.
Ще буду вам дуже вдячний якщо ви підкажете докладно як встановити компонент QDSEquations в Delphi 10.3.
Torbins написав:Просто шукати треба вміти. Ось безкоштовний варіант: QDSEquations, а ось платний: TRichView.
Ще буду вам дуже вдячний якщо ви підкажете докладно як встановити компонент QDSEquations в Delphi 10.3.
Заходите за посиланням, клацаєте по зеленій кнопочці, потім Download Zip. Вміст архіву розпаковуєте кудись, де він буде постійно зберігатися. Якщо у вас уже є набір компонентів JVCL, то можете покласти QDSEquations поруч з ним. Далі читаєте статтю: https://koder.kz/articles/podborka-delp … -2010.html або дивитеся відео з подібними назвами на ютубі. Перший крок завжди - прописати Library Path. В свіжих Делфі шлях буде такий: Tools > Options > Language > Delphi > Library. Потім вибираєте платформу, для якої хочете прописати шляхи. Якщо ваш проект розробляється під платформу Windows 32-bit, то логічно, що й нові компоненти ви захочете поставити на цю платформу. Коли відкриєте файл пакету, то там також переконайтеся, що обрано правильну платформу, перш ніж щось компілювати.
Пхе... Там де вісімсот тисяч рядків коду, там поміститься іще 4000 рядків.
Якщо у вас є ситуації, коли подібний код зустрічається більш ніж у двох місцях, то програму можна скоротити.
Якщо у вас є ситуації, коли подібний код зустрічається більш ніж у двох місцях, то програму можна скоротити.
О... так. Я зараз працюю над цим, посилено.
Вчиелі, до яких вже дійшла моя програма, почали висловлювати своє фе! Виявляється зараз правильно зводити все до однієї формули. Тобто якщо наприклад потрібно знайти густину речовини, то зараз не шукають спочатку по формулі об'єм, а потім підставивши знайдений об'єм в формулу густини знаходять саму густину, як колись ми робили на уроках. Зараз цей об'єм відшукується в основній формулі. Тому я почав вводити процедури та функції по математичних діях над дробами. І зразу виникла проблема. Прописав процедуру (Публічну) для знаходження найбільшого спільного дільника НСД і в мете при виконанні процедури вибиває помилку коли змінна а має менше значення як змінна b. Наприклад змінній а надається значення 42, а змінній b 105. Процедура виводить мені результат НСД = 21 та після цього вискакує ось це.
Коли навпаки змінній а надається більше значення 105, а змінній b 42 то все гаразд.
Я неправильно склав процедуру для алгоритму Евкліда?
Procedure TForm1.NSD(a,b: Extended); // Найбільший спільний дільник
begin
while a <> b do
if a > b then
a := a-b
else
b := b-a;
RichEdit1.Lines.Add(VarToString('НСД = %.25g',a));
end;
Краще перенести код в функцію і викликати її за необхідності. Можливо це вирішить проблему.
function TForm1.NSD(a,b: Extended):Extended;
begin
while b <> 0 do
if a > b then
a := a-b
else
b := b-a;
NSD := a;
end;
Знаєте, давно хотів вас запитати, але якось незручно було... яка кінцева мета всього цього? Як користуватися вашою програмою? Я так розумію, вона робитиме те, чому навчають учнів на уроках фізики. Але який у цьому сенс? Це - основи, професійним фізикам вона не потрібна; а учням треба самим навчитися виконувати ці дії, а не брати з програми результат.
Це - основи, професійним фізикам вона не потрібна; а учням треба самим навчитися виконувати ці дії, а не брати з програми результат.
Так проект не комерційний.
І якщо у учнів такий вчитель фізики як був у нас, то я шкодую що у мене не було програми в яку можна було б підглянути. Хоча тоді іще інтернету не було, да і комп'ютери були ЭЛЕКТРОНИКА УКНЦ. От і приходилось самому в бібліотеці вчитися.
Зараз можна навчати і навчатися онлайн https://www.youtube.com/watch?v=z8N-O7A6v8E.
...
І зразу виникла проблема. Прописав процедуру (Публічну) для знаходження найбільшого спільного дільника НСД і в мете при виконанні процедури вибиває помилку коли змінна а має менше значення як змінна b. Наприклад змінній а надається значення 42, а змінній b 105. Процедура виводить мені результат НСД = 21 та після цього вискакує ось це.Коли навпаки змінній а надається більше значення 105, а змінній b 42 то все гаразд.
Я неправильно склав процедуру для алгоритму Евкліда?Procedure TForm1.NSD(a,b: Extended); // Найбільший спільний дільник begin while a <> b do if a > b then a := a-b else b := b-a; RichEdit1.Lines.Add(VarToString('НСД = %.25g',a)); end;
Цього коду не достатньо, щоб робити якісь висновки. Треба дивитися як у вас зараз реалізована функція VarToString, та звідки ви викликаєте NSD.
Доброго дня панове! Бажаю усім 36,6.
Прохання до вас допомогти скласти функцію, з назвою FormulaInd, щоб при виводі тексту формули підставлялися числа до символьних позначок фізичних величин.
В мене наприклад є формула (символи можуть бути різні, а індекс символів іде від 0 до 6):
Fтяж = mg
В коді програми мені її порібно переписувати шість разів в семи процедурах.
1. RichEdit1.Lines.Add ('Fтяж = mg'); // тут 0 не прописується
2. RichEdit1.Lines.Add ('Fтяж1 = m1g1'); // тут до символів потрібно додати 1
3. RichEdit1.Lines.Add ('Fтяж2 = m2g2'); // тут до символів потрібно додати 2
4. RichEdit1.Lines.Add ('Fтяж3 = m3g3'); // тут до символів потрібно додати 3
5. RichEdit1.Lines.Add ('Fтяж4 = m4g4'); // тут до символів потрібно додати 4
6. RichEdit1.Lines.Add ('Fтяж5 = m5g5'); // тут до символів потрібно додати 5
7. RichEdit1.Lines.Add ('Fтяж6 = m6g6'); // тут до символів потрібно додати 6
Як створити таку функцію щоб її виклик був приблизно такий:
PVI: integer; // Physical value index - Індекс фізичного значення
RichEdit1.Lines.Add (FormulaInd('Fтяж = mg',[PVI]));
Коли PVI = 0 то виводилось: Fтяж = mg
А коли PVI в діапазоні від 1 до 6: Fтяж1 = m1g1 'Fтяж2 = m2g2 Fтяж3 = m3g3 'Fтяж4 = m4g4 Fтяж5 = m5g5 Fтяж6 = m6g6.
Я так розумію тут має застосовуватись цикл і процедура Insert, але ніде не знайшов нормального прикладу коду як це поєднати.
Допоможіть будь-ласка написати таку функцію!
Це звичайний Format, але не певен, що ваша версія Delphi вже підтримує цю можливість.
Format('Fтяж%0:d = m%0:dg%0:d', [PVI])
%d, нагадаю, означає "десяткове число". А число між % та : - це індекс у масиві параметрів, починаючи з 0:
Format('%1:d %0:d',[1,2]) {виведе 2 1}
Це звичайний Format, але не певен, що ваша версія Delphi вже підтримує цю можливість.
Format('Fтяж%0:d = m%0:dg%0:d', [PVI])
%d, нагадаю, означає "десяткове число". А число між % та : - це індекс у масиві параметрів, починаючи з 0:
Format('%1:d %0:d',[1,2]) {виведе 2 1}
Я теж думав про це пане koala, але Format тут напевно не коректно. Пири PVI = 0 воно виведе Fтяж0 = m0g0, а потрібно Fтяж= mg.
Тобто мені прийдеться всерівно її два рази записувати
1. RichEdit1.Lines.Add ('Fтяж = mg');
2..7 RichEdit1.Lines.Add (Format('Fтяж%0:d = m%0:dg%0:d', [PVI]));
А хотілося б хочаб для всіх варіантів було одинаково і 0 не прописувало, якось так:
Виклик функції
RichEdit1.Lines.Add (FormulaInd('Fтяж%d = m%d*g%d',[PVI, PVI, PVI]));
У вас, наскільки я пам'ятаю, вже була функція, що повертала число як стрічку, крім 0, де повертала пусту стрічку. Використовуйте її, щоб отримати другий параметр: ('Fтяж%0:d = m%1:dg%1:d', [PVI,f(PVI)]), де f - та функція. Ну, чи проголосіть нову функцію, теж не складно.