Все записи автора admin

sqrt() — функция библиотеки cmath




sqrt( value );

Функция sqrt() библиотеки cmath (math.h) принимает параметр value и возвращает его квадратный корень.

Если параметр ( в нашем случае — value) отрицательный, возникает ошибка.

Результат выполнения показан в онлайн компиляторе ideone

пример работы функции sqrt c++

Рассылка новых уроков по программированию:

Online компиляторы




Часто возникает необходимость быстро показать кому-либо, как решить небольшую задачу по программированию или как реализовать алгоритм. Можно просто скинуть в ответ кусок кода, но лучше воспользоваться одним из online-компиляторов. Во многих из них есть возможность получить специальную ссылку на скомпилированный код. Такую ссылку можно например оставлять в комментариях к статьям. Пройдя по ней люди увидят не только сам код, но и результат работы программы.

Рассмотрим несколько вариантов online-компиляторов поддерживающих язык программирования C++

1. Online компилятор для С++ на сайте primat.org . Добавляем код, жмем RUN и ждем выполнения.

online-компилятор на primat.org

Если программа по ходу работы требует действий пользователя — выполняем их:

online-компилятор - действия пользователя

Если возникнут ошибки они отобразятся во вкладке compilation, которая откроется автоматически. Во вкладе options можно выбирать разнообразные параметры для компиляции, если вас не устраивают заданные по умолчанию.

Чтобы получить ссылку на этот код — жмем

online-компилятор - действия пользователя

Так же на этом сайте есть компилятор для Паскаль.

2. ideone online-компилятор

ideone online-компилятор

Сразу при входе обратите внимание на тот язык программирования, который выбран по умолчанию. Смените его при необходимости. Входящие данные внесите в stdin:

ideone online-компилятор

ideone online-компилятор

Тут очень большой выбор языков для компиляции:

языки программирования на ideone

3. Online-компилятор Wandbox

Wandbox online-компилятор

Входящие данные надо прописывать в Stdin до того, как нажмете Run.

Wandbox online-компилятор

Мне понравилось, что он хранит историю компиляций. Кроме С++ здесь есть широкий выбор языков программирования для компиляции:

языки программирования на Wandbox

4. C/C++ Online Compiler

online-компилятор Compiler

online-компилятор Compiler

В последнем как-то заморочено со ссылкой у них. Плюс не понятно где смотреть результат выполнения программы. Просто показывает, что программа вернула значение 0.

Смотрите также как установить Microsoft Visual Studio 2015 Express

Рассылка новых уроков по программированию:

pow() — функция библиотеки cmath




pow(a, b);

Функция pow() библиотеки cmath принимает два параметра: a, b. Первое число a (базовое) возводится в степень b.

Возвращает значение ab .

Результат выполнения 23 , 53, 52 :

pow () - функция библиотеки cmath

 

Рассылка новых уроков по программированию:

fma () — функция библиотеки cmath




fma(a, b, c);

Функция fma() библиотеки cmath принимает три параметра: a, b — значения для умножения, c — значение для добавления.

Возвращает значение a * b + c.

Результат выполнения ( 2 * 2 + 3):

fma () - функция библиотеки cmath

Рассылка новых уроков по программированию:

Сбор средств на обучение

1Всем привет! Меня зовут Лилия и я автор сайта PureCodeCpp. Рада помогать вам в изучении С++.

В феврале этого года я прошла тестирование и собеседование в Beetroot Academy и мне «подарили» прекрасную возможность учиться – пройти четырехмесячный курс обучения по разработке сайтов на WordPress. Обучение началось 10 марта и продлится до 9 июля 2016 года.

Стоимость курса достаточно высока. Всем кто хочет и сможет поддержать меня финансово буду очень благодарна. Обещаю учиться хорошо!

Для перевода выбирайте любой удобный способ :

  1. Перевод в WebMoney. Кошельки: R262422197963 (рубли), U391743246007 (гривны), Z420483933399 ($). Вход в WebMoney: 3
  2. Перевод на карту ПриватБанка № 5168 7555 0131 6711. Вход в Приват24:

    Снимок2

  3. Отправка перевода по SMS. billing3

Имена всех спонсоров будут внесены на страницу сайта «Спонсоры проекта PureCodeCpp». На 15.03.2016 уже собрано 10% от недостающей мне суммы!

А вот и мы на первом занятии 10.03.2016:

beetroot 1 6
3 4 7
8 5

Установка Microsoft Visual Studio 2015 Express (IDE).




Среда разработки Microsoft Visual Studio — это такая специальная программа в которой мы будем писать команды компьютеру, а она эти команды будет переводить (при помощи так называемого компилятора) в машинный язык (из единиц и нулей), обрабатывать и выдавать нам некий результат работы нашего программного кода. Чтобы приступить к установке Microsoft Visual Studio Express вам надо пройти по этой ссылке. Прокрутите страницу и найдите там блок с Express for Desktop — это то что нам нужно.установка Microsoft Visual Studio Express

Примечание: Сейчас Microsoft рекомендует устанавливать Visual Studio Community. Если хотите установите его с той же страницы.

Единственное, перед тем как нажать кнопку Загрузка, просмотрите пункты System Requirements (системные требования к вашему компьютеру). Если они не отвечают вашим, к примеру у вас более старая версия Windows, то найдите в Google Microsoft Visual Studio 2010 Express или Microsoft Visual Studio 2013 Express и выберите ту версию, которая сможет нормально работать на вашем компьютере. Ну а если все требования выполняются — жмите Загрузка.

как установить Microsoft Visual Studio 2015 ExpressНемного ждем, пока закачается файл wdexpss_full_RUS.exe Вы можете найти его в Загрузках на вашем компьютере. Кликаем на него два раза и нажимаем кнопку Запустить:

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.2

Если так случилось, что вы не являетесь счастливым обладателем Internet Explorer 10, вы увидите такое предупреждение:

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.3

Смело нажимайте Продолжить. Далее вам предстоит выбрать на какой диск будет произведена установка (можете оставить то, что предлагают по умолчанию). Нажимайте Установить.

как установить Microsoft Visual Studio 2015 Expressм
Установка Microsoft Visual Studio 2015 Express — рис.4

Тут уже придется подождать кому сколько отмерено. Для тех у кого SSD — минут 15, а для жесткого диска берем минут 30 — 40. Так что у вас появилось немного свободного времени. Можете отдохнуть.

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.5

После того, как всё будет принято и применено мы увидим сообщение:

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.6

Значит всё установилось без проблем и можно сразу запускать программу. Вам предложат войти в Учетную запись Майкрософт. Если у вас ее нет — нажмите Регистрация. Лучше зарегистрироваться сразу, так как если этого не сделать, то через 30 дней MVS 2015 Express перестанет работать, пока вы не создадите эту учетную запись.

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.7

После входа или регистрации мы наконец-то увидим открывшуюся среду разработки. Чтобы убедиться, что она нормально работает (а по-другому и быть не может), покажу вам как создать новый проект, внести в него код и запустить. В открывшейся MVS нажимаем Создать проект

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.8

В этом окне нажмите на Visual C++, Win32, Консольное приложение Win32, введите любое имя для вашего нового проекта и снимите галочку с Создать каталог для решения. Жмем ОК.

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.9

Откроется Мастер приложений. В нем нажмите Далее

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.10

отметьте Консольное приложение и Пустой проект. Далее можно нажимать Готово.

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.11

Проект создан. Теперь в нем нам надо создать файл с расширением .cpp. В него мы будем писать код программы. Делается это так: в окошке Обозреватель решений нажмите правой кнопкой мыши на имя вашего проекта (у меня это ConsoleApplication2)

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.12

Выберите Добавить и Класс:

создание проекта и файлов cpp в microsoft visual studio

Откройте вкладку Visual C++ и выберите C++, а затем в списке шаблонов в центральной области выберите Класс C++. Нажмите Добавить.

создание проекта и файлов cpp в microsoft visual studio

В поле мастере универсальных классов C++ введите в поле Имя класса mycode. Не изменяйте имена файлов и параметры по умолчанию. Нажмите кнопку Готово.

создание проекта и файлов cpp в microsoft visual studio

Все — теперь в вашем проекте создан файл, в который можно писать команды на языке С++.

создание проекта и файлов cpp в microsoft visual studio

Еще, для удобства работы, я вам сразу предлагаю включить нумерацию строк кода. Для этого нажмите Сервис — Параметры — Текстовый редактор — С/С++ и установите галочку Номера строк. ОК.

Установка Microsoft Visual Studio 2013 Express
Установка Microsoft Visual Studio 2015 Express — рис.15

