C, PHP, VB, .NET

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


Категория ‘Информатика’

* Векторна графика – основни приложения

Публикувано на 21 декември 2020 в раздел Информатика.

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

.

 


* Килобайт, кибибайт и други мерни единици за информация

Публикувано на 07 октомври 2020 в раздел Информатика.

Случвало ли Ви се е да си купите твърд диск или мобилен телефон, които са рекламирани с един капацитет на паметта, но реално да ви излиза, че е по-малък? Вижте например следната картинка – това е твърд диск, който е рекламиран като „4TB“, но в операционната система Windows се показва като 3,63:

В тази статия ще обясня защо се получава така (TLDR: проблемът е в Microsoft, но не само). Прочети още…

.

 


* Исторически аспект за формирането на понятието „Операционна система“

Публикувано на 12 април 2018 в раздел Информатика.

При първите компютри за решаването на всеки нов проблем се е изисквала фундаментална промяна на цялата система. При механичните компютри това е означавало реално да се създаде нов хардуер. След 1924 г. започва все по-честа употреба на „бананови връзки“ (промяна на окабеляването и съответно програмната логика чрез преместването електрически кабел от една връзка в друга чрез жак). Въпреки тези улеснения, нуждата от физическа промяна в системата е била основна спирачка за високо бързодействие на компютри, които трябва да изпълняват повече от една програма. След въвеждането на регенеративна оперативна памет от Джон Атанасов (1937 – 1942 г.) започва да се появява теоретична възможност за цифрово програмиране на компютритe, т.е. да могат да решават различни задачи без да има нужда от промяна в хардуера им. Прочети още…

.

 


* Преоразмеряване на изображения

Публикувано на 01 март 2018 в раздел Информатика.

Нека за удобство приемем, че работим със стандарт RGB24. Вече знаем, че за всеки пиксел се пазят три числа в интервала [0; 255]. Искаме на направим т.нар. „upscale“ – да направим изображението по-голямо (с по-голям брой пиксели по хоризонтала и вертикала). Има три популярни алгоритъма за извършване на това и ще разгледаме всеки един от тях поотделно с прости примери.

Алгоритъм „най-близък съсед“ (nearest neighbor)

Нека започнем с едно примерно квадратче от 2х2 пиксела: Прочети още…

.

 


* Ентропно кодиране

Публикувано на 10 септември 2017 в раздел Информатика.

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

.

 


* Корекция на грешки с код на Хеминг

Публикувано на 04 септември 2017 в раздел Информатика.

Когато четем и записваме информация на хард диска на локалния компютър, рядко се замисляме „какво ще се случи ако стане проблем“. Грешките се случват толкова рядко, че този проблем е пренебрежим. В някои езици за програмиране компилаторите ни принуждават да следим за Input/Output изключения при четенето на файлове, но това често ни се струва като досадно задължение. И все пак проблемът е фундаментален – имаме изпращане на информация от една точка в друга през комуникационен канал, но какво ще се случи ако има някаква грешка по време на преноса? Вече се досещате, че проблемът е често наличен при преноса на информация между два компютъра през мрежа, но може и да се изненадате, че същия проблем е наличен дори при комуникацията между централем процесор и рам памет! Прочети още…

.

 


* Алгоритми – словесно описание и блок-схеми

Публикувано на 22 октомври 2015 в раздел Информатика.

Основно понятие при обработката на информация е алгоритъм. Всички изчисления в една компютърна програма се правят по предварително определени правила. Съвкупност от логически свързани правила ще наричаме алгоритъм. Като формална дефиниция ще приемем следната:

Деф. Алгоритъм наричаме система от правила, които определят последователност от изчислителни операции, прилагането на които води до решението на дадена задача. Прочети още…

.

 


* Запазване на изображения

Публикувано на 22 октомври 2015 в раздел Информатика.

Дотук видяхме, че когато запазваме информация на компютър (която не е изначало в основния за компютъра двоичен код), ние извършваме процес на кодиране (преобразуване на информацията в двоичен код посредством алгоритъм), а когато я четем извършваме процес на декодиране (превръщане на двоичния код обратно в удобна за ползване от човек информация). Изображенията не правят изключение. Когато искаме да запазим графики или снимки на компютър, ние ги кодираме в определен графичен файлов формат. Тук ще разгледаме най-популярните графични формати – BMP, GIF, PNG, JPEG и TIFF. Прочети още…

.

 


* Запазване на символи

Публикувано на 05 октомври 2015 в раздел Информатика.

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

.

 


* Числа с плаваща запетая

Публикувано на 21 юли 2015 в раздел Информатика.

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

.