C, PHP, VB, .NET

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


Авторски архив

* Библиотека и гараж

Публикувано на 22 септември 2015 в раздел Семейни.

Реших да махна страниците Библиотека и Гараж от главното меню. Вече са достъпни само от тук:

Списък с моите книги в домашната библиотека:

https://www.cphpvb.net/library/

Списък с резервните части в гаража:

https://www.cphpvb.net/garage/

.

 


* Променливи, оператори и константи във VBA

Публикувано на 22 септември 2015 в раздел Макроси VBA.

VBA включва всички стандартни примитивни типове данни, които вече са ви познати от уводните курсове по програмиране. Декрарирането на променлива се извършва по следния начин: Прочети още...

.

 


* Visual Basic for Applications – въведение

Публикувано на 21 септември 2015 в раздел Макроси VBA.

Visual Basic for Applications (VBA) е програмен език от високо ниво, който най-често се използва за автоматизиране на повтарящи се операции вътре в процесите на съществуващи софтуерни продукти. Съдържа някои елементи от обектно-ориентираното програмиране (референции към обекти в паметта), но като цяло можем да го приемем за процедурен език. Създаден е от Майкрософт и се използва масово в техния широко известен офис пакет, но също така може да се срещне в редица други софтуерни продукти като Microsoft Visio, CorelDraw, Corel PhotoPaint, AutoCad, WordPerfect и др. Основната и най-честно използвана функционалност на езика е възможността почти всички действия, които човек извършва с даден софтуерен продукт, да може да бъдат възпроизведени от компютър. Ако например ни се налага да извършим многократно сложни еднотипни операции върху различни обекти (например да преформатираме голям текстов документ по даден шаблон, да приложим поредица от филтри върху множество снимки, и т.н.), ние можем да запишем шаблон за тези действия в програмен код наречен "макрос", след което просто да изпълняваме този макрос с еднократно натискане на бутон. Прочети още...

.

 


* Никито

Публикувано на 12 септември 2015 в раздел Семейни.

Никола Петров. 3800 гр. на 51 см. :) Прочети още...

.

 


* Генерични методи и класове

Публикувано на 06 септември 2015 в раздел ПИК3 Java.

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

Генеричните типове са продължение на тази идея, което я извежда още по-далеч - вече може да правите методи, които не просто работят с всички еднотипни обекти, а работят с каквито и да е обекти, включително ако между тях няма наследствени връзки. Особено удобни са за "контейнери" на информация - когато не се интересуваме от действията, които извършва подадения обект, а просто искаме да съхраним неговата информация. Вече сте виждали това при колекциите (Collections) - например ArrayList<String> и ArrayList<Integer> си е все един и същи клас ArrayList, който е генеричен и работи с каквито и да е обекти (типа им указваме чрез ъгловите скоби). Тук първо ще дадем кратки примери, а в края на статията ще покажем един обобщен. Прочети още...

.

 


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

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

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

.

 


* Задължителни и незадължителни изключения

Публикувано на 19 юли 2015 в раздел ПИК3 Java.

В статията за изключения дефинирани от потребителя, а и във всички следващи, правихме изключенията като наследници на клас Exception. Това са т.нар. "checked" изключения. Ще си позволя да използвам термина като "задължителни изключения", а не да използвам буквалния превод (проверени). Щом едно изключение е задължително, то трябва: Прочети още...

.

 


* Курсори

Публикувано на 19 юли 2015 в раздел Бази от Данни.

Курсорите не съдържат нищо по-особено от обикновена резултатна таблица (т.е. result set) от SELECT заявка. Това, което ги прави по-специални, е че MySQL ни позволява да обхождаме тази резултатна таблица с цикли с помощта на итератор. Може да си представите курсора като референция (или указател) към пореден ред от дадена таблица. Прочети още...

.

 


* Задача от контролно 2 – 2015 г. вариант 2

Публикувано на 17 юни 2015 в раздел Бази от Данни.

Има ежегоден рок фестивал, в който се провеждат поредица от концерти в няколко поредни дни. Във всеки отделен ден свирят по няколко групи на три различни сцени – една голяма и две малки. По правило всеки ден на голямата сцена свирят две популярни групи – една подгряваща и една основна (headliners). През останалото време на малките сцени един след друг свирят по-неизвестни състави. Трябва да се състави база от данни, в която да се пази следната информация: Прочети още...

.

 


* Задача от контролно 2 – 2015 г. вариант 1

Публикувано на 17 юни 2015 в раздел Бази от Данни.

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

.