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

Бураков П.В., Косовцева Т.Р. Информатика. Алгоритми и програмиране. Navchalny pos_bnik.-SPb NDU ITMO, 2013. - 83 с.

Начален учебник със задачи за студенти от икономически специалности 080100 „Икономика” на Факултета по хуманитарни науки, които изучават дисциплината „Информатика”. Ръководството е въвеждащ курс за алгоритми седмица по ден и програмиране с помощта на Turbo Pascal. Pos_bnik да отмъсти на много задници. Представени са теоретичните аспекти на практическите алгоритми и основите на програмирането. Друга част от началния асистент е провеждането на лабораторно занятие.

През 2009 г. университетът стана победител в богат конкурс, в резултат на който бяха избрани 12 водещи университета в Русия, които получиха категорията „Национален предпоследен университет“. Министерството на образованието и науката на Руската федерация одобри Програмата за развитие на държавното образователно учреждение за висше професионално образование "Санкт-Петербургски държавен университет по информационни технологии, мех ники и оптика" за 2009-2018 г.

© Санкт Петербургски национален изследователски университет по информационни технологии, механика и оптика, 2013 © P.V. Бураков, Т. Р. Косовцева

Постановка на проблема................................................. ..................................................... ........... .......................

Разработване на математически модел............................................. .........................................................

Избор на метод за числено решение............................................. ......................................................... ....

Разбиране на алгоритъма и структурата на данните ............................................ ........ ...................................

Изпълнение на алгоритъма като програма...................................... ....... .................................

Настройване и тестване на програмата ............................................. ......................................................... ..............

Справяне със задачи на компютър................................................. ......... .... ..................................... .................. ..... ...

РАЗРАБОТВАНЕ НА АЛГОРИТЪМ ЗА РЕШАВАНЕ НА ПРОБЛЕМА.................................................. ......................... ......................... ......

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

Схема на алгоритъма..................................................... ..................................................... ........... ........................

Структурирани схеми на алгоритми.............................................. ...... .................................

СПЕЦИФИКАЦИИ НА ИЗПЪЛНЕНИЕТО НА АЛГОРИТЪМА................................................. ......................................................... .

Критерии за избор на филмова програма..................................... .........................................

СТРУКТУРА И ЕЛЕМЕНТИ НА ПРОГРАМАТА.................................................. ...... .................................

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

Азбука и речник TurboPascal (TPascal).......................................... ......... ............................

Програмна структура ................................................ ... ................................................ ......... ...............

ВИДОВЕ ДАННИ ............................................. .... .............................................. .......... .................................

Скаларни типове данни ............................................. ..................................................... ........... ............

Типове структурирани данни ............................................. ..................................................... ...........

ВЪВЕДЕНИЕ-ВИСНОК ДАННИ.................................................. ...... ............................................ ............ ............................

Въвеждащи процедури................................................. .................... .............................. ........................ ..........

ОПЕРАТОРИ................................................. .. ................................................ ......... ................................................

Информация зад кулисите ............................................. ............................ ............................. ............................................................. .

Прощаване на операторите................................................. ... ................................................ ......... ...................

Структурни оператори................................................. ... ................................................ ......... ..........

Умни оператори..................................................... ... ................................................ ......... .............

Оператори за цикъл................................................. ......... ................................................ ................. ............................

МАСИВИ................................................. .. ................................................ ......................................................... .

Дії над масивите............................................. ..................................................... ........... ............

Dii над елементите на масива....................................... ......... ................................................ ..............

Операции с матрици..................................................... ..................................................... ........... ...............

ПРОЦЕДУРИ И ФУНКЦИИ ............................................. ..................................................... ........... ...............

Необходимостта от структуриране в програмирането............................................. ........................ ..............

Подпрограми за Movi ТPascal............................................. ...... ............................................ ............ ..

Процедури................................................. ......................................................... ............. ...................................

Функции ................................................. ......................................................... ............ .................................

Механизъм за прехвърляне на параметри............................................. ...... ............................................ .......

ФАЙЛОВЕ.............................................. ................................................. .. ................................................ ........