Далее, не вдаваясь в подробности, просто скопируйте код ниже и вставьте в ваш файл с именем mycode.cpp. (все что в нем содержалось до этого можно удалить)

После вставки нажмите сочетание клавиш Ctrl + Shift + B — начнется компиляция программы. Вы должны увидеть в нижней строке окна Сборка: успешно: 1, с ошибками: 0 и т.д. После этого нажимаем Ctrl + F5 и видим в открывшемся окне сообщение: «Мы создали первый проект в MVS2015».

как установить Microsoft Visual Studio 2015 Express
Установка Microsoft Visual Studio 2015 Express — рис.16

Надеюсь, у вас всё получилось. Если возникли какие-то вопросы задавайте их в комментариях к этой статье.

Существует также много online компиляторов которыми вы можете пользоваться для несложных задач по программированию.

Конструктор копирования в С++




конструктор копирования в с++,  конструктор копии c++, программирование на с++ для начинающихКогда новички изучают программирование, первым делом, при рассмотрении новой темы, возникает вопрос — для чего необходима та или иная «вещь» о которой сейчас предстоит узнать. Ответим сразу на этот вопрос: «Зачем нужен конструктор копирования?».

Конструктор копирования необходим для того, чтобы мы могли создавать «реальные» (а не побитовые) копии для объектов класса. Такая копия объекта может понадобиться в следующих случаях:

  • при передаче объекта класса в функцию, как параметра по значению (а не по ссылке);
  • при возвращении из функции объекта класса, как результата её работы;
  • при инициализации одного объекта класса другим объектом этого класса.

При передаче объекта в функцию как параметра по значению, эта функция начнет работать с его побитовой копией, а не с полями самого объекта. Допустим определены конструктор и деструктор класса. Первый память выделяет, а второй её освобождает. Во время работы функции, указатель побитовой копии объекта указывает на адрес памяти, где расположен оригинальный объект. В то время, когда работа функции завершается — удаляется и побитовая копия объекта. При ее удалении обязательно сработает определённый деструктор и освободит ту память, что занята объектом-оригиналом. Программа продолжит работу, и при завершении работы, деструктор сработает повторно, пытаясь освободить все тот же отрезок памяти. Это вызовет ошибку программы.

Использование конструктора копирования — прекрасный способ обойти эти ошибки и проблемы. Он создаст «реальную» копию объекта, которая будет иметь личную область динамической памяти.

Конструктор копирования синтаксически выглядит так:

Ниже разберём несложный, но очень показательный пример. В нём будут рассмотрены все 3 случая в которых желательно применять конструктор копирования. Будет создан класс, содержащий конструктор без параметров, конструктор копирования и деструктор. Чтобы пример был не слишком громоздким, конструкторы и деструктор будут выводить на экран сообщения типа «Сработал конструктор», «Сработал дектруктор»… Выделять и освобождать память не будем. Нам отлично будет видно сколько раз сработают конструкторы а сколько раз деструктор. Очевидно, что деструктор (если бы он освобождал память) не должен срабатывать большее количество раз, чем конструктор, выделяющий память.

Пример:

Конструктор без параметров будет вызываться во время создания новых объектов класса. Конструктор копирования — во время создания копий объекта. Деструктор срабатывает при удалении и реального объекта и его копии. В теле функций все описано подробно и не требует дополнительных комментариев.

Запустив программу увидим в консоли следующее:

конструктор копирования в с++,  конструктор копии c++,  программирование на с++ с нуля

Посмотрим что программа выдала в консоль. Блок 1 — во время создания нового объекта, сработал конструктор без параметров. В блоке 2 мы разместили функцию showFunc(). Во время передачи в неё «объекта-параметра» по значению, сработал конструктор копирования и создалась «реальная» копия объекта класса OneClass. При выходе из этой функции сработал деструктор, так как копия объекта уничтожается. Кстати, то, что передача объекта как параметра по значению, вызывает конструктор копирования, служит отличным поводом для передачи объекта по ссылке. Это сэкономит и время и память.

В блоке 3 размещена функция returnObjectFunc(). Так как в её теле прописано создание нового объекта класса OneClass — сначала сработал конструктор без параметров. Далее выполняется код функции и во время возврата объекта в главную функцию main, сработал конструктор копирования. В конце, как и должно быть, деструктор отработал дважды: для объекта и для его реальной копии.

