Программирование на С++ - это не сложно! Продолжение
Алексей Антипов (KyberAlex)
Часть 1 - основные понятия языка С++.
Раздел 6 - первая программа на С++.
Рассмотрев структуру программы на С++ в общем виде, напишем теперь первую реально работающую программу. Для примера рассмотрим программу для решения квадратного уравнения. Программа приведена в законченном виде, т.е. ее можно будет откомпилировать любым компилятором С++, после чего запустить на выполнение. Данная программа, а также все последующие будут консольного типа. Поскольку типов компиляторов С++ довольно много, и в каждом из них процесс создания проекта консольной программы имеет свою специфику, я не буду здесь его описывать, а отошлю вас к документации на имеющийся у вас компилятор.
Итак, текст программы:
#include <iostream.h>
#include <math.h>
void main()
{
float a,b,c;
cout << "vvedite koeficienty a b c \n";
cin >> a >> b >> c;
float d = b*b - 4*a*c;
float x1 = (-b + sqrt(d)) / (2*a);
float x2 = (-b - sqrt(d)) / (2*a);
cout << "koren x1 = " << x1 << "\n";
cout << "koren x2 = " << x2 << "\n";
}
Многое в данной программе уже вам знакомо по предыдущим разделам, здесь мы остановимся еще на некоторых неизвестных деталях. Операторы cin и cout обозначают собой соответственно устройства ввода и вывода консоли. Строго говоря, это не операторы, а шаблонные классы, для которых перегружены стандартные операторы << и >>, но здесь в целях упрощения несущественные в нашем случае подробности опущены, и для простоты мы будем называть cin и cout операторами.
Строка cin >> a >> b >> c; выполняет ввод с клавиатуры трех значений, которые помещаются соответственно в переменные a, b и с. Ввод каждого числа завершается нажатием клавиши enter, например так: 34.98 enter 78.11 enter -0.23 enter. Теперь а = 34.98 , b = 78.11 и с = -0.23. Можно ввести и по-другому: все числа в одну строку, разделяя их пробелами, а enter нажать после набора всех чисел. Следите за соответствием того, что вы вводите, и типом переменной, в которую производится ввод. Например, не стоит вводить дробные числа в переменную целочисленного типа, или отрицательные числа в переменную, объявленную как беззнаковая. Поведение программы в этом случае непредсказуемо и зависит от реализации компилятора. Например, Microsoft Visual C++ версий 5.0 и 6.0 в случае ввода дробного числа в целочисленную переменную выполняет отсечение дробной части, и, кроме того, в последующие переменные иногда автоматически записывается ноль.
Оператор cout выполняет обратную cin задачу, т.е. выводит на консоль значения переменных и строки. Строка
cout << "vvedite koeficienty a b c \n";
выводит на консоль строку: vvedite koeficienty a b c. Латинские буквы в данном примере применены не случайно. Дело в том, что консоль Windows предполагает, что русские буквы соответствуют набору символов стандарта ASCII, а компиляторы С++ под Windows кодируют русские буквы как набор символов стандарта ANSI. Из-за этого, если не использовать специальных функций пере-кодировки, вместо русских букв мы увидим на консоли сплошные "крякозябры". Чтобы не усложнять наши первые программы, я не стал применять перекодировку, а просто использовал латинские буквы.
Итак, видно, что для вывода на консоль строки, ее необходимо заключить в двойные кавычки. Пара символов \n в конце строки указывает на необходимость продолжить вывод на консоль с новой строки. Т.е. в результате выполнения оператора
cout << "abcdefgh";
будет выведена строка:
abcdefgh
а в результате выполнения оператора
cout << "abc\ndefgh";
будут выведены две строки:
abc
defgh
На консоль можно выводить и значения переменных, и даже строки и переменные вперемешку. Примером могут послужить следующие операторы нашей программы:
cout << "koren х1 = " << x1 << "\n";
cout << "koren х2 = " << x2 << "\n";
Если предположить, что х1 = 5.7913 а х2 = -3.08, то на консоли мы получим следующий результат:
koren x1 = 5.7913
koren x2 = -3.08
Важно понять разницу между выводом строк и переменных. Для вывода строки ее содержимое в программе необходимо заключить в кавычки, и результат вывода на консоль полностью совпадет с содержимым кавычек. При выводе переменной на консоль передается не имя переменной, а ее значение. Поясним примером:
cout << "x1"; на консоль выведена строка х1
cout << x1; на консоль выведено число 5.7913
Строки можно не только указывать непосредственно в операторе cout, но и использовать строковые переменные:
char stroka[] = "qwerty";
cout << stroka;
в результате на консоль будет выведена строка qwerty.
Можно также использовать не только числовые переменные, но и просто числа, а также выражения:
int x = 4;
int y = 92;
int z = 71;
cout << 36.6 << "\n" << y*z-x << 27 + y;
результат вывода на консоль:
36.6
6528
119
Первое число было задано непосредственно, второе и третье получились как результаты вычисления соответствующих выражений.
В заключение раздела поговорим о комментариях в программе. Комментарий - это абсолютно произвольный текст, который допустимо размещать в любом месте программы. Применяются комментарии обычно для пояснения работы программы.
В С++ комментарии бывают однострочные и многострочные. Когда компилятор С++ встречает в программе пару символов // он считает, что здесь начался комментарий, и игнорирует весь текст до конца текущей строки программы, сразу переходя к началу следующей строки. Такой комментарий называется однострочным. Пример:
d = b*b - 4*a*c; // расчет дискриминанта.
Здесь мы использовали комментарий для пояснения смысла формулы. Отметим, что поскольку комментарии не включаются в откомпилированную программу и не выводятся, то можно безбоязненно использовать в них русские буквы и вообще любые символы.
Многострочный комментарий позволяет указать компилятору С++ на необходимость игнорировать несколько строк программы. Игнорируемые строки могут начинаться парой символов /* и заканчиваться парой символов */ например так:
/* сейчас мы будем
выводить корни */
cout << "koren х1 = " << x1 << "\n";
cout << "koren х2 = " << x2 << "\n";
Здесь мы пояснили многострочным комментарием смысл нескольких последующих строк программы. Обратите внимание на необходимость тщательно следить за соответствием пар символов /* и */ в много-строчных комментариях. Если вы забудете открыть или закрыть многострочный комментарий, то в лучшем случае компилятор выдаст массу ошибок и откажется выполнить вашу программу, а в худшем - у вас просто исчезнет в никуда кусок программы, что, естественно, скажется на ее работе непредсказуемым образом.
Источник: "Компьютер Price", http://www.comprice.ru
|