Title

Версия Pro 2.0. Прочети ме!

Какво е CalcPad?

CalcPad Pro е професионална програма за решаване на математически и инженерни задачи. Може да я използвате и като обикновен калкулатор. CalcPad обаче ви дава много повече възможности:

Програмата замества стойностите на параметрите, изчислява отделните изрази, форматира ги Html и показва резултата на екрана. Така се получава цялостна изчислителна записка, която може да отпечатате на принтер.

Math

За кого е предназначена

Програмата е подходяща за инженери и други специалисти, които трябва да извършват повтарящи се изчисления и да ги оформят като проекто-сметна документация. Може да се ползва и от преподаватели за разработване на примери, учебни материали, ръководства и др. Студенти и ученици могат да ползват програмата за разработване на курсови и дипломни работи.

Инсталиране

Инсталирането става с помощта на инсталационна програма CalcPad_Pro_Setup.exe. Следвайте инструкциите на съветника за инсталиране. За да работи, програмата изисква да имате инсталиран Microsoft .NET Framework 4.5. Ако е необходимо, може да го изтеглите от посочения линк и да го инсталирате. Програмата се влияе от настройките на Windows за десетична точка. Може да работите и със запетая, но е препоръчително да ползвате точка за съвместимост с масово предлаганите шаблони. Смяната на тази настройка става от "Control Panel" -> "Region and Language" или "Region", в зависимост от версията на WIndows, която ползвате.

Лиценз и условия за ползване

За да използвате програмата трябва да закупите код за активация. Лицензът е безплатен за ученици и студенти. За повече информация пишете на sales@proektsoft-bg.com. Нямате право да разпространявате програмата или части от нея като свой продукт или част от друг софтуерен продукт. Програмата се предоставя на потребителите такава, каквато е. Потребителят е длъжен да се запознае добре с начина на работа и да изпробва действието и чрез подходящи примери. Производителят не носи отговорност за каквито и да е преки или косвени, материални или нематериални щети произтичащи от прилагането на софтуерния продукт.

Активиране

За да активирате програмата, включете "Scroll Lock" от клавиатурата и я стартирайте. На екрана ще видите диалог за активация със "Site Code", изписан в червено. Изпратете кода по имейл на sales@proektsoft-bg.com и ще получите обратно код за активация. Може да използвате бутона "Send codes" или да копирате кода с Ctrl+C и Ctrl+V. Попълнете кода за активация в полето "Activation code" и натиснете "Continue >>".

Как се работи?

Начинът на работа е изключително лесен и се свежда до няколко прости стъпки:

  1. Въведете условието на задачата в текстовия прозорец "Задача" вляво. Вижте указанията за форматиране по-долу.
  2. Натиснете бутона Play или Enter. В прозореца "Резултати" ще получите решението на задачата в html формат.
  3. Отпечатайте PrintPreview резултата или го копирайте с бутона Copy. Може да го вмъкнете в Word Word или друга програма.

Програмата работи в два режима:

В режим шаблон, трябва да попълните полетата на входните параметри и да натиснете бутона Play. Можете да направите шаблон от всяка задача, като въведете символа "?" като стойност за избраните параметри. След това запишете задачата като "*.cpd" файл. Вижте по-нататък за допълнителни указания.

Малко теория

(може и да не четете)

Как работи CalcPad? Програмата чете въведения текст символ по символ и прави лексикален анализ - разпознава всички числа, оператори, функции, променливи и др. Така входната последователност от символи се превръща в изходна последователност от лексеми/токени - списък от обекти, които имат конкретно значение.

След това проверява правилната последователност на токените в списъка - дали образуват коректен израз. Иначе казано, прави синтактичен анализ. Например изразът "3 + a / 5" е коректен, а "3 a + / 5" не е. Във втория случай, програмата ще изведе съобщение за грешка. За целта, стандартната математическа нотация се дефинира като формален език, с контекстно свободна граматика.

Аритметичните изрази стандартно се представят с инфиксен запис. Това означава, че операторът се записва между операндите (например "5*3 + 2"). Този начин обаче не е разбираем за компютъра. Проблемът е в приоритета на отделните оператори и използването на скоби. Например, горния израз дава "17", докато "5*(3 + 2)" прави "25". Затова изразът се преобразува в друг вид запис, наречен постфиксен или обратен полски запис (RPN). Той е лесно разбираем за компютъра, но не и за човека. Например, изразът "5*(3 + 2)", представен в обратен полски запис, изглежда така: "5 3 2 + *". Удобството е, че при него е ясна подредбата на операциите без да са необходими скоби.

Съществува прост и универсален алгоритъм за изчисляване на стойността на израз от обратен полски запис. Той се ползва от почти всички калкулатори. CalcPad обаче, има функционалността на сложен програмируем калкулатор, тъй като могат да се дефинират параметри и да се разклонява хода на решението в зависимост от резултатите.

По-любознателните може да намерят допълнителна информация в Интернет. За начало, може да започнете от Wikipedia:

https://en.wikipedia.org/wiki/Parsing

https://en.wikipedia.org/wiki/Lexical_analysis

https://en.wikipedia.org/wiki/Context-free_grammar

https://en.wikipedia.org/wiki/Shunting-yard_algorithm

https://en.wikipedia.org/wiki/Reverse_Polish_notation

