
- •Цели программирования
- •Области языков программирования. Научные приложения.
- •Области языков программирования. Коммерческие приложения.
- •Области языков программирования. Искусственный интеллект.
- •Области языков программирования. Системное программирование.
- •Области языков программирования. Языки сценариев.
- •Области языков программирования. Web-программирование.
- •9. Уровни языков программирования. Языки ассемблера(история возникновения, отличительные особенности, пример языков).
- •10. Уровни языков программирования. Языки высокого уровня(история возникновения, отличительные особенности, пример языков).
- •11. Методы реализации программ. Компиляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •12. Методы реализации программ. Интерпретация (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •14. Методы реализации программ. Трансляция (схема получения результата из исходного кода, преимущества и недостатки, сравнительная таблица).
- •15. Критерии качества программ:
- •16. Алгоритм:
- •17. Способы записи алгоритма. Блок-схемы.
- •18. Способы записи алгоритма. Псевдокод.
- •19. Способы записи алгоритма. Сравнение различных подходов:
- •22. Концепция памяти
- •23. Принципы типизации данных.
- •24. Иерархия простых типов данных.
- •25. Смотри таблицу в конспектах
- •26. Правила приведения типов.
- •27. Оператор sizeof.
- •28. Переменные (объявление, инициализация, присвоение).
- •29. Константы. Специальные символы. Квалификатор const.
- •30. Область видимости переменных.
- •31. Операторы управления областью видимости.
- •32. Группы операций (особенности записи, таблица приоритетов).
- •37. Структурное программирование: историческая справка.
- •38. Принципы структурного программирования.
- •39. Структурное программирование: три базовые конструкции.
- •40. Основные операторы.
- •Пустой оператор.
- •Оператор присваивания (синтаксис, логика работы, полная и сокращённая форма, порядок выполнения, контекст вычисления, пример).
- •Составной оператор (синтаксис, логика работы, пример).
- •Условный оператор.
- •Неоднозначность условного оператора .
- •Оператор выбора (синтаксис, логика работы, пример)
- •48. Цикл с предусловием.
- •49. Цикл с предусловием.
- •50. Цикл с параметром
- •51. Взаимозаменяемость циклов
- •52. Оператор break
- •53. Оператор continue
- •54. Оператор ?: (синтаксис, логика работы, пример)
- •55. Ссылки (понятие, способы применения).
- •56. Подпрограммы (синтаксис, виды подпрограмм, контекст, пример).
- •57. Оператор return.
- •58. Прототипы функций (понятие, назначение, способы применения).
- •59. Библиотеки функций. Оператор #include.
- •60.Создание пользовательских библиотек
- •61. Способы передачи параметров в функции.
- •Способы передачи значения из одной функции в другую.
- •63. Рекурсия
- •64. Значения по умолчанию.
- •65. Перегрузка функции.
- •66.Перезагрузка операторов.
- •67.Шаблоны функций.
- •68. Разрешение неоднозначности при вызове функций.
- •69. Одномерные массивы (объявление, индексация, хранение в памяти, сортировка).
- •70. Типовые алгоритмы обработки элементов массива.
- •71.Двумерные массивы
- •72. Представление двумерного массива в виде одномерного. Соответствие индексов двумерного и одномерного
- •73. Многомерные массивы (объявление, индексация, хранение в памяти, сортировка). Пример
- •74. Указатели (назначение синтаксис, операции).
- •75. Различие между указателями и ссылками.
- •76. Динамическая память (выделение и освобождение памяти под переменные, одномерные массивы, двумерные массивы).
- •77. Тип данных «Массив массивов»
- •78. Представление строк в языках программирования. Достоинства и недостатки различных представлений (отличие ‘a’ от “a”).
- •Функции библиотеки cstring
- •Макросы
- •Типы данных
- •82. Файлы (понятие, текстовые и двоичные файлы, структурированные и неструктурированные, операции, основные библиотеки для работы с файлами).
- •Файловый ввод-вывод с использованием потоков
- •83. Потоковый ввод-вывод. Библиотека потокового ввода-вывода.
- •85. Файловый ввод-вывод. Стандартная библиотека ввода-вывода
- •87.Типовые алгоритмы обработки файлов
- •89.Создание простых бд с помощью массива структур.
- •90. Списки (определение, типовые операции, использование).
- •91. Создание простых бд с помощью списков.
85. Файловый ввод-вывод. Стандартная библиотека ввода-вывода
Для осуществления операций с файлами предусмотрено три класса: ifstream, ofstream и fstream. Эти классы являются производными, соответственно, от классов istream, ostream и iostream. Поскольку эти последние классы, в свою очередь, являются производными от класса ios, классы файловых потоков наследуют все функциональные возможности своих родителей (перегруженные операции << и >> для встроенных типов, функции и флаги форматирования, манипуляторы и пр.). Для реализации файлового ввода-вывода нужно включить в программу заголовочный файл fstream.h.
Существует небольшое отличие между использованием предопределенных и файловых потоков. Файловый поток должен быть связан с файлом прежде, чем его можно будет использовать. С другой стороны, предопределенные потоки могут использоваться сразу после запуска программы, даже в конструкторах статических классов, которые выполняются даже раньше вызова функции main(). Можно позиционировать файловый поток в произвольную позицию в файле, в то время как для предопределенных потоков это обычно не имеет смысла.
Для создания файлового потока эти классы предусматривают следующие формы конструктора:
создать поток, не связывая его с файлом:
ifstream(); ofstream(); fstream();
создать поток, открыть файл и связать поток с файлом:
ifstream(const char *name, ios::openmode mode = ios::in) ; ofstream(const char* name, ios::openmode mode=ios::out | ios::trunc); fstream(const char * name, ios::openmode mode = ios::in | ios::out);
Чтобы открыть файл для ввода или вывода, можно использовать вторую форму нужного конструктора
fstream fs("FileName.dat");
Режимы открытия и их назначение
Режим открытия |
Назначение |
ios::in |
Открыть файл для чтения |
ios::out |
Открыть файл для записи |
ios::ate |
Начало вывода устанавливается в конец файла |
ios::app |
Открыть файл для добавления в конец |
ios::trunc |
Усечь файл, то есть удалить его содержимое |
ios::binary |
Двоичный режим операций |
86. Основные функции управлением вводом-выводом <cstdio>.
Функции заголовочного файла cstdio
Операции с файлами |
|||
remove |
Удалить файл. |
||
rename |
Переименовать файл. |
||
tmpfile |
Создать временный файл. |
||
tmpnam |
Сгенерировать имя для файла. |
||
Доступ к файлам |
|||
fclose |
Отсоединить поток и закрыть файл. |
||
fflush |
Обнуление (сброс) потоков. |
||
fopen |
Открыть файл. |
||
freopen |
Перенаправление потоков ввода/вывода. |
||
setbuf |
Определить строку для буферизации потока. |
||
setvbuf |
Функция изменяет буфер, который будет использоваться для операций ввода/вывода с указанным потоком. |
||
Форматирование потоков ввода/вывода |
|||
fprinf |
Записывает в указанный поток последовательность символов, предварительно отформатированных. |
||
fscanf |
|
||
prinf |
|
||
scanf |
|
||
sprinf |
|
||
sscanf |
|
||
vfprinf |
|
||
vprintf |
|
||
vsprinf |
|
||
Символы ввода/вывода |
|||
fgetc |
Возвращает символ на который ссылается внутренний индикатор позиции файла указанного потока. |
||
fgets |
Считывает символы из потока и сохраняет их в виде строки. |
||
fputc |
Записывает символ в поток и перемещает позицию индикатора положения. |
||
fputs |
Записывает строку, указанную в параметре в поток. |
||
getc |
Функция возвращает символ из потока, на который ссылается внутренний индикатор позиции файла. |
||
getchar |
Получить символ из стандартного потока ввода. |
||
gets |
Получить строку из стандартного потока ввода. |
||
putc |
Помещает символ в поток и перемещает позицию индикатора текущего положения. |
||
putchar |
Вывод текущего символа на стандартный поток вывода (stdout). |
||
puts |
Вывод строки на стандартный поток вывода (на экран). |
||
ungetc |
Возвращает прочитанный символ обратно в поток ввода. |
||
Чтение/запись потоков |
|||
fread |
Считать блок данных из файла. |
||
fwrite |
Записать в файл блок данных. |
||
Позиционирование по файлу |
|||
fgetpos |
Получить значение текущего положения в файле. |
||
fseek |
Изменение позиции внутреннего указателя положения в файле, относительно некоторого положения. |
||
fsetpos |
Изменение позиции внутреннего указателя положения в файле. |
||
ftell |
Получить значение указателя текущего положения потока. |
||
rewind |
Установить внутренний указатель положения файла в начало файла. |
||
Обработка ошибок |
|||
clearerr |
Обнулить внутренние показатели ошибки и конца файла. |
||
feof |
Функция-индикатор конца файла, определяет конец файла. |
||
ferror |
Функция-индикатор ошибок, отлавливает ошибки, связанные с обработкой потоков. |
||
perror |
Интерпретация кода ошибки макроса ERRNO в символьное сообщение. |
Типы данных
FILE |
Этот тип данных определяет поток и содержит информацию, необходимую для управления потоком. |
fpos_t |
Тип данных fpos_t хранит информацию для указания позиции в файле. |
size_t |
Тип данных для представления количества байтов буфера или строки. |