Какво е новото в Calcpad VM Pro 8.00

Промени спрямо Calcpad VM 7.7.3

Накратко

Преминаване от 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. Същото важи за включените файлове и за интерпретатора за команден ред.

Подробно описание

  1. Издание и лиценз
  2. Низове
  3. Таблици
  4. Диаграми на данни
  5. Опции на графиките
  6. Специални функции
  7. Статистически функции
  8. Финансови функции
  9. Свойства на флуиди с CoolProp
  10. Други нови функции
  11. Въвеждане и извеждане на числа
  12. Заглавия и коментари
  13. Титулен блок
  14. Експорт в LaTeX
  15. Редактор и потребителски интерфейс
  16. Проверка на правописа
  17. Интерпретатор за команден ред

1. Издание и лиценз

2. Низове

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.

Оператори

Низове във вектори и матрици

Входни форми

Можете да въведете низ в поле за въвеждане: s = ?{"abc"}. Въпросителен знак в низ не създава поле за въвеждане.

3. Таблици

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)

Опции на таблиците

ОпцияОписание
Table.StyleTableStyle.Bordered (по подразбиране), Rules, Lines, Striped, Zebra, Boxed или Banner
Table.CellAlign, Table.HeadAlignAlign.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() нулира всички опции.

4. Диаграми на данни

Диаграмите на данни показват стойности, които вече са записани във вектори и матрици. Те не изчисляват изрази. Общият формат е:

$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}
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}

5. Опции на графиките

Опциите на графиките са специални променливи, чиито имена започват с 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Опции на диаграмите на данни (вижте по-горе)

6. Специални функции

Всички аргументи трябва да са безразмерни, с изключение на амплитудата φ на елиптичните интеграли, която следва текущите единици за ъгли. В комплексен режим специалните функции приемат и комплексни аргументи. Порядъкът на функциите на Бесел трябва да е реално число, а целочисленият порядък трябва да е цяло число.

ГрупаФункции
Гама и бета функции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

7. Статистически функции

ГрупаФункции
Описателна статистика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

Нормалното разпределение и разпределенията на Гумбел и Вейбул приемат променлива и параметри със съвместими мерни единици.

8. Финансови функции

ФункцияОписание
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. Лихвените проценти могат да се задават в %, а сумите могат да са в произволни съвместими мерни единици, например парични единици. Изплатените суми са отрицателни.

9. Свойства на флуиди с CoolProp

Новите функции 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

10. Други нови функции

11. Въвеждане и извеждане на числа

Експоненциален запис

Числата могат да се въвеждат във формат с плаваща запетая: 3.4e+6 е същото като 3.4*10^6.

Други бройни системи

За да въведете число в бройна система с основа от 2 до 16, добавете долна черта и основата след цифрите: 10001001_2, 777_8, 0FF_16. Поддържат се и дробни числа: 101.01_2 = 5.25. В резултатите основата се показва като долен индекс, последвана от десетичната стойност.

За да покажете резултат в друга бройна система, добавете _n в края на форматиращия низ или на целевите мерни единици:

КодРезултат
137:_2100010012
255:_16FF16
5.25:0.00_2101.012
5:D8_2000001012
5500mm|m_2101.12 m

За да използвате дадена основа в целия файл, напишете #format _16 или я комбинирайте с форматиращ низ: #format 0.00_2.

12. Заглавия и коментари

Напишете ключовата дума #Header, за да поставите отчета в собствен титулен блок на страницата, например фирмен титулен блок с лого. Титулният блок е HTML шаблон, Documents\Calcpad\Template\header.html. Отчетът се поставя в първата клетка на тялото на таблицата в шаблона.

14. Експорт в LaTeX

15. Редактор и потребителски интерфейс

16. Проверка на правописа

Calcpad проверява правописа на коментарите и низовете. Грешно написаните думи се подчертават с червена вълнообразна линия. Редът се проверява, когато го напуснете, заедно с оцветяването на синтаксиса.

17. Интерпретатор за команден ред