Въвеждане на текста

Текстът се въвежда в прозореца "Задача" с помощта на клавиатурата. Може да ползвате и бутоните в долната част на екрана ("Калкулаторна клавиатура"). Можете да копирате текст от и в самия прозорец, както и да поставите готов текст от външна програма (например Word).

Текстът съдържа множество редове, като всеки един трябва да представлява отделен израз или коментар. По изключение, може да има няколко израза на един ред, разделени от коментари. Коментарите се заграждат в кавички. Могат да съдържат прост текст или Html. С помощта на Html може да добавяте и картинки. Лентата с бутони над текстовия прозорец съдържа команди за редактиране на текста: "копиране", "поставяне", "отмяна", "възстановяване" и "вмъкване на изображение".

Калкулаторна клавиатура

Keyboard

Калкулаторната клавиатура е удобна за работа с таблет или лаптоп с чувствителен на допир екран. След натискане на бутон, съответните символи се добавят в текстовия прозорец на мястото на курсора. Разделена е на 4 части: "числа", "оператори", "функции" и "други". Символът "=" не стартира изчисленията, а представлява оператор за присвояване (например "a = 4"). За сравняване на стойности се използва оператора "" (например "ab" означава "a равно ли е на b"). Бутоните "e", "π" и "g", въвеждат съответните константи e ≈ 2.7183, π ≈ 3.1416, g ≈ 9.8066.

Ако калкулаторната клавиатура не ви трябва, може да я изключите с бутона Calc. Повторното включване става със същия бутон.

Бутонът "C" връща един символ назад. Бутонът "AC" изтрива цял ред, а при двойно кликване, изтрива цялата задача до началото. Ако сбъркате, може да използвате бутона Undo за да се върнете към предишното положение.

Придвижване в текста

Писането и редактирането на текст в CalcPad не се различава от повечето програми под WIndows . Ако имате богат опит в това, може да пропуснете тази и следващите 6 точки и да отидете направо на "Изрази".

Може да пишете на произволно място в текста. Мястото, където отиват символите при писане се нарича "курсор" и е означено като мигаща вертикална линия "|". Може да местите курсора чрез кликване с мишката или чрез стрелките от клавиатурата "← → ↑ ↓". С тях курсорът се измества с един символ наляво или надясно или един ред нагоре или надолу. Ако задържите клавиша "Ctrl" и натиснете стрелка, курсорът се премества с една дума наляво или надясно или отива на първия или последния ред. Клавишът "Home" изпраща в началото на реда, а "End" - в края на реда. Ако сте натиснали "Ctrl", отивате съответно в началото или края на целия текст.

Маркиране

Повечето от командите за редактиране изискват предварително да посочите част от текста, върху която да бъдат приложени. Това ще наричаме маркиране. Маркираният текст обикновено се изобразява на син фон. Възможно е да изглежда и по друг начин, в зависимост от настройките на Windows. Може да маркирате текста с мишката, като натиснете левия бутон в началната позиция, преместите курсор и освободите бутона в крайната позиция. Алтернативно, може да кликнете в началната позиция, да задържите клавиша "Shift" и да кликнете повторно в крайната позиция. Може да използвате и само клавиатурата, като задържите "Shift" и натискате стрелките или "Home", "End", "PageUp", "PageDown".

Изтриване

Изтриването на отделен символ става с клавишите "Delete" ("Del") или "Backspace" ("Bkspc"). Разликата е, че "Delete" трие след курсора, а "Backspace" преди курсора. Ако задържите клавиша "Ctrl", се изтриват цели думи вместо отделни символи. Ако искате да изтриете по-голяма част от текста, първо я маркирайте и след това натиснете "Delete" или "Backspace".

Копиране

Ако имате повтаряща се част от текста, може да я копирате и използвате и на други места. Копирането включва две стъпки: "Копиране" и "Поставяне". На първата стъпка, желаният текст се маркира и изпраща в буфер (Clipboard). Втората стъпка е вмъкване на копирания текст на желаното място. Тя може да се изпълни многократно и да поставите един и същи текст на няколко места.

Копирането става като първо маркирате текста и след това натиснете клавишната комбинация "Ctrl+C" или бутона Copy.

Поставяне

Поставянето става като позиционирате курсора на желаното място и натиснете "Ctrl+V" или бутона Paste. Не забравяйте, че преди това трябва да сте копирали текста отнякъде. Може да копирате и поставяте текст от CalcPad в други програми и обратно. Например, може да вземете готова записка от Word, да я изчислите с CalcPad и да върнете получения резултат обратно в Word.

Отмяна (Undo)

Тази команда отменя резултата от последните операции по въвеждане и редактиране на текста и възстановява предишното състояние. Може да връщате до 10 хода назад. Трябва да натиснете "Ctrl+Z" или бутона Undo.

Възстановяване (Redo)

Командата има обратното действие на предишната и възстановява отменените операции. Тя трябва да се стартира непосредствено след командата за отмяна. Ако междувременно е изпълнена друга операция, възможността за възстановяване се губи. Командата се стартира от бутона Redo.

Редактиране с Notepad++

