🗊Презентация Типы данных в программировании

Нажмите для полного просмотра!
Типы данных в программировании, слайд №1Типы данных в программировании, слайд №2Типы данных в программировании, слайд №3Типы данных в программировании, слайд №4Типы данных в программировании, слайд №5Типы данных в программировании, слайд №6Типы данных в программировании, слайд №7Типы данных в программировании, слайд №8Типы данных в программировании, слайд №9Типы данных в программировании, слайд №10Типы данных в программировании, слайд №11Типы данных в программировании, слайд №12Типы данных в программировании, слайд №13Типы данных в программировании, слайд №14Типы данных в программировании, слайд №15Типы данных в программировании, слайд №16Типы данных в программировании, слайд №17Типы данных в программировании, слайд №18Типы данных в программировании, слайд №19Типы данных в программировании, слайд №20Типы данных в программировании, слайд №21Типы данных в программировании, слайд №22Типы данных в программировании, слайд №23Типы данных в программировании, слайд №24Типы данных в программировании, слайд №25Типы данных в программировании, слайд №26Типы данных в программировании, слайд №27Типы данных в программировании, слайд №28Типы данных в программировании, слайд №29Типы данных в программировании, слайд №30Типы данных в программировании, слайд №31

Содержание

Вы можете ознакомиться и скачать презентацию на тему Типы данных в программировании. Доклад-сообщение содержит 31 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1





Объектно-Ориентированное Программирование 
А.М. Задорожный
2016
Описание слайда:
Объектно-Ориентированное Программирование А.М. Задорожный 2016

Слайд 2





Содержание
Сложности программирования с точки зрения типов
(Встроенные типы и реальные задачи)
ООП как развитие Типов
Программирование Гистограммы
Недостатки реализации Гистограммы
Гистограмма в ООП
Сравнение ООП и функционального подхода
Описание слайда:
Содержание Сложности программирования с точки зрения типов (Встроенные типы и реальные задачи) ООП как развитие Типов Программирование Гистограммы Недостатки реализации Гистограммы Гистограмма в ООП Сравнение ООП и функционального подхода

Слайд 3





Типы данных в программировании
Языки с типизацией данных признанное средство программирования
Смысл операции ‘+’ зависит от типа данных
“12” + “34” = “1234”
12 + 34 = 46
Компилятор типизированного языка предупреждает многие ошибки.
Описание слайда:
Типы данных в программировании Языки с типизацией данных признанное средство программирования Смысл операции ‘+’ зависит от типа данных “12” + “34” = “1234” 12 + 34 = 46 Компилятор типизированного языка предупреждает многие ошибки.

Слайд 4





Типы данных в программировании
Некоторые задачи решаются на компьютере легко, а некоторые сложно.
Решить квадратное уравнение, систему 1000 линейных уравнений, многие дифференциальные уравнения – легко!
Составить меню на завтра – сложно!
Почему?
Описание слайда:
Типы данных в программировании Некоторые задачи решаются на компьютере легко, а некоторые сложно. Решить квадратное уравнение, систему 1000 линейных уравнений, многие дифференциальные уравнения – легко! Составить меню на завтра – сложно! Почему?

Слайд 5





Типы данных в программировании
Сложно решить и некоторые простые математические задачи!
Решить квадратное уравнение в радикалах (не численно, а в виде формул)
Почему?
Описание слайда:
Типы данных в программировании Сложно решить и некоторые простые математические задачи! Решить квадратное уравнение в радикалах (не численно, а в виде формул) Почему?

Слайд 6





Типы данных в программировании
Одна из причин – недостаточность встроенных типов данных. Есть строки, есть целые числа и числа с плавающей точкой. Есть логические величины. 
Но нет “Алгебраическое выражение”. Если бы такой тип был встроен в компьютер, то легко бы решалась и квадратное уравнение в общем виде!
Но сколько надо типов?
Описание слайда:
Типы данных в программировании Одна из причин – недостаточность встроенных типов данных. Есть строки, есть целые числа и числа с плавающей точкой. Есть логические величины. Но нет “Алгебраическое выражение”. Если бы такой тип был встроен в компьютер, то легко бы решалась и квадратное уравнение в общем виде! Но сколько надо типов?

Слайд 7