Информация зад кулисите ............................................. ............................ ............................. ............................................................. .

Описание на типа файл ............................................. ...... ............................................ ............ .........

Характеристики на обработката на файлове ............................................. ...... ............................................ ............ ......

Текстови файлове ................................................ ......................................................... ..........................................

ЛАБОРАТОРЕН ПРАКТИКУМ................................................ ................. ................................. ........................ .........

Лабораторен робот 1.

Програмиране на линейни

разплитане на младоженците

изчислителни процеси................................................ ... ................................................ ......... ..........

Лабораторен робот №2.

Циклични изчислителни процеси..................................................... .....

Лабораторен робот №3.

Операции с масиви..................................................... ..... ............

Лабораторен робот №4.

Файлови операции................................................. .................... ......................

Лабораторен робот 5. Процедури и функции.................................................. ......... ........................

Библиография................................................. ................................. ................. ....................................... ...

ЕЛЕМЕНТИ НА ПРАКТИЧЕСКО РАЗРАБОТВАНЕ НА ТЕХНОЛОГИИ НА КОМПЮТЪР

Съвременното производство на персонален компютър включва следните основни етапи.

1. Постановка на проблема.

2. Разработване на математически модел.

3. Изберете метода на числено решение за rozrakhunkov задачи.

4. Обсъждане на алгоритъма за разкриване на структурата на данните.

5. Реализация на алгоритъма като програма.

6. Настройка и тестване на програми.

7. Решаване на задачи на компютър, числени експерименти и анализ на резултатите.

Постановка на проблема

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

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

Необходимо е да се изчисли последната стъпка, която да премине през тялото, което се срутва с променлива течливост. Първоначалната течливост на тялото остава равна на 0. При следващото ниво на надеждност скоростта може да бъде еднакво ускорена. Пакетите на Vikoristan от стандартните програми не се прехвърлят.

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

Разработване на математически модел

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

Математическият модел на задачата, формулиран в Приложение 1, е формулата: S = 0,5 a t 2, където основната променлива е часът t с параметъра на ускорението. Формулата показва депозита между пътя на гълъба и е в съответствие със закона на механиката.

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

S = ∫ V (t) dt,

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

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

Изберете метода за числено решение

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

∫ f (x) dx ≈ ∆ x ∑ f (x i) , където ∆х - време на интегриране (const), ∆х=(b-a)/n,

x i+1 =xi +∆ x, x1 =a, xn+1 =b

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

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

Разбиране на алгоритъма и структурата на данните

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

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

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

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

Реализация на алгоритъма като програма

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

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

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

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

Настройка и тестване на програми

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

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

Според различни автори фазата на разработване и тестване на програмите отнема от 50 до 70% от времето, изразходвано за всички етапи на създаване на програми и вземане на решения. Във връзка с важността и трудността на етапа на разработка, всички системи за ежедневно програмиране имат специални функции, които подпомагат откриването и отстраняването на грешки. Още на етапа на разработка е необходимо алгоритъмът да прехвърли най-простите управляващи функции, които се въвеждат в програмата, които се разделят на: други въведени данни веднага след като бъдат прочетени в паметта на машината (luna-druk) и други междинни резултати по ключови точки. Освен това е необходимо да се разбере колкото е възможно повече структурата на програмата за начина, по който тя е разделена на модули, които се изпълняват под формата на подпрограми или процедури, както и структурата на езика, който е най-опростен и усвоени от програмиста.

Справяне със задачи на компютър

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

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

Контролирайте храната

1. Какви фактори влияят върху ефективността на компютърното програмиране?

2. Реорганизирайте стъпките за решаване на задачи на вашия компютър.

3. Какви са основните предимства на математическия модел на проблема?

4. Назовете основните параметри на алгоритмите.

5. Какви характеристики трябва да се вземат предвид при разработването на програми на компютър?

6. Как ще завърши разработката на алгоритъма?

НАЛАГАНЕ НА АЛГОРИТЪМА ЗА РЕШАВАНЕ НА ЗАДАЧАТА

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

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

