- •Экзамен по информатике
- •Цели программирования.
- •Области языков программирования. Научные приложения.
- •Области языков программирования. Коммерческие приложения.
- •Области языков программирования. Искусственный интеллект.
- •Области языков программирования. Системное программирование.
- •Области языков программирования. Языки сценариев.
- •Области языков программирования. Web-программирование.
- •Уровни языков программирования. Машинные языки (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки ассемблера (история возникновения, отличительные особенности, пример языков).
- •Уровни языков программирования. Языки высокого уровня (история возникновения, отличительные особенности, пример языков).
- •Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Смешанная реализация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •Жизненный цикл программного продукта.
- •Этапы решения задач на эвм.
- •Цикл с параметром
- •Пример 1
- •Пример 2
- •Способы записи алгоритма. Псевдокод.
- •Пример 1
- •Пример 2
- •Рекомендации
- •Сравнение примеров
- •Способы записи алгоритма. Сравнение различных подходов. Выгоды использования блок-схем и псевдокода
- •Только псевдокод
- •Концепция памяти.
- •Принципы типизации данных.
- •Тип данных bool
- •Тип данных char
- •Целочисленные типы данных
- •Типы данных с плавающей точкой
- •Иерархия простых типов данных.
- •Стандартные типы данных. Таблица характеристик. Особенности выбора типа.
- •Правила приведения типов.
- •Пример, использующий преобразование типов
- •Оператор sizeof.
- •Переменные (объявление, инициализация, присвоение).
- •Константы. Специальные символы. Квалификатор const.
- •Область видимости переменных.
- •Операторы управления областью видимости.
- •Группы операций (особенности записи, таблица приоритетов)
- •Понятие ассоциативности, приоритета, размерности. Таблица приоритета операций.
- •Арифметические операции.
- •Логические операции (краткая схема вычислений).
- •Побитовые операции (таблицы истинности). Побитовые логические операции
- •Побитовое отрицание (not)
- •Побитовое и (and)
- •Побитовое или (or)
- •Сложение по модулю два (xor)
- •Другие побитовые логические операции
- •Битовые сдвиги
- •Принципы структурного программирования.
- •Структурное программирование: три базовые конструкции.
- •Основные операторы.
- •Параметры по-умолчанию.
- •Перегрузка функций.
- •Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •Режимы открытия файлов
- •Потоковый ввод-вывод. Библиотека потокового ввода-вывода. Вступление.
- •Консольный ввод/вывод.
- •Форматирование.
- •Потоковый ввод/вывод пользовательских типов.
- •Файловый ввод/вывод.
- •Файловый ввод-вывод. Стандартная библиотека ввода-вывода.
Потоковый ввод/вывод пользовательских типов.
к началу статьи Хоть стандартные потоки и позволяют выводить только встроенные типы, эту проблему можно с легкостью обойти. Надо просто для класса, который мы хотим выводить в поток, определить дружественный оператор <<, у которого первый параметр и возвращаемое значение – поток, второй параметр - объект данного класса:
include <iostream.h> include <conio.h> class cVector{ public: float x,y; cVector( void ){x=1;y=2;} friend ostream &operator<<( ostream& , cVector & ); }; ostream &operator<<( ostream & ostr , cVector &v ){ cout<<"x:"<<v.x<<endl; cout<<"y:"<<v.y<<endl; return( ostr ); } int main( void ){ cVector v; cout<<v<<endl; getch(); return 0; }
Файловый ввод/вывод.
к началу статьи Работа с файловыми потоками практически ничем не отличается от работы с любым другим потоком. Как всегда есть класс входного потока – ifstream, есть класс выходного потока – ofstream (на самом деле есть ещё универсальный файловый поток ввода/вывода - fstream). Для открытия потока используется метод open(), в который передаются путь к файлу и режим. Например:
ifstream istr; istr.open( “file.txt” , ios::binary );
В этом примере мы открыли файл file.txt в двоичном режиме (по умолчанию все файлы открываются в текстовом режиме), вот так:
ifstream istr; istr.open( “file.txt” );
Надеюсь Вы не забыли подключить файл fstream.h? Теперь рассмотрим основные методы для работы с файловыми потоками: close() – закрытие потока. eof() – возвращает true, если был достигнут конец файла. get(char) – читает символ из файла put(char) – записывает символ в файл read( char *str , int size ) – читает буфер str длиной size из файла write( char *str , int size ) – записывает буфер str длиной size в файл seekg( int offset , seekdir ) – устанавливает смещение указателя считывания в зависимости от seekdir. seekp( int offset , seekdir ) – устанавливает смещение указателя считывания в зависимости от seekdir. seekdir может принимать значения ios::beg, ios::cur, ios::end. Таким образом что бы передвинуть указатель считывания в конец файла, а затем снова в начало нужно сделать следующее:
ifstr.seekg( 0 , ios::end ); //смещение от конца = 0, //переходим в конец файла ifstr.seekg( 0 , ios::cur ); //смещение от текущего положения = 0, //соответственно просто топчемся на месте ifstr.seekg( 0 , ios::beg ); //смещение от начала = 0, //соответственно переходим в начало файла
tellg() – позиция указателя считывания. tellp() – позиция указателя записи.
Вот пожалуй все, что я хотел рассказать о потоках ввода/вывода, и самое грустное, что это, наверное, последняя статья по С++ :(. Самая простая часть Вашего пути позади – синтаксис усвоен, осталось только научиться эффективно его использовать. Но вместо точки хочу поставить жирное многоточие – наверное мы с Вами встретимся на уроках по Java’e а может быть я организую несколько уроков по C :) Мы только в начале нашего великого пути!