ООП – создание типов программистом
ООП позволяет программисту создавать необходимые типы данных.
Общий подход в ООП: 
Создать (разработать) необходимые типы для решения задачи 
Применять типы для конкретных задач.
Описание слайда:
ООП – создание типов программистом ООП позволяет программисту создавать необходимые типы данных. Общий подход в ООП: Создать (разработать) необходимые типы для решения задачи Применять типы для конкретных задач.

Слайд 8





ООП и функциональный подход
Описание слайда:
ООП и функциональный подход

Слайд 9





Расшифровка понятий ООП
Класс – класс объектов
Объект – экземпляр класса 
Метод – метод воздействия на объект (взаимодействия с объектом)
Описание слайда:
Расшифровка понятий ООП Класс – класс объектов Объект – экземпляр класса Метод – метод воздействия на объект (взаимодействия с объектом)

Слайд 10





Упражнения
Что такое “переменная” в программировании?
Какими атрибутами она характеризуется?
Какие изменение переменной возможны в языках программирования?
Как выполнить обмен значениями двух переменных? (a и b)
Приведите пример классов объектов из повседневной жизни
Что является экземпляром приведенного класса?
Описание слайда:
Упражнения Что такое “переменная” в программировании? Какими атрибутами она характеризуется? Какие изменение переменной возможны в языках программирования? Как выполнить обмен значениями двух переменных? (a и b) Приведите пример классов объектов из повседневной жизни Что является экземпляром приведенного класса?

Слайд 11





Гистограмма
Гистограмма – частотное представление данных (диаграмма).





Гистограмма – программное средство, позволяющее обрабатывать входные данные и подсчитывать появления событий каждого из заданных типов.
Описание слайда:
Гистограмма Гистограмма – частотное представление данных (диаграмма). Гистограмма – программное средство, позволяющее обрабатывать входные данные и подсчитывать появления событий каждого из заданных типов.

Слайд 12





Гистограмма
В программировании Гистограмма – это программное средство для регистрации событий.
Пример. Пусть событием будет считаться проезд по дороге автомобиля с определенной массой. 
Заведем табличку: 0.5-1т 	1-1.5т		1.5-2т		2-2.5т …
Будем наблюдать за дорогой и, когда проедет автомобиль, будем ставить птичку в соответствующую колонку.
Мы строим Гистограмму!
Описание слайда:
Гистограмма В программировании Гистограмма – это программное средство для регистрации событий. Пример. Пусть событием будет считаться проезд по дороге автомобиля с определенной массой. Заведем табличку: 0.5-1т 1-1.5т 1.5-2т 2-2.5т … Будем наблюдать за дорогой и, когда проедет автомобиль, будем ставить птичку в соответствующую колонку. Мы строим Гистограмму!

Слайд 13





Гистограмма
Гистограммы широко применяются в обработке и анализе экспериментальных данных и данных наблюдений.
В ОИЯИ, в метеорологии, в статистических отчетах и пр.
Имеется соответствующее средство в Excel.
Описание слайда:
Гистограмма Гистограммы широко применяются в обработке и анализе экспериментальных данных и данных наблюдений. В ОИЯИ, в метеорологии, в статистических отчетах и пр. Имеется соответствующее средство в Excel.

Слайд 14





Гистограмма (конкретизация)
Задача. Имеется входной поток данных, представляющий собой числа в диапазоне от А до B. 
Событием типа i считается попадание числа в интервал от А + i*(B-A)/N до А + (i + 1)*(B-A)/N.
Определить, сколько событий каждого типа было представлено во входном потоке.
d = (B-A)/N будем называть шагом гистограммы.
Вопрос. В каком диапазоне будет меняться i? Сколько всего видов событий определено в данной задаче?
Описание слайда:
Гистограмма (конкретизация) Задача. Имеется входной поток данных, представляющий собой числа в диапазоне от А до B. Событием типа i считается попадание числа в интервал от А + i*(B-A)/N до А + (i + 1)*(B-A)/N. Определить, сколько событий каждого типа было представлено во входном потоке. d = (B-A)/N будем называть шагом гистограммы. Вопрос. В каком диапазоне будет меняться i? Сколько всего видов событий определено в данной задаче?

Слайд 15





Упражнения
Что такое A и B в примере с машинами на дороге?
Чему равен шаг гистограммы в примере с машинами?
Описание слайда:
Упражнения Что такое A и B в примере с машинами на дороге? Чему равен шаг гистограммы в примере с машинами?

Слайд 16





