Объектно-ориентированное программирование
Константы
Поточный ввод-вывод
Указатель void
Функции
Динамическое выделение памяти
Абстрактные типы данных
Сравнение классов и структур
Область видимости класса
Статические члены класса
Ссылки
Конструкторы и деструкторы
Неявный указатель this
Дружественные функции
Перегрузка операций
Наследование
Виртуальные функции
Множественное наследование
Параметрический полиморфизм
Работа с файлами
Аргументы функции main
Обработка исключительных ситуаций
Литература
Язык С++ возник в начале 1980-х годов, когда сотрудник фирмы Bell Labs Бьёрн Страуструп придумал ряд усовершенствований к языку C под собственные нужды. Когда в конце 1970-х годов Страуструп начал работать в Bell Labs над задачами теории очередей, он обнаружил, что попытки применения существующих в то время языков моделирования оказываются неэффективными, а применение высокоэффективных машинных языков слишком сложно из-за их ограниченной выразительности. Так, язык Симула имеет такие возможности, которые были бы очень полезны для разработки объемного программного обеспечения, но работает слишком медленно, а язык BCPL достаточно быстр, но слишком близок к языкам низкого уровня и не подходит для разработки объемного программного обеспечения. Страуструп дополнил язык C возможностями работы с классами и объектами. В результате практические задачи моделирования оказались доступными для решения как с точки зрения времени разработки (благодаря использованию Симула-подобных классов), так и с точки зрения времени вычислений (благодаря быстродействию C).
При создании C++ Бьёрн Страуструп ставил цели:
- Получить универсальный язык со статическими типами данных, эффективностью и переносимостью языка C.
- Непосредственно и всесторонне поддерживать множество стилей программирования, в том числе процедурное программирование, абстракцию данных, объектно-ориентированное программирование и обобщённое программирование.
- Дать программисту свободу выбора, даже если это даст ему возможность выбирать неправильно.
- Максимально сохранить совместимость с С: любая конструкция, допустимая в обоих языках, должна в каждом из них обозначать одно и то же и приводить к одному и тому же поведению программы.
- Избегать особенностей, которые зависят от платформы или не являются универсальными.
- «Не платить за то, что не используется» — неиспользуемые языковые средства не должны приводить к снижению производительности программ.
- Не требовать сложной среды программирования.
Все основные операции, операторы, типы данных языка Си присутствуют в С++. Некоторые из них усовершенствованы и добавлены принципиально новые конструкции, которые и позволяют говорить о С++ как о новом языке, а не просто о новой версии языка
Помогите решить
В одномерном массиве, состоящем из n действительных элементов, вычислить:
1) номера элементов, дающих максимальную по модулю разницу с заданным значением t (значение t ввести),
2) сумму элементов массива, расположенных после первого нулевого элемента.
3) Превратить массив так, чтобы сначала располагались все элементы, целая часть которых лежит в промежутке [а, b], а затем – все остальные (значения а, b ввести).
Вот начал, дальше не понимаю как все правильно записать:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <cmath>
using namespace std;
int main() {
int N;
double* array;
cout << "Enter the N:";
cin >> N;
if (N > 0) {
array = new double[N];
for (int i = 0; i < N; i++) {
cout << "array[" << i << "]=";
cin >> array[i];
}
}
else {
cout << "Wrong N!" << endl;
}
}
Но тут же только ввод элементов массива!
Как ввести t, a, b? Это же должно быть понятно!
поможет найти модуль разности.
А потом сравнить значение элемента с а и b. Если удовлетворяет, записываем следующим с начала массива, если нет — с конца (если к порядку элементов нет требований)
А по С++11 что-нибудь будет?
Пока ничего нового не будет
Спасибо большое автору сайта за столь замечательный ресурс)
Ошибка в правом меню "Алгоритмы сортировки и поиска"
Ошибку не вижу