Программирование на С++: Первые шаги. - Общение на тему программирования

Работает Программирование на С++: Первые шаги.

Регистрация
13 Мар 2017
Сообщения
314
Репутация
70
Спасибо
11
Монет
0
Вы хотите начать программировать? Что же, одно из главных препятствий человека, который желает программировать, ничего не зная о этом процессе, является отсутствие начальной точки, ответа на вопрос - с чего начать?. Поэтому имеет смысл Вам с этим помочь, написав эту статью. :)

И прежде чем с ярым энтузиазмом штурмовать Google с желанием узнать что-то новое, нужно выбрать материальную базу — среду программирования.
Существует огромное количество IDE (По этой ссылке Вы можете просмотреть их разнообразие) которые позволяют писать программы на разных языках, в том числе С++, проверять синтаксис и переводить (компилировать) исходный код Вашей программы в исполняемый файл (с расширением *.exe).
Среди IDE для новичка я бы отметил Dev-C++, Visual Studio, Eclipse, NetBeans.
Особенно хочется отметить Dev-C++, ведь он легок в установке, использовании и не нуждается в дополнительной настройке, именно его мы будем использовать в качестве примера.

И первое с чего Вам стоит начать, это скачивание и установка IDE, здесь можно скачать Dev C++, установка происходит самым обычным образом, Вам не нужно дополнительно скачивать либо устанавливать что-либо, просто скачали - запустили, сделали пару кликов по кнопке вперёд до конца установки и запустили программу.

И, скорее всего, первым, что Вы увидите - будет это. Нехитрыми действиями (нажатием Ctrl+N) (File > New) показанными на скриншоте мы можем создать свой первый исходный файл, который в последствии мы будем писать и компилировать. Чтобы открыть уже готовый проект, Вам нужно проследовать в меню (File > Open > file.cpp). Все проекты С++ имеют расширение .срр , в том числе и нами только что созданный.


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

Давайте запишем туда следующий текст, разберемся с этим кодом чуть ниже:
PHP:
#include <stdio.h>

int main()
{
printf("Hello, World!");
}

Все элементы интерфейса которые Вам на данный момент нужны можно найти на скриншоте ниже.



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

Далее компилируем и запускаем саму программу нажатием на Compile & Run (F11) которая отвечает за перевод исходного кода в исполняемый файл .ехе, и его запуск.

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


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

В первую очередь поговорим про заголовочные файлы #include, они позволяют нам использовать в программе функции. Изначально записав программу без подключения заголовочных файлов она вряд ли будет работать, заголовочные файлы работают как электричество. Если его не будет - вряд ли Вы сможете включить лампу, так же и с программой.
Полный список заголовочных файлов можно найти здесь.
Мы же будем рассматривать основные:
#include <iostream> — заголовочный файл с классами, функциями и переменными для организации ввода-вывода в языке программирования C++. Он включён в стандартную библиотеку C++. Название образовано от Input/Output Stream («поток ввода-вывода»). В языке C++ и его предшественнике, языке программирования Си, нет встроенной поддержки ввода-вывода, вместо этого используется библиотека функций. В нашей программе если #include stdio.h заменить на #include <iostream> программа так же будет работать, потому в каком-то смысле они аналогичны, хотя разница все-таки есть, но об этом не здесь.
#include <stdio.h> (от англ. standard input/output header — стандартный заголовочный файл ввода-вывода) заголовочный файл стандартной библиотеки языка Си, содержащий определения макросов, константы и объявления функций и типов, используемых для различных операций стандартного ввода и вывода. Функциональность унаследована от «портативного пакета ввода-вывода» («portable I/O package»),
PHP:
#include <stdio.h>
Заголовочный файл всегда пишется вначале программы.
По сути мы использовали данный заголовочный файл для того чтобы иметь возможность использовать функцию вывода printf в нашей программе, о которой мы поговорим позже.

PHP:
int main()
{
тело программы;
}

Проще говоря int main() является функцией Dev C++ в которой мы описываем нашу программу, т.е. это позволяет IDE распознать где же сама программа, которую мы, стараясь, написали. Важно сказать что после записи int main() мы должны символами { (открытие) и } (закрытие) обозначить тело самой программы, т.е. его рамки. Символ } который закрывает int main() является концом самой программы.

PHP:
printf("Hello, World!");

printf("Текст");
Функция printf() позволяет отображать в программе то, что мы хотим отобразить. Функция кроме самого вывода имеет ряд специальных кодов с которым, Вы можете ознакомиться здесь, если у Вас есть желание.
Важно сказать что отображаемый текст должен быть взят в (" ") и в конце строки Вы должны добавить символ ; для её выполнения, если этого не сделать компилятор не поймет закончилась ли эта функция или нет.

Ну вот собственно и все, давайте теперь введем переменную и посмотрим на заголовочный файл <iostream> , который схож с нашим <stdio.h> и новыми функциями ввода\вывода с поддержкой русского языка!

Напишите следующую программу.
PHP:
#include <iostream>
using namespace std;
int main()

{
	setlocale( LC_ALL,"Russian" );
	int a;
	cout<<"Введите А"<<endl;
cin>>a;
cout<<"A = " << a << endl;
cout<<"Как видите текст на следующей строке. ";
cout<<"А здесь нет." <<endl;
cout<<"И снова на следующей.";
}

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


Давайте разбираться сначала со связкой заголовочного файла и новым элементом, объявлением пространства имён std, с которым Вы можете ознакомиться здесь