Важност. Всички действия, които трябва да се извършат, са строго посочени.

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

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

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

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

Коректност. Способността на алгоритъма да произвежда правилни резултати въз основа на зададените задачи.

Всяко правило се записва в алгоритъма като предложение за команда, което се разбира от Viconnian към алгоритъма като команда към Viconnian.

Нека да разгледаме алгоритмите за отприщване на редица поръчки. Завданя 1. Съставете алгоритъма за изчисляване на x по формулата

x = a (r − q) 2, където p ≠ -12.

р+12

1. Кочан;

2. Изчислете b: = p + 12;

3. Изчислете c:= r – q;

4. Изчислете d: = c;

5. Изчислете e: = ad;

6. Изчислете x:= e/b;

7. Запишете резултата: x;

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

- Змини. И така, чрез b означаваме p + 12 чрез c - разликата между r - q. Записвайте

b:= p+12 означава, че първоначално сумата p + 12 се намира за предишната стойност на p, а след това тази стойност се присвоява на променливата b.

Като се има предвид, че a, p, q, r имат различни стойности, можем да изчислим разликата чрез изчисление x. Следователно алгоритъмът ви позволява да изберете не само една, а цял клас задачи. Тази особеност на алгоритъма се нарича масов алгоритъм. Възможни са алгоритми, които зависят от повече от една задача.

Стойностите a, p, q, r, 12 сумират изходните данни за алгоритъма, 12

- Постоянна складова информация, a, p, q, r - променлива складова информация. Стойностите b, c, d, e са допълнителни променливи, x е резултатът от алгоритъма.

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

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

Завданя 2. Зад формулата

x = − b ± b 2 − 4 ac сгънете алгоритъма за разплитане на квадратно уравнение

ax2 + bx + c = 0 (a ≠ 0).

1. Кочан;

2. p: = 2a;

3. D:= b 2 - 4ac;

4. Ако D ≥ 0, тогава преминете към стъпка 5 или в противен случай към стъпка 10;

5. d: = D;

6. x 1 : = − b − d; стр

7. x 2 : = − b + d; стр

8. Запишете резултата: x 1, х2;

9. Отидете на стъпка 11;

10. Запишете резултата: рангът на активните корени няма значение;

11. Кинети.

В бъдеще алгоритъмът е напълно зависим от командата, така че алгоритъмът за решаване на задачи 2 вече не е линеен. В допълнение към аритметичните операции и операциите с квадратен корен, изчислителният процес замества правило 4 с операцията за обръщане на ума: в зависимост от избрания ум (sic) или неназования ум (и) се избира едно от двете възможни продължения. Такъв алгоритъм се нарича дешифриране. Операция, която може да промени последователността от правила в алгоритъм, се нарича оператор keruvanny.

Командите, които показват реда на операциите, се разделят на два вида: команди умствен преходтази команда луд преход. Преди командите за мисловен преход, например, правило 4 се прилага към алгоритъма за решаване на задача 2. Правило 9: Отмъщение за непрекъснат преход.

Командите за ментален преход са задължителни и логични за менталния тип: ако α ◊ β , то ... (където ◊ е един от операторите > , ≥ ,< , ≤ , = , ≠ ).

Схема на алгоритъма

Диаграмата на алгоритъма е графично представяне на алгоритъма с допълнителна структура от взаимосвързани блокове. Кожният блок е изобразен като пееща фигура. Блоковете на веригата са свързани с дъги. Дъгите показват реда на изправяне на блоковете според алгоритъма. Видовете блокове са представени в Malyunka 1.

Фиг. 1. Типове блокове

Правият нож ще бъде поставен на новия етап на изчисление S, наречен функционален блок, или процесът (фиг. 1, а). Нарича се ромб, поставен в нов ум P единица за инверсия на мозъка, или решения (фиг. 1 b). Използва се за контрол на реда на блоковете в диаграмата на алгоритъма. От функционалния блок излиза една стрелка, а от блока за обръщане на умивалник две стрелки. Остава да се обясни, че в резултат на виконичната команда за проверка на ума се отстранява или виконичният (sic), или невиконичният (не) указан ум P. Информационен блок(Фиг. 1, c) се използва за въвеждане и отстраняване на A. Блоковете (фиг. 1, d) и (фиг. 1, e) се наричат ​​​​кочанови и крайни. Блок-схемата на задача започва в крайния блок и завършва в крайния блок.

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

