C, PHP, VB, .NET

Дневникът на Филип Петров


* Проблемите на десетичната запетая

Публикувано на 13 март 2012 в раздел Методика.

По една или друга причина ми се е налагало и даже продължава да ми се налага да поддържам кореспонденция с американци. Забелязал съм, че колегите ми (българи) традиционно имаха проблеми с „десетичната запетая“ – например ако трябва да кажем на клиент, че дължи 12 долара и 32 цента. Как да изпишем числото, за да не стават недоразумения?

През Средновековието е било прието да се използва черта над единиците. Тоест горното число би се изписало така: 1232. По-късно е било прието да се слага вертикална черта – разделител, т.е. 12|32. Друг опит за налагане на стандарт (който впрочем понякога се използва и до днес при изписване на парични суми) е 1232 (но може да се сбърка с „дванадесет на степен тридесет и втора“). С напредване на времето разделителя се наложил от ислямските страни (а от там и в Европа) със специален символ (ˌ), който много прилича на запетайката или точката. Именно поради приликата за простота (за да няма още един допълнителен бутон на пишещите машини например) впоследствие били приети именно те, т.е. изписването на числото 12ˌ32 станало 12,32 или 12.32. За международен стандарт се наложил френският (със запетайка), но по стара традиция англичаните напук на французите решили да използват точка. От там и започнал „разколът“ между „десетична запетая“ и „десетична точка“.

Обратно на въпроса – с оглед на казаното по-горе е ясно, че в България е приета именно „десетичната запетая“, а в САЩ е приета „десетичната точка“. Тоест от примера:

  • В България пишем: 12,32
  • В САЩ пишат: 12.32

Много често съм виждал грешката на мои колеги (да си призная честно и аз съм я правил) да се изпише „$12,32“. Тук грешката не е фрапантна и няма нищо скандално (американците разбират какво имате всъщност предвид), но объркването става доста по-голямо при големи числа – например 321,525 (триста двадесет и едно цяло и петстотин двадесет и пет). Проблемът е, че освен всичко друго американците все още използват запетайката като разделител по тройки на големите числа! Тоест:

  • В България 321,525 се чете като „триста двадесет и едно цяло и петстотин двадесет и пет“
  • В САЩ 321,525 се чете като „триста двадесет и една хиляди петстотин двадесет и пет“

Ние също разделяме числата по тройки, но използваме интервал за разделител (както е по международния стандарт). И така виждате, че объркването може всъщност да стане доста по-голямо отколкото привидно разликата между една запетайка и точка е.

Объркване има не само със запетаята от наша страна, но и с точката. У нас от училище погрешно е прието точката да се използва и като знак за умножение. Международният стандарт изисква специален символ за умножение, като по-конкретно той е ×. Забележете, че това не е „x“, с което много често се бърка. Ние също сме го приели, но се използва само в „малките класове“. Проблемът е, че когато пишем ръкописно много често бъркаме този знак именно с „неизвестното х“ и впоследствие текста получава двузначност. Наистина „2×y“, което е „2 умножено по y“ може доста лесно да се сбърка със съкратения запис „2xy“, което е „2 умножено по x умонжено по y“. Именно поради тази причина у нас (и в много други страни) е приет друг символ за умножение: · (средната точка). Или горният пример би станал „2·y“, при което няма двузначност и очевидно е „2 умножено по y“. Ние в училище обаче доста погрешно свикваме да я изписваме като съвсем обикновена точка или от примера това ще е „2.y“. Това при нас доскоро не правеше сериозен проблем, защото ние не използваме обикновената точка за нищо друго (освен край на изречение, което няма отношение в математическите изрази). Но както можахте лесно да се досетите – това наше действие отново обърква американците и другите англоговорящи. Ето няколко примера:

  • Изписване по международен стандарт (използва се и у нас и в САЩ): 2×a×b
  • Друго правилно изписване на български език: 2·a·b
  • Неправилно, но прието за вярно изписване на български език: 2.a.b
  • Съкратен запис (използва се навсякъде): 2ab

Оказва се, че ако използваме неправилното изписване на български (с точката) и напишем 12.15 („дванадесет умножено по петнадесет“ на български), то американецът ще го прочете като едно число „дванадесет цяло и петнадесет“.

Проблемът всъщност не е чак толкова голям в международната комуникация, а е по-скоро належащ за българското образование (и всички други използващи „десетична запетая“). И по-точно проблемът се появява при всички ученици изучаващи програмиране в учебния предмет „информатика“. В програмирането е прието за умножение да се използва * (звезда), докато точката се използва за десетичен разделител (както е в САЩ, откъдето идва и тази практика). Докато при американците малката разлика в използването на * вместо × не е никакъв сериозен проблем (за нас също не е), то у нас наложителното използване на . (точка) вместо десетична , (запетая) в програмирането води до голямо объркване в младото поколение занимаващо се с информатика.

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