PHP:
#include <iostream>
using namespace std;
#include <iostream> позволяет нам использовать функции ввода и вывода, перенос строки и поддержку русского языка!
std::cin; - функция ввода
std::cout; - функция вывода

using namespace std; - позволяет нам сократить написание функций ввода - вывода и не использовать std:: при их вызове, а ограничиться лишь названиями cin и cout. Данная строка записывается сразу после объявления заголовочного файла.

С int main() мы уже разобрались потому скажем о

PHP:
setlocale( LC_ALL,"Russian" );

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

PHP:
int main()
{

Далее разберемся с объявлением переменных. Переменная является своеобразной ячейкой в которой могут храниться данные. С полным списком типов данных переменных и их возможными значениями можно ознакомиться здесь.

PHP:
int a;

В нашем примере мы объявляем переменную с типом данных int (integer), который позволяет хранить ячейке в себе числовые целые значения в диапазоне от -2 147 483 648 до 2 147 483 647. Введя в переменную значение которое отличается от этого диапазона (например буквенный символ, либо число не входящее в данный диапазон, работа программы завершится ошибкой, можете попробовать). Название нашей переменной "a", именно так мы будем вызывать её в дальнейшем. Важно сказать что объявлять переменные, как и функцию отображения русских символов нужно вначале тела программы, в крайнем случае, до вызова переменной.

И самое интересное. Функции ввода и вывода!

PHP:
cout<<"Введите А"<<endl;
cin>>a;
cout<<"A = " << a << endl;
cout<<"Как видите текст на следующей строке. ";
cout<<"А здесь нет." <<endl;
cout<<"И снова на следующей.";

Функция cout это поток вывода, похож на printf по своему действию. С помощью него мы можем вывести данные на экран (в консоль). Запись функции следующая:
cout << "текст для вывода" << переменная для вывода;

Символы << используются для разделения информации которую мы хотим отобразить, например здесь
PHP:
cout<<"A = " << a << endl;
Мы в одном потоке отображаем и текст, и переменную. Важно сказать что если Вы хотите отобразить текст то его нужно взять в " ", а в случае переменной - достаточно просто написать ее название.

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

cin >> название_переменной;

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

Вот собственно мы и разобрались с программой №2. Давайте еще раз усложним нашу программу и добавим в неё немножко арифметики!

PHP:
#include <iostream>
#include <iomanip> 
using namespace std;
int main()

{
	setlocale( LC_ALL,"Russian" );
	double a,b=5,c,result;
	cout<<"Введите А и C"<<endl;
cin>> a >> c;
result=a*b-c;
cout<<"A = " << a << endl;
cout<<"B = " << b << endl;
cout<<"C = " << c << endl;
cout<<"A * B * C = " << setprecision(5) <<  a*b*c << endl;
printf("A * B - C =  %.3f",result);
}

Результат:


PHP:
#include <iomanip>

Начнем с того что мы добавили заголовочный файл #include <iomanip> который отвечает за использование функции setprecision().

PHP:
double a,b=5,c,result;

Вместо типа данных int у нас теперь есть аж 4 переменных типа double , который позволяет переменным хранить числа с дробью в диапазоне от -9 223 372 036 854 775 808 .0 до 9 223 372 036 854 775 807.0 и это очень полезно в точных математических расчетах, ведь мы можем производить расчеты не только целых чисел, как в случае с int.
При чем как можно заметить пользователь вводит не все переменные самостоятельно, в программе уже задана переменная b со значением 5. Кстати говоря, здесь можно и просмотреть как правильно задавать переменные, если она не одна
Типданных переменная1,переменная2=значение,переменная3;

PHP:
cin>> a >> c;
Так же полезно будет знать что Вы можете для ввода каждой новой переменной не записывать функцию cin>>переменная; заново а использовать такую структуру.

PHP:
result=a*b-c;

Мы считаем переменную в теле программы и после мы можем ее вывести. Полный список арифметических операций в С++ можно найти здесь. Запись происходит следующим образом:
Переменная5=переменная1(действие)переменная2;
result=a/b;

PHP:
cout<<"A * B * C = " << setprecision(5) <<  a*b*c << endl;
printf("A * B - C =  %.3f",result);

И самое интересное это вывод, как мы видим здесь вывод реализован по-разному.

1 вариант это cout с функцией setprecision() которая позволяет нам выводить определенное количество знаков после запятой, если они есть.
Т.е. если при расчетах число вышло целым, то cout с данной функцией выведет просто целое число, не отображая нули. При этом мы не записывали результат вычислений в другую переменную, а посчитали это перемножением переменных которые задает сам пользователь прямо в потоке вывода.

2 вариант это printf с кодом %.Nf, вместо N - число символов которые должны отображаться после запятой и в этом случае даже если в результате вычислений число вышло целым, printf все равно отобразит то количество чисел (нулей) после запятой, которое мы указали. Важно сказать что код для printf записывается в конце отображения текстовой области, а сама переменная объявляется после закрытия текстовой области с помощью " " и после запятой.
Пример:
printf("Текст %код", переменная);

При этом в данном варианте мы выводим значение переменной которую мы посчитали в теле программы до этого, result.

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

Если эта статья будет кому-то полезна то позже напишу о иных разделах программирования на С++ (Циклы, операторы, массивы) , хоть это и давно заезженная тема, я стараюсь изложить это как можно проще.
 
Последнее редактирование:
Сверху Снизу