1 / 19

АЛГОРИТМИЗАЦИЯ И ОСНОВИ НА ПРОГРАМИРАНЕТО

АЛГОРИТМИЗАЦИЯ И ОСНОВИ НА ПРОГРАМИРАНЕТО. Доц. д-р Юлиана Георгиева. Основни цели: Създаване на фундаментални понятия за процеса на алгоритмизация . Формира не на основни знания за същността на програмните езици и техните възможности за представяне на алгоритмите .

alika
Download Presentation

АЛГОРИТМИЗАЦИЯ И ОСНОВИ НА ПРОГРАМИРАНЕТО

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. АЛГОРИТМИЗАЦИЯ И ОСНОВИ НА ПРОГРАМИРАНЕТО Доц. д-р Юлиана Георгиева

  2. Основни цели: • Създаване на фундаментални понятия за процеса на алгоритмизация. • Формиранена основни знания за същността на програмните езици и техните възможности за представяне на алгоритмите. • Разглеждат се основни групи алгоритми за обработка на различно представени данни. • Разглеждат се въпроси за оценка на сложността на алгоритмите. • Разглежданията се правят на базата на конкретен програмен език (С).

  3. Литература: • Робърт Седжуик, Алгоритми на С, СофтПрес, София, 2002. • П. Наков, П. Добриков, Програмиране=++Алгоритми;, TopTeamCo, София, 2002. • Юл. Георгиева, М. Горанова, Ив. Йорданов, Ст. Малешков, Р. Павлова, Ръководство по Програмиране и използване на компютри – част I, Издателска къща „СИЕЛА“, 2001. • Хърбърт Шилдт, C практически самоучител, СофтПрес ООД, 2001. • Ив. Момчев, К. Чакъров, Програмиране III (С и С++), ТУ – София, 2000. • П. Наков, Основи на компютърните алгоритми, TopTeamCo, София, 1998. • Т. М. Смит, Програмиране с PASCAL. Принципи и методи, Техника, 1996. • Brian W. Kernighan, Dennis M. Ritchie, The C Programming Language, Prentice-Hall, Englewood Cliffs, 1988.

  4. Въведение в алгоритмизацията на задачите • Етапи при решаване на задачи с компютър • Постановка на задачата • Математическо описание • Избор на числен метод • Алгоритмизация • Кодиране на програмата • Настройка на програмата • Изпълнение • Анализ на резултатите

  5. Алгоритъм – понятие, свойства, видове, представяне • Понятие за алгоритъм • Свойства на алгоритмите • определеност; • дискретност; • крайност; • наличие на входни данни; • резултатност; • масовост. • Представяне • словесно; • блокови схеми;

  6. проектантски език; • логически схеми; • теоретични алгоритмични системи. • Видове алгоритми • линейни; • разклонени; • циклични.

  7. Блокова схема за решаване на задачи на С

  8. Създаване на алгоритми • Какво е алгоритъм? • Разлика между алгоритъм и метод, рецепта • Алгоритъмът е математическа единица , независима от компютър, компилатор, програмен език. Защо е необходимо изучаването на алгоритмизацията като процес? • Добрият алгоритъм е основа за добра програма. • Програмният проект на макро и микро ниво • Дизайнът на алгоритъма и ефикасната програма • Алгоритъм и структури данни. (примерът за Боинг 777)

  9. Езици за програмиране • С език за програмиране се кодират алгоритмите и структурите от данни в програмата. • Класификация на програмните езици • езици от ниско ниво – машинен и асемблерен • езици от високо ниво: • Императивни езици (изразяващи команда) – BASIC, FORTRAN, Pascal, C/C++, Ada, Modula-2; • Приложни езици – специализирани за решаване на един вид проблем - езици за бази данни (SQL), за моделиране (VHDL), мултимедийни приложения (HTML).

  10. Интегрирани среди за създаване и настройка на програми. • Езикът C има следните предимства: • Съвременен език – включва всички управляващи структури в програмирането; използва принципа на низходящото програмиране (top-downdesign), структурното и модулното програмиране. • Ефективен език – получава се компактна и бърза за изпълнение програма; напълно използва възможностите на компютъра. • Преносим (мобилен) език. • Мощен и гъвкав език – използва се за написване на операционни системи, компилатори и интерпретатори. • Притежава конструкции за управление, тясно свързани с асемблер, затова програмите на C са с максимална ефективност. • Удобен език – структуриран език, поддържа добър стил на програмиране.

  11. Елементи на езика • Множество от символи: букви, цифри, _ • Служебни символи: .,:;?!<>()[]+-*/\=%&|~”{}#$ • Резервирани думи • Идентификатор (име) е комбинация от букви (латински), цифри и знак за подчертаване (_). • Коментари: //текст или /*текст*/ Структура на програма на C • описание на действията – чрез оператори; • описание на данните, върху които се извършват действията - чрез описание и определение.

  12. Директиви на препроцесора: include; define; ifdef…endif • Декларации на прототипи на функции • Дефиниция на главна функция main() • Дефиниции на потребителски функции Стандартен вход/изход • Функции за вход и изход, разположени в заглавния файл stdio.h. • Стандартно входно устройство stdin(клавиатура) и стандартното изходно устройство stdout(екран). intscanf("форматиращи параметри", списък от адреси на аргументи); int printf("форматиращи параметри", списък от аргументи); форматиращи параметри (спецификации) % [ модификатор ] тип

  13. Модификаторът определя подравняване, брой позиции и точност. • Основни типове

  14. Основни обекти • Константи – именовани и неименовани • Променливи – име, тип, стойност • Израз • съдържа операнди и операции; • стойността зависи от зададените стойности на операндите и операциите над тях; • типът зависи от типа на операндите и вида на операциите. Основни (базови) типове данни int float double char • Целочислен тип int - положителни и отрицателните цели числа (без дробна част). Представят чрез фиксирана запетая след младшия разряд.

  15. Представяне на отрицателните числа – допълнителен код, обратен код • Реален тип • float и double • Числа, представени с цяла и дробна част с фиксирано място на десетичната точка или с мантиса и порядък в експоненциален вид. • Съхраняват се с две части: двоична дроб и двоичен порядък (представяне с плаваща точка). • Реалните числа се представят по два начина: • десетичен [-]dddd.dddи експоненциален запис [-]d.ddde[+/-]ddd.

  16. Символен тип char • Символният тип се определя като цяло число. • В компютъра се използва специален код ASCII • (AmericanStandardCodeforInformationInterchange) за • преобразуването на числата в символи и обратното. • Символни константи – 3 вида • Макроси: • int getchar(void); • intputchar(intсимвол); • Функции • int fgetc(FILE *файл); • int fputc(char символ, FILE *файл);

  17. Приоритети на операциите

  18. Някои правила при изпълнение на операциите • Унарни операции ++ и – • Логически операции и изчисление на логически изрази • Стойност 1 и стойност о при изчисление на изрази • Операции за присвояване (просто, верижно, съставно) • Операция запетая • Условна операция: израз1?израз2;израз3 • Операция за размер на обект: sizeof Типът voidсе използва за деклариране на функция, която не връща стойност или функция без параметри, а така също и за деклариране на указател, който сочи към обект от произволен тип.

  19. Преобразуване на типовете • Неявно и явно преобразуване • Преобразуване при присвояване и изчисление на израз • При наличие на операнди с различен тип в един израз преобразуването се осъществява към по-старшия тип. • Типът char се преобразува в int. • При операцията присвояване резултатът се преобразува до типа на обекта отляво на знака =, т.е. може преобразуването на стане от по-старшия към по-младшия тип. • long c = 2000 * 100; // препълване • long c = (long)2000 * 100;

More Related