Notepad++ е популярна безплатна програма за редактиране на текстови файлове. Тя е с отворен код и може да бъде изтеглена от сайта https://notepad-plus-plus.org. Поддържа синтаксиса на много програмни езици и скриптове. Оцветява ключовите думи, сгъва блокове от изрази и показва затварянето на скобите. Частично е преведена и на български език. Може да я използвате за да редактирате Html файлове. Синтаксисът на CalcPad е дефиниран като файл с настройки, който може да вмъкнете в Notepad++. Това става като стартирате Notepad++, изберете менюто "Language" ("Синтаксис") -> "Define your language" и натиснете бутона "Import...". Намерете папката на CalcPad в Program Files или където е инсталиран и изберете файла Notepad++.xml.

Изрази

CalcPad е програма за изчисления и затова всичко, което въведете в текстовия прозорец, по подразбиране се счита за аритметичен израз, освен ако не е в кавички. Тогава се счита за коментар. По правило всеки израз трябва да е разположен на нов ред:

Не трябва да завършвате изразите с "=". Това е символът за присвояване и служи за задаване на стойности на променливи, например "a = 2". Когато натиснете бутона Play, в прозореца с резултати автоматично ще получите:

По изключение, може да имате няколко израза на един ред, разделени с коментари:

'Дължина - ' a = 3 ' m, Ширина - ' b = 2*a ' m, Височина - ' c = 5 ' m

Изразите могат да включват константи, променливи, оператори, функции и скоби. Те трябва да са в правилната последователност за да образуват валиден израз. Използва се общоприетата математическа нотация и приоритет на операциите, които се изучават в училище. Подробно описание на отделните елементи от израза е дадено по-долу.

Може да въведете отделни независими изрази или да съставите цялостна програма за решаване на задачата. За целта, трябва последователно да дефинирате параметри, на които да зададете стойности. По-нататък може да ги използвате във формули, чрез които да изчислите други параметри и така, до получаване на отговора. Чрез подходяща комбинация от изрази, коментари, схеми и малко html, може да съставите професионална и прегледна програма-записка. Може да я запишете във файл и да я ползвате многократно. Ето една примерна задача за намиране на корените на квадратно уравнение:

Sample1

Константи

Реални

Константите могат да бъдат положителни или отрицателни цели числа, или десетични дроби. Те трябва да включват цифрите "0" - "9" и "." за десетична точка. Може да въведете и обикновена дроб като "3/4", но програмата на практика ще я третира като израз от две константи и оператор "/". Не може да въвеждате числа с плаваща запетая във формат "3.4e+6". Вместо това, може да използвате израза: "3.4*10^6".

Всички константи и променливи се съхраняват в поле тип double-precision floating point. Те могат да имат стойности от -1.7976931348623157E+308 до 1.7976931348623157E+308. Най-малкото положително число може да бъде 4.94065645841247E-324. По-малки стойности от тази се считат за точно 0. Ако получените резултати излизат извън посочените граници, програмата връща съответно "-∞" и "+∞". Същото се получава и при делене на нула, а "0/0" = "Недефинирано".

Комплексни (Само за уеб и про версии)

В режим "Complex", може да използвате и комплексни числа. Комплексното число представлява наредена двойка (a; bi) , където "a" е реално число, а "bi" се нарича имагинерно. Може да се запише в алгебрична форма като ±a ± bi, например "2 + 3i". Може да използвате и тригонометрична и експоненциална форма като въведете съответните изрази. Имагинерната единица се записва като "1i", а не като "i". Така може да имате и отделна променлива с име "i". Имагинерната единица се дефинира чрез израза (1i)2 = -1.

Променливи

Променливите се дефинират чрез име и стойност, посредством израз от вида "a = 4". Символът "=" е оператор за присвояване. От лявата му страна трябва да има единствено име на променлива, а от дясната може да стои всякакъв валиден аритметичен израз, например "b = a + 4". След като веднъж е дефинирана, променливата може да участва в други изрази по-нататък. При всяко срещане на името на променливата в процеса на изчисляване, тя се замества с нейната стойност. Не може да използвате променлива, преди да е дефинирана. Това ще доведе до грешка. Всяка променлива е валидна от момента на нейното създаване до края на задачата. Ако я дефинирате повторно, новата стойност ще замени старата.

Имената на променливите могат да съдържат малки и главни букви на латиница "a" - "z", "A" - "Z", гръцки букви "α" - "ω", "Α" - "Ω" и цифри. Прави се разлика между главни и малки букви. Например "a" и "A" са различни променливи. Името не може да започва с цифра. Може да използвате и символа "_" (долна черта). Първото му срещане се счита за начало на долен индекс. Например "a_1_1" ще бъде форматирано като "a1_1". Променливите могат да съдържат и комплексни стойности.

Оператори

Програмата поддържа следните оператори:

Операторите по-горе са дадени в реда на техните приоритети. В този ред се изпълняват и съответните операции. Първо се извършва повдигане в степен, деление и умножение, изваждане и събиране и накрая: сравняване. Всички релационни оператори са с равен приоритет. За да промените последователността на операциите, трябва да използвате скоби. Например, "5 + 2∙3" прави "11". Ако искате да извършите първо събирането, напишете "(5 + 2)∙3" и ще получите "7∙3 = 21". Когато имате оператори с равен приоритет в един израз, тогава операциите се извършват отляво надясно. Например, "3 - 2 + 1" прави "(3 - 2) + 1 = 2", а не "3 - (2 + 1) = 0". Друг добър пример е "2∙3 / 2∙3", което прави "9", а не "1". Всички оператори в CalcPad са ляво асоциативни (операциите се извършват отляво надясно). Тук има известен проблем с повдигането в степен. Официално то се счита за дясно асоциативно. Извършва се в реда отдясно наляво, т.е. x^a^b се чете като xab. Много от ръчните калкулатори обаче не смятат така, включително и някои широко разпространени програми като Excel. Там x^a^b се чете като xa·b. Ако искате да получите xab трябва да поставите скоби: x^(a^b). Така е прието и в CalcPad по две причини:

  1. Многократното повдигане в степен е по-рядко срещана последователност.
  2. Excel е доста популярен и това ще улесни потребителите, които искат да преминат на CalcPad.

И така, ако напишете 4^3^2 в CalcPad, ще получите 43·2 = 4096, а 4^(3^2) ще даде 432 = 262144.

Релационните оператори могат да връщат само две стойности: "1" - истина и "0" - неистина. Те могат да участват и в по-сложни изрази. Например, може да получите по-голямото от a и b от израза "a*(ab) + b*(a < b)". Трябва обаче да бъдете много внимателни. Например, ако вместо "<" използвате "", при a точно равно на b, ще получите 2∙a. По-добре е вместо това да използвате вградената функция max(a; b) или условно компилиране (виж по-нататък). Може да имитирате и прости логически изрази, замествайки ги с алгебрични. В този случай, за логическо "И" трябва да използвате "*", а за "ИЛИ" - "+". Например "(2 < 3) + (2 < 1) = 1 + 0 = 1" (истина), а (2 < 3)∙(2 < 1) = 1∙0 = 0 (неистина). Тук отново трябва да внимавате. Това не е булева алгебра, а по скоро трик за нейното заместване. Не забравяйте и скобите, тъй като алгебричните операции са с по-висок приоритет от релационните.

Аритметични операции с комплексни числа (Само за уеб и про версии)

Всички оператори поддържат и комплексни числа, с изключение на тези за целочислено деление "\", остатък "%" и сравняване: "<", "", ">", "". Изчисляването на изрази с комплексни числа се извършва малко по-сложно отколкото се реални. Ето правилата за основните аритметични операции:

Скоби

Скобите служат за две цели: едната е промяна на последователността на операциите, а другата е да заграждат аргументите на функциите. Трябва да използвате означенията "(", ")". Програмата следи за спазването на следните правила:

При форматиране на изходните резултати, програмата поставя скобите "интелигентно". Това означава, че скоби, които се дублират или по никакъв начин не променят реда на операциите, се премахват. От друга страна, на определени места се налага да се добавят скоби, въпреки че липсват във входния скрипт. Това се получава най-често при заместване на стойностите на променливи, които съдържат в себе си отрицателни или комплексни числа. Например:

Функции

Стандартни

CalcPad разполага с набор от стандартни библиотечни функции, които може да ползвате направо:

Аргументите на функциите трябва да за заградени със скоби. Те могат да бъдат константа, променлива или израз. Ако имаме функция с два аргумента, като min и max, аргументите трябва да са разделени с ";". Когато аргументите на функцията излизат извън дефиниционната област, получения резултат е "Недефинирано". Изключение от това правят "cot(0)" и "coth(0)", които връщат "+∞". Аргументите на тригонометричните функции могат да бъдат в градуси или радиани. Това се избира от съответните радио бутони над прозореца с резултати. Може да се настройва и от самата записка. Трябва да вмъкнете един ред със съдържание, съответно #deg за градуси и #rad за радиани.

Всички функции са дефинирани и в комплексната си форма и могат да се ползват с комплексни числа, с изключение на функциите min(x; y) и max(x; y). Функциите за закръгляване, закръгляват едновременно реалната и имагинерната част на комплексното число. Може да използвате и няколко специални функции, само за комплексни числа:

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

Потребителски (Само за уеб и про версии)

Може да дефинирате и нови функции, различни от библиотечните, които да ползвате по-нататък в изчисленията. Допускат се само функции на един аргумент. Дефинирането става, като напишете името на функцията, в скоби името на аргумента, " = израз". Това може да бъде всякакъв валиден израз, който може да съдържа, константи, оператори, променливи или други функции, например:

След като функцията веднъж е дефинирана, може да я използвате многократно, вместо да пишете същия израз на всяко място. Достатъчно е само да напишете името на функцията и стойност на аргумента в скоби, например f(2). За имената на функциите важат същите правила, както за имената на променливите. Като стойност на аргумента, може да напишете всякакъв валиден израз. Самата функция може също да е част от израз, например c = 4*f(a^2 + 2) - 2*b. Цикълът на живот на функцията е от мястото на нейното дефиниране, до края на записката. Ако използвате същото име по нататък, за дефиниране на нова функция, старата ще бъде презаписана и ще престане да съществува. Не може да предефинирате библиотечни функции, например sin(x) = x^2. Програмата ще върне съобщение за грешка.

