🗊Презентация Вычислительная техника и компьютерное моделирование в физике

Нажмите для полного просмотра!
Вычислительная техника и компьютерное моделирование в физике, слайд №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

Содержание

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

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


Слайд 1





Вычислительная техника и компьютерное моделирование в физике
Лекция 4
Зинчик Александр Адольфович
zinchik_alex@mail.ru
Описание слайда:
Вычислительная техника и компьютерное моделирование в физике Лекция 4 Зинчик Александр Адольфович zinchik_alex@mail.ru

Слайд 2





Оформлению кода на С++

Рекомендации Стэнфордского университета
http://stanford.edu/class/archive/cs/cs106b/cs106b.1158/styleguide.shtml
Описание слайда:
Оформлению кода на С++ Рекомендации Стэнфордского университета http://stanford.edu/class/archive/cs/cs106b/cs106b.1158/styleguide.shtml

Слайд 3





Отделяйте пробелами фигурные скобки:
Описание слайда:
Отделяйте пробелами фигурные скобки:

Слайд 4





Ставьте пробелы между операторами и операндами:
Описание слайда:
Ставьте пробелы между операторами и операндами:

Слайд 5





Оставляйте пустые линии между функциями и между группами выражений:
Описание слайда:
Оставляйте пустые линии между функциями и между группами выражений:

Слайд 6





Используйте текстовую строку, стандартную для C++
Описание слайда:
Используйте текстовую строку, стандартную для C++

Слайд 7





Названия и переменные
Давайте переменным описательные имена, такие как firstName или homeworkScore.
Избегайте однобуквенных названий вроде x или c, за исключением итераторов вроде i.
Называйте переменные и функции, используя верблюжийРегистр.
 Называйте классы ПаскальнымРегистром, а константы — в ВЕРХНЕМ_РЕГИСТРЕ.
Описание слайда:
Названия и переменные Давайте переменным описательные имена, такие как firstName или homeworkScore. Избегайте однобуквенных названий вроде x или c, за исключением итераторов вроде i. Называйте переменные и функции, используя верблюжийРегистр. Называйте классы ПаскальнымРегистром, а константы — в ВЕРХНЕМ_РЕГИСТРЕ.

Слайд 8





Константы
Если определенная константа часто используется в вашем коде, то обозначьте её как const и всегда ссылайтесь на данную константу, а не на её значение:
Описание слайда:
Константы Если определенная константа часто используется в вашем коде, то обозначьте её как const и всегда ссылайтесь на данную константу, а не на её значение:

Слайд 9





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

Слайд 10





Не используйте глобальные переменные!
Описание слайда:
Не используйте глобальные переменные!

Слайд 11





Комментарии
Заглавный комментарий. Размещайте заглавный комментарий, который описывает назначение файла, вверху каждого файла. Предположите, что читатель вашего комментария является продвинутым программистом, но не кем-то, кто уже видел ваш код ранее.
Заголовок функции / конструктора. Разместите заголовочный комментарий на каждом конструкторе и функции вашего файла. Заголовок должен описывать поведение и / или цель функции.
Описание слайда:
Комментарии Заглавный комментарий. Размещайте заглавный комментарий, который описывает назначение файла, вверху каждого файла. Предположите, что читатель вашего комментария является продвинутым программистом, но не кем-то, кто уже видел ваш код ранее. Заголовок функции / конструктора. Разместите заголовочный комментарий на каждом конструкторе и функции вашего файла. Заголовок должен описывать поведение и / или цель функции.

Слайд 12





Комментарии
Параметры / возврат. Если ваша функцию принимает параметры, то кратко опишите их цель и смысл. Если ваша функция возвращает значение — кратко опишите, что она возвращает.
Исключения. Если ваша функция намеренно выдает какие-то исключения для определенных ошибочных случаев, то это требует упоминания.
Описание слайда:
Комментарии Параметры / возврат. Если ваша функцию принимает параметры, то кратко опишите их цель и смысл. Если ваша функция возвращает значение — кратко опишите, что она возвращает. Исключения. Если ваша функция намеренно выдает какие-то исключения для определенных ошибочных случаев, то это требует упоминания.

Слайд 13





