Термини

А|Б|В|Г|Д|Е|Ж|З|И|Й|К|Л|М|Н|О|П|Р|С|Т|У|Ф|Х|Ц|Ч|Ш|Щ|Ъ|Ю|Я

A

Алгоритъм

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

Аргумент

Argument: Променлива, която бива подадена на функция или програма. Например в int x = fastPow(2, 27); числата 2 и 27 са аргументи на функцията fastPow().

Ацикличен

Acyclic: Такъв, който не съдържа цикли.

Б

Бан

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

Д

ДАГ

DAG (абревиатура): Насочен, ацикличен граф (НАГ), или Directed Acyclic Graph (DAG), както най-често ще го срещнете. Както си личи от името му, това е граф, чиито ребра са насочени (еднопосочни) и не съдържа цикли (тоест не можете да стигнете от връх на графа пак до себе си). Този тип графи е по-специфичен, тъй като в него са възможни някои алгоритми, които не са приложими произволен граф (динамично оптимиране, топологично сортиране и други).

Данни

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

Дебъгер

Debugger: Програма, която изпълнява кода ни стъпка по стъпка и прави допълнителни проверки за проблеми в него. Ползва се да си намерим грешки, когато той не прави това, което се очаква. Често дебъгерите са вградени в средата за разработка на кода (IDE-то), като например Microsoft Visual Studio Debugger, но има и standalone такива, като например GDB или Valgrind.

Дедлайн

Deadline: Краен срок.

Е

Едиториал

Editorial: Превежда се "уводен документ", но тук ще го ползваме по-скоро като "обяснение" или "решение" на задача или тема от задачи.

Експлицитно

Explicit: Като сме обърнали специално внимание на нещо; когато изрично сме указали нещо. Например в "При пожар ползвайте стълбите, а не асансьора!" експлицитно е указано да се ползват стълбите и също така експлицитно е казано, да не се ползва асансьора. Думата често се бърка с нейния антоним имплицитно, което що-годе може да се преведе като "по подразбиране", тоест когато не споменаваме (премълчаваме) нещо, но то косвено се разбира. Например в "При пожар ползвайте стълбите!", имплицитно е казано да не се ползва асансьора.

Енкапсулация

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

И

ИДЕ

IDE (абревиатура): Интегрирана среда за разработка на код (Integrated Development Environment). Това е кратък начин да обясним, че въпросната среда за програмиране идва с вграден компилатор. Примери за IDE-та са CodeBlocks, Dev-C++, Microsoft Visual Studio и други.

ИМО

IMO (абревиатура): Международна Олимпиада по Математика (МОМ), или International Mathematical Olympiad (IMO), както е позната в останалия свят, е най-престижното състезание по математика за ученици до 12-ти клас на световно ниво. То се провежда ежегодно, като всяка година домакинът е различна страна-участник.

Имплицитно

Implicit: Когато нещо се подразбира; когато косвено следва нещо. Например в "При пожар ползвайте стълбите!" имплицитно е казано, да не се ползва асансьора (не е казано явно, но се подразбира). Думата често се бърка с нейния антоним експлицитно, който означава "изрично" или "категорично" и се ползва, когато нещо явно е указано. В "При пожар ползвайте стълбите!", експлицитно е казано да се ползват стълбите.

Индентация

Indentation: Форматиране на кода, при което всеки ред започва по-навътре (тоест не в най-лявата част на реда) за да придаде по-добър естетически вид (и в общия случай да го направи по-четлив). Често за индентация се ползва табулация, или фиксиран брой шпации (най-често две или четири).

Инициализация

Initialization: Инициализация е първоначалната стойност, която дадена променлива приема. Инициализираме тази променлива, когато я правим равна на дадена стойност, подходяща за начална такава. Различни променливи може да бъде удачно да бъдат инициализирани с различни стойности. Например, ако искаме да намерим сумата на N числа, то би било подходящо да инициализираме резултата (преди да почнем да сумираме) с 0. Ако пък искахме да намерим тяхното произведение, то бихме инициализирали резултата с 1.

