
- •Цели программирования
- •Области языков программирования. Научные приложения.
- •Области языков программирования. Коммерческие приложения.
- •Области языков программирования. Искусственный интеллект.
- •Области языков программирования. Системное программирование.
- •Области языков программирования. Языки сценариев.
- •Области языков программирования. 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. Создание простых бд с помощью списков.
19. Способы записи алгоритма. Сравнение различных подходов:
Графический способ представления алгоритмов является более компактным и наглядным по сравнению со псевдокодом. При графическом представлении алгоритм изображается в виде последовательности связанных между собой функциональных блоков. Графическое описание алгоритма, называется блок-схемой. Этот способ имеет ряд преимуществ благодаря наглядности, обеспечивающей, в частности, высокую «читаемость» алгоритма и явное отображение управления в нем. В блок-схеме каждому типу действий (вводу исходных данных, вычислению значений выражений, проверке условий, управлению повторением действий, окончанию обработки и т.п.) соответствует геометрическая фигура, представленная в виде блочного символа. Блочные символы соединяются линиями переходов, определяющими очередность выполнения действий. В таблице №1 приведены обозначения, наиболее часто используемые в блок-схемах. Сначала определим понятие блок-схемы. Блок-схема — это ориентированный граф, указывающий порядок исполнения команд алгоритма. Вершины такого графа могут быть одного из трех типов: функциональная вершина (F), имеющая один вход и один выход; предикатная вершина (Р), имеющая один вход и два выхода, в этом случае функция Р передает управление по одной из ветвей в зависимости от значения Р (t, т. е. true, означает «истина»,f, т. е. false, — «ложь»); объединяющая вершина (вершина «слияния») (U), обеспечивающая передачу управления от одного из двух входов к выходу. Иногда вместо t пишут «да» (либо знак «+»), вместо f — «нет» (либо знак «-»). Из данных элементарных блок-схем можно построить четыре блок-схемы, имеющих особое значение для практики алгоритмизации: композиция, или следование альтернатива, или ветвление; итерация, или цикл, с предусловием или постусловием. Блок-схема альтернатива может иметь и сокращенную форму, в которой отсутствует ветвь F2. Развитием блок-схемы типа альтернатива является блок-схема выбор.
20. Язык C++. Общие сведения и характеристика языка
Прямым предшественником языка C++ является структурный язык программирования C, который был предложен в начале 70-х годов ХХ века для операционной системы Unix. Язык C++ — это объектно-ориентированный язык программирования сочетающий в себе свойства как и высокоуровневых, так и низкоуровневых языков и появившийся в начале 80-х годов. Главное отличие между C++ и Си – это разная степень внимания к типам и структурам данных. Класс является ключевым понятием C++.Описание класса содержит описание данных, требующихся для представления объектов этого типа и набор операций для работы с подобными объектами. Являясь одним из самых популярных языков программирования,[3][4] C++ широко используется для разработки программного обеспечения. Область его применения включает создание операционных систем, разнообразных прикладных программ, драйверов устройств, приложений для встраиваемых систем, высокопроизводительных серверов, а также развлекательных приложений (игр).
Общие принципы
В книге «Дизайн и эволюция C++» Бьёрн Страуструп описывает принципы, которых он придерживался при проектировании C++.[9] Эти принципы объясняют, почему C++ именно такой, какой он есть. Некоторые из них:
Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
Максимально сохранить совместимость с C, тем самым делая возможным лёгкий переход от программирования на C.
Избежать разночтений между C и C++: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
Избегать особенностей, которые зависят от платформы или не являются универсальными.
Не требовать слишком усложнённой среды программирования.
C++ — чрезвычайно мощный язык, содержащий средства создания эффективных программ практически любого назначения, от низкоуровневых утилит и драйверов до сложных программных комплексов самого различного назначения. В частности: Достоинства:
Поддерживаются различные стили и технологии программирования,
Язык поддерживает понятия физической (const) и логической (mutable) константности. Это делает программу надёжнее, так как позволяет компилятору, например, диагностировать ошибочные попытки изменения значения переменной.
Используя шаблоны, возможно создавать обобщённые контейнеры и алгоритмы для разных типов данных, а также специализировать и вычислять на этапе компиляции.
Кроссплатформенность: стандарт языка накладывает минимальные требования на ЭВМ для запуска скомпилированных программ.
Имеется возможность работы на низком уровне с памятью, адресами.
21. Структура программы на языке C++. Пример простой программы.
// my first program in C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hello World!";
return 0;
}
// my first program in C++
Это комментарий. Чтобы закомментировать строчку, достаточно поставить двойной слеш в ее начале(//).Комментарии никак не влияют на код программы. Программист может использовать комментарии как короткие объяснения для самого себя.
#include <iostream>
Строки, начинающиеся со знака (#) являются директивами для препроцессора. В нашем случае директива #include <iostream> обращается к препроцессору для подключения стандартной библиотеки ввода-вывода С++.
using namespace std;
В C++ есть понятие пространство имен. Каждая переменная, класс и т.п. принадлежат какому-то пространству имен. Для обращения к переменной "a" пространства имен "nmsps" нужно писать "nmsps::a". По умолчанию используется пространство имен с пустым именем, однако все стандартные функции расположены в пространстве имен std.
Если вы не напишете "using namespace std;" ,то вместо cout << "Hello World!"; надо будет всякий раз писать std:: cout << "Hello World!";
int main ()
Эта строчка соответствует началу выполнения основной функции, это точка входа в программу на С++.При необходимости, в скобках указывается список параметров. В случае, если main не возвращает значения необходимо в скобках писать void.
cout << "Hello World!";
Объект класса iostream , представляющий стандартный поток вывода.
В данном случае, результатом выполнения будет вывод на экран строчки [Hello World!].
return 0;
Оператор return завершает выполнение функции, в которой он задан, и возвращает управление в вызывающую функцию, в точку, непосредственно следующую за вызовом. Функция main передает управление операционной системе. Формат оператора: return [выражение] ; Если функция не должна иметь возвращаемого значения, то ее нужно объявлять с типом void.