В четвертом блоке, во время объявления и инициализации нового объекта object2, сработал конструктор копирования. При завершении работы программы деструктор сработал для копии объекта из четвертого блока и для объекта object1 из первого блока.

Если же мы закомментируем /*конструктор копирования*/ в классе и снова запустим программу — увидим, что конструктор без параметров сработает 2 раза, а деструктор — пять раз отработает.

конструктор копирования в с++,  конструктор копии c++, программирование на с++ с нуля

В этой ситуации, если бы деструктор освобождал память — в программе возникла бы ошибка.

Очень рекомендую прочесть тему Конструктор копирования в книге Стивена Прата «Язык программирования С++. Лекции и упражнения. 6-е издание.» Она раскрыта намного глубже и включает все основные нюансы использования конструктора копирования. Подробно рассмотрена операция присваивания =.

Чтобы поддержать наш сайт — нажмите на копилку и выберите любой удобный способ.

Рассылка новых уроков по программированию:


Согласен получать уведомления от purecodecpp.com на мой e-mail

Перегруженный конструктор класса




перегруженный конструктор класса с++, основы программирования для начинающих, c++ с нуля

В статье Конструктор и деструктор класса мы уже встречались с перегруженным конструктором в коде, но не акцентировали на этом внимание. Перегрузка конструкторов очень схожа с перегрузкой функций. Конструкторов в определяемом классе может быть несколько — по мере необходимости. Они должны иметь одинаковое имя, идентичное имени класса и обязательно должны отличаться сигнатурой. Например: один из конструкторов не принимает параметры, второй принимает два параметра, третий принимает три параметра. Позже, во время создания объекта, параметры передаются в качестве аргументов. Так компилятор сможет определить, какой из объявленных конструкторов применить при создании объекта.

Рассмотрим пример:

перегруженный конструктор класса с++, основы программирования для начинающих, c++ с нуля На этом примере достаточно легко увидеть, чем вызвана необходимость перегрузки конструкторов. Основной смысл в том, чтобы дать возможность программисту выбрать наиболее подходящий способ инициализации объекта.

Тут представлен самый распространенный вариант перегрузки конструкторов. А именно конструктор с параметрами и второй без параметров. Часто, программисту бывают необходимы оба подобных конструктора, так как конструктор с параметрами удобно использовать, работая с одиночными объектами. Но он не может быть использован, например, для инициализации динамического массива объектов класса.

При каждом объявлении объекта класса надо применять соответствующий определённым конструкторам способ объявления.

Конструктор можно перегружать столько раз, сколько посчитаете нужным. Но, как бывает у большинстве случаев, желательно придерживаться золотой середины. Перегружайте его только для наиболее распространенных ситуаций.

Хочется добавить, что деструктор, в отличии от конструктора, перегружен быть не может, так как он никаких параметров не принимает.

Чтобы поддержать наш сайт — нажмите на копилку и выберите любой удобный способ.

Рассылка новых уроков по программированию:


Согласен получать уведомления от purecodecpp.com на мой e-mail

задачи и решения с++, практика программирования

Задачи и решения: Указатель на указатель

1) Создать двумерный массив 5х5, заполнить его случайными числами от 10 до 99 и вывести на экран. Поменять местами максимальный элемент каждой строки с первым элементом в соответствующей строке. Задачу решить с помощью указателей.


2) Задача на умножение матриц. Пользователь произвольно задает размерность двух матриц и заполняет значениями вручную. Не забывайте, что необходимо выделить соответствующие участки памяти для матриц, которые будет заполнять пользователь и для третьей итоговой матрицы. Далее отобразите на экране обе заполненные матрицы и итоговую матрицу (их воспроизведение).

Возможно кто-то не знает, как умножать матрицы. Посмотрите это короткое видео (автор: Приходовский М.А.)


Чтобы поддержать наш сайт — нажмите на копилку и выберите любой удобный для Вас способ.

Оплата за решение задач

Мы предлагаем несколько способов оплаты за решенные задачи:

  1. Перевод в WebMoney. Кошельки: R262422197963 (рубли), U391743246007 (гривны), Z420483933399 ($). Вход в WebMoney: 3
  2. Перевод на карту ПриватБанка (Украина)№ 5168 7555 0131 6711. Вход в Приват24:

    Снимок2

  3. Отправка по SMS (все страны). В этом случае стоимость услуг умножается на 2, так как больше половины суммы пойдет на оплату комиссии. billing3