Признавам си – не съм се интересувал от изследванията в тази посока (убеден съм, че такива има и то сериозни), но мога да споделя личното си наблюдение. А то е, че масово ученици и студенти от паралелки свързани с информатиката и информационните технологии започват да използват в свои домашни работи/доклади „десетична точка“ вместо „десетична запетая“ в изписване на числа извън програмен код. Това се наблюдава само при текст писан на компютър – ръкописно си изписват правилно запетаята като разделител. Смея да твърдя, че това разминаване е именно резултат от наложената практика в програмирането от една страна, комбиниран със занижен контрол от страна на преподавателите (главно по математика) от друга.

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

И как да не се объркват учениците, като ние на няколко пъти през учебния процес им променяме знака за умножение? В „малките класове“ започват с ×, после изведнъж го заменят с ·, тихомълком им позволяваме да го заменят с ., а накрая в програмирането ги караме да го изписват като *. Виждате, че един фундаментален за математиката знак бива подменен цели четири пъти в процеса на обучение.

Затова аз смятам, че при всички случаи трябва да забравим за обикновената точка като символ за умножение и да си спестим поне един проблем. Не само, че е неправилно (извън стандарта), но и допълнително усложнява проблемите описани по-горе. За нещастие писането на символа · (средна точка) на компютър не е много лесно, защото го няма изнесен на клавиатурата. Точно по тази причина аз самия не го използвам и в много мои статии съм писал умножението с обикновена точка. Може би поставянето на символа · над обикновената точка вместо знака „V“ (горе вляво от backspace) е едно възможно решение, но само ако решим, че напълно се отказваме от самостоятелни клавиатури само на БДС (на такива няма да можем да пишем римски цифри ако няма V). Такива клавиатури на компютрите днес предполагам, че няма, но „осакатяването“ на стандарта заради решението на частен проблем също едва ли е правилно решение.

А вие какво мислите по въпроса със символа „·“? Заслужава ли си отделен бутон, или пък трябва да се търси някаква реорганизация на съществуващите? А бихте ли го използвали ако го има? Аз лично бих лобирал за още един ред бутони с често използвани символи (умножение, истинския знак за деление ÷, по-често използваните гръцки букви,  и т.н.). Лично за себе си например спокойно бих се лишил от „Num Pad“ за сметка на тях.

 



9 коментара


  1. Иван каза:

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

    В училище децата ги учат да умножават ябълки, напр. „На 5 места имаме по 4 ябълки. Колко ябълки имаме?“ В търсене на частното, се губи общото. Децата не се научават да умножават хляб, сирене и салам, напр. „Имаме 3 вида хляб, 4 вида сирене и 5 вида салам. Колко вида сандвичи можем да направим?“

  2. Не си прав – учат се. Просто в по-горните класове.

  3. Иван каза:

    Къде и кога? Аз си признавам, че съм учил в сравнително елитно училище – Първа мъжка в София. Вярно че беше отдавна и че много забравям, но не си спомням да сме учили такива неща.

    И мен също ме изумява как в училище (че дори и в университета) се пропускат основни концепции като „фигурните числа“ (или като това „как да разделяме цялата и дробната част на числата: с точка или със запетая“), а същевременнно се обръща внимание на по-сложни въпроси от сорта на „решаване на хомогенни диференциални уравнения от нулева степен“ (каквото и да означава това :-)

  4. Доколкото знам в училище вече се изучават елементи от комбинаториката, а това включва знанията необходими за решаването на задачата, която написа. Когато аз учих беше в СИП или ЗИП…

  5. mertol каза:

    Не ни трябват други бутони по клавиатурата. Искам клавиатурите и символите ни в училище да са стандартни.

  6. А бутони на стандартните клавиатури по принцип?

  7. Валентин каза:

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

    Отностно клавиетурата-ако сме на ясно няма да има проблем.

    Поздрави,
    Валентин

  8. Zer0C001 каза:

    Според мен най-доброто решение е да се ползват за умножение само × и * ( които дори и визуално са доста близки ) и вместо · да се сложи символ ×.
    А за десетичния разделител, в училище да се обясняват ( както е обяснено в статията ) и приемат за верни и двата стандартни десетични разделителя ( . и , ).

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

  9. Zer0C001 – аз съм против, защото „x“ и „×“ много си приличат, а „неизвестното x“ се е наложило прекалено много в задачите.

Добави коментар

Адресът на електронната поща няма да се публикува


*