КАТЕГОРИЯ:


Основи на алгоритми и програмиране

Лекция номер 4

Основни въпроси Лекция:

1. Свойства на алгоритмите.

2. Видове алгоритми.

3. Основни програмни концепции.

4. езиците за програмиране.

5. Етапи на разработка на софтуер.

алгоритъм Думата произлиза от algorithmi - Латинска форма на писане на името на великия математик IX век. Ал-Khwarizmi, които формулират правилата за извършване на аритметични операции. Първоначално под алгоритмите и правилата разбрани само изпълнява четири аритметични операции върху мулти-ценен номера. След това, това понятие става обикновено се използва да се отнася до последователност от действия, водещи до задачата.

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

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

свойства на алгоритми

1. Sequential алгоритъм изпълнение на команди за краен брой стъпки води до решаване на проблема, за да се постигне целта. Ефективността на разделяне на решаването на проблема за индивидуалните сделки (извършва от изпълнителния по конкретни отбори) - важен собственост на алгоритми, наречени стъпки.

2. Всяка алгоритъм е изградена на базата на определен изпълнител. За изпълнител може да реши проблема с определен алгоритъм, че е необходимо, за да бъде в състояние да разберат и да изпълнява всяко действие предписано команди алгоритъм. Това свойство се нарича алгоритми сигурност (или точност) на алгоритъма. (Например, алгоритъмът показва, че е необходимо да се вземат 3-4 чаши брашно. Какви очила, това означава, 3-4, малко брашно?)

3. Друго важно изискване е, че алгоритмите - производителността (или крайник) алгоритъм. Това означава, че изпълнението на алгоритъма трябва да завършва с краен брой стъпки.

4. гъвкавост. Трябва да се направи Алгоритъмът, така че те биха могли да се възползват от всеки изпълнител за решаване на подобен проблем. (Например, правилата за събиране и умножение на числа, подходящи за всякакви номера, но не за всеки конкретен.)

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



Видове алгоритми

Има следните методи за записване на алгоритми естествен език Псевдокод, графични схеми като програми, езици за програмиране.

Предимството на запис на алгоритъма на естествен език разбиране е достъпна по всяко лице.

Недостатъци пишат алгоритми в естествен език са толкова тромави записи, скъпа, неточности и неясноти.

В псевдо-код - език с безплатна синтаксис близо до естествения език или езици за програмиране, със свойствата:

· Краткост алгоритми;

· Яснота за ограничен брой хора;

· Естественост и лекота на описание, логиката за решаване на проблема;

· Възможността за използване на собствените си символични структури;

· Възможността за предоставяне на алгоритъма с произволна детайлност.

Графичен запис на блок-схеми (алгоритъма) алгоритми, характеризира със следните свойства:

· Използването на графични символи, математически записи и записи в естествен език;

· Яснота;

· Разбиране на алгоритъма за записване от всеки, запознат с алгоритмите;

· Възможността за представянето на един алгоритъм с произволна степен на детайлност

· Използването на прости правила, за да се опише екшън сцени.

Според степента на детайлност алгоритми са разделени в разширената и подробни.

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

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

Когато графичен описанието на алгоритъм прави използването на стандартни графични символи, показана в таблицата

номер Заглавие блок Вид на блок Описание единица
1. Старт, край Старт, край, вход и изход към практиката.
2. ефект Действието на компютри или последователност.
3. състояние Проверете условия за прехода към състоянието на действието.
4. данни въвеждане на данни, изпълнение на изхода на резултатите от действията.

Всички съществуващи алгоритми са разделени в три групи: линеен, разклонен и цикличен.

Linear алгоритъм за всяко изпълнение изисква прилагане еднократно на алгоритъм на действия в определена последователност.

Разклонение алгоритъм описва няколко възможни последователности на действие и за всяко изпълнение изисква прилагане на последователност от действия в зависимост от определени условия.

Цикличното изпълнението на всеки алгоритъм изисква нееднократно изпълнение на една и съща последователност от действия.

Графични изображения на различни видове алгоритми са дадени по-долу

а) линеен б) Разклонение в) Цикличен

алгоритъм алгоритъм алгоритъм

За разлика от линейни алгоритми, в които командите се изпълняват едно след друго, в разклоняване състоянието алгоритми включват, в зависимост от изпълнението или неизпълнението на които работи една или друга команда последователност (серия).

Като условие за разклоняване алгоритъм може да се използва от всички изпълнител ясни изявления, които могат да бъдат наблюдавани (за да е истина), или не е спазен (да бъде фалшива). Подобно изявление може да се изрази като думи, и формула. По този начин, отборът на клон се състои от две понятия и последователности от команди.

клон на отбора, като всяка друга, може да бъде:

· Записано в естествен език;

· Изобразени на форма блокова схема;

