- •Министерство образования и науки Украины
- •Введение
- •1. Основы структурного программирования
- •1.1. Алгоритм и программа
- •1.2. Свойства алгоритма
- •1.3. Компиляторы и интерпретаторы
- •1.4. Языки программирования
- •Состав языка
- •2.2.5. Типы с плавающей точкой.
- •2.3. Переменные
- •2.5. Выражения
- •3. Ввод и вывод данных
- •4.1. Базовые конструкции структурного программирования
- •4.2. Оператор «выражение»
- •4.3. Составные операторы
- •4.4. Операторы выбора
- •4.5. Операторы циклов
- •Операторы перехода
- •5.1. Программирование ветвлений
- •5.2. Программирование арифметических циклов.
- •5.3. Итерационные циклы
- •5.4. Вложенные циклы
- •6. Массивы
- •6.2. Обработка одномерных массивов
- •6.2.1. Перебор массива по одному элементу
- •6.2.2 Формирование псевдодинамических массивов
- •6.2.3. Использование датчика случайных чисел для формирования массива.
- •6.2.4. Перебор массива по два элемента
- •6.3. Классы задач по обработке массивов
- •6.3.1. Задачи 1-ого класса
- •6.3.2. Задачи 2-ого класса
- •6.3.3. Задачи 3-ого класса
- •6.3.4. Задачи 4-ого класса
- •6.4. Сортировка массивов
- •6.4.1. Сортировка методом простого включения (вставки)
- •6.4.2. Сортировка методом простого выбора
- •6.4.3. Сортировка методом простого обмена
- •6.5. Поиск в отсортированном массиве
- •7. Указатели
- •7.1. Понятие указателя
- •7.2. Динамические переменные
- •7.3. Операции с указателями
- •8. Ссылки
- •8.1. Понятие ссылки
- •8.1. Правила работы со ссылками:
- •9. Указатели и массивы
- •9.1. Одномерные массивы и указатели
- •9.2. Многомерные массивы и указатели
- •9.3. Динамические массивы
- •10. Символьная информация и строки
- •11. 1. Объявление и определение функций
- •Прототип функции
- •11.3.Параметры функции
- •11.4. Локальные и глобальные переменные
- •Функции и массивы
- •11.5.1. Передача одномерных массивов как параметров функции
- •11.5.2. Передача строк в качестве параметров функций
- •Передача многомерных массивов в функцию
- •12. Функции с начальными (умалчиваемыми) значениями параметров
- •13. Подставляемые (inline) функции
- •14. Функции с переменным числом параметров
- •15. Перегрузка функций
- •16. Шаблоны функций
- •17. Указатель на функцию
- •While(1)//бесконечный цикл
- •Fptr[n]();//вызов функции с номером n
- •Указатели на функции удобно использовать в тех случаях, когда функцию надо передать в другую функцию как параметр.
- •18. Ссылки на функцию
- •19. Типы данных, определяемые пользователем
- •Переименование типов
- •Перечисления
- •Структуры
- •19.3.1. Инициализация структур.
- •19.3.2. Присваивание структур
- •19.3.3. Доступ к элементам структур
- •Указатели на структуры
- •20. Битовые поля
- •21. Объединения
- •22. Динамические структуры данных
- •22.1. Линейный однонаправленный список
- •22.2. Работа с двунаправленным списком
- •23. Ввод-вывод в с
- •23.1. Потоковый ввод-вывод
- •23.2. Открытие и закрытие потока
- •23.3. Стандартные файлы и функции для работы с ними
- •23.4. Символьный ввод-вывод
- •23.5. Строковый ввод-вывод
- •23.6. Блоковый ввод-вывод
- •23.7. Форматированный ввод-вывод
- •23.8. Прямой доступ к файлам
- •23.9. Удаление и добавление элементов в файле
- •24. Вопросы к экзамену
- •25. Примеры задач для подготовки к экзамену
23.9. Удаление и добавление элементов в файле
Пример 1:
void del(char *filename)
{
//удаление записи с номером х
FILE*f, *temp;
f=fopen(filename,”rb”);//открыть исходный файл для чтения
temp=fopen(“temp”,”wb”)//открыть вспомогательный файл для записи
student a;
for(long i=0;.fread(&a,sizeof(student),1,f);i++)
if(i!=x)
{
fwrite(&a,sizeof(student)1,temp);
}
else
{
cout<<a<<" - is deleting...";
}
fclose(f); fclose(temp);
remove(filename);
rename(“temp”, filename);
}
Пример 2:
void add(char *filename)
{
//добавление в файл
studenta;
intn;
f=fopen(filename,”ab”)открыть файл для добавления
cout<<"\nHow many records would you add to file?";
cin>>n;
for(int i=0;i<n;i++)
{
прочитать объект
fwrite(&a,sizeof(student),1,f);//записать в файл
}
fclose(f);//закрыть файл
}
24. Вопросы к экзамену
Алгоритм и его свойства. Способы записи алгоритма. Программа. Языки программирования. Примеры алгоритмов и программ.
Структура программы на языке С++. Примеры. Этапы создания исполняемой программы.
Состав языка С++. Константы и переменные С++.
Типы данных в С++.
Выражения. Знаки операций.
Основные операторы С++ (присваивание, составные, выбора, циклов, перехода). Синтаксис, семантика, примеры
Этапы решения задачи. Виды ошибок. Тестирование.
Массивы (определение, инициализация, способы перебора).
Сортировка массивов (простой обмен, простое включение, простой выбор).
Поиск в одномерных массивах (дихотомический и линейный).
Указатели. Операции с указателями. Примеры
Динамические переменные. Операции newиdelete. Примеры.
Ссылки. Примеры.
Одномерные массивы и указатели. Примеры.
Многомерные массивы и указатели. Примеры.
Динамические массивы. Примеры.
Символьная информация и строки. Функции для работы со строками (библиотечный файл string.h).
Функции ввод-вывода (scanf(), printf(), puts(), gets(), putchar(),getchar()).
Функции в С++. Формальные и фактические параметры. Передача параметров по адресу и по значению. Локальные и глобальные переменные. Примеры.
Прототип функции. Библиотечные файлы. Директива препроцессора #include.
Передача одномерных массивов в функции. Примеры.
Передача многомерных массивов в функции. Примеры.
Передача строк в функции. Примеры.
Функции с умалчиваемыми параметрами. Примеры.
Подставляемые функции. Примеры.
Функции с переменным числом параметров. Примеры.
Перегрузка функции. Шаблоны функций. Примеры.
Указатели на функции. Примеры.
Ссылки на функции. Примеры.
Типы данных, определяемые пользователем (переименование типов, перечисление, структуры, объединения). Примеры.
Структуры. Определение, инициализация, присваивание структур, доступ к элементам структур, указатели на структуры, битовые поля структур.
Динамические структуры данных (однонаправленные и двунаправленные списки).
Создание списка, печать, удаление, добавление элементов (на примере однонаправленных и двунаправленных списков).
Потоковый ввод-вывод в С++. Открытие и закрытие потока. Стандартные потоки ввода-вывода.
Символьный, строковый, блоковый и форматированный ввод-вывод.
Прямой доступ к файлам.
Создание бинарных и текстовых файлов, удаление, добавление, корректировка элементов, печать файлов.