Броят на функционалните блокове продължава, докато се запишат действията за тях. За логически блокове, в резултат на анализа, е възможно да се избере една от двете възможни дъги „така“ или „не“ и да се прехвърли управлението на блока, към който е посочена дъгата. Следователно, с прилагането на алгоритъма, има само един път от предния блок до крайния блок.

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

Малки 2 и 3 показват диаграми на алгоритми за решаване на задачата за намиране на сумата от n - числа: a1, a2, a3, a4,.., an.

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

Този раздел, където започва курсът, служи за две основни цели:

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

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

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

И остава респектиращо – по-технологично е. На първия етап от изучаването на Java е полезно да преодолеете факта, че тя е обектно-ориентирана и да се съсредоточите върху локалните проблеми на правилното внедряване на алгоритъма. Това обаче не е толкова лесно да се направи - написано в най-простите програми на нова основа, без да се разбират основните концепции на ORP. За определен проблем се създават творения специално за този клас Xterm, който предпазва начинаещия програмист от сложността на реалния свят на езика Java.

Предмет на науката програмиране

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

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

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

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

Скъпи, това, което е по-„важно“ за алгоритъма, е водата да се пълни често, а всъщност не е предвидено да го прави. Математиката има редица много ясни алгоритъмни стойности, които са еквивалентни една на друга и повечето от тях не са трудни за разбиране. Всички тези смради обаче изискват задълбочено познаване на пеещите галузи на математиката и затова няма да навлизаме в (дори важните) подробности, необходими за задълбочено разбиране на алгоритъма. Ето защо ще разгледаме задната част на алгоритъма и след това ще преобърнем основните мощности, за които алгоритъмът е виновен.

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

Край на силата на алгоритъма

Нека решим задачата за намиране на най-малката проста производна на естествено число, по-голямо от едно. Познай какво прости миЧисло се нарича, защото има числа, които са равни на самото единица, а единицата не е включена в единството на простите числа. Оста на тази книга е следната:

Завданя 1.1. Измислете алгоритъм, който използва естествено число, по-голямо от едно, за да намери най-малката проста дроб от това число.

Алгоритъм за решаване на задача.

Алгоритъм П:

P1: Поставете цялото число на равни две и отидете на стъпка P2.

P2: Ако разделите напълно на , тогава изпълнете алгоритъма, след като сте видели резултата; В противен случай отидете на croc P3.

P3: Увеличете стойността с единица и отидете на скала P2.

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

k = 3 k = 4 k = 2
P1: i = 2 P1: i = 2 P1: i = 2
P2: i = 2 P2: i = 2 P2: i = 2
P3: i = 3
P2: i = 3

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

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

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

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

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

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

Изход. Алгоритъмът винаги е виновен за една или повече изходни стойности. За алгоритъма P такава стойност е число. Алгоритмите, които произвеждат изходни данни, са практични и можем да ги използваме.

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

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

Като каза това, какво е практично с EOM трудно се работи с реални числа, Това, което може би може да ви се стори неправдоподобно. Вярно е, вярно е. Освен това въвеждането с референтни цели числа на компютър не се прави толкова често. Насърчавайте заместването на множество цели числа и реални числа, които да се използват с техните заместители

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

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

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

Приписване - редът на победоносното действие от зададения краен набор.

Система за поръчки - Съвкупността от допустимите наказания.

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

Ако Wikonavian има компютър, акаунтът се извиква екип , и системата за поръчки се извиква компютърна командна система . p align="justify"> Различните компютри може да имат различни командни системи, базирани на техните устройства.

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

Съставът на програмата се пренася в алгоритъма.

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