Не е необходимо да дефинирате предварително променливата, която се използва за аргумент. Ако обаче в дефиницията на функцията участват и други променливи, те трябва да се дефинират преди първото извикване на функцията. Променливата на аргумента е локална за функцията. Това означава, че ако зададете предварително стойност, например x = 4 и извикате функцията, променливата ще запази тази стойност и след това. Потребителските функции могат да работят и с комплексни числа.

Графики (Само за уеб и про версии)

CalcPad включва и някои специални команди, например за построяване на графики или за изполване на числени методи. Имената на специалните команди започват с "$" за да се различават от обикновените функции. Параметрите им задължително се заграждат във фигурни скоби "{" и "}". Такава е и командата за построяване на графика. Тя има следният формат:

$Plot{ f(x) @ x = a : b}

, където:

Например, ако въведе израза $Plot{ x^2 - 5*x + 3 @ x = -1 : 6}, ще получите следната графика:

Plot.png

Изразът $Plot{...} трябва да е първи и единствен на реда. Преди него не може да има нищо освен празни интервали. Не се допускат дори и коментари. В противен случай програмата ще върне грешка. Ако след затварящата скоба "}" има въведен каквто и да било текст, той ще бъде игнориран. Графиките поддържат само реални числа. Могат да се ползват и в режим "Complex", стига променливата x да е реална и f(x) да връща винаги реален резултат.

Числени методи (Само за уеб и про версии)

CalcPad има вграден модул "Solver", който може да решава и по-сложни задачи, с помощта на числени методи. Той може да работи само с реални числа, но не и с комплексни. Включени са следните команди:

Корени на уравнение

$Root{ f(x) @ x = a : b}

Намира корен на уравнението f(x) = 0. Като резултат връща намерената стойност. Ако не намери решение, функцията връща грешка, която се изписва на екрана. Командата използва комбинация от итерационни методи, които постепенно стесняват интервала около търсената стойност. Ако функцията има няколко корена в интервала, програмата ще намери един от тях. В такива случаи е най-добре първо да се построи графиката на функцията, след което интервалът да се раздели на няколко по-малки, всеки от които да съдържа по един корен. Командата трябва да се приложи по веднъж за всеки под-интервал за да се намерят всички корени. В някои случаи, това може да се разработи като автоматична процедура, като се комбинира с командите за търсене на екстремуми.

Минимум на функция

$Inf{ f(x) @ x = a : b}

Намира минималната стойност на функцията f(x) в зададения интервал [a, b]. За целта се изполва метода на златното сечение. Ако функцията има един локален екстремум, командата ще намери неговата стойност. В противен случай, ще върне по-малката стойност от двете за краищата на интервала. Ако в разглеждания интервал има няколко локални минимума, командата ще намери един от тях, но не задължително най-малкия. Това е защото командата следва винаги точно определен итерационен процес. В такива случаи е добре отново интервалът да се раздели на под-интервали.

Максимум на функция

$Sup{ f(x) @ x = a : b}

Работи по аналогичен начин на предишната команда само, че намира максималната стойност на функцията.

Числено интегриране

$Area{ f(x) @ x = a : b}

Изчислява стойността на определения интеграл от функцията f(x) в зададения интервал [a, b]. Използва адаптивен метод на Симпсън.

Числено диференциране

$Slope{ f(x) @ x = a}

Намира стойността на първата производна на функцията f(x) в точка x = a. Тя представлява същевременно и наклона на допирателната към графиката на функцията в съответната точка.

Общи препоръки и особености

За всички описани по-горе команди, функцията f(x) трябва да бъде гладка и непрекъсната в интервала. Изключение прави намирането на корен на уравнение. Там е достатъчно функцията да е непрекъсната и да има различни знаци в краищата. При това положение, програмата задължително ще намери корен, съгласно теоремата на Болцано.

За разлика от командата за отпечатване, командите за числени методи могат да участват в изрази. Те връщат стойност, която може да участва по-нататък в изчисленията. Например, може да запишете резултата в променлива:

ymin = $Inf{ f(x) @ x = a : b}

За разлика обаче от стандартните функции, стойността на локалната променлива x се запазва след изпълнението и тя остава като валидна глобална променлива. Това е полезно в много случаи. Така за горния пример, ще получим стойността на x, при която е намерен минимума на функцията. Може да я запазите за по-нататък като да добавите следният ред:

xmin = x

Това е добре да стане веднага, за да не загубите стойността на x при използването му в други команди.

Записка

Резултатите от изчисленията се форматират във вид на записка, която може да разпечатате или отворите с Word. Освен аритметични изрази, може да добавите заглавия, коментари и схеми.

Заглавия