Гистограмма (проектирование)
Вспомогательные данные:
Очевидно, для хранения гистограммы нужен массив длины N. Назовем его hist.
Хорошо бы иметь метод, который будет подсчитывать события по мере поступления данных.

Вопрос. Какова сигнатура метода?
Сигнатура – список параметров.
Описание слайда:
Гистограмма (проектирование) Вспомогательные данные: Очевидно, для хранения гистограммы нужен массив длины N. Назовем его hist. Хорошо бы иметь метод, который будет подсчитывать события по мере поступления данных. Вопрос. Какова сигнатура метода? Сигнатура – список параметров.

Слайд 17





Гистограмма (реализация)
static void Hist(double x, int [] h, double A, double B)
{
	int i = (int) ((x-A)/((B-A)/h.Length));
	if(i >= 0 && i < h.Length)
		h[i]++;
}
- Что за формула?
- Зачем if?
Описание слайда:
Гистограмма (реализация) static void Hist(double x, int [] h, double A, double B) { int i = (int) ((x-A)/((B-A)/h.Length)); if(i >= 0 && i < h.Length) h[i]++; } - Что за формула? - Зачем if?

Слайд 18





Упражнения
static void Hist(double x, int [] h, double A, double B)
Что в примере с машинами на дороге означает x?
Что в примере с машинами означают A и B?
Описание слайда:
Упражнения static void Hist(double x, int [] h, double A, double B) Что в примере с машинами на дороге означает x? Что в примере с машинами означают A и B?

Слайд 19





Гистограмма (утилита)
static void WriteHist(int [] h)
{
	Console.Write(h[0]);
	for(int i = 1; i < h.Length; i++)
		Console.Write(“, {0}”, h[i]);
	Console.WriteLine();
}
Что это?
Зачем первый Console.Write(h[0]);?
Описание слайда:
Гистограмма (утилита) static void WriteHist(int [] h) { Console.Write(h[0]); for(int i = 1; i < h.Length; i++) Console.Write(“, {0}”, h[i]); Console.WriteLine(); } Что это? Зачем первый Console.Write(h[0]);?

Слайд 20





Гистограмма (использование)
{
	Random r = new Random();
	int [] hist = new int [10];
	for(int i = 0; i < 1000; i++)
		Hist(10*r.NextDouble(), hist, 0, 10);
	WriteHist(hist);
}
Сколько чисел мы увидим на консоли?
Описание слайда:
Гистограмма (использование) { Random r = new Random(); int [] hist = new int [10]; for(int i = 0; i < 1000; i++) Hist(10*r.NextDouble(), hist, 0, 10); WriteHist(hist); } Сколько чисел мы увидим на консоли?

Слайд 21





Гистограмма (применение)
Можно ли вычислить среднее значение входных данных по гистограмме?
Какие данные нужны кроме массива hist?
Какова сигнатура метода для вычисления среднего?
Можно ли выяснить, какое событие было самым частым?
Можно ли вычислить разницу между количеством самых частых событий и самых редких?
Какие для этого нужны данные?
Какие можно рассматривать величины (вместо количества самых частых событий, количества самых редких, разницы между количеством самых частых и самых редких) что бы они не зависели от общего количества событий?
Описание слайда:
Гистограмма (применение) Можно ли вычислить среднее значение входных данных по гистограмме? Какие данные нужны кроме массива hist? Какова сигнатура метода для вычисления среднего? Можно ли выяснить, какое событие было самым частым? Можно ли вычислить разницу между количеством самых частых событий и самых редких? Какие для этого нужны данные? Какие можно рассматривать величины (вместо количества самых частых событий, количества самых редких, разницы между количеством самых частых и самых редких) что бы они не зависели от общего количества событий?

Слайд 22





Гистограмма (применение)
static double MeanValue (double A, double B, int[]h)
{
	double sum = 0, d = (B-A)/h.Length;
	int N = 0;
	for(int i=0; i<h.Length; i++)
	{
		N += h[i];
		sum += h[i]*((i+0.5)*d+A);
	}
	if(N>0)
		return sum/N;
	else
		return 0;
}
Зачем 0.5 в sum += h[i]*((i+0.5)*d+A)?
Описание слайда:
Гистограмма (применение) static double MeanValue (double A, double B, int[]h) { double sum = 0, d = (B-A)/h.Length; int N = 0; for(int i=0; i<h.Length; i++) { N += h[i]; sum += h[i]*((i+0.5)*d+A); } if(N>0) return sum/N; else return 0; } Зачем 0.5 в sum += h[i]*((i+0.5)*d+A)?