Инстанция

Instance: На български понякога се ползва думата "екземпляр" или "представител" на нещо (алгоритъм, задача, клас или структура). Например дадена задача с битови маски е инстанция на класа задачи за динамично оптмиране, или пък обект Point p; е инстанция на структурата Point.

Интерфейс

Interface: Средства (начин) за работа с даден продукт. Най-често се ползва за дизайна на продкути или уеб страници, с които потребителите имат интеракция (UI, User Interface). Той почти винаги е графичен (GUI, Graphical User Interface) - тоест иконки, картинки, таблици, полета за въвеждане на текст и т.н. В наши дни по-рядко интерфейсът е текстов (тоест потребителите задават командите си чрез текстови заявки), като например продукт с такъв интерфейс е линукската конзола.

ИОИ

IOI (абревиатура): Международната Олимпиада по Информатика (МОИ) или International Olympiad in Informatics (IOI), както е позната в останалия свят, е най-престижното състезание по информатика за ученици до 12-ти клас на световно ниво. То се провежда ежегодно, като всяка година домакинът е различна страна-участник (вижте списък с домакините).

К

Каствам

Cast: "Каствам дадена променлива" се ползва когато променяме типа на променлива, най-често с цел дадена операция да се извърши правилно. Два примера биха били:
  1. double threeQuarters = (double)3 / 4;, където кастваме числото 3 да бъде от тип double, тъй като иначе извърешното деление би дало резултат 0, при очакван резултат 0.75.
  2. long long longVar = (long long)12345 * 678910;, където кастваме числото 12345 да бъде от тип long long, тъй като иначе би се получил овърфлоу.

Компилатор

Compiler: Скрипт или програма, която превръща кода ни в разбираем от компютъра (машинен) език. Обикновено компилаторът прилага и редица оптимизации на кода, което го прави значително по-бърз. Примери за компилатори на C/C++ са GNU GCC/GPP (най-разпространеният open source компилатор) и MinGW, което е неговата версия за Windows.

Л

Линк

Link: На български понякога се ползва "връзка". Това е начин за достигане на страница или документ с информация, най-често свързана с текущата тема. Например в края на темата за Tiered Vector ще има референция към пейпъра на тази тема. Синоним на "референция".

М

Метод

Method: Функция, която е част от клас или структура. Често методите дават информация за обекта (например .size()), дават достъп до някои от неговите данни (например .top()), или извършват някаква операция върху тях (например .clear()). Методите най-често се извикват с <име_на_обект>.<име_на_метод>().

Н

НОИ

NOI (абревиатура): Национална Олимпиада по Информатика (НОИ) или National Olympiad in Informatics (NOI) е най-престижното състезание за ученици до 12-ти клас на национално ниво. То се провежда ежегодно, като всяка година домакинът е някой от големите градове в България.

О

Овърфлоу

Overflow: Можете да срещнете българската дума "препълване" за него. Използва най-вече за случая, при който типа на дадена променлива не стига за дадено число и се получава грешен резултат. Например int oVar = 12345 * 678910; би довело до овърфлоу, тъй като резултатът от умножението не би се събрал в 32-битов int.

Оптимизация

Optimization: Подобрение на решението откъм време или памет, най-често чрез ползване на по-бърз алгоритъм, структура данни или програмен трик.

П

Пейпър

Paper: Документ (най-често научен) на дадена тематика. Има точен български превод - "научна статия". Например този документ е хубав пример за пейпър за структурата данни "tiered vector".

Процедура

? В дадената по-долу имплементация има грешка. Можете ли да я намерите?
Procedure: Често се ползва като синоним на функция, но в някои четива се прави малка разлика между тях. Докато функция връща резултат, то процедура само извършва последователност от операции. Пример за процедура би бил (забележете, че функцията е void, тоест не връща резултат):
void printVector(int* a, int n) { fprintf(stdout, "{"); for (int i = 0; i < n - 1; i++) fprintf(stdout, "%d, ", a[i]); fprintf(stdout, "%d}\n", a[n - 1]); }

Р