Комментарии
Комментарии на одной строке. Если внутри функции имеется секция кода, которая длинна, сложна или непонятна, то кратко опишите её назначение.
TODO. Следует удалить все // TODO комментарии перед тем, как заканчивать и сдавать программу.
Описание слайда:
Комментарии Комментарии на одной строке. Если внутри функции имеется секция кода, которая длинна, сложна или непонятна, то кратко опишите её назначение. TODO. Следует удалить все // TODO комментарии перед тем, как заканчивать и сдавать программу.

Слайд 14





Использование namespace std
//не рекомендуется
using namespace std;
int main()	{
	cout<<“Hello World!”;
}
//рекомендуется
int main(){
	std::cout<<“Hello World!”;
}
Описание слайда:
Использование namespace std //не рекомендуется using namespace std; int main() { cout<<“Hello World!”; } //рекомендуется int main(){ std::cout<<“Hello World!”; }

Слайд 15





Функции и процедурное проектирование
Хорошо спроектированная функция имеет следующие характеристики:
Полностью выполняет четко поставленную задачу;
Не берет на себя слишком много работы;
Не связана с другими функциями бесцельно;
Хранит данные максимально сжато;
Помогает распознать и разделить структуру программы;
Помогает избавиться от излишков, которые иначе присутствовали бы в программе.
Описание слайда:
Функции и процедурное проектирование Хорошо спроектированная функция имеет следующие характеристики: Полностью выполняет четко поставленную задачу; Не берет на себя слишком много работы; Не связана с другими функциями бесцельно; Хранит данные максимально сжато; Помогает распознать и разделить структуру программы; Помогает избавиться от излишков, которые иначе присутствовали бы в программе.

Слайд 16





Пример правильно оформленной функции
Описание слайда:
Пример правильно оформленной функции

Слайд 17





Векторы.
В классе vector поддерживаются динамические массивы, увеличивающие свои размеры по мере необходимости.
Ниже представлена спецификация шаблона для класса vector:

template<class T, class Allocator = allocator<T>>class vector
Описание слайда:
Векторы. В классе vector поддерживаются динамические массивы, увеличивающие свои размеры по мере необходимости. Ниже представлена спецификация шаблона для класса vector: template<class T, class Allocator = allocator<T>>class vector

Слайд 18





Здесь T – это тип данных, предназначенных для хранения в контейнере, а ключевое слово Allocator задает распределитель памяти, который по умолчанию является стандартным распределителем памяти. В классе определены следующие конструкторы:
Здесь T – это тип данных, предназначенных для хранения в контейнере, а ключевое слово Allocator задает распределитель памяти, который по умолчанию является стандартным распределителем памяти. В классе определены следующие конструкторы:

explicit vector(const Allocator &a=Allocator());

explicit vector(size_type число, const T &значение = T(), const Allocator a=Allocator());

vector(const vector <T,Allocator> объект);
Описание слайда:
Здесь T – это тип данных, предназначенных для хранения в контейнере, а ключевое слово Allocator задает распределитель памяти, который по умолчанию является стандартным распределителем памяти. В классе определены следующие конструкторы: Здесь T – это тип данных, предназначенных для хранения в контейнере, а ключевое слово Allocator задает распределитель памяти, который по умолчанию является стандартным распределителем памяти. В классе определены следующие конструкторы: explicit vector(const Allocator &a=Allocator()); explicit vector(size_type число, const T &значение = T(), const Allocator a=Allocator()); vector(const vector <T,Allocator> объект);

Слайд 19





