Разделы презентаций


Введение в дисциплину Основы алгоритмизации и программирования Лекция

Содержание

Целью дисциплины «Основы алгоритмизации и программирования» является освоение базовых понятий и терминов программирования как науки.В результате изучения дисциплины студент должен:Знать: конструкции языка программирования высокого уровня, основные структуры данных, алгоритмы сортировки и

Слайды и текст этой презентации

Слайд 1Введение в дисциплину «Основы алгоритмизации и программирования»
Лекция 06.09.11г.

Введение в дисциплину «Основы алгоритмизации и программирования»Лекция 06.09.11г.

Слайд 2Целью дисциплины «Основы алгоритмизации и программирования» является освоение базовых понятий

и терминов программирования как науки.
В результате изучения дисциплины студент должен:
Знать:

конструкции языка программирования высокого уровня, основные структуры данных, алгоритмы сортировки и поиска данных, базовые концепции парадигмы объектно-ориентированного программирования.
Уметь: разрабатывать программы на языке высокого уровня, применяя изученные алгоритмы и структуры данных в соответствии с технологией разработки программ.
Демонстрировать способность и готовность к самостоятельному освоению новых алгоритмов, структур данных и парадигм программирования.

Лекция 06.09.11г.

Целью дисциплины «Основы алгоритмизации и программирования» является освоение базовых понятий и терминов программирования как науки.В результате изучения

Слайд 3Дисциплина «Основы алгоритмизации и программирования» изучается в 1 и 2

семестрах всеми студентами кафедры ПОВТ и включает:

1-й семестр
- 72 часа

лекций (2 лекции в неделю)
- 36 часов лабораторных занятий (1 лаб. в неделю)
- зачет и экзамен

2-й семестр
- 36 часов лекций (1 лекция в неделю)
- 18 часов лабораторных занятий (1 лаб. в две недели)
- выполнение курсовой работы
- экзамен

Лекция 06.09.11г.

Дисциплина «Основы алгоритмизации и программирования» изучается в 1 и 2 семестрах всеми студентами кафедры ПОВТ и включает:1-й

Слайд 4Назначение ЭВМ – решение задач.
В результатах решения заинтересован человек

(пользователь).
♦ Первые компьютеры создавались исключительно для вычислений (что отражено в

названиях «компьютер» и «ЭВМ»).
♦ Вторым крупным применением были базы данных.
♦ Третьим применением было управление всевозможными устройствами.
♦ Сегодня компьютеры стали главным информационным инструментом как в офисе, так и дома. Практически любая работа с информацией осуществляется через компьютер. Современные суперкомпьютеры используются для моделирования сложных физических и биологических процессов. Наиболее сложным применением компьютеров является искусственный интеллект.

При помощи вычислений компьютер способен обрабатывать информацию по определённому алгоритму.
Любая задача для компьютера является последовательностью вычислений.

Лекция 06.09.11г.

Назначение ЭВМ – решение задач. В результатах решения заинтересован человек (пользователь).♦ Первые компьютеры создавались исключительно для вычислений

Слайд 5Лекция 06.09.11г.
Понятие термина «алгоритм»
Понятие «алгоритм» является основным для всей области

компьютерных наук (Computer Science).
Слово алгоритм происходит от имени великого среднеазиатского

ученого Абу Джофара Мухаммеда бен Муса аль Хорезмий (род. в 783 году в окрестностях Хивы). Из математических работ Аль-Хорезми до нас дошли только две – алгебраическая и арифметическая. Термин алгоритм употреблялся в них для обозначения четырех арифметических операций, именно в таком значении он и вошел в некоторые европейские языки.
Постепенно значение слова алгоритм расширялось. К 1950 г. слово алгоритм чаще всего ассоциировалось с алгоритмом Евклида, который представляет собой процесс нахождения наибольшего общего делителя двух чисел. Этот алгоритм приведен в книге Евклида (Euclid) Начала.
Лекция 06.09.11г.Понятие термина «алгоритм»Понятие «алгоритм» является основным для всей области компьютерных наук (Computer Science).Слово алгоритм происходит от

Слайд 6Лекция 06.09.11г.
Алгоритм Евклида
Алгоритм Е (Алгоритм Евклида). Даны два целых положительных

числа m и n. Требуется найти их наибольший общий делитель,

т. е. наибольшее целое положительное число, которое нацело делит оба числа m и n.
E1. [Нахождение остатка.] Разделим m на n, и пусть остаток от деления будет равен r (где 0 <= r < n).
Е2. [Сравнение с нулем.] Если r = 0, то выполнение алгоритма прекращается; n — искомое значение
ЕЗ. [Замещение.] Присвоить m ← n, n ← r и вернуться к шагу E1. ♦