Слайд 23





Гистограмма (недостатки)
Гистограмма в программе была представлена: 
массивом, 
двумя числами (границами диапазона)
отдельным методом для вычисления события и его учета в массиве. 
static void Hist(double x, int [] h, double A, double B)
Собственно недостатки:
Если гистограмму нужно передать в другой метод (MeanValue), то нужно передавать все эти три параметра.
Если гистограмм много, то программист должен следить, за тем, какая пара значений связана с каким из массивов.
Программист может изменить значения переменных или содержание массива. В этом случае гистограмма потеряет смысл.
Описание слайда:
Гистограмма (недостатки) Гистограмма в программе была представлена: массивом, двумя числами (границами диапазона) отдельным методом для вычисления события и его учета в массиве. static void Hist(double x, int [] h, double A, double B) Собственно недостатки: Если гистограмму нужно передать в другой метод (MeanValue), то нужно передавать все эти три параметра. Если гистограмм много, то программист должен следить, за тем, какая пара значений связана с каким из массивов. Программист может изменить значения переменных или содержание массива. В этом случае гистограмма потеряет смысл.

Слайд 24





Объектно-ориентированное программирование (ООП)
ООП – программирование, которое опирается на классы и объекты.
Класс – описание типа объектов, т.е. их свойств, множества значений и действий, который можно выполнять над объектами данного типа.
Объект (экземпляр класса) – конкретный представитель класса.
Класс – фактически тип данных, объект – переменная. 
Попробуем применить ООП для решения проблем гистограммы!
Описание слайда:
Объектно-ориентированное программирование (ООП) ООП – программирование, которое опирается на классы и объекты. Класс – описание типа объектов, т.е. их свойств, множества значений и действий, который можно выполнять над объектами данного типа. Объект (экземпляр класса) – конкретный представитель класса. Класс – фактически тип данных, объект – переменная. Попробуем применить ООП для решения проблем гистограммы!

Слайд 25





ООП. Объявление класса в C#
public class Histogram
{	// Левая и правая граница
	public double LeftEdge;
	public double RightEdge;
	public int [] Data; 	// Массив
}
Для использования класса нужно создать объект и работать с ним. Например, в Main:

Histogram h = new Histogram ();
h.LeftEdge = 0; h.RightEdge = 10; h.Data = new int [10];
Теперь вместо 3-х параметров в методы Hist и MeanValue можно передавать ТОЛЬКО ОДИН.
Описание слайда:
ООП. Объявление класса в C# public class Histogram { // Левая и правая граница public double LeftEdge; public double RightEdge; public int [] Data; // Массив } Для использования класса нужно создать объект и работать с ним. Например, в Main: Histogram h = new Histogram (); h.LeftEdge = 0; h.RightEdge = 10; h.Data = new int [10]; Теперь вместо 3-х параметров в методы Hist и MeanValue можно передавать ТОЛЬКО ОДИН.

Слайд 26





ООП. Конструкторы в C#
Конструктор – специальный метод, который позволяет создавать объекты данного типа.
public class Histogram {	// Левая и правая граница
	public double LeftEdge;
	public double RightEdge;
	public int [] Data; 	// Массив
	public Histogram(double leftEdge, double rightEdge, int N)
	{
		LeftEdge = leftEdge;
		RightEdge = rightEdge;
		Data = new int[N];
	}
}
Теперь можно в Main:
Histogram h = new Histogram (0,  10,  10); // Без дополнительных присваиваний
Описание слайда:
ООП. Конструкторы в C# Конструктор – специальный метод, который позволяет создавать объекты данного типа. public class Histogram { // Левая и правая граница public double LeftEdge; public double RightEdge; public int [] Data; // Массив public Histogram(double leftEdge, double rightEdge, int N) { LeftEdge = leftEdge; RightEdge = rightEdge; Data = new int[N]; } } Теперь можно в Main: Histogram h = new Histogram (0, 10, 10); // Без дополнительных присваиваний

Слайд 27





