ПредишенСледващото

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

Така че, на първо място - на алгоритъма! Какво е един алгоритъм? - краен последователност от действия (предписания), изпълнението на което ви позволява да се постигне поставените цели.

Алгоритъмът е винаги направена за определен изпълнител. Например, една кулинарна рецепта на някои ястия, или инструкции за употреба на желязо - са алгоритми ориентирани човек. тип с инструкции:
  1. Определете А клавиатура;
  2. Нека B е равна на 10;
  3. Fold А и В; резултат е написан на C;
  4. Ако C е по-голяма от 100 след това преминете към стъпка 8. по различен начин към следващата точка.
  5. ...
  6. ...
  7. ...
  8. спиране

- типичен пример на алгоритъм, изпълнителя на който може да бъде компютър.

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

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

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

В ранните дни на компютърна програма технология предназначени директно като последователност от инструкции на процесора, т.е. машина език. Това е работа на много време, което изисква, в допълнение, програмист добри познания по компютърна архитектура. Скоро, идеята да се създаде система от символи за писане на алгоритми във форма разбираема за хората (т.е. алгоритмичен език за програмиране), и че се превежда програма, която поставя този алгоритъм в машинен език. Използването на езици за програмиране значително увеличава "първоначалното знание" на компютъра. Сега на разположение операции като:
  • заетост номера или друга определена променлива (в действителност, в клетката памет);
  • аритметични операции, както и много други математически операции, като например степенуване, корен квадратен, изчисляване на тригонометрични функции ценности и др.;
  • операция за сравнение;
  • прехвърляне на контрол дава на оператора;
  • показване на символи от клавиатурата и въвеждане на данни;
  • формиране на изображение на екрана;
  • и т.н.

В този случай, това е възможно да се работи не само с броя, но и със символично информация изрично.

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

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

Как да пишем алгоритмите?
За съжаление, отговорът на този въпрос е ясно и повече или по-пълна, по принцип, едва ли е възможно! Това е като да се опитва да отговори на въпроса: как се рисува, да речем, или как да пишат поезия? Работата е там, че процесът на алгоритъма и, в крайна сметка, програмата - творчески процес. Независимо от това, на художника или поета, освен талант, трябва да притежават някои общи техники за писане на поезия или композиране картини. Това важи и за алгоритмите за компилиране.

След това ще разгледаме няколко примера, които ще спомогнат за определяне на общи принципи, според които алгоритми за компютри се строят.

Пример 1. Създаване на алгоритъм за търсене на предварително определен максимален брой между номера на последователност на N.

- "И какво предстои - Погледнах и избра" - можете да плаче. Да, ние наистина може да се види и да избере, но компютърът не може да направи. И какво от това? Той може да събира, изважда, дели, умножете, да сравните броя на ...

Ние означаваме с А1, дадени числа. А2. ... и п. Представяме допълнителни променливи: максимално - максималния брой и аз - сериен номер на елемента.

Ние се опише с думи възможно последователност от действия:
  1. Въведете броя на: п, А1. А2. ... и п;
  2. Задаване на стойност на променливата макс А1;
  3. Променлива и присвоява стойност 2;
  4. Ако AI> макс, след това определя стойността на променливата макс AI;
  5. Увеличаване на стойността на променливата I от един;
  6. Ако аз> п, а след това се доведе до макс екрана, в противен случай преминете към стъпка 4;

Аналогично могат да бъдат представени по-ясно - в блок диаграма форма.

Пример 2. Създаване на алгоритъм за търсене на корените на квадратното уравнение.

Алгоритъмът може да се постави добре познати формула:

Можем да предоставим само за изключения, или състави алгоритъм няма да бъде универсален (няма да се опише напълно в процеса на изчисления). Има три ситуации:
  1. а = 0, уравнението дегенерира в линейна BX + С = 0 корените X = -С / B;
  2. а = 0 и В = 0. уравнение е безсмислено;
  3. (B 2 -4ac)<0 – уравнение имеет комплексные корни, вещественные и мнимые части которых. соответственно, равны:

По-долу е схема на алгоритъм на потока:

При съставянето на алгоритъма -
  • Можете да използвате само тези инструкции, което е в състояние да изпълнява художник (компютър). Ето защо, трябва да сте запознати с художника и възможностите да се научат как да се намали решаването на даден проблем да се поредица от команди;
  • се предоставя (помисли) всички възможни варианти на работа с компютър или друг процес, включително машинни стъпки в случай на невалидни входни данни.

Връщайки се към писането на програми.
След като бъде извършена алгоритъма (на хартия или "глава"), е необходимо да се премине на алгоритмичен език. Известно е, че (и дори се оказа), че алгоритъмът на всякаква сложност може да се реализира с помощта на няколко оператори, например, условен израз (IF) и изявление безусловно скок (GOTO). Например, прилагането на алгоритъм за търсене на максималния брой (за краткост раздели описват и обработва входния масив елементи са пропуснати):

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

Съгласете се, че изглежда много по-елегантен (и, освен това, в кратко).

При съставянето на програмата -
  • Ние не трябва да се ограничаваме само двама оператори (ако и GOTO). Освен това, трябва да се избягва използването на изявлението GOTO;
  • използването на различни оператори, специално предназначена за изпълнението на тези стандартни алгоритми, позволява да се направи програмата по-компактен и по-добре структуриран.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!