Какъвто и алгоритъм да има такава мощност:

  • 1. Дискретност. Алгоритъмът е разделен на последователност от елементарни процеси - процеси. Действието на кожата може да бъде завършено от Viconavian, първо отдолу ще преминем към началото на Viconan. Действието на кожата се обозначава със специална вмъкване в записа на алгоритъма, наречен команда.
  • 2. Точност и детерминизъм. Записването на алгоритъма трябва да се извърши по такъв начин, че той да е издал командата на дявола, знаейки със сигурност, че командата трябва да се следва обидно.
  • 3. Разумност. Алгоритъмът за скин ще бъде разработен за конкретен потребител, който ще може да присвоява команда за скин към алгоритъма в зависимост от съответствието му с предназначението му.
  • 4. Производителност. При точното изпълнение на всички инструкции към алгоритъма, процесът трябва да бъде завършен за крайния брой минути и в този случай изпълнението на задачата може да бъде загубено. Едно от възможните решения може да бъде установяването на факта, че задачата не може да бъде разрешена
  • 5. Масивност. С помощта на същия алгоритъм е възможно да се изпълняват задачи от един и същи тип и да се изпълняват повече от веднъж. Силата на масите значително увеличава практическата стойност на алгоритмите.

p align="justify"> Голямата стойност на алгоритмите се крие във факта, че те не трябва да влизат на мястото на това, върху което работят, и в същото време премахват необходимостта от повече знания, освен Viconavian.

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

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

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

Освен това алгоритъмът е свързан с две думи: една от самите формулировки, предложенията на другата и другите приемливи варианти на изходните данни.

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

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

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

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

Това е последователност от действия (фиг. 12).

малък 12.

Става трудно понякога, когато, в зависимост от истината на логичния ум, е необходимо да се победи това друго нещо (фиг. 13).


малък 13.

Действия 1 и 2 могат по свой собствен начин да включват други алгоритмични структури.

Цикъл . Засяда, когато действията трябва да бъдат отменени няколко пъти. Има две разновидности на цикъла.

Става трудно, ако трябва да се повторят някои операции по същия начин, както в случая с Милкова (фиг. 14).

малък 14. Цикъл Преди.

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

Става трудно, ако някои операции изискват повторение, докато действието на ума стане истина (фиг. 15).

малък 15. Цикъл бу!

2.4.1. Разбиране на основните алгоритми

2.4.2. Алгоритми с линейна структура

2.4.3. Основни алгоритми на структурите, които се проектират, и приложения за тяхното програмиране

2.4.4. Основни алгоритми на регулярни циклични структури и приложения на тяхното програмиране

2.4.5. Основни алгоритми на итеративни циклични структури и приложения на тяхното програмиране

2.4.6. Основни алгоритми за обработка на едномерни масиви

2.4.7. Основни алгоритми за обработка на двумерни масиви

2.4.8. Тестова презентация на тема „Основни алгоритми и приложения за тяхната реализация“

2.4.9. Тестове по темата „Основни алгоритми и приложения за тяхното изпълнение“

2.4.1. Разбиране на основните алгоритми

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

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

    Най-простите алгоритми прилагат основни алгоритмични структури.

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

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

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

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

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

2.4.2. Алгоритми с линейна структура

Задник 2.4.2-1.

de x = -1,4; у = 0,8; променливи - цял тип, други изменения - речеви тип; [n] - цяла част от числото n.

Диаграмата на алгоритъма и програмите QBasic, Pascal, C++ е представена на фиг. 2.4.2-1.

Показвайте уважение към онези, които са безполезни кзакръглени стойности н, но всичко е променливо м- съкратен за допълнителна функция КОРЕКЦИЯ()до цялата част от стойността н.

Задник 2.4.2-2. Изчислете и изведете на екрана стойностите на текущите количества:

de x = 2,9512; y = 0,098633; променлив – цял тип; Другите промени са от материален тип.

Диаграмата на алгоритъма и кода на програмата е представена на фиг. 3.2.1-2.

малък 2.4.2-2.

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

Задник 2.4.2-3.Изчислете и покажете на екрана стойностите на първата космическа течност.

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

de – гравитацията е станала; M – масата на Земята;
- Отидете до центъра на Земята до космическия кораб.

