Презентация ПЯВУ. Лекция 13. Элементы ООП. Рекурсия онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему ПЯВУ. Лекция 13. Элементы ООП. Рекурсия абсолютно бесплатно. Урок-презентация на эту тему содержит всего 28 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Устройства и комплектующие » ПЯВУ. Лекция 13. Элементы ООП. Рекурсия
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:28 слайдов
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:102.70 kB
- Просмотров:58
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Контрольные вопросы Что такое](/documents_6/817e50c6eb00b55de883b5471999eee7/img1.jpg)
Содержание слайда: Контрольные вопросы
Что такое ООП?
Чему соответствуют понятия Класс и Объект в функциональном программировании?
Где объявляются новые классы в C#?
Что означает слово Public в ООП?
Что такое Метод?
Где может располагаться в программе определение метода?
Что такое формальные параметры? Для чего они служат?
Что такое фактические параметры? Для чего они служат?
№5 слайд
![Недостатки полей данных Если](/documents_6/817e50c6eb00b55de883b5471999eee7/img4.jpg)
Содержание слайда: Недостатки полей данных
Если поле данных объекта можно читать (оно доступно), то его можно и изменить.
Программно защитить или контролировать изменение поля нельзя!
Как следствие, полям можно придать недопустимые значения, например, для гистограммы можно указать левую границу больше правой.
№9 слайд
![Свойства Варианты свойств.](/documents_6/817e50c6eb00b55de883b5471999eee7/img8.jpg)
Содержание слайда: Свойства
Варианты свойств. Проверка при присваивании.
public class Histogram {
double _leftEdge;
double _rightEdge;
int [] Data;
public double LeftEdge
{
get {return _leftEdge;}
set {if(value > 0) _leftEdge = value;}
}
…
}
В set проверяем значение value и, если оно допустимо, выполняем присваивание.
№10 слайд
![Свойства C облегчает](/documents_6/817e50c6eb00b55de883b5471999eee7/img9.jpg)
Содержание слайда: Свойства
C# облегчает использование свойств ! Можно не задавать поля данных.
public class Histogram {
public double LeftEdge {get; set;};
public double RightEdge {get; set;};
int [] Data;
//public double LeftEdge
//{
// get {return _leftEdge;}
// set {if(value > 0) _leftEdge = value;}
//}
…
}
№11 слайд
![Свойства. Заключительные](/documents_6/817e50c6eb00b55de883b5471999eee7/img10.jpg)
Содержание слайда: Свойства.
Заключительные замечания
Последнее упрощение позволяет требовать применения свойств вместо полей данных без исключений.
Мы не смогли заменить массив на свойства, но C# это позволяет!
Обратите внимание на элемент нотации (системы имен):
Свойства как public начинаются с большой буквы, а поля, как private с маленькой, да еще со знаком подчеркивания.
№15 слайд
![Рекурсия. Как происходит](/documents_6/817e50c6eb00b55de883b5471999eee7/img14.jpg)
Содержание слайда: Рекурсия.
Как происходит вычисление
Алгоритм вызывает сам себя, но с более простыми значениями параметров.
Это позволяют сделать методы! Без методов рекурсия теряет свои преимущества.
Почему?
Когда наступает простой случай, начинается последовательный возврат значений и он завершается решением исходной задачи.
№19 слайд
![Ханойские башни . Реализация.](/documents_6/817e50c6eb00b55de883b5471999eee7/img18.jpg)
Содержание слайда: “Ханойские башни”. Реализация.
Как представить пирамиды и диски?
int N = 12; //Высота пирамид
int [,] p = new int[3, N];
Номера пирамид : 0, 1 и 2.
Диаметр диска задаем числом в массиве!
for(int i = 0; i < N; i++)
p[0, i] = 2*(N – i) + 1;
//Что за формула 2*(N – i) + 1?
//Где низ, а где верх?
№20 слайд
![Ханойские башни . Реализация.](/documents_6/817e50c6eb00b55de883b5471999eee7/img19.jpg)
Содержание слайда: “Ханойские башни”. Реализация.
/// <summary>
/// Перемещает M дисков с пирамиды i на пирамиду j для системы башен p
/// </summary>
/// <param name="p">Ханойские башни</param>
/// <param name="i">Исходная пирамида</param>
/// <param name="j">Пирамида назначения</param>
/// <param name="M">Количество дисков для перемещения</param>
void Move (int[,] p, int i, int j, int M)
{
}
№22 слайд
![Ханойские башни . Реализация.](/documents_6/817e50c6eb00b55de883b5471999eee7/img21.jpg)
Содержание слайда: “Ханойские башни”. Реализация.
/// <summary>
/// Вычисляет высоту пирамиды i для системы башен p
/// </summary>
/// <param name="p">Ханойские башни</param>
/// <param name="i">Пирамида для котороой вычисляется высота</param>
/// <returns>Высоту приамиды i</returns>
int Height (int[,] p, int i)
{
int N = p.GetLength(1);
int j = N;
for( ; j > 0; j--)
if(p[i, j-1] > 0) return j;
return 0;
}
Находим положение первого сверху диска.
№23 слайд
![Ханойские башни . Реализация.](/documents_6/817e50c6eb00b55de883b5471999eee7/img22.jpg)
Содержание слайда: “Ханойские башни”. Реализация.
/// <summary>
/// Перемещает 1 диск с пирамиды i на пирамиду j для системы башен p
/// </summary>
/// <param name="p">Ханойские башни</param>
/// <param name="i">Исходная пирамида</param>
/// <param name="j">Пирамида назначения</param>
void Move1 (int[,] p, int i, int j)
{
int hi = Height(p, i);
int hj = Height(p, j);
p[j, hj] = p[i, hi-1];
p[i, hi-1] = 0;
}
№25 слайд
![Заключительные замечания](/documents_6/817e50c6eb00b55de883b5471999eee7/img24.jpg)
Содержание слайда: Заключительные замечания
Рекурсия – полезный инструмент. Существенно упрощает некоторые задачи.
Декомпозиция – хорошая методика решения задач.
Нам пришлось:
Продумать как будут представлены в программе пирамидки
Как организовать рекурсию
Как определить “высоту” пирамиды
Каждая задача оказалась простой, а в целом, мы решили довольно сложную задачу.
№26 слайд
![Рекурсия Заключительные](/documents_6/817e50c6eb00b55de883b5471999eee7/img25.jpg)
Содержание слайда: Рекурсия
Заключительные замечания
Факториал можно вычислить рекурсивно или в цикле.
Любую рекурсию можно заменить циклическим вычислением!
Алгоритм замены рекурсии циклическим вычислением может оказаться довольно сложным.
Рекурсия медленнее чем цикл! Злоупотреблять не следует!
№28 слайд
![Вопросы для повторения](/documents_6/817e50c6eb00b55de883b5471999eee7/img27.jpg)
Содержание слайда: Вопросы для повторения
Объясните синтаксис оператора for
Какова область видимости счетчика, объявленного в for?
Что такое оператор цикла с предусловием/постусловием? Классифицируйте каждый из операторов цикла в C#.
Какие дополнительные операторы позволяют управлять исполнением циклов?
Скачать все slide презентации ПЯВУ. Лекция 13. Элементы ООП. Рекурсия одним архивом:
Похожие презентации
-
ПЯВУ. Лекция 12. Элементы ООП
-
ПЯВУ. Основы программирования. Лекция 11. Гистограммы. Основы ООП на примере гистограммы
-
Элементы теории языков. Лекция 24
-
Основные элементы класса: поля, методы, конструкторы, декструкторы, свойства. Лекция 3
-
Объектно – ориентированное программирование (ООП). Лекция 8
-
Классы и ключевые слова ООП. Лекция 7
-
Рекурсия в программировании. (Лекция 10)
-
Элементы ООП в С
-
ПЯВУ. Основы программирования. Лекция 3. Понятие цикла. Оператор while. Представление целых чисел в компьютере
-
ПЯВУ. Основы программирования. Лекция 8. Алгоритм Евклида. Решето Эратосфена