ООП. Конструкторы в C#
Конструктор – специальный метод, который позволяет создавать объекты данного типа.
public class Histogram {	
	…
	public Histogram(double leftEdge, double rightEdge, int N)
	{
		…
	}
}
Конструктор имеет то же имя, что и класс .
При объявлении конструктора нельзя указать тип возвращаемого значения.
Описание слайда:
ООП. Конструкторы в C# Конструктор – специальный метод, который позволяет создавать объекты данного типа. public class Histogram { … public Histogram(double leftEdge, double rightEdge, int N) { … } } Конструктор имеет то же имя, что и класс . При объявлении конструктора нельзя указать тип возвращаемого значения.

Слайд 28





ООП. Добавляем методы в C#
public class Histogram {	
	…
	public Histogram(double leftEdge, double rightEdge, int N)
	{
		…
	}
	
	//Метод автоматически получает доступ к данным объекта!
	public void Hist(double x)
	{
		int i = (int) ((x-LeftEdge)/((RightEdge-LeftEdge)/Data.Length));
		if(i >= 0 && i < Data.Length)
			Data[i]++;
	}
}
Теперь можно в Main:
Histogram h = new Histogram (0,  10,  12); 
h.Hist(x);
Описание слайда:
ООП. Добавляем методы в C# public class Histogram { … public Histogram(double leftEdge, double rightEdge, int N) { … } //Метод автоматически получает доступ к данным объекта! public void Hist(double x) { int i = (int) ((x-LeftEdge)/((RightEdge-LeftEdge)/Data.Length)); if(i >= 0 && i < Data.Length) Data[i]++; } } Теперь можно в Main: Histogram h = new Histogram (0, 10, 12); h.Hist(x);

Слайд 29





ООП. Добавляем методы в C#
public class Histogram {	
	…
	public Histogram(double leftEdge, double rightEdge, int N){   …	}
	public void Hist(double x){ 	… }
	public double MeanValue () {
		double sum = 0, d = (RightEdge -LeftEdge)/Data.Length;
		int N = 0;
		for(int I = 0; I < Data.Length; i++)
		{
			N += Data [i];
			sum += Data [i]*((i+0.5)*d + LeftEdge);
		}
		if(N>0) 	return sum/N;
		else	return 0;
	}
}
Теперь можно в Main:
Double a = h.MeanValue();
Описание слайда:
ООП. Добавляем методы в C# public class Histogram { … public Histogram(double leftEdge, double rightEdge, int N){ … } public void Hist(double x){ … } public double MeanValue () { double sum = 0, d = (RightEdge -LeftEdge)/Data.Length; int N = 0; for(int I = 0; I < Data.Length; i++) { N += Data [i]; sum += Data [i]*((i+0.5)*d + LeftEdge); } if(N>0) return sum/N; else return 0; } } Теперь можно в Main: Double a = h.MeanValue();

Слайд 30





ООП. Общие замечания
Класс Histogram позволил нам объединить в одном понятии данные гистограммы (int [] Data, double LeftEdge, RightEdge ) и методы (Hist, MeanValue).
При создании каждого объекта класса Histogram все данные создаются автоматически.
При вызове метода Hist количество параметров уменьшилось, программист не сможет внести путаницы, ошибочно указывая с каким массивом и какими границами нужно выполнить действия.
При вызове метода MeanValue вообще не нужны параметры!
При построении большого (3-20) количества гистограмм это существенные преимущества!
Описание слайда:
ООП. Общие замечания Класс Histogram позволил нам объединить в одном понятии данные гистограммы (int [] Data, double LeftEdge, RightEdge ) и методы (Hist, MeanValue). При создании каждого объекта класса Histogram все данные создаются автоматически. При вызове метода Hist количество параметров уменьшилось, программист не сможет внести путаницы, ошибочно указывая с каким массивом и какими границами нужно выполнить действия. При вызове метода MeanValue вообще не нужны параметры! При построении большого (3-20) количества гистограмм это существенные преимущества!

Слайд 31





Контрольные вопросы
Что такое ООП?
Чему соответствуют понятия Класс и Объект в функциональном программировании?
Что такое Конструктор? В чем его особенности в C#?
Как создать объект в C#?
Как вызвать метод для конкретного объекта в C#?
Описание слайда:
Контрольные вопросы Что такое ООП? Чему соответствуют понятия Класс и Объект в функциональном программировании? Что такое Конструктор? В чем его особенности в C#? Как создать объект в C#? Как вызвать метод для конкретного объекта в C#?



Похожие презентации
Mypresentation.ru
Загрузить презентацию