- •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. Область применения, схема взаимодействия.
1. Основные операции языка Си.
Над объектами в языке Си могут выполняться различные операции:
операции присваивания;
операции отношения;
арифметические;
логические;
сдвиговые операции.
Результатом выполнения операции является число.
Операции могут быть бинарными или унарными.
Бинарные операции выполняются над двумя объектами, унарные — над одним.
Пример присваивания: b = a + 2
В случае если объекты в левой и правой части операции присваивания имеют разные типы используется операция явного приведения типа.
объект = (тип)выражение;
Основные операции отношения:
== эквивалентно — проверка на равенство;
!= не равно — проверка на неравенство;
< меньше;
> больше;
<=меньше или равно;
>= больше или равно.
Операции отношения используются при организации условий и ветвлений. Результатом этих операций является 1 бит, значение которого равно 1, если результат выполнения операции — истина, и равно 0, если результат выполнения операции — ложь.
Арифметические операции
Основные бинарные операции, расположенные в порядке уменьшения приоритета:
* — умножение;
/ — деление;
+ — сложение;
— — вычитание;
% — остаток от целочисленного деления.
Основные унарные операции:
++ — инкрементирование (увеличение на 1);
–– — декрементирование (уменьшение на 1);
— — изменение знака.
Результат вычисления выражения, содержащего операции инкрементирования или декременирования, зависит от того, где расположен знак операции (до объекта или после него). Если операция расположена до объекта, то сначала происходит изменение значения переменной на 1, а потом это значение используется для выполнения следующих операций. Если операция ++ или — расположена после переменной, то сначала выполняется операция, а потом значение переменной изменяется на 1.
Логические операции
Логические операции делятся на две группы:
условные;
побитовые.
Условные логические операции чаще всего используются в операциях проверки условия if и могут выполняться над любыми объектами. Результат условной логической операции:
1 если выражение истинно;
0 если выражение ложно.
Вообще, все значения, отличные от нуля, интерпретируются условными логическими операциями как истинные.
Основные условные логические операции:
&& — И (бинарная) — требуется одновременное выполнение всех операций отношения;
|| — ИЛИ (бинарная) — требуется выполнение хотя бы одной операции отношения;
! — НЕ (унарная) — требуется невыполнение операции отношения.
Побитовые логические операции оперируют с битами, каждый из которых может принимать только два значения: 0 или 1.
Основные побитовые логические операции в языке Си:
& конъюнкция (логическое И) — бинарная операция, результат которой равен 1 только когда оба операнда единичны (в общем случае — когда все операнды единичны);
| дизъюнкция (логическое ИЛИ) — бинарная операция, результат которой равен 1 когда хотя бы один из операндов равен 1;
~ инверсия (логическое НЕ) — унарная операция, результат которой равен 0 если операнд единичный, и равен 1, если операнд нулевой;
^ исключающее ИЛИ — бинарная операция, результат которой равен 1, если только один из двух операндов равен 1 (в общем случае если во входном наборе операндов нечетное число единиц).
Сдвиговые операции
Операции арифметического сдвига применяются в целочисленной арифметике и обозначаются как:
>> — сдвиг вправо;
<< — сдвиг влево.
Общий синтаксис осуществления операции сдвига:
b = a >> 1;
Арифметический сдвиг целого числа вправо >> на 1 разряд соответствует делению числа на 2.
Арифметический сдвиг целого числа влево << на 1 разряд соответствует умножению числа на 2.
2. Язык Си: переключатели, перечислимые типы. Примеры.
Основные операторы
формат: switch( <целое-выражение>) { case < константа-1> : < оператор-1>
case <константа-2> : < оператор-2>
………………………… case <константа-k> : <оператор-k>
default: <оператор-n> }
Пример:
// Подсчёт цифр, пробелов и прочего
int digits, whites, others, c;
digits = whites = others = 0;
while ( ( c = getchar() ) != EOF )
switch ( c) {
case ‘0’ :
case ‘1’ :
……………
case ‘9’ : digits++; break; // это цифра
case ‘ ‘ : whites++; break; // это пробел
default : others++; // это прочее }
Основные операторы
Перечислимые типы
формат: enum <имя-типа> {<список-перечисления>}
enum <имя-типа> <список-переменных>
enum <имя-типа> {<список-перечисления>} <описания-переменных>
где:
{ <список-перечисления> } есть { < имя-1> [ = <конст.-выражение-1>],
< имя-1> [ = <конст.-выражение-2>],
……………………………………..
<имя-n> [ = <конст.-выражение-n>] }
пример:
//Манипуляция с цветами спектра
enum spectrum { Red, Orange, Yellow = 10, Green, Blue, Violet }; //описали тип
enum spectrum color; //описали переменную
color = Green + 2 * Orange; // вычислили цвет
// Чему равен color? Посчитаем: 11 + 2 = 13(Violet)