· Са кодирани в един език за програмиране.

В кръгов част от поредица от команди извършва многократно. Тази последователност от команди нарича тялото на цикъла.

Типът на цикъл е на линия тяло се изпълнява в продължение на толкова дълго, колкото състоянието. Прилагането на такива цикли е, както следва:
- Докато условието е вярно (истина), тялото на цикъла се изпълнява, когато условие става невалиден, цикълът се прекратява.

Цикълът, както и всяка друга алгоритмична структура, може да бъде:

· Активен на естествен език;

· Изобразени на форма блокова схема;

· Са кодирани в един език за програмиране.

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

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

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

Основни понятия за програмиране

Програма - комплект (или последователност) инструкции (команди) на изпълнител, т.е. в този случай компютъра.

Машина език - набор от команди, които се признават и изпълняват от един компютър (особено на процесора).

Програмиране език - набор от команди (оператори), правилата и споразумения по-удобни за ползване от машинен език.

Компилация (излъчване) - буквално се (превод) - процес превод приключи програмата в един език за програмиране в машинен код на езика. Обратно превод е трудно, като по този начин Компилация в известен смисъл необратим процес.

Компилаторът (съставител) - програма, която произвежда компилация.

Линкер - програма, която поражда задължителни на компилирана програма с файловете на библиотеката. Тя може да се използва за производството на един изпълним, статичен или динамичен звено библиотека.

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

код Object - запис на програма във форма, която може да бъде обработен от хардуер. Тя има разширение .obj.

Изпълнимия файл - програма (.exe), готови за изпълнение.

Съгласно един метод за производство на машинен код програмни езици са разделени на 3 вида:

1) Съставяне. Например, Fortran, Pascal, C. етапа компилация са показани на диаграмата.

2) интерпретирани. Например, Basic. Преводачът (програмата) чете ред от оригиналната програма, генерира машинен код и ги изпълнява незабавно.

3) интерпретират с изготвянето на елементи. Например, Fort.

езици за програмиране

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

Както е показано в по-нататъшното практиката на общуването с компютъра, като език е тромава и неудобно. При използване на тях лесно да се правят грешки, не е записан в порядъка на 1 или 0. Програмата е много трудно да се контролира. Освен това, при програмиране в машинен код, трябва да бъде добре знаете вътрешната структура на компютъра, на принципа на работа на всеки блок. И най-лошото нещо в такъв език, че програмиране в машинен код изисква програмист много време, труд, по-голямо внимание.

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

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

Освен това, системата за програмиране могат да включват:

· Библиотека на стандартни практики,

· дебъгер

· свързващата

· И други обслужващи съоръжения.

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

В света има стотици символни езици за програмиране на различни структури и функции, които могат да бъдат класифицирани според различни критерии.

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

езици за програмиране
Процедурно функционален пъзели Обектно-ориентирано

Водещ разработчик на софтуерни системи в момента са на компанията Microsoft и Borland International.

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

Помислете за някои от езиците за програмиране, за да се увеличи тяхното ниво.

Binary език - в момента не се използва от програмистите.

Hex език - опростяване, като представи четири двоични цифри от един шестнадесетичен. Използва се като допълнение към езика на високо ниво за програмиране на времето критични алгоритми представят фрагменти.

Assembler Език - предназначена да представи в символична форма четливо, написани на машина езикови програми.

Език Macroassembler - разширяване на асемблер. Тя ви позволява да дефинирате и използвате нов, по-мощен отбор.

С език за програмиране - разработен в началото на 70-те години. Тя съчетава предимствата на съвременните езици от високо ниво (по отношение на структури от данни и структури за контрол) и достъп до хардуера на езика на монтаж машина ниво. Въпреки това, синтаксисът е, че разбирането трудно програмиране и планиране.

Основен език (All-цел Symbolic Инструкция за начинаещи кодекс- език многоцелеви символичен инструкция за начинаещи). Тя разработена през 1964 г. за използване от начинаещи. Първоначално работата се извършва само в (интерактивни) тълкуването на интерактивен режим. В смисъл на взискателност и хармония е обратното на Паскал. Независимо от това, Basic е много популярен, особено на компютъра. Има много диалекти, които са несъвместими един с друг. Съвременните диалекти с основните високо развити и много малко прилича своя предшественик.

Език Fortran (Formula Translator), разработен през 1956 г., той се счита за "работен кон" на учени, поради тяхната "фитнес" за провеждане на сложни изчисления и се използва широко за дата, въпреки неговите ограничения и "помия".

Паскал език, разработен през 1970 г. от Норберт Винер, е кръстен на френския математик Блез Паскал. В Pascal напълно въведена структурно програмиране концепция, не само чрез оптимизиране на връзките между фрагменти от програмата, но и със структуриране на данни. Един от най-популярните езици за програмиране.