Заглавието е текст, заграден в двойни кавички ("). Той излиза удебелен и с по-големи букви от стандартния текст.

Текст/коментари

Коментарите се заграждат в единични кавички ('). Може да пропуснете затварящата кавичка, ако тя е последния символ на реда. В заглавията и коментарите може да пишете свободен текст, без ограничения. Всичко извън кавичките се третира като аритметичен израз. Ако има обаче формули вътре в кавичките, те няма да бъдат изчислени. Тъй като резултатите се оформят накрая в Html документ, може да използвате Html и CSS в коментарите за да форматирате допълнително записката.

Мерни единици

Настоящата версия поддържа автоматични мерни единици за дължина - m, cm и mm. Необходимо е само да вмъкнете %u на всички места в коментарите, на които желаете да се изписват единиците. Когато генерира уеб форма за попълване, CalcPad проверява дали има %u някъде в записката. Ако има, автоматично добавя падащо меню за избор на мерни единици в началото. При избор от падащото меню, съответните единици се попълват автоматично на всички места, където се среща %u. Изпробвайте по-долу:

Текст Резултат

"Мерни единици

'Дължина - ' l = ? '%u

'Площ - ' l = ? '%u<sup>2</sup>

'Обем - ' l = ? '%u<sup>3</sup>

'Коефициент за мащабиране - 'Units

Мерни единици

Дължина - l = m

Площ - l = m2

Обем - l = m3

Коефициент за мащабиране - Units

Когато изчислите записката, падащото меню за избор изчезва и остават попълнените единици. Програмата създава и служебна променлива Units, която съдържа коефициент за привеждане на избраните единици към метри. Стойността и е 1, 100 и 1000, съответно за m, mm и cm. Може да я използвате директно във формулите за да преобразувате избраните единици. С нейна помощ може да направите условен блок, с който да извлечете избраните единици в тялото на записката:

#if Units ≡ 1
'Избрани са метри
#else if Units ≡ 100
'Избрани са сантиметри
#else if Units ≡ 1000
'Избрани са милиметри
#end if

Форматиране с Html и CSS

По начало, идеята е CalcPad да е придружен с достатъчно голяма библиотека професионално разработени записки, които да ползвате наготово. Ако желаете и вие да разработвате такива, прочетете внимателно следващите редове. Иначе, може спокойно да пропуснете тази точка.

Html (Hyper Text Markup Language) е описателен език, който се използва в Интернет страниците за форматиране на текста. Може да смените шрифта, височината и цвета на буквите, да вмъкнете изображения и др. Това става като добавяте Html елементи - тагове. Те се заграждат в триъгълни скоби. Например, ако искате на направите част от текста удебелен, трябва да го заградите в <b>текст</b>. Дори и да не сте програмист, лесно може да научите основните елементи и да ги прилагате. Ето някои от тях:

Html код Резултат
<b>Удебелен</b> Удебелен
<i>Курсив</i> Курсив
<u>Подчертан</u> Подчертан
<span style="color:red;">В червено</span> В червено
x<sup>степен</sup> xстепен
x<sub>индекс</sub> xиндекс
<span style="font:16pt Times-New-Roman;">С друг шрифт</span> С друг шрифт

На практика, може да направите форматирането да обхване и формулите, като редувате коментари с Html и формули. Например записът:

'<span style="color:red;"> просто като ' 2 + 2 '</span>'

ще даде следния резултат:

просто като 2 + 2 = 4

Тук има два коментара, между които е самият израз. В първия е отварящия таг на елемента '<span style="color:red;">', а във втория е затварящия таг '</span>'. Всичко, което се намира между тях се оцветява в червено. Не забравяйте и кавичките, защото ако извън тях попадне Html, програмата ще даде съобщение за грешка. Изразът style="color:red" всъщност не е Html, а едно полезно допълнение, наречено CSS (Cascading Style Sheets). Така може да закачате стилове на всякакви Html елементи и да променяте тяхното форматиране. Ако искате да научите повече за Html и CSS, може да използвате линковете:

http://www.w3schools.com/html/

http://www.w3schools.com/CSS/

Може да ползвате и някой от многото безплатни Html редактори, които могат да се намерят в Интернет.

Изображения

За да добавите схема към записката, трябва предварително да я начертаете на някоя графична програма и да я запишете на диска като *.png, *.gif или *.jpg файл. Може да използвате Paint, Gimp, InkScape, DraftSight или други безплатни програми. След това, може да я вмъкнете в записката с помощта на Html. Поставете следния текст на желаното място в записката:

'<img style="float:right" src="c:\Users\Me\Pictures\Picture1.png" alt="Picture1.png">'

Разбира се, вместо "c:\Users\Me\Pictures\Picture1.png" трябва да въведете действителния път към файла с картинката. Записът style="float:right" измества картинката вдясно, позволявайки текста да преминава свободно отляво. Иначе, по подразбиране картинката става част от текста и го прекъсва. В някои случаи това също е необходимо, например при по-големи картинки, където отляво остава тясна ивица за текста. В този случай, просто изтрийте този запис.

За улеснение, може да използвате бутона Image. След натискането му се появява диалог за избор на файл. Намерете и посочете картинката и натиснете "Open". Записът се вмъква в началото на страницата, а самата картинка може да видите в прозореца с резултати, след изчисляването.

Условно компилиране

Много често, решението на дадена задача продължава по различен начин, в зависимост от получените междинни резултати. CalcPad предлага мощно средство за управление на хода на решението, аналогично на езиците за програмиране. Използва се блок за условно компилиране, който има следния общ вид:

Възможни са и съкратени варианти на този запис, като например:

или като:

Символът "#" трябва да е първия на реда. На мястото на условие трябва да стои валиден аритметичен израз. Обикновено се използва сравнение като "#If a < 0", но не е задължително. Ако изразът върне ненулева стойност, условието се счита за изпълнено. Ако резултатът е нула, условието не е изпълнено. За нула се приема резултат, който е ≤ 0.00000001.

Нека да разгледаме отново примера за решаване на квадратно уравнение, даден по-горе. Ако въведем "c = 5", дискриминантата ще бъде по-малка от нула и ще се получи резултат NaN. Това не е много интелигентен начин за завършване на задачата. Може обаче да направим така, че ако "D < 0" да изписва съответното съобщение, а ако не е, тогава да изчислява корените. Това може да стане с условно компилиране, както е показано на схемата:

Sample2

Директиви за контрол на изхода (Само за уеб и про версии)

С тяхна помощ можем да контролираме кои резултати да се виждат в записката и как да бъдат оформени. Както и при условното компилиране, така също скриваме и показваме избрани части от записката, с тази разлика, че скрития код винаги се изчислява. Може да използвате следните команди:

Всяка една от горните команди влияе на съдържанието след нея и отменя действието на предишната. Може да скривате дълги и повтарящи се изчисления, които не е необходимо да се виждат в записката. Като използвате #Pre, може да добавите допълнителни указания за попълване на данните, които са предназначени само за потребителя.

Може да форматирате вида, в който се показва резултата като използвате следните команди:

Всяка една от горните две команди отменя действието на предишната. Може да използвате командата #Val за да съставите таблица със стойности, без да се виждат формулите.

Шаблони

Ако имате сложна задача, която трябва да решавате често или искате да я споделите с друг, най-добре е да направите шаблон. Това става като въведете символа "?" като стойност на променливите, които искате да се въвеждат, например "a = ?". След това вече няма да можете да изчислите задачата директно с бутона Play. Първо трябва да я компилирате като шаблон с бутона Form.

Задачата се зарежда изцяло в прозореца "Резултати", на цялата ширина на прозореца. Текстът и формулите се форматират и вече не са достъпни за редактиране. На мястото на всеки от символите "?" се генерират полета за попълване. Шаблонът е готов за ползване и изглежда по следния начин:

Sample3

Сега трябва да въведете стойностите в полетата и да натиснете Play за да получите резултатите. Те се показват в същия прозорец.

Sample4

За да се върнете обратно на входните данни, натиснете повторно бутона Play за да го изключите. Входните данни остават непроменени в съответните полета. Ако е необходимо да редактирате изходния код на шаблона, трябва да изключите бутона Form. Прозорецът "Задача" се показва отново в лявата страна на екрана. След като направите промените, може отново да компилирате задачата. При това обаче, входните данни се изчистват. Накрая запишете задачата като "*.cpd" файл. При отваряне на такъв файл, задачата автоматично се зарежда в компилиран вид. Той е много по-удобен за ползване отколкото текстовия и има следните предимства:

С бутона Form може да компилирате и задачи, които не са шаблони. Това може да се използва за преглед на кода във форматиран вид. Тъй като нямате полета за попълване, трябва да се връщате обратно всеки път, когато искате да промените дадена стойност. Освен при параметри, може да вмъкнете "?" и на всяко друго място, където се очаква някаква стойност, например:

2 + ?

След компилиране, на мястото на "?" ще се генерира поле за попълване:

2 +

В него може да въведете стойност и да изчислите резултата. Този начин не е за препоръчване при по-сложни задачи, тъй като записката става неясна и трудна за разбиране.

Резултати

Резултатите се получават след стартиране на решението с бутона Play. Те се показват в прозореца "Резултати". В него не може да променяте текста, но може да го маркирате, копирате или отпечатате. За целта, може да използвате лентата с бутони вдясно над прозореца. В лявата и част има настройки, които се отразяват на начина на изчисление. С натискане на десен бутон върху резултатите се отваря контекстно меню с допълнителни функции. Подробно описание е дадено по-долу.

Заместване

CalcPad може да замести стойностите на параметрите и да ги покаже във формулите преди крайния резултат:

x1 = (-bD)/(2∙a) = (-3 – 89)/(2∙4) = -1.55

За целта трябва да е включена опцията "Заместване" над прозореца с резултати. Така решението става лесно за проследяване и проверка след разпечатване. Това понякога е необходимо, ако записката трябва да бъде преглеждана от контролен инженер, преподавател и др. Това е предимство пред използването на електронни таблици, където формулите са скрити.

Ако желаете да не се прави заместване, трябва да изключите опцията. Тогава резултатът се показва директно след формулата:

x1 = (-bD)/(2∙a) = -1.55

Закръгляване

Закръгляването на резултатите се дефинира чрез броя цифри след десетичната точка k. Въвежда се в полето "Закръгляване" над прозореца с резултати. Стойността на k може да бъде между "0" и "15". Ако въведете "0", резултатът се закръглява към цяло число. Ако въведете стойност по-малка от "0" или по-голяма от "15", се възприема съответната гранична стойност.

Има обаче допълнителни проблеми. Ако се получи число, което е по-малко от 10-k, тогава в резултата ще има само нули. Поради това, в CalcPad e въведено допълнително условие. Ако след закръгляването остават по-малко от k значещи цифри, се изписват k значещи цифри. Ако при това се получат повече от три нули след десетичната точка, то програмата преминава в представяне с плаваща запетая, като отново оставя k значещи цифри. Иначе, броенето на нулите след десетичната точка става трудно. Ако експонентата на числото е по-голяма от 2k, тогава дробната част се отрязва. Така пак остават k + 1 значещи цифри като същевременно записката става по-прегледна. По-долу са дадени различни примери, получени при закръгляване до третия знак (k = 3).

0.000001∙π = 3.14E-06

0.001∙π = 0.00314

0.1∙π = 0.314

1∙π = 3.142

1000∙π = 3141.593

1000000∙π = 3141593

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

Форматиране

Освен че изчислява въведените изрази, CalcPad добавя и форматиране към резултатите преди да ги покаже на екрана. Форматирането е достатъчно опростено, така че да бъде разпознато от Word. Това има и известни ограничения. Например, ако има делене, формулата се представя линейно (без хоризонтална дробна черта). Интервалите между числата и операндите се настройват автоматично. Променливите се форматират с курсив. Умножението "*" се заменя с "∙". Степенуването се форматира с горен индекс, а долна черта - с долен индекс. Функцията за коренуване се заменя със съответния символ "√". По-долу са дадени примери за форматиране на различни изрази:

Текст Html
x    +    3 x + 3
x-3 x – 3
3*x 3∙x
x/3 x/3
x+3 * y x + 3∙y
sqr(x+3) x + 3
x_1^3 x13
sin(x) sin(x)

За форматирането се използва Html. Така записката става по-лесна за четене и проверка, отколкото в текстов вид. Ако има Html код в коментарите, той остава част от записката и влияе на крайния резултат. Този начин на работа е избран и с оглед на разработването на CalcPad като Web приложение.

Мащабиране

Може да увеличавате и намалявате размера на текста в прозореца с резултати. За целта, трябва да задържите клавиша "Ctrl" и да завъртите колелцето на мишката. Въртенето напред увеличава, а назад - намалява размера на текста.

Запис

Може да запишете резултатите в Html формат като изходен файл. Той е различен от входния файл и не може да се ползва по-нататък за изчисление. Така ще запазите неизменно копие на така въведените входни данни и резултатите. Него може да отворите и разпечатате винаги дори и да не разполагате CalcPad. Html файловете се отварят с всякакъв уеб браузър или офис пакет.

Записването на файла става с бутона Save, който се намира непосредствено над прозореца с резултати. След това трябва да изберете папка и име на файла и да натиснете "Save".

Добра алтернатива на Html файла е отпечатването на готовата записка в pdf файл. Така също може да запазите копия на вече решени задачи. За целта, може да инсталирате някой от многото безплатни pdf принтери. Самото отпечатване не е по-различно от всеки друг стандартен принтер. Описание на процедурата в CalcPad е дадено в следващата точка.

Отпечатване

Отпечатването става като натиснете бутона PrintPreview над прозореца с резултати. Добре е да го направите след като задачата вече е изчислена. След натискането на бутона, се отваря диалог за преглед преди отпечатване:

Sample5

В него може да настроите ориентацията на листа и отстоянията до текста. С бутона Page Setup може да отворите повече настройки и да промените размерите и формата на хартията. След това трябва да натиснете бутона Print. Отваря се диалог за избор на принтер. Изберете желания принтер и натиснете "Print".

PrintDialog

За отпечатване, програмата ползва вградените функции на Windows и Internet Explorer. В зависимост от версиите, които ползвате, екранът може да изглежда по различен начин от показаното по-горе. Като алтернативен вариант, може да натиснете и десен бутон в прозореца в резултати и да изберете "Print preview..." от контекстното меню. Ако изберете "Print", пропускате прегледа и направо отивате на отпечатване.

Копиране

Може да копирате целия текст на записката като натиснете бутона Copy над прозореца с резултати. След това може да го поставите в която е да е програма. Ако тя поддържа Html, като например Word, форматирането ще се запази. Иначе ще се прехвърли като обикновен текст.

Изход към Word

Може да отворите записката директно в Word като натиснете бутона Word. Той трябва вече да е инсталиран на вашия компютър. Не е необходимо обаче да е отворен предварително. Този метод е по-лесен от копирането.

Файлове

Входните данни в CalcPad могат да бъдат записани във файлове и да бъдат ползвани многократно. Програмата поддържа файлове с разширения "*.txt" и "*.cpd". Шаблоните трябва да се записват като "*.cpd" файлове, а останалите задачи като "*.txt", въпреки че няма строго ограничение. Основната разлика е, че "*.cpd" файловете се отварят автоматично от CalcPad с двойно кликване върху тях.

Нов

Създаването на нов файл става с бутона New. Това изчиства всички входни данни и името на текущия файл. Ако задачата не е записана, преди това получавате покана да я запишете.

PromptSave

Ако отговорите с "Yes", се отваря диалог за запис на файл. Изберете име и натиснете "Save". Така ще запазите текущите данни, преди да бъдат изчистени. Ако отговорите с "Cancel" се отказвате от командата и текущото положение се запазва.

Отваряне

Отварянето на съществуващ файл от диска става с бутона Open. Показва се диалог за избор на файл. По подразбиране се виждат файлове с разширение "*.cpd". Ако търсите "*.txt" файл, трябва да превключите типа на файла в долната част на диалога. Намерете желания файл и кликнете два пъти върху него или го маркирайте и натиснете "Open". Името на файла се изписва в горната част на прозореца на CalcPad.

Записване

Записът на файл става с бутона Save. Показва се диалог за избор на файл. Избeрете папка и име и натиснете "Save"