Информатика, алгоритъм и програма

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

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

  • неговите команди не позволяват многократно изпълнение;
  • предоставени са инструкции за всички възможни сценарии.

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

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

Какви свойства трябва да притежава алгоритъмът? Нека ги изброим:

  • дискретност 2 - алгоритъмът е разделен на отделни елементарни стъпки;
  • сигурност - всяка команда еднозначно определя действието на изпълнителя;
  • ограниченост (ефективност) -- алгоритъмът трябва да завърши в краен брой стъпки.

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

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

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

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

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

Днес в света има много езици за програмиране.предназначени за различни области на приложение. Ще използваме Logo 6 в нашия курс, език, специално създаден за преподаване на основите на програмирането. Този език е много прост (между другото, за разлика от професионалните езици за програмиране, той ви позволява да пишете команди на български), но в същото време допринася за формирането на умения, които след това, ако желаете, лесно могат да преминат към работа с такива популярни езици като C или Pascal. Езикът на логото е особено известен със своята „графика на костенурка“. Ще говорим какво е това в следващата глава.