- •1. Основные операции языка Си.
- •3. Язык Си: указатели и массивы. Определения, примеры.
- •4. Язык Си: объявления функций, передача аргументов. Примеры.
- •5. Язык Си: строки и указатели. Определения, примеры.
- •8. Язык Си: структуры. Пример.
- •9 . Язык Си: битовые поля и объединения. Примеры.
- •10. Язык Си: оператор определения типа. Примеры.
- •11.Язык Си: препроцессор. Директивы препроцессора, примеры
- •12.Язык Си: программный стек. Пример работы стека.
- •13. Линейные списки. Операции с линейными списками.
- •14 Hash-таблицы
- •15 Двоичные деревья
- •17. Язык Си: ссылочные типы. Пример.
- •18. Язык Си: защита указателей и объектов, неявное изменение объектов.
- •19. Язык Си: организация ввода/вывода. Пример: слияние файлов. Организация ввода/вывода
- •Открытие файла
- •Закрытие файла
- •Ввод из файла
- •Вывод в файл
- •Особые ситуации
- •Пример: слияние файлов
- •20. Язык Си: произвольный доступ к файлам. Пример.
- •22. Язык Си: примеры реализаций функций ввода/вывода (getc,putc).
- •23. Язык Си: примеры реализаций функций ввода/вывода (fgets, fputs).
- •24. Язык Си: работа с файловой системой. Пример.
- •25. Основные понятия ооп: абстракция, инкапсуляция, наследование, полиморфизм.
- •27. Объекты классов: статические,автоматические, динамические. Примеры.
- •28. Управление доступом к элементам классов. Пример.
- •29. Шаблоны функций и шаблоны классов. Примеры.
- •30. Наследование. Пример.
- •31. Множественное наследование. Пример.
- •П оскольку классы-потомки наследуют все данные и методы классов-предков, в итоге имеем следующую картину:
- •32. Виртуальные функции. Раннее и позднее связывание.
- •33. Абстрактные классы. Их назначение, пример.
- •34. Полиморфный контейнер (пример).
- •36. Конструкторы, их виды, примеры. Вызов конструкторов при наследовании.
- •37. Деструкторы. Их назначение, примеры.
- •39. Перегруженные операции. Примеры.
- •40. Обработка нештатных ситуаций. Объекты-исключения. Примеры.
- •Вопрос 1: какова дальнейшая судьба этих ресурсов, будут ли они освобождены?
- •Вопрос 2: как распознавать подобные ситуации и корректно их обрабатывать?
- •41. Модели жизненного цикла программного обеспечения. Модели жизненного цикла по
- •Спиральная модель жизненного цикла по.
- •42. Проектирование программного обеспечения и uml.
- •Uml (основные понятия)
- •Канонические диаграммы языка uml 2.X
- •43. Диаграммы прецедентов. Нотация, семантика, примеры.
- •Основные обозначения на диаграммах прецедентов:
- •44. Сценарии выполнения прецедентов (пример).
- •45. Диаграммы классов. Нотация, семантика, отношения.
- •46. Атрибуты на диаграммах классов. Нотация и семантика. Примеры.
- •47. Операции на диаграммах классов. Нотация и семантика. Примеры.
- •48. Отношения ассоциации на диаграммах классов.
- •Отношения ассоциации
- •Предприятие
- •Сотрудник
- •Отношения обобщения
- •Отношения композиции
- •53. Язык c#: сборки, манифесты, домены, компоненты.
- •55. Java как язык ооп для машинно-независимых приложений.
- •56. Обзор Java-технологий NetBeans ide.
- •57. Компонентные технологии разработки программного обеспечения.
- •59.Обёртки в языках c# и Java.
- •60. Архитектурный паттерн mvc. Область применения, схема взаимодействия.
Открытие файла
FILE* fopen(char *name, char *mode);
Здесь name — имя файла (полный путь), mode — режим использования:
“r” — только чтение из файла
“w” — только запись в файл
“a” — только добавление записей в конец файла
“r+” — чтение и запись (файл должен существовать)
“w+” — запись и чтение (в пустой файл)
“a+” — чтение и добавление записей в конец файла
В случае успешного открытия файла функция fopen возвращает указатель на структуру типа FILE. При ошибке возвращается значение NULL.
Закрытие файла
int fclose(FILE *stream);
В случае успешного закрытия файла функция fclose возвращает 0.
При ошибке возвращается значение EOF. EOF есть признак конца файла, эта константа описана в “stdio.h”. Обычно EOF — это длинная минус единица (-1L).
Ввод из файла
int getc(FILE *stream);
Функция читает один символ из потока stream и возвращает его как результат.
При достижении конца файла или возникновении ошибки в/в возвращает EOF.
char* fgets(char *s, int n, FILE *stream);
Функция читает строку символов длиной не более n символов из потока stream и размещает их начиная с адреса, на который указывает s. Необходимо позаботиться о выделении достаточной памяти для размещения вводимой строки. Ввод завершается, когда прочитан символ перевода строки '\n', исчерпан лимит количества вводимых символов n, достигнут конец файла или произошла ошибка в/в. При вводе символ перевода строки '\n' заменяется на признак конца строки '\0'.
В случае успеха функция возвращает указатель s. Значение NULL возвращается, если произошла ошибка в/в или был достигнут конец файла.
int fscanf(FILE *stream, <список-форматов> [, <список-адресов>]);
Функция осуществляет форматный ввод полей данных из потока stream, в соответствии с заданным <списком-форматов>, и размещает введенные данные в памяти в соответствии со <списком-адресов>.
В случае успеха функция возвращает количество введенных и размещенных в памяти полей данных. При достижении конца файла или возникновении ошибки в/в возвращает значение EOF.
Вывод в файл
int putc(int с, FILE *stream);
Функция выводит символ с в поток stream и возвращает выведенный символ как результат работы. При достижении конца файла или возникновении ошибки в/в возвращает EOF.
int fputs(char *s, FILE *stream);
Функция выводит строку s в поток stream. В случае успеха функция возвращает некоторое неотрицательное число (обычно количество выведенных символов). Значение EOF возвращается, если произошла ошибка в/в.
int fprintf(FILE *stream, <список-форматов> [, <список-данных>]);
Функция осуществляет форматный вывод данных в поток stream, в соответствии с заданным <списком-данных>, преобразуя данные в соответствии с заданным <списком-форматов>. В случае успеха функция возвращает количество введенных байтов. При возникновении ошибки в/в функция возвращает некоторое отрицательное значение.
Особые ситуации
int feof(FILE *stream);
Функция возвращает некоторое ненулевое значение (истину), если при последней попытке чтения из потока stream был достигнут конец файла. Нулевое значение (ложь) возвращается, если конец файла не был достигнут.
int ferror(FILE *stream);
Функция возвращает некоторое ненулевое значение (истину), если при работе с потоком stream произошла ошибка в/в. Нулевое значение (ложь) возвращается, если ошибок в/в при работе с потоком stream зафиксировано не было. Индикатор ошибки в/в сбрасывается после закрытия файла, связанного с данным потоком или после вызова специальной функции clearerr.
int ungetc(int с, FILE *stream);
Функция «заталкивает» символ с в поток stream, открытый для чтения. Последующая операция чтения из потока stream выдаст символ с. В случае успеха функция возвращает символ с. При возникновении ошибки в/в поток stream не изменяется и функция возвращает значение EOF.