Modula-2 език, създаден през 1979 г. като Норберт Винер. По същество - Pascal развитие. Неговите функции са по-високо, модулност на програми и фондове са на разположение, за да опише паралелни процеси.

Ada език, разработен през 1979 г. със заповед на Министерството на отбраната за използване в областта на вградените системи с контрол на компютъра, който се нуждае от подкрепата на режим в реално време. Кръстен Аугуста Ада Лъвлейс (дъщеря на Байрон), който е асистент на Чарлз Бабидж, и се смята за първия в света компютърен програмист. Смятан за един универсален език за програмиране. Този език се въвежда строг програмиране дисциплина, която не позволява писане "лоши програми". Въпреки предимствата на програмисти избутва неловкост му.

Logo език за цел да научи децата и се използва в момента. Тя е проста, но много богати функции, включително процедури, графики, и така нататък. D.

Има редица езици, веднъж популярен, но са загубили своите позиции в момента:

· PL / 1 - конгломерат езици Fortran, Algol Cobol -Designed за мейнфрейм и PC почти никога не се използват. Езикът е доста сложно и има такива свойства, които не насърчават писането на правилни, достоверни и визуални програми;

· Cobol - е фокусирана върху обработката на бизнес информация.

· Snobol - проектирана да поддържа текстови данни.

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

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

Един пример за функционален език е език LISP (Списък Processing-списък процес) е разработена и внедрена в Масачузетския технологичен институт през 1959 г., е смятан от специалистите за системите с изкуствен интелект главния програмен език.

Logic програмиране. Логиката и програмирането за дълго време са били не-припокриващи се области на изследване. Само през 1973 г. описанието на езика PROLOG е публикувана за първи път (програмиране в програмирането LOGic- от гледна точка на логиката) централно понятие в логиката програмиране е отношението. Програмата е набор от дефиниции на връзката между предметите и целите. В логика програмиране само трябва да се уточни фактите, на които се основава на алгоритъма, но не за да се определи последователността на стъпките, които трябва да бъдат извършени. Логически програми се различават фундаментално ниска скорост. Тъй като изчисляването извършва чрез опити и грешки (чрез връщане назад). В момента, PC, има изпълнение около две дузини PROLOG'a, някои от които са декорирани във формата на рамки.

Обектно-ориентираното програмиране. Корни объектного ориентирования уходят в одну из ветвей логики, в которой первичной является не отношение, а объект. Прототипом объектно-ориентированного программирования явился язык SIMULA-67 . Но оформилось оно в самостоятельный стиль программ ирония с появлением языка (SMALLTALK-1972 г.), первоначально предназначенного для реализаций функций машинной графики. Этот стиль программирования характеризуется богатыми графическими возможностями и средой программирования, развитой модульной структурой программ. Именно модульность упрощает разработку сложных программных продуктов. Как пример объектно-ориентированного языка можно назвать Visual Basic и Delfi.

Сейчас уже невозможно представить себе жизнь в мире ПК без Интернета. Язык гипертекстовой разметки - HTML (Hyper Text Markur >

Этапы разработки программного обеспечения

1 Формулирование задачи.

На данном этапе решения задачи необходимо: уяснить и четко изложить условие задачи; выбрать исходные переменные; выбрать переменные, подлежащие определению; записать ограничения переменных; записать связи между переменными в виде уравнений, неравенств, таблиц и т.д.

2 Физическа и математически анализ.

Етап включва: потвърждаване на наличието на решения; потвърждение на уникалността на решенията; определение на теоретичните методи да бъдат използвани за решаване на проблема.

3 Числен анализ.

Когато извършите тази стъпка изработка: изборът на най-подходящия метод за числено решаване на проблема; отчитане на специалната математически модел за решаване на проблема; оцени осъществимостта на избрания числен метод приета в алгоритмичен език, вида на персонален компютър, операционна система и т.н.

4 тест решение случай. 7

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

5 Строителство концепция за структурата на алгоритъм и данни.

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

6 Подробности алгоритъм и изграждане на блок схеми.

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

7 Писане програма в текста на алгоритмичен език.

8 Debugging програма.

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

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

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

9 Тестова програма.

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

10 Разработване на документация за софтуера.

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

<== Предишна лекция | На следващата лекция ==>
| Основи на алгоритми и програмиране

; Дата: 01.20.2014; ; Прегледи: 211; Нарушаването на авторските права? ;


Ние ценим Вашето мнение! Беше ли полезна публикуван материал? Да | не



ТЪРСЕНЕ:


Вижте също:



ailback.ru - Edu Doc (2013 - 2017) на година. Тя не е автор на материали, и дава на студентите с безплатно образование и използва! Най-новото допълнение , Al IP: 11.45.9.26
Page генерирана за: 0.066 сек.