Диаграмата на алгоритъма и кода на програмата е представена на фиг. 3.2.1-3.

малък 2.4.2-3.

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

1. Разбиране на алгоритъма

Алгоритъм – по-прецизно и мъдро нареждане на крайната задача да изпълни последователността от действия, включени в задачата. име " алгоритъмНаподобява латинската форма на името на средноазиатския математик ал-Хорезм - Алгоритми.

Алгоритъм на Виконавец- това е абстрактна или реална (техническа, биологична или биотехническа) система, създадена от vykonati dii, която се изпълнява от алгоритъм. Vikonavtsy се характеризира с: средно положение, елементарни идеи, командна система, мъдрост. Середа(или обстановката) - това е "мястото на живот" на Виконавиан . Кожен виконовец може да виконува команди от дадения списък - командни системивиконавски. За командата на кожата е необходимо да зададете стагнацията на ума (в някои състояния на средата може да има команда viconan) и да опишете резултатите от командата viconn. След като щракнете върху командата, ще възобновите ежедневните дейности елементарно действие. Vidmovi Vikonavtsya обвиняват, защото командата се извиква в състояние на средата, което е неприемливо за него.

Информационните технологии имат универсален компютър за алгоритми.

2. Сила на алгоритмите

Можете да видите тези основните правомощия на алгоритмите:

1) Разсъдъкза виконавец – tobto. Алгоритъмът на Vikonavets е виновен за благородството, тъй като yogo vikonuvati.

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

3) Важност- тобто. Всяко правило за алгоритъма е да е ясно, недвусмислено и да не оставя място за разнообразяване.

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

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

3. Форма на представяне на алгоритми

Най-широкият форми на представяне на алгоритмиє: вербален, графичен, псевдокод и програма.

1) Глаголна формаЗаписът е описание на следващите етапи на обработка на данни с естествен език (например руски).

дупето.Запишете алгоритъм за намиране на най-големия разширител (NDD) на две естествени числа.

Алгоритъм: 1) задайте две числа; 2) ако числата са равни, тогава вземете едно от тях за справка и обобщете, в противен случай продължете с алгоритъма; 3) изчислете повече от числата; 4) замени по-голямото число с разликата на по-голямото и по-малкото число; 5) повторете алгоритъма от стъпка 2.

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

Вербалният метод няма широк диапазон, само следните описания:

а) не са строго формализирани;

б) страдат от изобилие от записи;

в) позволяват неяснота при объркването на определени поръчки.

2) Графичен методИзразяването на алгоритмите е по-компактно и подобно на вербалните. С графична диаграма алгоритъмът се показва като последователност от взаимосвързани функционални блокове, всеки от които съответства на една и съща дейност. Такова графично проявление се нарича диаграма на алгоритъм или блокова схема . В блоковата схема типът кожа е обозначен с геометрична фигура, която се нарича блокиращ символ.Блоковите символи са свързани преходни линии, Какво означава нечестието на Викони?

Докладвайте за цената по-долу...

3) ПсевдокодТова е система от стойности и правила, предназначени за запис на алгоритми. Vin заема междинно място между естествения и формалния език.

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

дупето. 1) дайте две числа x и y; 2) ЯКЩО x=y, ТОГАВА БОГ=x и KІNETS; 3) АКО x>y, ТОГАВА x=x-y, в противен случай y=y-x; 4) ПРЕМИНЕТЕ на точка 2.

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

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

Структура "Дотриманя".

Повна вилка

Неповна Розвилка

Цикъл с промяна на съзнанието

(POKI цикъл)

Цикъл от postumova (DN цикъл)

Цикъл с параметър

В диаграмите SERIES означава един или повече оператори; UMOVA е логически израз (LV) (ако стойността му е TRUE, преходът се извършва по SO, в противен случай - по NO). На диаграмата на цикъл с използван параметър значенията са: PT – параметър на цикъла, NC – начална стойност на параметъра на цикъла, KZ – крайна стойност на параметъра на цикъла, Ш – времева граница за промяна на параметъра на цикъла.

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

Принтери