Программа на языке С++

Исследование популярных Интегрированных сред программирования на C++. Структура проекта программы C++, ее компоненты и функции. Типы данных, используемые переменные и константы. Распространенные операторы, оценка их возможностей. Ввод / Вывод данных.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.05.2022
Размер файла 543,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Программа на языке С++

План

  • оператор программа интегрированный
  • 1. IDE для программирования на C++
  • 2. Структура проекта программы C++
  • 3. Типы данных, переменные и константы
  • 4. Операторы C++
  • 5. Ввод / Вывод данных
  • 6. Выражения

1. IDE для программирования на C++

Перечислим несколько популярных Интегрированных сред программированияна C++ (Integrated Development Environment - IDE):

· C++Builder (embarcadero)

· Microsoft Visual Studio

· Eclipse

· NetBeans

Многие из них поддерживают также другие языки программирования.

C++Builder (embarcadero)

Современный C ++, совместимый со стандартами с расширенными языковыми расширениями, красивыми инструментами пользовательского интерфейса и кросс-компиляцией для Windows, macOS, iOS и Android.

Выберите C++ Builder для мощной кроссплатформенной разработки, охватывающей «полный стек» от базы данных до красивых пользовательских интерфейсов, REST и многое другое.

Лабораторные работы будут ориентированы на C++ Builder (https://www.embarcadero.com/products/cbuilder).

С C++ Builder ваши приложения C++ изначально компилируются для настольных и мобильных платформ, экономя ваше драгоценное время и усилия по изучению нескольких языков программирования для каждой добавленной платформы.

Microsoft Visual Studio

Наверняка многие из вас слышали о VisualStudio. IDE обладает огромным набором средств и возможностей: позволяет разрабатывать как консольные приложения, так и приложения с графическим интерфейсом, в том числе с поддержкой технологии WindowsForms, а также Web-сайты, Web-приложения и Web-службы для всех поддерживаемых платформ: Windows, WindowsMobile, Windows CE.NET Framework, Xbox, WindowsPhone.NET CompactFramework и Silverlight. Несмотря на изобилие крутых свойств, в использовании VisualStudio есть и минусы, например, невозможность работать на платформах, отличных от Windows, однако сейчас проблема решена выпуском Microsoft Visual Studio Code, которая работает на всех популярных платформах: Windows, Linux, Mac OS X и др. VisualStudio хоть и стоит денег, но Microsoft в последнее время подобрел и предлагает различные условно-бесплатные варианты, с которыми вы можете ознакомиться здесь: https://www. VisualStudio.com/.

Eclipse CDT

Eclipse - свободная интегрированная среда разработки модульных кроссплатформенных приложений, которая приобрела большую популярность среди разработчиков на Java. Однако, мы рассмотрим выпуск Eclipse CDT (С/С++ DevelopmentTooling). Данная среда является отличным выбором, так как Eclipse CDT не только обладает всеми необходимыми инструментами, но и бесплатна и работает под различными операционными системами: Windows/Linux/Mac OS X. Официальная страничка продукта здесь: https://eclipse.org/cdt/.

NetBeans

NetBeans - еще одна бесплатная интегрированная среда разработки. Позволяет создавать приложения на языках программирования Java, Python, PHP, JavaScript, C, C++ и ряде других. NetBeans IDE доступна в виде готовых дистрибутивов для платформ Microsoft Windows, Linux, FreeBSD, Mac OS X, OpenSolaris и Solaris, а для всех остальных платформ есть возможность собрать NetBeans самостоятельно из исходных кодов. Чтобы установить себе NetBeans, посетите эту страничку: https://netbeans.org/downloads/index.html.

Установка Microsoft Visual Studio

Среда разработки Microsoft Visual Studio - это такая специальная программа, в которой мы будем писать команды компьютеру, а она эти команды будет переводить (при помощи так называемого компилятора) в машинный язык (из единиц и нулей), обрабатывать и выдавать нам некий результат работы нашего программного кода.

Visual Studio Community

Прокрутите страницу и найдите там блок с ExpressforDesktop - это то, что нам нужно.

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

Установка Microsoft Visual Studio

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

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

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

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

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

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

Запустить программу

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

После входа или регистрации мы наконец-то увидим открывшуюся среду разработки.

2. Структура проекта программы C++

Прежде чем приступить к написанию программ, необходимо изучить структуру программ на языке программирования С++. Структура программ - это разметка рабочей области (области кода) с целью чёткого определения основных блоков программ и синтаксиса. Структура программ несколько отличается в зависимости от среды программирования. Мы ориентируемся на IDE Microsoft Visual Studio, и поэтому примеры программ будут показаны именно для MVS. Если вы используете другую IDE, то вам не составит труда перенести код из MVS в другие среды разработки, и вы поймете со временем, как это сделать.

Структура программ для Microsoft Visual Studio

Листинг. Структура программы

/* struct_program.cpp: определяет точку входа для консольного приложения.*/

#include «stdafx.h»

// здесь подключаем все необходимые препроцессорные директивы

// начало главной функции с именем main

int main()

{

// здесь будет находиться ваш программный код

}

В строке 1 говорится о точке входа для консольного приложения, это значит, что данную программу можно запустить через командную строку Windows указав имя программы, к примеру, такое struct_program.cpp. Строка 1 является однострочным комментарием, так как начинается с символов // , подробнее о комментариях будет рассказано в следующей статье.

В строке 2 подключен заголовочный файл «stdafx.h». Данный файл похож на контейнер, так как в нем подключены основные препроцессорные директивы (те, что подключил компилятор, при создании консольного приложения), тут же могут быть подключены и вспомогательные (подключенные программистом).

include - директива препроцессора, т.е. сообщение препроцессору. Строки, начинающиеся с символа «#», обрабатываются препроцессором до компиляции программы.

Препроцессорные директивы также можно подключать и в строках, начиная после записи #include «stdafx.h» до начала главной функции. Причём такой способ подключения библиотек является основным, а использование «stdafx.h» - это дополнительная возможность подключения заголовочных файлов, которая есть только в MVS. С 4-й по 6-ю строки объявлена функция main. Строка 4 - это заголовок функции, который состоит из типа возвращаемых данных (в данном случае int), этой функцией, и имени функции, а также круглых скобок, в которых объявляются параметры функции.

int - целочисленный тип данных

Между фигурными скобочками размещается основной программный код, называемый еще телом функции. Это самая простая структура программы. Данная структура написана в Microsoft Visual Studio. Все выше сказанное остается справедливым и для других компиляторов, кроме строки 2. Контейнера «stdafx.h» нигде кроме MVS нет.

Структура программы для C++ Builder

При создании консольного приложения мастер создания проектов создает автоматически следующий код:

/*препроцессорная директива, автоматически подключённая мастером создания проектов*/

#include <vcl.h>

int main()

{

return 0;

}

Мы видим, что у функции тип данных - int. Это говорит о том, что по завершении работы функция вернет какое-то целочисленное значение. В нашем случае 0. Целочисленное потому, что int - это тип данных для целых чисел, таких как 4, 5, 6, 456, 233 и т.д.

Главное помнить, что если тип возвращаемых данных у функции main - это int или любой другой, кроме void, то следует писать строку типа этой:

return <возвращаемое значение>;

В строке 2 подключена библиотека vcl.h - её автоматически подключает мастер создания приложений, поэтому удалять её не следует, иначе проект не будет рабочим.

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

Например:

int main (int argc, char* argv[])

{

return 0;

}

Такой пример структуры генерируется мастером в MVS2010. Данный main немного отличается. Подробнее рассмотрим позже, но скажу, что данный main имеет такой вид, так как изначально рассчитан на поддержку юникода.

Юникод - стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков. Подробнее о юникоде поговорим позже.

Существуют разные версии main, но в этом нет ничего страшного, так как main была главной функцией, так она ей и остается, поэтому все выше сказанное остается актуальным.

Пример структуры программы MVS с подключенными библиотеками.

#include «stdafx.h»

#include <iostream>

using namespace std;

int main()

{

}

Имя подключаемых библиотек пишется внутри знаков больше, меньше. Заголовочные файлы и имя подключаемых библиотек - синонимы.

Синтаксис подключения заголовочных файлов

#include <имя заголовочного файла>

Более старые заголовочные файлы подключаются так (этот стиль подключения библиотек унаследован у языка программирования C):

#include <имя заголовочного файла.h>

Различие состоит в том, что после имени ставится расширение.h.

Язык С++ является регистро-зависимым. Например:

Return 0; // неправильно, будет ошибка компиляции

return 0; // правильно!!!

В данной статье рассмотрены структуры программ на С++ в таких средах как MVS и Borland. И как вы уже заметили, эти структуры почти не отличаются. Поэтому данный раздел актуален для любой IDE.

Первая программа на Qt

Qt - это мощный инструментарий, имеющий множество способов для воплощения задумок программиста в жизнь. Давайте начнём его освоение с самой первой программы

Итак, у вас под рукой имеется среда разработки QtCreator с подключенным к ней компилятором (например, MinGW). В среде разработки выбираем Другой проект | Проект с поддиректориями.

Название: cppstudio. Здесь для удобства мы будем хранить все приложения взятые с сайта. Создадим здесь под проект QWidget с названием lesson_1 и удалим в нём файлы mainwindows.h, mainwindows.cpp, и форму.

Переписываем код программы печатающей на экран «Привет мир!» в main.cpp:

#include <QApplication>

#include <QHBoxLayout>

#include <QLabel>

#include <QPushButton>

int main (int argc, char *argv[])

{

QApplication qapp (argc, argv);

QHBoxLayout * hlayout = new QHBoxLayout;

QLabel *label = new QLabel («Привет мир!»);

QPushButton *butt = new QPushButton («Exit»);

QWidget *mainWindow = new QWidget;

QObject:connect (butt, SIGNAL (clicked()),&qapp, SLOT (quit()));

hlayout->addWidget(label);

hlayout->addWidget(butt);

mainWindow->setLayout(hlayout);

mainWindow->show();

return qapp.exec();

}

Разбор кода программы

В строчках 1-4 идёт подключение нужных заголовочных файлов.

В Qt за графический интерфейс пользователя отвечает семейство классов <QWidget>. Так как нам понадобятся виджеты, то в первую очередь прописываем нужные библиотеки (QLabel, QPushButton).

#include <QApplication>

QApplication qapp (argc, argv);

Одноимённый класс, подключаемый через заголовочный файл QApplication нужен в любом Qt-проекте в единственном экземпляре. Он отвечает за отслеживание событий и сообщений в системе, изменения вида окон приложения и другие полезные функции.

QHBoxLayout * hlayout = new QHBoxLayout;

QLabel *label = new QLabel («Hello World»);

QPushButton *butt = new QPushButton («Exit»);

QWidget *mainWindow = new QWidget;

В этой части через динамическую память резервируется место под классы.

QObject:connect (butt, SIGNAL (clicked()),&qapp, SLOT (quit()));

Через метод класса QObjekt:connect (&Отправитель, SIGNAL (сигнал()), получатель, SLOT (слот())) реализуется механизм сигналов и слотов. В данном случае при нажатии кнопки приложения генерируется сигнал clicked(), который активирует слотquit() и приводит к закрытию приложения.

layout->addWidget(label);

layout->addWidget(butt);

Для расположения и компоновки виджетов «в сетке», горизонтально или вертикально используются классы QHBoxLayout, QGridLayout, QHBoxLayout. Метод-член addWidget добавляет их в менеджер компоновки.

mainWindow->setLayout(hlayout);

mainWindow->show();

Последние строки устанавливают окну класс компоновки с его виджетами и заставляют его стать видимым.

Тест

В итоге у вас должна получиться программа:

Технология программирования в Microsoft Visual Studio

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

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

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

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

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

Класс C++

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

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

В мастере универсальных классов C++ введите в поле Имя класса mycode (замените mycode на Surname - Ваша Фамилия). Не изменяйте имена файлов и параметры по умолчанию.

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

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

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

#include<iostream>

using namespacestd;

int main()

{

setlocale (LC_ALL, «rus»);

cout<< «Мы создали первый проект в MVS2015» <<endl;

return 0;

}

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

Если у вас проблема в VisualStudio:

1> - Построение начато: проект: t, Конфигурация: Debug Win32 -

1>LINK:fatalerror LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден

=== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ===

Решение проблемы: надо удалить файл C:\Program Files (x86)\Microsoft Visual Studio 10.0\VС\BIN\cvtres.exe. И тогда нормально запустится преобразованная программа.

Надеюсь, у вас всё получилось.

Первая программа на языке С++

В предыдущем разделе Установка среды Microsoft Visual Studio Express (IDE) мы с вами научились создавать проект в среде разработки и добавлять в него новый элемент (файл с расширением.cpp). Вот именно в этом файле мы будем отдавать четкие команды нашему компьютеру. К сожалению компьютер не может нас понимать - он понимает только один язык - машинный код.

Так как программировать таким образом просто невозможно, было создано множество языков программирования. Одним из них является язык С++. Этот язык имеет определённое количество специальных зарезервированных слов, с помощью которых в Microsoft Visual Studio (как и в любой другой среде разработки) можно писать команды для нашего компьютера. А далее уже с помощью встроенного компилятора, этот код будет преобразовываться в машинный код, который будет обработан, а нам будет показан результат работы программы.

Ну что же, приступим к написанию программы. Для этого вам надо открыть ваш созданный проект. Заходите в Microsoft Visual Studio. Перед вами открывается Начальная страница.

Вот там, где написано Последние, должен находиться недавно созданный проект - жмите на него. Если вы еще не создавали проектов - создайте, как показано в этом разделе. Без практики в программировании ну никак…

Листинг. Написание первой программы на C++.

// эта программа будет выводить на экран сообщение

#include <iostream>

using namespace std;

int main()

{

setlocale (LC_ALL, «rus»);

cout<<

«Пишем нашу первую программу на языке С++»<<endl;

return 0;

}

Рассмотрим теперь, что мы написали. В 1-й и 2-й строках расположены комментарии к нашему коду. Весь текст строки, который расположен за двойным слэш // полностью игнорируется компилятором. Он его попросту не видит. Так мы можем в конце строк нашего кода оставлять комментарии - любую информацию, которую посчитаем нужной. Что-то вроде заметки, чтобы не забыть или обратить внимание.

Комментарии бывают и многострочными. Чтобы создать многострочный комментарий, надо весь текст или код, который необходимо игнорировать, поместить между /* и */

/*

тут

располагается

многострочный

комментарий

*/

Правила и стандарты кодирования рассмотрим в разделе Форматирование исходного кода.

Листинг

В строке 2 программы мы видим # include <iostream> - это директива препроцессору. Не будем вникать - пока просто пишите так в каждой новой программе. То же касается и строки 3 - это, так называемое, подключение пространства имен std в котором хранятся слова-команды, которые мы будем использовать при написании каждой программы. В строках 4 - 10 располагается главная функция:

main()

{/*код программы*/}

При запуске программы функция main() всегда выполняется первой и в ней между двумя фигурными скобками{} находятся наши команды.

Функция setlocale (LC_ALL, «rus»); в строке 6 - позволит корректно отображать на экране символы кириллицы. Прописывайте эту функцию в те программы, где вам будет необходимо выводить на экран русский текст. Перемещаемся в следующую строку 7. Тут мы ввели команду cout (зарезервированное слово из пространства имен std), которая отвечает за вывод данных на экран, оператор << за которым следует текст. Текст обязательно надо помещать в кавычки. Так мы показываем компилятору, что это не команда для него, а обычная строка. В строке пишите любой текст. Когда текст написан, кавычки закрываются, и снова пишем оператор <<, за которым снова команда компилятору - endl; (переход на следующую строку). Точку с запятой; нужно в C++ ставить обязательно. Она говорит компилятору, что команда закончилась и можно переходить к выполнению следующей команды. Ну и в конце блока функции main() видим команду return 0; Она говорит компилятору, что по завершении программы надо вернуть значение 0. Тоже особо не задумывайтесь пока о том, что это значит. Воспринимайте это, как некое правило - так надо писать в каждой программе.

Листинг

Любая наша программа на следующих занятиях обязательно будет содержать такие записи:

#include <iostream>

using namespace std;

int main()

{ // выполнение задания

return 0;

}

Используйте её как шаблон, перед написанием новых программ. Запустим нашу программу, чтобы полюбоваться на экране тем текстом, который был размещен в кавычках исходного кода? Для этого нажмите сочетание клавиш Ctrl + Shift + B - начнется компиляция программы. Если вы допустили какие-то ошибки в коде, отладчик их обнаружит и сообщит вам об этом. Внизу окна вы увидите список этих ошибок. Их надо исправить. Ну а если ошибок нет, в нижней строке окна мы увидим Сборка: успешно: 1, с ошибками: 0 и т.д.

Тест

После этого нажимаем клавиши Ctrl + F5 и увидим в открывшемся окне сообщение то, что просили:

Программа отработала и выполнила наши указания нормально.

Форматирование исходного кода

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

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

#include <iostream>

using namespace std;

int main()

{

setlocale (LC_ALL, «rus»);

// количество ящиков на складе

int boxWithFruit=15;

// количество отгружаемых ящиков

int amountBoxForSale=0;

cout<< «На складе сейчас»<<

boxWithFruit<<» ящиков с фруктами.\n\n»;

//i - количество машин к погрузке

for (int i=1; i++)

{cout<<«Сколько ящиков отгрузить в «<<i

<<» - ю машину?»;

cin>>amountBoxForSale;

if (amountBoxForSale>boxWithFruit)

{cout<<

«\nНа складе нет такого количества товара!»;

cout<<«Осталось только «<<boxWithFruit<<

«ящиков\n\n»;

i - ; // уменьшить счетчик на 1

} else {boxWithFruit-

=amountBoxForSale; // перезаписываем значение

cout<<«Осталось «<<boxWithFruit<<» ящиков.\n»;

} // если ящиков больше нет - выйти из цикла

if (boxWithFruit==0) {

cout<< «Фрукты закончились! До свидания!\n»;

break;}

}

return 0;

}

Он полностью рабочий и никаких проблем при его выполнении не происходит. Но искренне жаль того программиста, которому «в наследство» достанется программа, написанная таким образом, и которому надо будет в эту программу что-то добавить или усовершенствовать её. Это еще хорошо, что в данной программе переменным даны осмысленные имена, а не int a, int b. Хотя программа очень простая, она очень плохо читается. Другое дело если она будет написана с использованием правил стандартов форматирования кода и соглашений о кодировании - с пробелами, отступами, переносами строк, комментариями:

#include <iostream>

using namespace std;

int main()

{

setlocale (LC_ALL, «rus»);

int boxWithFruit=15; // количество ящиков на складе

// количество отгружаемых ящиков

int amountBoxForSale=0;

cout<< «На складе сейчас»<<boxWithFruit<<» ящиков с фруктами.\n\n»;

//i - количество машин к погрузке

for (int i =1; i++)

{

cout<<«Сколько ящиков отгрузить в «<< i

<<» - ю машину?»;

cin>>amountBoxForSale;

if (amountBoxForSale>boxWithFruit)

{cout<<

«\nНа складе нет такого количества товара!»;

cout<<«Осталось только «<<boxWithFruit<<

«ящиков\n\n»;

i - ; // уменьшить счетчик на 1

}

else

{ // перезаписываем значение

boxWithFruit-=amountBoxForSale;

cout<<«Осталось «<<boxWithFruit<<» ящиков.\n»;

}

// если ящиков больше нет - выйти из цикла

if (boxWithFruit==0)

{

cout<< «Фрукты закончились! До свидания!\n»;

break;

}

}

return 0;

}

Вы видите насколько проще для чтения и понимания стал этот код.

Практически всегда, над созданием одной программы работают несколько программистов. При этом сопровождать программу в дальнейшем может уже другая группа программистов. Становится очевидной необходимость создания единого стандарта кодирования. Если программисты будут придерживаться этих стандартов при написании кода - у всех он будет выглядеть одинаково, что в разы облегчит работу над коллективными проектами. Зачастую контора сама вырабатывает свой собственный стандарт кодирования (coding convention), но есть распространенные стандарты.

Просмотрев несколько стандартов и соглашений, можно увидеть, что в основном внимание уделяется следующим пунктам:

Имена переменных, констант, функций, классов

Главное при объявлении переменной (функции, класса и т.д.) - дать осмысленное имя, как можно ближе к контексту использования. Допустим, в вашей программе определено больше 20-ти переменных, и всем дано имя в виде буквы алфавита. Согласитесь, даже вам, создателю этой программы, будет тяжело работать с этими переменными. Не говоря уже о том, что нужно так же помнить какие данные хранит каждая из них. Гораздо легче работать с переменными, имеющими обоснованные имена:

age - возраст;

number - номер;

amount - количество;

name - имя.

Желательно имена писать не английским транслитом, а английскими словами.

Неvozrast - age;

Неkolichestvo - amount.

Если вы не знаете перевода, воспользуйтесь одним из множества онлайн переводчиков. Заодно пополните ваш словарный запас. Правила, согласно которым даются имена переменным, можно узнать в разделе лекцииТипы данных, переменные и константы в С++.

Константам рекомендуется присваивать имена либо состоящие из букв верхнего регистра (HOURS_IN_DAY, SIZE) либо каждое новое слово с большой буквы, как Google C++ StyleGuide (kHoursInDay). Говоря о константах, их советуют использовать везде, где только можно. Не объявляйте переменные хранящие количество дней в неделе и месяцы в году - объявляйте константные переменные в таких случаях. Относительно функций - если функция не изменяет аргумент, передаваемый по ссылке или по указателю, то аргумент должен быть константой.

Тогда как для имен переменных используются существительные, для имен функций необходимо использовать глаголы или глагол + существительное. Так правильней потому, что функция выполняет определенное действие:

· printData(); - печать данных

· enterName(); - ввод имени

· showStr(); - показать строку

В имени класса первая буква должна быть заглавной:

· class Employee

· class Point

Если имя состоит из нескольких слов, написать его можно разными способами.

- каждое новое слово с большой буквы (верблюжий регистр): boxWithApple, amountBoxesForSale

- использовать нижний прочерк между словами: box_with_apple, amount_boxes_for_sale

Не бойтесь давать сложные имена. В среде Microsoft Visual Studio обращаясь, к объявленной переменной (начиная вводить ее имя), вам будет предложено выбрать имя из выпадающего списка. Давать слишком длинные имена тоже не стоит. Вполне реально отразить суть переменной в нескольких словах.

Скажем о «венгерской нотации» - соглашении об именовании переменных и других идентификаторов в коде программ. Суть «венгерской нотации» в том, что имя переменной (функции, массива и т.д.), начинается с префикса, состоящего из одной или нескольких букв. Приведем несколько примеров объявления имен идентификаторов с префиксами:

int iAmount или nAmount,

bool bChoice,

int aNumbers (a говорит о том, что aNumbers - это массив),

string sName (строка),

int* pArr (от слова pointer - указатель)

Когда мы встретим такое имя в коде, то его префикс будет говорить нам о том, что это за идентификатор и какие данные он хранит.

Фигурные скобки

В некоторых соглашениях и стандартах рекомендовано использовать фигурные скобки в блоках if, else, while, do, forдаже если они содержат всего одну строку либо не содержат ничего. Например:

for (intexample=0; example<10; example++)

{

cout<<example<<endl;

}

Каждую фигурную скобку желательно располагать в отдельной строке. Так очень легко проследить, где блок начинается и где заканчивается.

Пробелы в строке и отступы между строками

Хороший стиль кодирования рекомендует не использовать пробелы в конце строки перед оператором точка с запятой.

При использовании оператора присвоения значения пробелы необходимы с обеих сторон от этого оператора:

Variable=0;

Это же касается и операторов используемых в арифметических выражениях:

Variable = a + b - c;

variable=a+b-c; // слитно выглядит так

Применяя унарные операции, пробелы не нужны:

variable=-4;

variable++;

Многие используют табуляцию в строках, чтобы визуально выделить некоторые блоки кода. Так, например, выглядит фрагмент кода с вложенными циклами с использованием табуляции:

int main()

{

for (int i=0; i<12; i++)

{

for (int j =0; j <12; j++)

{

cout<<'@';

}

cout<<endl;

}

return 0;

}

и так без нее:

int main()

{

for (int i=0; i<12; i++)

{

for (int j =0; j <12; j++)

{

cout<<'@';

}

cout<<endl;

}

return 0;

}

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

Комментирование кода

К сожалению, многие не любят комментировать код, хотя комментарии играют важную роль в поддержании читаемости кода на высоком уровне. Как написано в Google C++ StyleGuide «Комментарии важны, но лучше когда код сам говорит за себя. Давать осмысленные имена переменным гораздо лучше, чем давать непонятные названия и затем раскрывать их суть в комментариях»

Оставлять комментарии в коде можно, либо используя двойной слэш // (комментирование до конца строки), либо /*комментарий*/. Вторым способом можно оформить многострочный комментарий. Но предпочтение авторы некоторых стандартов предлагают отдавать все же комментированию с использованием двойного слэша // .

Каждая функция должна иметь комментарии непосредственно перед ней, которые описывают то, что делает эта функция и как её использовать. Например, перед функцией можно написать:

// Открывает файл, или

// печатает данные

Так же желательно, чтобы каждое определение класса имело сопроводительный комментарий, описывающий, что это такое и как его следует использовать.

В стандартах форматирования кода можно почерпнуть еще много чего полезного для формирования собственного хорошего стиля программирования. Всего в данном разделе не перечислишь. Поэтому постарайтесь найти время и почитать некоторые первоисточники, ссылки на которые были приведены выше в разделе. Рекомендую также почитать о системе документирования исходных текстов Doxygen.

Хочу обрадовать тех, кому все же придется столкнуться с кодом, написанным подобно первому листингу в этом разделе. В среде разработки Microsoft Visual Studio 2013 Express (возможно, и в более ранних версиях) есть «спасательная комбинация клавиш» Ctrl+K затем Ctrl+F, нажав которую осуществится форматирование выделенного исходного кода. То есть если выделить неотформатированный код и нажать эту комбинацию клавиш - автоматически добавятся и необходимые пробелы, и отступы, и скобки перенесутся в отдельные строки. В общем станет код выглядеть, как для людей.

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

3. Типы данных, переменные и константы

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

Типы данных

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

· числовые,

· символьные,

· логические.

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

Числовые типы данных

Числовые типы данных: для хранения целых чисел (0, 33, -27 и т.д.)

· int (4 байта) - хранит числа в диапазоне от -2147483648 до 2147483647,

· short (2 байта) - хранит числа в диапазоне от -32 768 до 32 767,

· long (4 байта) - хранит числа в диапазоне от -2147483648 до 2147483647.

Числовые типы данных: для хранения вещественных чисел (с плавающей точкой: -435.332, 54.77, 3.0)

· float (4 байта) - хранит дробные числа с точностью до 7 знаков после запятой,

· double (8 байт) - хранит дробные числа с точностью до 15 знаков после запятой.

Символьный тип

Символьный тип: для хранения одного символа. char (1 байт) - хранит один символ. Например: `f', `+' или `4' (как символ). Одинарные кавычки обязательны. Типа данных для хранения строк в С++ нет. Позже мы с вами познакомимся с тем, каким образом можно хранить строки в памяти.

Логический тип

Логический тип имеет всего два значения.

bool (1 байт) - может принимать только два значения true (истина) и false (ложь)

Сразу стоит обратить внимание, что все зарезервированные слова под типы данных пишутся не заглавными, а строчными (маленькими) буквами. Если вы объявите тип bool, как Bool - компилятор выдаст сообщение об ошибке. В редакторе, при написании кода, все зарезервированные слова С++ подсвечиваются синим цветом (это касается всех зарезервированных слов). Так что если вы вписали тип, а слово не стало синим - проверьте правильность написания.

Переменные и константы

Их названия говорят сами за себя. И переменная, и константа - это определённые области в оперативной памяти, которые имеют имя (имя задаёт программист). Только переменная может менять своё значение в ходе выполнения программы, константа же определяется один раз и изменяться уже не может.

Время, к примеру, это переменная величина. Сейчас, допустим, 3 часа дня, а через 2 часа уже будет 5 часов вечера. А вот количество часов в сутках - это уже константа.

И переменным и константам при объявлении обязательно надо присвоить имя. Существуют строгие правила, согласно которым даются имена:

1. Имя переменной может содержать маленькие и большие буквы латинского алфавита, арабские цифры, и `_' (нижнее подчеркивание). С нижним подчеркиванием имена читаются намного легче. Сравните amountofapples и amount_of_apples.

2. Имя не может начинаться с цифры! amount_of_apples1 - можно, 1amount_of_apples - неьзя.

3. Именем не может быть зарезервированное слово (int, bool…). Если вы придумали имя переменной, ввели, а его подсветило синим цветом, значит такое слово в С++ является зарезервированным. Придумайте новое имя.

4. Имя переменной должно быть осмысленным (соответствующим тому, что будет хранить данная переменная). Т.е. вряд ли кто-то догадается, что в переменной x хранится значение количества яблок. Логичнее назвать такую переменную amount_of_apples.

5. Большие и маленькие буквы отличаются.

Объявление и инициализация переменных и констант

Как же можно создать переменную и указать какое значение она будет хранить? Для этого нам необходимо сначала указать тип_данных, затем дать имя переменной (придерживаясь правил рассмотренных выше), поставить знак = (означает присвоить) и указать значение. К примеру создадим переменную, которая будет хранить значение количества яблок:

int amount_of_apples = 7;.

Объявление переменной заканчивается символом»;».

Присваивание значения переменной при её создании называется инициализацией. Желательно всегда инициализировать переменные при создании, даже если вы не знаете какое значение переменная примет в ходе работы программы. В этом случае инициализируйте её нулём: int amount_of_apples = 0; Дело в том, что оперативная память свободной не бывает. И если вы просто создали переменную int amount_of_apples; и не присвоили ей никакого значения, она всё равно будет хранить какие-то остаточные данные от предыдущих программ. Поэтому, хотя и не является ошибкой сначала объявить переменную, а ниже присвоить ей значение, желательно присвоить значение этой переменно сразу, тем самым очистив её от «мусора». Кстати, в MVS 2013, если вы попытаетесь вывести на экран значение не инициализированной переменной, компилятор выдаст ошибку.

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

const int daysInWeek = 7;

Чтобы дать понять компилятору, что это константа, а не обычная переменная, перед типом данных обязательно использовать ключевое слово const.

Листинг

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

/*Задача: Есть 2 сумки. В одной 11 яблок, во второй 44. Создать переменные, которые будут хранить количество яблок в сумках и одну переменную, в которую надо записать общее количество яблок.*/

#include <iostream>

using namespace std;

int main()

{

setlocale (LC_ALL, «rus»);

// создание переменных и инициализация

int amount_of_apples1 = 11;

int amount_of_apples2 = 44;

int inBox = 0; // для записи общего количества

cout<<«В пустой коробке - «<<inBox<<endl;

// вывод данных на экран

cout<<«В первой сумке - «<< amount_of_apples1 <<endl;

cout<<«Во второй сумке - «<< amount_of_apples2 <<endl;

cout<<endl; // еще один перевод на новую строку

// подсчет общего количества яблок в коробке

inBox = amount_of_apples1 + amount_of_apples2;

// показ общего количества на экран

cout<<«Всего в коробку добавлено «<<inBox<<» яблок»<<endl;

return 0;

}

В строке 15 переменной inBox присвоено значение 0, так как мы не знаем какое значение туда запишется. И в строке 17, мы выводим начальное значение на экран. Как видите, чтобы показать значение переменной на экран, достаточно обратиться к ней по имени: cout<<inBox; Обратите внимание, как работает cout. С помощью операции << мы можем чередовать показ текста и показ значения переменной. Так мы делали в строках 17, 19, 20 и 27. В строке 24 в переменную inBox записывается сумма переменных: amount_of_apples1 + amount_of_apples2. То есть, компилятор, сначала сложит значения этих переменных, а потом запишет сумму в inBox. И чтобы убедиться, что всё посчиталось и записалось - снова выводим значение inBox на экран - строка 27. Запускаем программу. Вот что мы увидим:

В пустой коробке - 0

В первой сумке - 11

Во второй сумке - 44

Всего в коробку добавлено 55 яблок

Преобразует данную строку в числовое значение с плавающей точкой.

Преобразование типов данных

В C++ различают явное и неявное преобразование типов данных. Неявное преобразование типов данных выполняет компилятор С++, ну а явное преобразование данных выполняет сам программист. Результат любого вычисления будет преобразовываться к наиболее точному типу данных (длинному), из тех типов данных, которые участвуют в вычислении. Для наглядного примера представим таблицу с преобразованиями типов данных. В таблице рассмотрим операцию деления. В качестве целочисленного типа данных возьмем int, ну и вещественный тип данных у нас будет float.

x

y

Результат деления

Пример

делимое

делитель

частное

x = 15 y = 2

int

int

int

15/2=7

int

float

float

15/2=7.5

float

int

float

15/2=7.5

Из таблицы видно, что меняя переменные различных типов данных местами, результат остается тот же (в нашем случае это делимое и делитель). О неявном преобразовании типов данных все. Что же касается явного преобразования, то оно необходимо для того чтобы выполнять некоторые манипуляции, тем самым меняя результат вычисления. Самый простой способ явного преобразования типов данных, пример: допустим, нам необходимо разделить такие числа 15 и 2, делим! 15/2=7. Результат тот же, что и в таблице. Но если сделать незначительные преобразования, например: 15.0/2=7.5 при таком делении число 15 является вещественным, значит и результат будет вещественный. Само число 15 с точки зрения математики не изменилось, ведь 15=15.0. Этот же прием можно было применить к двойке, результат был бы тем же, а можно было сразу к двум числам, но зачем, если хватает одного из двух.

Еще один способ явного преобразования типов данных:

float(15) /2 /*результат равен 7.5, число 15 преобразуется в вещественный тип данных float.*/

double(15)/2 /*результат равен 7.5 - то же самое!!!*/

В С++ также предусмотрена унарная операция приведения типа:

static_cast</*тип данных*/>(/*переменная или число*/)

Пример с переменной:

int ret=15;

static_cast<float>(ret)/2 // результат равен 7.5

В случае с переменной надо понимать, что в строке 2 переменная ret не преобразуется в тип данных float, а всего лишь на всего создается временная копия переменной ret с типом данных float. Рассмотрим на практике все способы явного и неявного преобразования типов данных.

// Определяет точку входа для консольного приложения.

#include «stdafx.h»

#include <iostream>

#include <iomanip>

using namespace std;

int _tmain (int argc, _TCHAR* argv[])

{ // объявляем две переменные типа int

int int_value15 = 15, int_value2 = 2;

// объявляем две переменные типа float

float float_value15 = 15, float_value2 = 2;

cout<<fixed<<setprecision(2) /* определяем, при выводе чисел с плавающей точкой, два знака после запятой */

// неявное преобразование типов данных

<< «15/2 =» <<int_value15/int_value2 <<endl

// неявное преобразование типов данных

<< «15/2 =» <<int_value15/float_value2 <<endl

// неявное преобразование типов данных

<< «15/2 =» <<float_value15/int_value2 <<endl

// неявное преобразование типов данных

<< «15/2 =» <<float_value15/float_value2 <<endl;

cout<< «15.0 /2 =» << 15.0/2 <<endl /* явное преобразование типа данных, число 15.0 - число с плавающей точкой*/

<< «15/2.0 =» << 15/2.0 <<endl; /* явное преобразование типа данных, число 2.0 - число с плавающей точкой*/

...

Подобные документы

  • Анализ операторов ввода и вывода, а также характеристика форматов, используемых в этих операторах. Оформление законченной программы с применением этих операторов. Структура программы. Алфавит языка и типы данных. Ввод и вывод информации. Форматный вывод.

    лабораторная работа [62,0 K], добавлен 15.07.2010

  • Основные этапы решения задач на ЭВМ. Элементы управления и пользовательская форма VBA. Ввод и вывод информации. Открытие и закрытие файла. Операторы цикла и подпрограммы. Реализация разветвляющихся алгоритмов в VBA. Типы данных, переменные и константы.

    учебное пособие [1,4 M], добавлен 21.05.2009

  • Переменные и операции языка СИ: используемые символы, константы, идентификаторы и ключевые слова. Использование комментариев в тексте программы. Типы данных и их объявление. Приоритеты операций и порядок вычислений. Функции, переменные, макроподстановки.

    учебное пособие [135,0 K], добавлен 17.02.2012

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

    реферат [14,5 K], добавлен 06.12.2011

  • Алгоритмы, алфавит языка, структура программы, написанной на Турбо Паскале. Целые, вещественные, логические, символьные типы данных, их совместимость. Линейные алгоритмы, пустой и составной операторы, простейший ввод и вывод, разветвляющиеся алгоритмы.

    курсовая работа [49,8 K], добавлен 03.11.2009

  • Элементы языка Object Pascal: идентификаторы, константы, переменные, выражения. Структура проекта Delphi. Операторы и метки. Типы данных языка OPascal. Статические и динамические массивы. Записи с вариантными полями. Совместимость и преобразование типов.

    курс лекций [385,4 K], добавлен 18.02.2012

  • Последовательность работ при разработке объектно-ориентированных программ. Виды синтаксических анализаторов и способы их применения. Описание алгоритма и анализ результативности работы программы, написанной на языке С, ее константы, переменные и функции.

    курсовая работа [441,7 K], добавлен 03.07.2011

  • Разработка алгоритма, представление его в виде блок-схемы. Программа для табулирования функции. Ввод и вывод данных с рабочего листа MS Excel. Ввод данных через диалоговое окно, вывод результатов на рабочий лист MS Excel. Вычисление суммы членов ряда.

    контрольная работа [329,7 K], добавлен 16.10.2013

  • Программа на языке VBA, которая вводит исходные данные, выполняет расчеты и выводит на экран. Лист с начальными данными. Ввод начальных (нулевых) значений для расчетных величин. Вспомогательные переменные, счетчики циклов. Формирование матрицы данных.

    курсовая работа [2,7 M], добавлен 01.12.2010

  • Типы данных, использованные при создании базы данных. Структура программы, используемые переменные, выражения и указатели. Концептуальное (инфологическое), логическое (даталогическое) и физическое проектирование. Тестирование программы и описание полей.

    курсовая работа [398,4 K], добавлен 16.07.2012

  • Понятие и общая характеристика языка программирования РНР, принципы и этапы его работы, синтаксис и ассоциируемые массивы. Обработка исключений в языке Java. Работа с базами данных с помощью JDBC. Изучение порядка разработки графического интерфейса.

    презентация [192,3 K], добавлен 13.06.2014

  • Технология программирования, основные этапы развития. База данных, понятие,характеристика, основные типы баз. Действие и структура программы С++. Процесс подготовки и решения задач на компьютерах. Написание и отладка программы на языке программирования.

    курсовая работа [32,8 K], добавлен 26.01.2011

  • История создания и применение языка Basic. Стандартные математические и строковые функции. Операции и выражения языка. Блоки данных и подпрограммы. Операторы управления, цикла, ввода-вывода и преобразования информации. Константы, переменные, массивы.

    контрольная работа [2,3 M], добавлен 04.05.2015

  • Информационные технологии и защиты данных. Методы защиты информации. Виды информационной безопасности и умышленные угрозы. Программирование на языке Turbo Pascal. Типы числовых данных. Функции ввода и вывода. Логические операторы, символьные переменные.

    курсовая работа [1,7 M], добавлен 16.05.2016

  • Общее описание и структура программы, ее компоненты и функции, сферы практического применения. Требования к функциональным возможностям. Характеристика логической структуры, используемые технические средства. Исследование входных и выходных данных.

    курсовая работа [94,7 K], добавлен 30.01.2016

  • Изучение категории типов данных, видов выражений и операций, работа на языке Си. Составление программы вычисления значения функции у(х) при произвольном значении х. Блок-схема алгоритма. Описание текста программы и рассмотрение контрольного примера.

    лабораторная работа [124,7 K], добавлен 09.01.2012

  • Программирование на языке Паскаль: алфавит, решение задач, простейшие программы, разветвляющие программы, циклические программы, ввод-вывод, массивы, подпрограммы, строковые данные, записи, файлы, использование библиотеки CRT, графика в Паскале.

    учебное пособие [211,1 K], добавлен 30.03.2008

  • Проектирование структуры базы данных. Технология обработки данных. Порядок установки и запуска программы. Описание объектов приложения и структура данных. Ввод и изменение исходных данных. Получение выходных документов и тестирование программы.

    отчет по практике [2,3 M], добавлен 22.07.2012

  • Понятие класса на языке Java. Ввод с клавиатуры данных в массив, состоящий из десяти объектов типа WORKER. Вывод на дисплей фамилий работников, чей стаж работы в организации превышает значение, введенное с клавиатуры. Оценка работы программы, ее код.

    курсовая работа [1,2 M], добавлен 20.04.2014

  • Особенности написания базы данных на языках программирования C++, применимой для расписания занятий в университете. Этапы работы: ввод новой записи, изменение, просмотр базы данных, поиск данных. Алгоритмы, используемые в процессе выполнения проекта.

    практическая работа [16,6 K], добавлен 12.06.2010

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.