template <class InIter> vector(InIter начало, InIter конец,
template <class InIter> vector(InIter начало, InIter конец,
const Allocator &a=Allocator());

Первая форма представляет собой конструктор пустого вектора.
 Во второй форме конструктора вектора число элементов это число , а каждый элемент равен значению значение. Параметр значение может быть значением по умолчанию.
 В третьей форме конструктора вектор предназначен для одинаковых элементов, каждый из которых – это объект.
 Четвертая форма – это конструктор вектора, содержащего диапазон элементов, заданный итераторами начало и конец.
Описание слайда:
template <class InIter> vector(InIter начало, InIter конец, template <class InIter> vector(InIter начало, InIter конец, const Allocator &a=Allocator()); Первая форма представляет собой конструктор пустого вектора. Во второй форме конструктора вектора число элементов это число , а каждый элемент равен значению значение. Параметр значение может быть значением по умолчанию. В третьей форме конструктора вектор предназначен для одинаковых элементов, каждый из которых – это объект. Четвертая форма – это конструктор вектора, содержащего диапазон элементов, заданный итераторами начало и конец.

Слайд 20





Ниже представлено несколько примеров:
Ниже представлено несколько примеров:

vector<int> iv;	//	создание вектора нулевой длины для целых
vector<char>cv(5);	//создание пятиэлементного вектора для символов
vector<char>cv(5,’x’);	//создание и инициализация пятиэлементного вектора для символов
vector<int> iv2d(iv);	//создание вектора для целых из вектора для целых (2D массив).
Описание слайда:
Ниже представлено несколько примеров: Ниже представлено несколько примеров: vector<int> iv; // создание вектора нулевой длины для целых vector<char>cv(5); //создание пятиэлементного вектора для символов vector<char>cv(5,’x’); //создание и инициализация пятиэлементного вектора для символов vector<int> iv2d(iv); //создание вектора для целых из вектора для целых (2D массив).

Слайд 21





Для любого объекта, который будет храниться в векторе, должен быть определен конструктор по умолчанию и операторы < > и ==.
Для любого объекта, который будет храниться в векторе, должен быть определен конструктор по умолчанию и операторы < > и ==.
Для класса vector определяются следующие операторы сравнения:
==, <=, <, !=, >, >=.
Кроме этого для класса vector определяется оператор индекса [], что обеспечивает доступ к элементам вектора посредством обычной индексной нотации.
Описание слайда:
Для любого объекта, который будет храниться в векторе, должен быть определен конструктор по умолчанию и операторы < > и ==. Для любого объекта, который будет храниться в векторе, должен быть определен конструктор по умолчанию и операторы < > и ==. Для класса vector определяются следующие операторы сравнения: ==, <=, <, !=, >, >=. Кроме этого для класса vector определяется оператор индекса [], что обеспечивает доступ к элементам вектора посредством обычной индексной нотации.

Слайд 22





Пример работы с вектором. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран в том же порядке.
Пример работы с вектором. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран в том же порядке.
#include <fstream>
#include <vector>
//using namespace std;
int main(){
	std:: ifstream in ("inpnum.txt");
	std::vector<int> v;
 	int x;
	 while ( in >> x, !in.eof())
 		v.push_back(x);
	for (std:: vector<int>::iterator i = v.begin(); i != v.end(); ++i)
 		 std:: cout << *i << " ";
}
Описание слайда:
Пример работы с вектором. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран в том же порядке. Пример работы с вектором. В файле находится произвольное количество целых чисел. Программа считывает их в вектор и выводит на экран в том же порядке. #include <fstream> #include <vector> //using namespace std; int main(){ std:: ifstream in ("inpnum.txt"); std::vector<int> v; int x; while ( in >> x, !in.eof()) v.push_back(x); for (std:: vector<int>::iterator i = v.begin(); i != v.end(); ++i) std:: cout << *i << " "; }

Слайд 23





Поскольку файл содержит целые числа, используется соответствующая специализация шаблона vector — vector<int>. Для создания вектора v используется конструктор по умолчанию. Организуется цикл до конца файла, в котором из него считывается очередное целое число. С помощью метода push_back оно заносится в вектор, размер которого увеличивается автоматически.
Поскольку файл содержит целые числа, используется соответствующая специализация шаблона vector — vector<int>. Для создания вектора v используется конструктор по умолчанию. Организуется цикл до конца файла, в котором из него считывается очередное целое число. С помощью метода push_back оно заносится в вектор, размер которого увеличивается автоматически.
Для прохода по всему вектору вводится переменная i как итератор соответствующего типа (напомню, что операция :: обозначает доступ к области видимости, то есть здесь объявляется переменная i типа «итератор для конкретной специализации шаблона»). С помощью этого итератора осуществляется доступ ко всем по порядку элементам контейнера, начиная с первого.
Описание слайда:
Поскольку файл содержит целые числа, используется соответствующая специализация шаблона vector — vector<int>. Для создания вектора v используется конструктор по умолчанию. Организуется цикл до конца файла, в котором из него считывается очередное целое число. С помощью метода push_back оно заносится в вектор, размер которого увеличивается автоматически. Поскольку файл содержит целые числа, используется соответствующая специализация шаблона vector — vector<int>. Для создания вектора v используется конструктор по умолчанию. Организуется цикл до конца файла, в котором из него считывается очередное целое число. С помощью метода push_back оно заносится в вектор, размер которого увеличивается автоматически. Для прохода по всему вектору вводится переменная i как итератор соответствующего типа (напомню, что операция :: обозначает доступ к области видимости, то есть здесь объявляется переменная i типа «итератор для конкретной специализации шаблона»). С помощью этого итератора осуществляется доступ ко всем по порядку элементам контейнера, начиная с первого.

Слайд 24






Метод begin() возвращает указатель на первый элемент, метод end() — на элемент, следующий за последним. Реализация гарантирует, что этот указатель определен.
Сравнивать текущее значение с граничным следует именно с помощью операции !=, так как операции < или <= могут быть для данного типа не определены. Операция инкремента ( i++) реализована так, чтобы после нее итератор указывал на следующий элемент контейнера в порядке обхода. Доступ к элементу вектора выполняется с помощью операции разадресации, как для обычных указателей.
for (int i = 0; i<v.size(); i++) 	std::cout << v[i] << endl;
Описание слайда:
Метод begin() возвращает указатель на первый элемент, метод end() — на элемент, следующий за последним. Реализация гарантирует, что этот указатель определен. Сравнивать текущее значение с граничным следует именно с помощью операции !=, так как операции < или <= могут быть для данного типа не определены. Операция инкремента ( i++) реализована так, чтобы после нее итератор указывал на следующий элемент контейнера в порядке обхода. Доступ к элементу вектора выполняется с помощью операции разадресации, как для обычных указателей. for (int i = 0; i<v.size(); i++) std::cout << v[i] << endl;

Слайд 25





В данном примере вместо вектора можно было использовать любой последовательный контейнер путем простой замены слова vector на deque или list. При этом изменилось бы внутреннее представление данных и набор доступных операций, а в поведении программы никаких изменений не произошло бы.
В данном примере вместо вектора можно было использовать любой последовательный контейнер путем простой замены слова vector на deque или list. При этом изменилось бы внутреннее представление данных и набор доступных операций, а в поведении программы никаких изменений не произошло бы.
Однако если вместо цикла for вставить фрагмент
for (int i = 0; i<v.size(); i++) cout << v[i] << " “;
в котором использована операция доступа по индексу [ ], программа не будет работать для контейнера типа list, поскольку в нем эта операция не определена.
Описание слайда:
В данном примере вместо вектора можно было использовать любой последовательный контейнер путем простой замены слова vector на deque или list. При этом изменилось бы внутреннее представление данных и набор доступных операций, а в поведении программы никаких изменений не произошло бы. В данном примере вместо вектора можно было использовать любой последовательный контейнер путем простой замены слова vector на deque или list. При этом изменилось бы внутреннее представление данных и набор доступных операций, а в поведении программы никаких изменений не произошло бы. Однако если вместо цикла for вставить фрагмент for (int i = 0; i<v.size(); i++) cout << v[i] << " “; в котором использована операция доступа по индексу [ ], программа не будет работать для контейнера типа list, поскольку в нем эта операция не определена.

Слайд 26





Пример (с клавиатуры вводятся в вектор 10 значений 0 или 1, после чего они выводятся на экран).
Пример (с клавиатуры вводятся в вектор 10 значений 0 или 1, после чего они выводятся на экран).
#include <vector>
#include <iostream>
using namespace std;
vector <bool> v (10);
int main(){
	for(int i = 0; i<v.size(); i++)cin >> v[i];
	for (vector <bool>:: const_iterator p = v.begin(); p!=v.end(); ++p) cout << *p;
}
Описание слайда:
Пример (с клавиатуры вводятся в вектор 10 значений 0 или 1, после чего они выводятся на экран). Пример (с клавиатуры вводятся в вектор 10 значений 0 или 1, после чего они выводятся на экран). #include <vector> #include <iostream> using namespace std; vector <bool> v (10); int main(){ for(int i = 0; i<v.size(); i++)cin >> v[i]; for (vector <bool>:: const_iterator p = v.begin(); p!=v.end(); ++p) cout << *p; }



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