Промени спрямо Calcpad VM 7.7.3
table показва матрица като форматирана таблица. Има седем стила, подравняване на клетките, обединени клетки и цветове. Таблиците се експортират в Word, LaTeX и Markdown.$Line, $Fill, $Smooth, $Bar, $Column, $Scatter, $Pie, $Donut, $Radar, $Bubble и комбинираната $Chart.Plot.* добавят заглавия, надписи на осите, легенди, логаритмични и обърнати оси, граници, стъпки, разстояние между линиите на мрежата, цветове и типове линии на сериите. Те заменят старите променливи PlotWidth, PlotHeight…pv, fv, pmt, nper, rate, ipmt, ppmt, npv, irr и mirr. Работят като съответните функции в Excel.CP. за термофизичните свойства на над 100 флуида и на влажен въздух. Свойствата се изчисляват от включената библиотека CoolProp, например CP.Props("D"; "T"; 25°C; "P"; 1atm; "Water"). Входните стойности с мерни единици се преобразуват в SI.log1p и ln1p остават точни при малки стойности на x. geomean връща средното геометрично.3.4e+6). Числа в бройни системи с основа от 2 до 16 при въвеждане (FF_16) и извеждане (x:_2, #format _16).*.tex с формули в LaTeX или като архив *.zip с изображенията за Overleaf. Поддържа се и от CLI.#Header поставя отчета във фирмения шаблон на титулния блок. Проектът, възложителят, датата и другите полета се попълват от макро променливи и могат да се редактират в резултатите.Plot., Table., Color., Style., CP. и HTML таговете. Оцветяване на низовете и на числата в други бройни системи.'"Заглавие. Имената на функциите са чувствителни към малки и главни букви. mean вече е средно аритметично. Вижте Преминаване от 7.7.3.Някои промени във версия 8.00 могат да засегнат съществуващите файлове. Проверете следното, преди да изчислите по-стари файлове:
| Промяна | Версия 7.7.3 | Версия 8.00 |
|---|---|---|
| Заглавия | "Заглавие |
'"Заглавие: единична кавичка, последвана от двойна кавичка, в началото на реда. Текстът в двойни кавички вече е низ, затова заглавие в стария формат се отчита като незатворен низ. |
| Имена на функции | Имената на вградените функции не бяха чувствителни към малки и главни букви: Sin(x) и SIN(x) работеха. |
Всички имена на функции са чувствителни към малки и главни букви, а всички вградени функции се пишат с малки букви. Sin(x) не е дефинирана, освен ако не я дефинирате като потребителска функция. |
mean |
Средно геометрично | Средно аритметично (синоним на average). За средно геометрично използвайте geomean. |
| Настройки на графиките | Променливите PlotWidth, PlotHeight, PlotSVG, PlotAdaptive, PlotPalette, PlotSmooth, PlotShadows, PlotLightDir и PlotStep |
Опциите Plot.Width, Plot.Height, Plot.Svg, Plot.Adaptive, Plot.Palette, Plot.Smooth, Plot.Shadows, Plot.LightDirection и Plot.MapStep. Старите променливи вече не влияят на графиките. |
| Размер на графиките по подразбиране | 400 × 250 px | 500 × 300 px |
| Коментари | Текст в единични или двойни кавички | Коментар започва само с единична кавичка. За да включите единична кавичка в коментар, напишете я два пъти: ''. |
Всички примери, включени в програмата, са обновени към новия синтаксис.
При отваряне на по-стар файл заглавията във вида "Заглавие и старите променливи на графиките, например PlotWidth, автоматично се преобразуват в '"Заглавие и Plot.Width. Същото важи за включените файлове и за интерпретатора за команден ред.
LICENSE.TXT, налично и като HTML).THIRD-PARTY-NOTICES.TXT изброява компонентите на трети страни и техните лицензионни условия, включително библиотеката CoolProp и речниците за проверка на правописа.#def не е променен. Новите имена избягват объркване с новите текстови стойности (низове).Calcpad вече може да работи с текстови стойности. Низът се огражда с двойни кавички: "текст". За да включите двойна кавичка в низ, напишете я два пъти: "кажи ""здравей""". Низът може да съдържа всякакви символи, включително |, : и ;, но трябва да завършва на същия ред.
s = "Hello" t = join(left(s; 1); "."; mid(s; 2; 4)) ucase(t) = "H.ELLO"
Резултатите, които са низове, се показват в кавички, освен в режим #val. HTML в низ се показва като текст и не се интерпретира. Потребителските функции могат да приемат и връщат низове.
| Функция | Описание |
|---|---|
str(x) | Преобразува x в текст така, както се показва в резултатите, включително мерните единици |
val(s) | Преобразува текста s в число с мерни единици (ако има), например val("1.5 kN/m^2") |
val(M) | Преобразува в числа елементите низове на вектор или матрица |
len(s) | Брой символи |
join(s₁; s₂; s₃…) | Съединява текстове и стойности в един текст |
join(M; colsep; rowsep) | Съединява елементите на вектор или матрица в текст |
left(s; n), right(s; n), mid(s; i; n) | Части от текста |
trim(s), ltrim(s), rtrim(s) | Премахват интервалите в началото и/или в края |
ucase(s), lcase(s), tcase(s), scase(s) | Главни букви, малки букви, главна първа буква на всяка дума и главна първа буква на изречението. Работят с всички букви в Unicode. |
instr(s; t; i) | Позиция на t в s, като търсенето започва от i (по избор, 1 по подразбиране), или 0, ако t не е намерен |
replace(s; a; b) | Заменя всички срещания на a с b |
split(s; sep) | Разделя текст на вектор от низове |
split(s; colsep; rowsep) | Разделя текст на матрица от низове |
table(M; nhrows; nhcols) | Показва матрица като таблица (вижте Таблици) |
Ако даден аргумент трябва да е текст, но не е, той първо се преобразува със str, например left(12345; 3) = "123". Позициите се броят от 1.
+ слепва два низа: "Hello" + ", " + "world".≡ ≠ < > ≤ ≥ сравняват низове по кода им в Unicode, с отчитане на малки и главни букви, и връщат 1 или 0. Можете да ги използвате в #if, if(), логически изрази и блокове на решаващия модул."12" + 1 връща грешка. За преобразуване използвайте str или val. Другите оператори и повечето математически функции не приемат низове.b = [1; "abc"; 2m]. Индексирането, присвояването, структурните функции и функциите за справки работят с елементи низове.+ и операторите за сравнение работят елемент по елемент: ["a"; "b"] + "!" = ["a!" "b!"], а sum(v ≡ "a") преброява съвпаденията.sort, rsort, order, revorder, search, count, find…, lookup…, както и вариантите им за матрици и таблици, например sort_rows, mfind…, vlookup… и hlookup…. Низовете се сравняват по същия начин, както с < и ≡. Низ не може да се сравнява с число, затова сравняваните елементи трябва да са или само низове, или само числа: lookup(names; values; "B2").Можете да въведете низ в поле за въвеждане: s = ?{"abc"}. Въпросителен знак в низ не създава поле за въвеждане.
table(M; nhrows; nhcols) показва матрицата M като таблица с nhrows заглавни реда и nhcols заглавни колони (1 и 0 по подразбиране). Клетките могат да съдържат низове, числа и стойности с мерни единици. Таблицата се показва на мястото на уравнението. Тя се експортира като таблица в Word, като таблица в LaTeX и като таблица в Markdown в текстовите резултати.
M = ["Сечение"; "Сила, kN"; "Сила, kN"; "η"|"Сечение"; "Fx"; "Fy"; "η"|"B1"; 12.5; 4.2; 0.62|"B2"; 18; 6.75; 0.88] Table.Style = TableStyle.Rules Table.MergeHeaders = 1 table(M; 2; 1)
val(T) връща данните като матрица.+ и операторите за сравнение към клетките в тялото, ако са низове. Таблиците не могат да се използват в аритметични операции.| Опция | Описание |
|---|---|
Table.Style | TableStyle.Bordered (по подразбиране), Rules, Lines, Striped, Zebra, Boxed или Banner |
Table.CellAlign, Table.HeadAlign | Align.Left, Align.Center или Align.Right. Задайте една стойност за всички колони или вектор с по една стойност за всяка колона. |
Table.MergeCells | [i1; j1; i2; j2] или матрица с по един диапазон на ред |
Table.MergeHeaders | Обединява съседните заглавни клетки с еднакъв текст |
Table.CellColor, Table.CellFill, Table.AltColor, Table.AltFill, Table.HeadColor, Table.HeadFill | Цветове на текста и на фона на клетките, на редуващите се редове и на заглавията. Задайте име на цвят, например Color.SteelBlue, или шестнадесетичен код, например "#4682B4". |
Всяка опция действа, докато не я промените. Auto възстановява стойността ѝ по подразбиране, а Table.Reset() нулира всички опции.
Диаграмите на данни показват стойности, които вече са записани във вектори и матрици. Те не изчисляват изрази. Общият формат е:
$Line{y1 & y2 & … @ xl = labels}
| Команда | Диаграма |
|---|---|
$Line | Линии през точките |
$Fill | Запълнени площи под линиите |
$Smooth | Гладки линии през точките |
$Bar | Хоризонтални ленти |
$Column | Вертикални колони |
$Scatter | Само точки |
$Pie, $Donut | Кръгова или пръстеновидна диаграма, по един пръстен за серия |
$Radar | Радарна (паяжинна) диаграма |
$Bubble | Мехурчета с различни размери: x|y|d, y|d или y |
$Chart | Комбинирана диаграма. Всяка серия може да има собствен тип: $Chart{column: P & line: T @ xl = months} |
y, двойка вектори x|y, матрица Y с по една серия на ред или X|Y. Стойностите могат да имат мерни единици, но те трябва да са съвместими.@ не е задължителна. Тя задава надписите на категориите от вектор с низове или числа.Plot.Stack, Plot.Dots, Plot.DataTags и Plot.DropLines. Plot.FlipAxes прави оста на категориите вертикална.months = ["Яну"; "Фев"; "Мар"; "Апр"; "Май"; "Юни"]
T_1 = [2; 4; 9; 14; 19; 23]
T_2 = [-1; 1; 6; 12; 16; 20]
Plot.Legend = 1
Plot.Series1.Name = "2025"
Plot.Series2.Name = "2026"
$Line{T_1 & T_2 @ xl = months}
Опциите на графиките са специални променливи, чиито имена започват с Plot.. Те се прилагат към графиките на функции ($Plot, $Map) и към диаграмите на данни. Всяка опция действа за всички следващи графики. Auto възстановява стойността ѝ по подразбиране, а Plot.Reset() нулира всички опции. Можете да четете опциите и в изрази, например w = Plot.Width.
| Опция | Описание |
|---|---|
Plot.Width, Plot.Height | Размер на областта на чертане в пиксели (500 × 300 по подразбиране) |
Plot.Title, Plot.LabelX, Plot.LabelY | Заглавие на графиката и надписи на осите (низове) |
Plot.Legend | Показва легенда с имената на сериите |
Plot.LogX, Plot.LogY | Логаритмични оси |
Plot.ReverseX, Plot.ReverseY, Plot.ReverseZ | Обърнати оси или обърнати стойности и цветове в $Map |
Plot.FlipAxes | Разменя осите: x става вертикална |
Plot.Limits, Plot.MinX… Plot.MaxZ | Граници на осите, всички наведнъж или поотделно |
Plot.Step, Plot.StepX, Plot.StepY | Стъпка на числата по осите, за двете оси или поотделно |
Plot.Grid, Plot.GridX, Plot.GridY | Разстояние между линиите на мрежата, за двете оси или поотделно |
Plot.FormatXAxis, Plot.FormatYAxis | Формат на числата по осите, както за резултатите, например "F2" или "0.##_2" |
Plot.Svg, Plot.Adaptive | Векторен (SVG) или растерен (PNG) формат и адаптивно чертане на функциите |
Plot.Series1… Plot.Series10 .Name, .Color, .Style, .Thickness | Име, цвят (Color.Tomato или "#RRGGBB"), тип на линията (Style.Solid, Dash, LongDash, Dot, DashDot, DashDotDot) и относителна дебелина на всяка серия |
Plot.Palette, Plot.Shadows, Plot.Smooth, Plot.LightDirection, Plot.MapStep | Настройки на повърхнините. Палитрата може да се зададе с име, например Palette.Rainbow, а посоката на светлината – с Direction.NorthEast и т.н. |
Plot.Stack, Plot.Dots, Plot.DataTags, Plot.DropLines | Опции на диаграмите на данни (вижте по-горе) |
Всички аргументи трябва да са безразмерни, с изключение на амплитудата φ на елиптичните интеграли, която следва текущите единици за ъгли. В комплексен режим специалните функции приемат и комплексни аргументи. Порядъкът на функциите на Бесел трябва да е реално число, а целочисленият порядък трябва да е цяло число.
| Група | Функции |
|---|---|
| Гама и бета функции | gamma, gammaln, digamma, polygamma, gammainc_ (долна), gammainc‾ (горна), beta, betainc |
| Функция на грешката и интеграли на Френел | erf, erfc, erfinv, erfcinv, dawsonf, fresnelc, fresnels |
| Интегрален експонент, логаритъм, синус и косинус | ei, li, si, ci, shi, chi |
| Елиптични интеграли | elliptick, elliptice, ellipticp, ellipticf, ellipticei, ellipticpi |
| Елиптични функции на Якоби | jacobiam, jacobisn, jacobicn, jacobidn, jacobics, jacobicd, jacobidc, jacobisc, jacobisd, jacobids, jacobins, jacobinc, jacobind |
| Функции на Бесел | besselj0, besselj1, bessely0, bessely1, besseljn, besselyn, besseljv, besselyv, besseljv′, besselyv′; сферични: besseljs, besselys, besseljs′, besselys′ |
| Модифицирани функции на Бесел | besseli0, besseli1, besselk0, besselk1, besselin, besselkn, besseliv, besselkv, besseliv′, besselkv′ |
| Функции на Ейри | ai, bi, ai′, bi′ |
| Зета функции и W функция на Ламберт | zeta, eta, lambertw |
| Група | Функции |
|---|---|
| Описателна статистика | median, quantile(…; p), stdev, variance, skew, kurt. Приемат списъци от стойности, вектори и матрици, както sum. Използват се формулите за извадка (n − 1), както в Excel. |
| Две извадки и рангове | covar(a; b), correl(a; b), linreg(x; y) → [a; b], ranks(v), frequency(v; bins) |
| Комбинаторика | combin(n; k), permut(n; k) |
| Вероятностни разпределения (pdf, cdf, inv) | Нормално: normpdf, normcdf, norminv; логнормално: logn…; t на Стюдънт: t…; χ²: chi2…; Гумбел: gumbel…; Вейбул: wbl…; биномно: binopdf, binocdf; Поасон: poisspdf, poisscdf |
Нормалното разпределение и разпределенията на Гумбел и Вейбул приемат променлива и параметри със съвместими мерни единици.
| Функция | Описание |
|---|---|
pv(rate; nper; pmt; [fv]; [type]) | Настояща стойност |
fv(rate; nper; pmt; [pv]; [type]) | Бъдеща стойност |
pmt(rate; nper; pv; [fv]; [type]) | Периодично плащане |
nper(rate; pmt; pv; [fv]; [type]) | Брой периоди |
rate(nper; pmt; pv; [fv]; [type]; [guess]) | Лихвен процент за период |
ipmt, ppmt(rate; per; nper; pv; [fv]; [type]) | Лихвена част и главница на плащане |
npv(rate; x; y; z…), irr(x; y; z…), mirr(x; y; z…; fr; rr) | Нетна настояща стойност, вътрешна норма на възвръщаемост, модифицирана вътрешна норма на възвръщаемост |
Функциите приемат аргументите си в същия ред, както в Excel. Лихвените проценти могат да се задават в %, а сумите могат да са в произволни съвместими мерни единици, например парични единици. Изплатените суми са отрицателни.
Новите функции CP. връщат термофизичните свойства на над 100 чисти флуида, на смеси, на несвиваеми флуиди и разтвори и на влажен въздух. Свойствата се изчисляват от библиотеката CoolProp (CoolProp.dll, версия 8.0.0), която е включена в Calcpad.
| Функция | Описание |
|---|---|
CP.Props(Output; Name1; Prop1; Name2; Prop2; Fluid) | Свойство на флуид в състояние, зададено с две променливи на състоянието |
CP.Props1(Fluid; Output) | Свойство, което не зависи от състоянието, например "Tcrit" |
CP.HAProps(Output; Name1; Prop1; Name2; Prop2; Name3; Prop3) | Свойство на влажен въздух в състояние, зададено с три променливи на състоянието |
CP.Phase(Name1; Prop1; Name2; Prop2; Fluid) | Фаза при даденото състояние, като текст, например "liquid" |
CP.SaturationAncillary(Fluid; Output; Q; Input; Value) | Свойство на насищане от спомагателните уравнения, за течност (Q = 0) или пара (Q = 1) |
CP.GetFluidParamString(Fluid; Param) | Информация за флуид, например "aliases", "CAS" или "ASHRAE34" |
CP.GetGlobalParamString(Param) | Информация за CoolProp, например "version" или "FluidsList" |
CP.GetParamIndex(Name) | Индекс на параметър на CoolProp |
CP.GetParameterInformationString(Key; Info) | Информация за параметър, при Info = "IO", "short", "long" или "units" |
CP.SetReferenceStateD(Fluid; T; RhoMolar; h0; s0) | Задава референтното състояние на флуид чрез температура, моларна плътност, енталпия и ентропия |
CP.SetReferenceStateS(Fluid; ReferenceState) | Задава предварително дефинирано референтно състояние: "IIR", "ASHRAE", "NBP", "DEF" или "RESET" |
ρ = CP.Props("D"; "T"; 25°C; "P"; 1atm; "Water")
h = CP.Props("H"; "T"; 200°C; "P"; 10bar; "Water")|kJ/kg
T_dp = CP.HAProps("D"; "T"; 25°C; "P"; 1atm; "R"; 50%)|°C
CP. и са чувствителни към малки и главни букви. Флуидите, изходните параметри и променливите на състоянието са текстови низове. Допустимите имена са изброени в документацията на CoolProp."W" е влагосъдържанието, "R" е относителната влажност, а "D" е температурата на оросяване.Examples\Physics\CoolProp има девет примерни файла: T-s диаграма на водата, h-s диаграма (на Молие) на водната пара, p-h диаграма на R134a с хладилен цикъл, психрометрична диаграма, цикъл на Ранкин, обобщена диаграма на свиваемостта, криви на налягането на наситените пари, аномалните свойства на водата и преглед на функциите.log1p(x) и ln1p(x) връщат десетичния и натуралния логаритъм от 1 + x. Те остават точни при малки стойности на |x|, при които предварителното изчисляване на 1 + x води до загуба на точност.geomean(…) връща средното геометрично. mean(…) вече е синоним на average(…).Числата могат да се въвеждат във формат с плаваща запетая: 3.4e+6 е същото като 3.4*10^6.
За да въведете число в бройна система с основа от 2 до 16, добавете долна черта и основата след цифрите: 10001001_2, 777_8, 0FF_16. Поддържат се и дробни числа: 101.01_2 = 5.25. В резултатите основата се показва като долен индекс, последвана от десетичната стойност.
За да покажете резултат в друга бройна система, добавете _n в края на форматиращия низ или на целевите мерни единици:
| Код | Резултат |
|---|---|
137:_2 | 100010012 |
255:_16 | FF16 |
5.25:0.00_2 | 101.012 |
5:D8_2 | 000001012 |
5500mm|m_2 | 101.12 m |
За да използвате дадена основа в целия файл, напишете #format _16 или я комбинирайте с форматиращ низ: #format 0.00_2.
'"Заглавие. Както коментарът, то завършва при следващата единична кавичка или в края на реда.''.'<span class="ok">' работят както преди.Напишете ключовата дума #Header, за да поставите отчета в собствен титулен блок на страницата, например фирмен титулен блок с лого. Титулният блок е HTML шаблон, Documents\Calcpad\Template\header.html. Отчетът се поставя в първата клетка на тялото на таблицата в шаблона.
Project$, Client$, Problem$, Date$, Page$, JobNo$, Revision$, DesignBy$ и CheckedBy$. Всяка от тях се записва в елемента на шаблона със съответния id.#def в кода.Documents\Calcpad\Template\Template.docx. Стойностите от титулния блок попълват потребителските свойства на документа, а Page$ задава номера на първата страница.#Header заедно с дефинициите на всички полета.*.tex. Уравненията се преобразуват във формули на LaTeX, така че можете да ги редактирате допълнително.име_images до файла *.tex. Запис като LaTeX zip файл пакетира документа и изображенията в един архив *.zip, например за качване в Overleaf.-shell-escape. И двете са налични в Overleaf.table, се експортират като таблици в LaTeX.CP.. Флуидите, свойствата и другите фиксирани стойности се избират от списъци, групирани в чисти флуиди, несвиваеми флуиди и разтвори и смеси. Можете да посочите стойност с мишката, за да видите описанието и мерните ѝ единици. Входните стойности могат да се въвеждат със или без мерни единици. Аргументите се проверяват, докато пишете, например дали двата входни параметъра образуват допустима двойка или дали сумата на моларните части на сместа е 1. Невалидните аргументи се оцветяват с червена рамка, а полученият израз се показва за преглед най-долу.Plot., Plot.Series1., Table., TableStyle., Align., Color., Style., Palette., Direction. или CP., се отваря списък с допустимите членове. Цветовете се показват с мостри, а типовете линии – с визуализация. В коментарите < отваря списък с HTML тагове, а интервал в таг отваря списък с атрибутите му. В началото на серия в $Chart се показват типовете серии.FF_16), целеви мерни единици с основа (|m_2), функциите CP., типовете серии в $Chart и новите заглавия '".Calcpad проверява правописа на коментарите и низовете. Грешно написаните думи се подчертават с червена вълнообразна линия. Редът се проверява, когато го напуснете, заедно с оцветяването на синтаксиса.
%AppData%\Calcpad\UserDictionary.txt и важат за всички езици.*.aff и *.dic, например от LibreOffice) в папката dictionaries на Calcpad.*.tex или *.zip, например Cli.exe input.cpd output.tex."…" вече не започва коментар.