Пусть m=119, n=544.
E1. 119/544=0(119), r=119.
E3. m=544, n=119.
E1. 544/119=4(68), r=68.
E3. m=119, n=68.
E1. 119/68=1(51), r=51.
E3. m=68, n=51.
E1. 68/51=1(17), r=17.
E3. m=51, n=17.
E1. 51/17=3(0), r=0.
E2. НОД(119, 544)=17.

Лекция 06.09.11г.Алгоритм ЕвклидаАлгоритм Е (Алгоритм Евклида). Даны два целых положительных числа m и n. Требуется найти их

Слайд 7Лекция 06.09.11г.
Запись алгоритма Евклида на языке С
/* Алгоритм Евклида */
#include


#include
int main() {
int m, n, r;
printf("Input m:

"); scanf("%d", &m);
printf("Input n: "); scanf("%d", &n);
/* Е0. [Гарантировать, что m>n.] Если m n */
if (m while (1) {
/* E1. [Нахождение остатка.] Разделим m на n, и пусть остаток от деления будет равен r */
r=m%n;
/* Е2. [Сравнение с нулем.] Если r = 0, то завершить; n — НОД */
if (r==0) break;
/* ЕЗ. [Замещение.] Присвоить m <- n, n <- r и вернуться к E1 */
m=n; n=r;
}
printf("Greatest common divisor = %d \n", n);
exit(EXIT_SUCCESS);
}

1

2

3

4

5

6

7

8

9


Слайд 8Лекция 06.09.11г.
Дональд Кнут – автор Библии программистов
Donald Ervin Knuth (Дональд

Кнут) [10.01.1938, Milwaukee, Wisconsin]
автор так называемой Библии программистов ("The Art

of Computer Programming")
автор всемирно известной издательской системы TeX
стоял у истоков теории компиляции языков программирования, теории формальных грамматик, метода анализа алгоритмов

http://www-cs-staff.stanford.edu/~knuth/
Лекция 06.09.11г.Дональд Кнут – автор Библии программистовDonald Ervin Knuth (Дональд Кнут) [10.01.1938, Milwaukee, Wisconsin]автор так называемой Библии

Слайд 9Современное значение слова алгоритм во многом аналогично таким понятиям, как

рецепт, процесс, метод, способ, процедура, программа, но все-таки слово "algorithm"

имеет дополнительный смысловой оттенок. Алгоритм — это не просто набор конечного числа правил, задающих последовательность выполнения операций для решения задачи определенного типа. Помимо этого, он имеет пять важных особенностей, или свойств:
1) Конечность. Алгоритм всегда должен заканчиваться после выполнения конечного числа шагов. Алгоритм Е удовлетворяет этому условию, потому что после шага Е1 значение r меньше, чем n. Поэтому если r≠0, то в следующем цикле на шаге Е1 значение n уменьшается. Убывающая последовательность положительных целых чисел имеет конечное число членов, поэтому шаг Е1 может выполняться только конечное число раз для любого первоначально заданного значения n.
Процедура, обладающая всеми характеристиками алгоритма, за исключением, возможно, конечности, называется методом вычислений.

Лекция 06.09.11г.

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

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

Слайд 102) Определенность. Каждый шаг алгоритма должен быть точно определен. Действия,

которые нужно выполнить, должны быть строго и недвусмысленно определены для

каждого возможного случая.
3) Ввод. Алгоритм имеет некоторое (возможно, равное нулю) число входных данных, т. е. величин, которые задаются до начала его работы или определяются динамически во время его работы. Эти входные данные берутся из определенного набора объектов. Например, в алгоритме Е есть два входных значения, а именно — m и n, которые принадлежат множеству целых положительных чисел.
4) Вывод. У алгоритма есть одно или несколько выходных данных, т. е. величин, имеющих вполне определенную связь с входными данными. У алгоритма Е имеется только одно выходное значение, а именно — n, получаемое на шаге Е2. Это наибольший общий делитель двух входных значений.
5) Эффективность. Алгоритм обычно считается эффективным, если все предписываемые им действия достаточно просты для того, чтобы их можно было точно выполнить в течение конечного промежутка времени.

Лекция 06.09.11г.

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

2) Определенность. Каждый шаг алгоритма должен быть точно определен. Действия, которые нужно выполнить, должны быть строго и