Рекурсия

Recursion: Виж "Рекурсия".

Ресъбмит

Resubmit: Като глагол може да се ползва за "пращам наново" (за решение на дадена задача), а като съществително - за събмит на задача, по която вече имаме друг събмит. Например сме предали решение, но сме си открили грешка и сме пратили ново (да се надяваме - оправено) решение. Второто решение е ресъбмит.

Референция

Reference: На български понякога се ползва "връзка". Това е начин за достигане на страница или документ с информация, най-често свързана с текущата тема. Например в края на темата за Tiered Vector ще има референция към пейпъра на тази тема. Синоним на "линк".

С

Сорс

Source: Код на програма. Идва от "source code", като обикновено на български ние ползваме втората дума от двойката - "код". Например ето сорса на функция, която вдига числото n на p-та степен.
double pow(double n, int p) { double ret = 1; for (int i = 0; i < p; i++) ret = ret * n; return ret; }

Събмит

Submission: Когато пратим (на жури, или в дадена състезателна система) решение на някоя задача, то това е събмит. В много тренировки и състезания можете да пращате събмити по повече от веднъж, но обикновено накрая само един от тях се зачита (наричан "финален събмит").

Стейт

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

Т

Трики

Tricky: Подвеждащ или сложен. Най-често се ползва за част от алгоритъм или задача, която може да бъде лесно объркана.

Ф

Функция

Function: Понякога наричана още процедура (procedure) или рутина (routine), това е част от кода, която е отделена по специфичен за дадения програмен език начин и извършва определено действие. Тя може да получава аргументи и да връща резултат. Често програмите са съставени от много функции, които взаимодействат една с друга. В C/C++ съществува и специална функция main(), която е вход към програмата. Ето пример за функция с един аргумент, която връща корен трети от аргумента. Вътрешно тя вика (взаимодейства с) друга функция pow().
double cubeRoot(double n) { int sign = 1; if (n < 0) sign = -1, n = -n; double left = 0, right = std::max(1.0, n); while (left + 0.000000001 < right) { double mid = (left + right) / 2.0; if (pow(mid, 3) < n) left = mid; else right = mid; } return sign * right; }

Х

Хардкоднат

Hardcoded: Ползва се за константи, които са директно вкарани в кода, вместо да бъдат четени или генерирани по някакъв начин. Недостатък е, че е трудно да се променят без да се променя кода, което го прави негъвкав. Например ако пишем програма, която прави нещо с различните държави по света и навсякъде в кода (цикли, условни оператори и т.н.) ползваме 196 (което е официалният брой държави по света в момента), то при поява на нова държава ще трябва да променяме кода навсякъде, където сме хардкоднали този брой.

Хендълвам

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

Хинт

Hint: Подсказка, насока.

Ч

Чекер

Checker: Програма, която проверява валидността или верността на резултат от друга програма. В състезателното програмиране има два вида чекери - такъв, който проверява дали резултата от програмата на даден участник е валиден и верен (тъй като понякога има повече от един верен отговор за дадени входни данни), и такъв, който състезателят сам пише (имплементирайки по-бавно, но с по-голяма сигурност вярно решение) за да тества бързото си решение.

Ш

Шорткът

Shortcut: Директният превод е нещо от сорта на "пряк път", но се ползва по-скоро когато правим нещо с цел да спестим време. Например хубаво е да изчисляваме дадено число в кода, но като шорткът просто ползваме хардкодната константа на негово място. Друго значение е примерно клавишна комбинация, която прави последователност от действия (тъй като това намалява нужното време за да го направим ръчно). Шорткътът "Ctrl+A" селектира целия текст в дадена страница или документ, шорткътът "Ctrl+C" го копира, а шорткътът "Ctrl+V" го пейства. Трето значение би било иконка (картинка) или текст, които (подобно на клавишните комбинации) вършат дадена работа вместо нас. Например след като напишем програма можем да я компилираме ръчно и да я пуснем ръчно, но повечето IDE-та имат шорткът , който върши това.

Страницата е посетена 9825 пъти.