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

Нажмите для полного просмотра!
Вычислительная техника и компьютерное моделирование в физике, слайд №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Вычислительная техника и компьютерное моделирование в физике, слайд №32Вычислительная техника и компьютерное моделирование в физике, слайд №33Вычислительная техника и компьютерное моделирование в физике, слайд №34Вычислительная техника и компьютерное моделирование в физике, слайд №35Вычислительная техника и компьютерное моделирование в физике, слайд №36Вычислительная техника и компьютерное моделирование в физике, слайд №37Вычислительная техника и компьютерное моделирование в физике, слайд №38Вычислительная техника и компьютерное моделирование в физике, слайд №39Вычислительная техника и компьютерное моделирование в физике, слайд №40Вычислительная техника и компьютерное моделирование в физике, слайд №41Вычислительная техника и компьютерное моделирование в физике, слайд №42Вычислительная техника и компьютерное моделирование в физике, слайд №43Вычислительная техника и компьютерное моделирование в физике, слайд №44Вычислительная техника и компьютерное моделирование в физике, слайд №45Вычислительная техника и компьютерное моделирование в физике, слайд №46Вычислительная техника и компьютерное моделирование в физике, слайд №47Вычислительная техника и компьютерное моделирование в физике, слайд №48Вычислительная техника и компьютерное моделирование в физике, слайд №49Вычислительная техника и компьютерное моделирование в физике, слайд №50Вычислительная техника и компьютерное моделирование в физике, слайд №51Вычислительная техника и компьютерное моделирование в физике, слайд №52

Содержание

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

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


Слайд 1





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

Слайд 2





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

Слайд 3





Чтение данных из потока называется извлечением, вывод в поток — помещением, или включением.
Чтение данных из потока называется извлечением, вывод в поток — помещением, или включением.
 Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен (оперативная память, файл на диске, клавиатура или принтер).
Описание слайда:
Чтение данных из потока называется извлечением, вывод в поток — помещением, или включением. Чтение данных из потока называется извлечением, вывод в поток — помещением, или включением. Поток определяется как последовательность байтов и не зависит от конкретного устройства, с которым производится обмен (оперативная память, файл на диске, клавиатура или принтер).

Слайд 4






Обмен с потоком для увеличения скорости передачи данных производится, как правило, через специальную область оперативной памяти — буфер.
 Фактическая передача данных выполняется при выводе после заполнения буфера, а при вводе — если буфер исчерпан
Описание слайда:
Обмен с потоком для увеличения скорости передачи данных производится, как правило, через специальную область оперативной памяти — буфер. Фактическая передача данных выполняется при выводе после заполнения буфера, а при вводе — если буфер исчерпан

Слайд 5





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

Слайд 6





Для поддержки потоков библиотека С++ содержит иерархию классов, построенную на основе класса — ios.
Для поддержки потоков библиотека С++ содержит иерархию классов, построенную на основе класса — ios.
 Класс ios содержит общие для ввода и вывода поля и методы. От этого класса наследуется класс istream для входных потоков и ostream — для выходных. 
Два последних класса являются базовыми для класса iostream, реализующего двунаправленные потоки.
Описание слайда:
Для поддержки потоков библиотека С++ содержит иерархию классов, построенную на основе класса — ios. Для поддержки потоков библиотека С++ содержит иерархию классов, построенную на основе класса — ios. Класс ios содержит общие для ввода и вывода поля и методы. От этого класса наследуется класс istream для входных потоков и ostream — для выходных. Два последних класса являются базовыми для класса iostream, реализующего двунаправленные потоки.

Слайд 7


Вычислительная техника и компьютерное моделирование в физике, слайд №7
Описание слайда:

Слайд 8





Основным преимуществом потоков по сравнению с функциями ввода/вывода, унаследованными из библиотеки С, является контроль типов, а также расширяемость, то есть возможность работать с типами, определенными пользователем. Для этого требуется переопределить операции потоков.
Основным преимуществом потоков по сравнению с функциями ввода/вывода, унаследованными из библиотеки С, является контроль типов, а также расширяемость, то есть возможность работать с типами, определенными пользователем. Для этого требуется переопределить операции потоков.
К недостаткам потоков можно отнести снижение быстродействия программы, которое в зависимости от реализации компилятора может быть весьма значительным.
Описание слайда:
Основным преимуществом потоков по сравнению с функциями ввода/вывода, унаследованными из библиотеки С, является контроль типов, а также расширяемость, то есть возможность работать с типами, определенными пользователем. Для этого требуется переопределить операции потоков. Основным преимуществом потоков по сравнению с функциями ввода/вывода, унаследованными из библиотеки С, является контроль типов, а также расширяемость, то есть возможность работать с типами, определенными пользователем. Для этого требуется переопределить операции потоков. К недостаткам потоков можно отнести снижение быстродействия программы, которое в зависимости от реализации компилятора может быть весьма значительным.

Слайд 9





Стандартные потоки
Заголовочный файл <iostream> содержит, кроме описания классов для ввода/вывода, четыре предопределенных объекта:
Описание слайда:
Стандартные потоки Заголовочный файл <iostream> содержит, кроме описания классов для ввода/вывода, четыре предопределенных объекта:

Слайд 10





В классах istream и ostream операции извлечения из потока >> и помещения в поток << определены путем перегрузки операций сдвига. 
В классах istream и ostream операции извлечения из потока >> и помещения в поток << определены путем перегрузки операций сдвига. 
Пример:
#include <iostream.h>
int main(){
	int i;
	cin >> i;
	cout << "Вы ввели " << i; 
	return 0;
}
Описание слайда:
В классах istream и ostream операции извлечения из потока >> и помещения в поток << определены путем перегрузки операций сдвига. В классах istream и ostream операции извлечения из потока >> и помещения в поток << определены путем перегрузки операций сдвига. Пример: #include <iostream.h> int main(){ int i; cin >> i; cout << "Вы ввели " << i; return 0; }

Слайд 11





Как и для других перегруженных операций, для вставки и извлечения невозможно изменить приоритеты, поэтому в необходимых случаях используются скобки:
Как и для других перегруженных операций, для вставки и извлечения невозможно изменить приоритеты, поэтому в необходимых случаях используются скобки:
// Скобки не требуются — приоритет сложения больше, чем << :
cout << i + j;		
// Скобки необходимы — приоритет операции отношения меньше, чем << :
cout << (i < j);	
cout << (i << j);		// Правая операция << 				означает сдвиг
Описание слайда:
Как и для других перегруженных операций, для вставки и извлечения невозможно изменить приоритеты, поэтому в необходимых случаях используются скобки: Как и для других перегруженных операций, для вставки и извлечения невозможно изменить приоритеты, поэтому в необходимых случаях используются скобки: // Скобки не требуются — приоритет сложения больше, чем << : cout << i + j; // Скобки необходимы — приоритет операции отношения меньше, чем << : cout << (i < j); cout << (i << j); // Правая операция << означает сдвиг

Слайд 12





Величины при вводе должны разделяться пробельными символами (пробелами, знаками табуляции или перевода строки). Извлечение прекращается, если очередной символ оказался недопустимым.
Величины при вводе должны разделяться пробельными символами (пробелами, знаками табуляции или перевода строки). Извлечение прекращается, если очередной символ оказался недопустимым.
Операции << и >> перегружены для всех встроенных типов данных, что позволяет автоматически выполнять ввод и вывод в соответствии с типом величин.
Описание слайда:
Величины при вводе должны разделяться пробельными символами (пробелами, знаками табуляции или перевода строки). Извлечение прекращается, если очередной символ оказался недопустимым. Величины при вводе должны разделяться пробельными символами (пробелами, знаками табуляции или перевода строки). Извлечение прекращается, если очередной символ оказался недопустимым. Операции << и >> перегружены для всех встроенных типов данных, что позволяет автоматически выполнять ввод и вывод в соответствии с типом величин.

Слайд 13





Например:
#include <iostream.h>
int main(){
	int i = 0xD;
	double d;
	// Символы из потока ввода преобразуются в //double:
	cin >> d;	
	// int и double преобразуются в строку //символов:
	cout << i << ' ' << d; 
	return 0;
}
Описание слайда:
Например: #include <iostream.h> int main(){ int i = 0xD; double d; // Символы из потока ввода преобразуются в //double: cin >> d; // int и double преобразуются в строку //символов: cout << i << ' ' << d; return 0; }

Слайд 14





Форматирование данных
В потоковых классах форматирование выполняется тремя способами — с помощью флагов, манипуляторов и форматирующих методов.
Описание слайда:
Форматирование данных В потоковых классах форматирование выполняется тремя способами — с помощью флагов, манипуляторов и форматирующих методов.

Слайд 15


Вычислительная техника и компьютерное моделирование в физике, слайд №15
Описание слайда:

Слайд 16


Вычислительная техника и компьютерное моделирование в физике, слайд №16
Описание слайда:

Слайд 17


Вычислительная техника и компьютерное моделирование в физике, слайд №17
Описание слайда:

Слайд 18






Флаги (left, right и internal), (dec, oct и hex), а также (scientific и fixed) взаимно исключают друг друга, то есть в каждый момент может быть установлен только один флаг из каждой группы
Описание слайда:
Флаги (left, right и internal), (dec, oct и hex), а также (scientific и fixed) взаимно исключают друг друга, то есть в каждый момент может быть установлен только один флаг из каждой группы

Слайд 19


Вычислительная техника и компьютерное моделирование в физике, слайд №19
Описание слайда:

Слайд 20





Все функции возвращают прежние флаги потока.
Все функции возвращают прежние флаги потока.
Кроме флагов, для форматирования используются следующие поля класса ios:
Описание слайда:
Все функции возвращают прежние флаги потока. Все функции возвращают прежние флаги потока. Кроме флагов, для форматирования используются следующие поля класса ios:

Слайд 21


Вычислительная техника и компьютерное моделирование в физике, слайд №21
Описание слайда:

Слайд 22





Перед установкой некоторых флагов требуется сбросить флаги, которые не могут быть установлены одновременно с ними. 
Перед установкой некоторых флагов требуется сбросить флаги, которые не могут быть установлены одновременно с ними. 
Для этого удобно использовать вторым параметром метода setf перечисленные ниже статические константы класса ios:
adjustfield	(left | right | internal)
basefield		(dec | oct | hex)
floatfield		(scientific | fixed)
Описание слайда:
Перед установкой некоторых флагов требуется сбросить флаги, которые не могут быть установлены одновременно с ними. Перед установкой некоторых флагов требуется сбросить флаги, которые не могут быть установлены одновременно с ними. Для этого удобно использовать вторым параметром метода setf перечисленные ниже статические константы класса ios: adjustfield (left | right | internal) basefield (dec | oct | hex) floatfield (scientific | fixed)

Слайд 23





#include <iostream.h>
#include <iostream.h>
int main(){
	long a = 1000, b = 077;
	cout.width(7);
    cout.setf(ios::hex | ios::showbase | ios::uppercase);
	cout << a;
	cout.width(7);
	cout << b << endl;
	double d = 0.12, c = 1.3e-4;
	cout.setf(ios::left);
	cout << d << endl;
	cout << c; 
	return 0;
}
Описание слайда:
#include <iostream.h> #include <iostream.h> int main(){ long a = 1000, b = 077; cout.width(7); cout.setf(ios::hex | ios::showbase | ios::uppercase); cout << a; cout.width(7); cout << b << endl; double d = 0.12, c = 1.3e-4; cout.setf(ios::left); cout << d << endl; cout << c; return 0; }

Слайд 24





В результате работы программы в первой строке будут прописными буквами выведены переменные a и b в шестнадцатеричном представлении, под каждую из них отводится по 7 позиций (функция width действует только на одно выводимое значение, поэтому ее вызов требуется повторить дважды). Значения переменных c и d прижаты к левому краю поля: 
В результате работы программы в первой строке будут прописными буквами выведены переменные a и b в шестнадцатеричном представлении, под каждую из них отводится по 7 позиций (функция width действует только на одно выводимое значение, поэтому ее вызов требуется повторить дважды). Значения переменных c и d прижаты к левому краю поля: 
  0X3E8   0X3F
0.12
0.00013
Описание слайда:
В результате работы программы в первой строке будут прописными буквами выведены переменные a и b в шестнадцатеричном представлении, под каждую из них отводится по 7 позиций (функция width действует только на одно выводимое значение, поэтому ее вызов требуется повторить дважды). Значения переменных c и d прижаты к левому краю поля: В результате работы программы в первой строке будут прописными буквами выведены переменные a и b в шестнадцатеричном представлении, под каждую из них отводится по 7 позиций (функция width действует только на одно выводимое значение, поэтому ее вызов требуется повторить дважды). Значения переменных c и d прижаты к левому краю поля: 0X3E8 0X3F 0.12 0.00013

Слайд 25





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

Слайд 26


Вычислительная техника и компьютерное моделирование в физике, слайд №26
Описание слайда:

Слайд 27


Вычислительная техника и компьютерное моделирование в физике, слайд №27
Описание слайда:

Слайд 28





Пример 1:
Пример 1:
cout << 13 << hex << ' ' << 13 << oct << ' ' << 13 << endl;
Пример 2:
#include <iostream.h>
#include <iomanip.h>
int main(){
	double d[] = {1.234, -12.34567, 123.456789, 
					-1.234, 0.00001};
	cout	<< setfill('.') << setprecision(4)
			<< setiosflags(ios::showpoint | ios::fixed);
	for (int i = 0; i < 5; i++)
		cout << setw(12) << d[i] << endl; 
	return 0;
}
Описание слайда:
Пример 1: Пример 1: cout << 13 << hex << ' ' << 13 << oct << ' ' << 13 << endl; Пример 2: #include <iostream.h> #include <iomanip.h> int main(){ double d[] = {1.234, -12.34567, 123.456789, -1.234, 0.00001}; cout << setfill('.') << setprecision(4) << setiosflags(ios::showpoint | ios::fixed); for (int i = 0; i < 5; i++) cout << setw(12) << d[i] << endl; return 0; }

Слайд 29





Методы обмена с потоками
В потоковых классах наряду с операциями извлечения >> и включения << определены методы для неформатированного чтения и записи в поток 
функции чтения, определенные в классе istream
Описание слайда:
Методы обмена с потоками В потоковых классах наряду с операциями извлечения >> и включения << определены методы для неформатированного чтения и записи в поток функции чтения, определенные в классе istream

Слайд 30


Вычислительная техника и компьютерное моделирование в физике, слайд №30
Описание слайда:

Слайд 31






ios::beg (от начала файла), 
ios::cur (от текущей позиции) 
 ios::end (от конца файла);
Описание слайда:
ios::beg (от начала файла), ios::cur (от текущей позиции) ios::end (от конца файла);

Слайд 32


Вычислительная техника и компьютерное моделирование в физике, слайд №32
Описание слайда:

Слайд 33





Пример 1. Программа считывает строки из входного потока в символьный массив.
Пример 1. Программа считывает строки из входного потока в символьный массив.
#include "iostream.h"
int main(){
	const int N = 20, Len = 100;
	char str[Len][N];
	int i = 0;
	while (cin.getline(str[i], Len, '\n') && i<N){
		//  …
		i++;
	}
	return 0;
}
Описание слайда:
Пример 1. Программа считывает строки из входного потока в символьный массив. Пример 1. Программа считывает строки из входного потока в символьный массив. #include "iostream.h" int main(){ const int N = 20, Len = 100; char str[Len][N]; int i = 0; while (cin.getline(str[i], Len, '\n') && i<N){ // … i++; } return 0; }

Слайд 34





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

Слайд 35


Вычислительная техника и компьютерное моделирование в физике, слайд №35
Описание слайда:

Слайд 36





Использование файлов в программе предполагает следующие операции:
Использование файлов в программе предполагает следующие операции:
создание потока;
открытие потока и связывание его с файлом;
обмен (ввод/вывод);
уничтожение потока;
закрытие файла.
Каждый класс файловых потоков содержит конструкторы, с помощью которых можно создавать объекты этих классов различными способами.
Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом:
ifstream();
ofstream();
fstream();
Описание слайда:
Использование файлов в программе предполагает следующие операции: Использование файлов в программе предполагает следующие операции: создание потока; открытие потока и связывание его с файлом; обмен (ввод/вывод); уничтожение потока; закрытие файла. Каждый класс файловых потоков содержит конструкторы, с помощью которых можно создавать объекты этих классов различными способами. Конструкторы без параметров создают объект соответствующего класса, не связывая его с файлом: ifstream(); ofstream(); fstream();

Слайд 37





Конструкторы c параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом:
Конструкторы c параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом:
ifstream(const char *name, int mode = ios::in);
ofstream(const char *name, int mode = ios::out | ios::trunc);
fstream(const char *name, int mode = ios::in | ios::out);
Описание слайда:
Конструкторы c параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом: Конструкторы c параметрами создают объект соответствующего класса, открывают файл с указанным именем и связывают файл с объектом: ifstream(const char *name, int mode = ios::in); ofstream(const char *name, int mode = ios::out | ios::trunc); fstream(const char *name, int mode = ios::in | ios::out);

Слайд 38





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

Слайд 39





Открыть файл в программе можно с использованием либо конструкторов, либо метода open, имеющего такие же параметры, как и в соответствующем конструкторе, например:
Открыть файл в программе можно с использованием либо конструкторов, либо метода open, имеющего такие же параметры, как и в соответствующем конструкторе, например:
ifstream inpf ("input.txt");	// Использование конструктора
if (!inpf){
	cout << "Невозможно открыть файл для чтения"; return 1;
}
ostream f;
f.open("output.txt", ios::out); 	// Использование метода open
if (!f){
	cout << "Невозможно открыть файл для записи";
	return 1;
}
Описание слайда:
Открыть файл в программе можно с использованием либо конструкторов, либо метода open, имеющего такие же параметры, как и в соответствующем конструкторе, например: Открыть файл в программе можно с использованием либо конструкторов, либо метода open, имеющего такие же параметры, как и в соответствующем конструкторе, например: ifstream inpf ("input.txt"); // Использование конструктора if (!inpf){ cout << "Невозможно открыть файл для чтения"; return 1; } ostream f; f.open("output.txt", ios::out); // Использование метода open if (!f){ cout << "Невозможно открыть файл для записи"; return 1; }

Слайд 40






#include <fstream.h>
int main(){
	char text[81], buf[81];
	cout << "Введите имя файла:";
	cin >> text;
	ifstream f(text);
	if (!f){
		cout << "Ошибка открытия файла"; 
		return 1;
	}
Описание слайда:
#include <fstream.h> int main(){ char text[81], buf[81]; cout << "Введите имя файла:"; cin >> text; ifstream f(text); if (!f){ cout << "Ошибка открытия файла"; return 1; }

Слайд 41





	while (!f.eof()){
	while (!f.eof()){
		f.getline(buf, 81);
		cout << buf << endl;
	}
	return 0;
}
Для закрытия потока определен метод close(), но поскольку он неявно выполняется деструктором, явный вызов необходим только тогда, когда требуется закрыть поток раньше конца его области видимости.
Описание слайда:
while (!f.eof()){ while (!f.eof()){ f.getline(buf, 81); cout << buf << endl; } return 0; } Для закрытия потока определен метод close(), но поскольку он неявно выполняется деструктором, явный вызов необходим только тогда, когда требуется закрыть поток раньше конца его области видимости.

Слайд 42





Структуры (struct) 
В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов. 
Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него.
Описание слайда:
Структуры (struct) В отличие от массива, все элементы которого однотипны, структура может содержать элементы разных типов. Элементы структуры называются полями структуры и могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него.

Слайд 43





struct [ имя_типа ] {
struct [ имя_типа ] {
	тип_1 элемент_1;
	тип_2 элемент_2;
	
	тип_n элемент_n;
} [ список_описателей ];
Описание слайда:
struct [ имя_типа ] { struct [ имя_типа ] { тип_1 элемент_1; тип_2 элемент_2; тип_n элемент_n; } [ список_описателей ];

Слайд 44





Определение массива структур и указателя на структуру:
struct {
	char fio[30];
	int date, code;
	double salary;
}stuff[100], *ps;
Описание слайда:
Определение массива структур и указателя на структуру: struct { char fio[30]; int date, code; double salary; }stuff[100], *ps;

Слайд 45





Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например: 
Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например: 
struct Worker{		// описание нового типа char fio[30];
	int date, code;
	double salary;
};	// описание заканчивается точкой с запятой
Описание слайда:
Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например: Если список отсутствует, описание структуры определяет новый тип, имя которого можно использовать в дальнейшем наряду со стандартными типами, например: struct Worker{ // описание нового типа char fio[30]; int date, code; double salary; }; // описание заканчивается точкой с запятой

Слайд 46





Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например:
Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например:
struct List;	// объявление структуры List;
struct Link{
	List *p;			
	Link *prev, *succ;	
};
struct List { /* определение структуры List */};
Это позволяет создавать связные списки структур.
Описание слайда:
Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например: Имя структуры можно использовать сразу после его объявления (определение можно дать позднее) в тех случаях, когда компилятору не требуется знать размер структуры, например: struct List; // объявление структуры List; struct Link{ List *p; Link *prev, *succ; }; struct List { /* определение структуры List */}; Это позволяет создавать связные списки структур.

Слайд 47





Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания:
Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания:
struct{		
	char fio[30];
	int age, code;
	double salary;
}worker = {“Иванов", 31, 512, 1234.56};
Описание слайда:
Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания: Для инициализации структуры значения ее элементов перечисляют в фигурных скобках в порядке их описания: struct{ char fio[30]; int age, code; double salary; }worker = {“Иванов", 31, 512, 1234.56};

Слайд 48





При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива 
При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива 
(учитывая, что многомерный массив — это массив массивов):
struct complex{
	float real, im;
} compl [2][3] = {
{{1, 1}, {1, 1}, {1, 1}},	  // строка 1, то есть 						массив compl[0]
{{2, 2}, {2, 2}, {2, 2}}	 // строка 2, то есть 
							массив compl[1]
};
Описание слайда:
При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива (учитывая, что многомерный массив — это массив массивов): struct complex{ float real, im; } compl [2][3] = { {{1, 1}, {1, 1}, {1, 1}}, // строка 1, то есть массив compl[0] {{2, 2}, {2, 2}, {2, 2}} // строка 2, то есть массив compl[1] };

Слайд 49






Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. 
Размер структуры не обязательно равен сумме размеров ее элементов, поскольку они могут быть выровнены по границам слова.
Описание слайда:
Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. Размер структуры не обязательно равен сумме размеров ее элементов, поскольку они могут быть выровнены по границам слова.

Слайд 50





Доступ к полям структуры выполняется с помощью операций выбора . (точка) при обращении к полю через имя структуры и
Доступ к полям структуры выполняется с помощью операций выбора . (точка) при обращении к полю через имя структуры и
 -> при обращении через указатель, например:
Worker stuff[100], *ps, worker;
worker.age = 25;
stuff[8].code = 215;
ps->salary = 0.12;
Описание слайда:
Доступ к полям структуры выполняется с помощью операций выбора . (точка) при обращении к полю через имя структуры и Доступ к полям структуры выполняется с помощью операций выбора . (точка) при обращении к полю через имя структуры и -> при обращении через указатель, например: Worker stuff[100], *ps, worker; worker.age = 25; stuff[8].code = 215; ps->salary = 0.12;

Слайд 51






Если элементом структуры является другая структура, то доступ к ее элементам выполняется через две операции выбора:
struct A {int a; double x;};
struct B {A a; double x;} x[2];
x[0].a.a = 1;
x[1].х = 0.1;
Описание слайда:
Если элементом структуры является другая структура, то доступ к ее элементам выполняется через две операции выбора: struct A {int a; double x;}; struct B {A a; double x;} x[2]; x[0].a.a = 1; x[1].х = 0.1;

Слайд 52





Заключение
Спасибо за внимание!
Вопросы???
Описание слайда:
Заключение Спасибо за внимание! Вопросы???



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