Слайд 11На практике нужны не просто алгоритмы, а хорошие алгоритмы в

широком смысле этого слова. Одним из критериев качества алгоритма является

время, необходимое для его выполнения; данную характеристику можно оценить по тому, сколько раз выполняется каждый шаг. Другими критериями являются адаптируемость алгоритма к различным компьютерам, его простота, изящество и т. д.
Часто решить одну и ту же проблему можно с помощью нескольких алгоритмов и нужно выбрать наилучший из них. Этими вопросами занимается важная область теоретического программирования - анализ алгоритмов. Предмет этой области состоит в том, чтобы для заданного алгоритма определить его рабочие характеристики.
Теория алгоритмов — это более широкая область, которая включает не только вопросы анализа алгоритмов, но и рассматривает формальные модели алгоритмов, вопросы существования или не существования эффективных алгоритмов решения определенных задач (алгоритмически неразрешимые проблемы), эквивалентность алгоритмов и др.

Лекция 06.09.11г.

Анализ алгоритмов и теория алгоритмов

На практике нужны не просто алгоритмы, а хорошие алгоритмы в широком смысле этого слова. Одним из критериев

Слайд 12Предположим, рука робота оснащена инструментом, например, паяльником. Для того чтобы

выполнить пайку печатной платы, робот должен «обойти» все контакты и

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

Лекция 06.09.11г.

Алгоритм оптимизации маршрута робота

Каким должен быть алгоритм решения этой задачи?

Предположим, рука робота оснащена инструментом, например, паяльником. Для того чтобы выполнить пайку печатной платы, робот должен «обойти»

Слайд 13Начиная с произвольной точки p0, идем к ближайшей к ней

точке (соседу) p1. От нее – к ее ближайшему еще

не посещенному соседу (при этом точка p0 исключается из рассмотрения). Процесс повторяется до тех пор, пока не останется ни одной не посещенной точки, после чего мы возвращаемся в исходную точку p0, завершая маршрут.
Этот алгоритм прост в понимании, легко реализуется и достаточно эффективен, в общем, удовлетворяет всем свойствам алгоритма, но он совершенно неправилен! Т.е. получаемый с его помощью маршрут не обязательно будет самым коротким.

Лекция 06.09.11г.

Эвристический алгоритм «ближайшего соседа»

L=84

L=64

Начиная с произвольной точки p0, идем к ближайшей к ней точке (соседу) p1. От нее – к

Слайд 14Еще одна эвристика – соединять пары самых близких точек, если

такое соединение не вызывает никаких проблем (досрочное завершение цикла или

три пути из одной точки). Каждая вершина, еще не вошедшая в цепочку, рассматривается как самостоятельная «одновершинная» цепочка. Таким образом, на любом этапе выполнения этого алгоритма имеется множество отдельных вершин и множество не имеющих общих вершин цепочек, которые нужно соединить.
Общее количество искомых звеньев полного маршрута = n-1, поэтому алгоритм имеет вид цикла for i=1 to n-1 do, т.е. на каждом шаге отыскивается ровно одно звено, которое либо соединяет две отдельных вершины, либо «подключает» отдельную вершину к цепочке, либо соединяет две цепочки. За пределами цикла формируется последнее звено, соединяющее начало и конец единственной цепочки.
Этот алгоритм правильно работает на предыдущем примере:

Лекция 06.09.11г.

Эвристический алгоритм «ближайших пар»

Еще одна эвристика – соединять пары самых близких точек, если такое соединение не вызывает никаких проблем (досрочное

Слайд 15Однако на другом примере алгоритм ближайших пар работает неверно!
Лекция 06.09.11г.
Эвристический

алгоритм «ближайших пар»
L=6+2e → 6
L=5-e+√(5+6e+5e2) → 7.24

Однако на другом примере алгоритм ближайших пар работает неверно!Лекция 06.09.11г.Эвристический алгоритм «ближайших пар»L=6+2e → 6L=5-e+√(5+6e+5e2) → 7.24

Слайд 16Очевидно, что исчерпывающее решение задачи дает алгоритм, основанный на переборе

и оценке всех возможных маршрутов движения, а их количество, как

несложно показать, равно количеству перестановок.
Например, если n=20, то количество возможных маршрутов будет порядка
20! = 2 432 902 008 176 640 000

Лекция 06.09.11г.

«Правильный» алгоритм поиска маршрута

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

Слайд 17Лекция 06.09.11г.

Лекция 06.09.11г.

Слайд 18Лекция 06.09.11г.

Лекция 06.09.11г.

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика