С++
Hello, world
Язык C++ является компилируемым языком. Для того, чтобы написать программу, вам необходимо в любом текстовом редакторе набрать, например, следующий текст и сохранить его в файле, например, hello.cpp.
#include
using namespace std;
int main()
{
cout<<"Hello, world!"<
return 0;
}
Рассмотрим подробней текст этой программы. В первой строчке мы подключаем к нашей программе файл с именем iostream, в котором содержится описание стандартной библиотеки ввода-вывода языка C++. В этом файле находится, в частности, определение объектов cout и endl, который мы будем использовать позднее. Вторая строка указывает компилятору на то, что мы будем использовать все функции, входящие в пространство имен std, то есть все функции, относящиеся к стандартной библиотеке C++. Третья строка содержит объявление функции main, не принимающей никаких аргументов и возвращающей значение int. Эта функция должна быть в каждой программе, именно эта функция получает управление при запуске программы. Четвертая строка содержит открывающуюся фигурную скобку, что означает начало функции main. В пятой строке мы при помощи оператора << помещаем в объект cout строку "Hello, world!", а потом специальный объект endl, означающий символ перевода строки. Это приводит к печати на экране этой строки и последующему переводу каретки. В шестой строке мы даем инструкцию return, завершающую выполнение функции main и возвращающую нулевое значение. Седьмая строка содержит фигурную скобку, синтаксически закрывающую функцию main.
Для начала можно считать, что все строки, кроме пятой, являются некоторым набором “заклинаний”, без которых программа не будет работать и которые обязательно нужно указать, а вот пятую строку можно заменить на другие строки с различными инструкциями.
Арифметика
Все переменные в языке C++ должны быть объявлены перед использованием. При использовании в программе ранее не объявленной переменной компилятор выдаст сообщение об ошибке вроде
test.cpp: In function `int main()':
test.cpp:5: `c' undeclared (first use this function)
test.cpp:5: (Each undeclared identifier is reported only once
for each function it appears in.)
В этом сообщении указывается имя файла и номер строки, в которой обнаружена ошибка (test.cpp:5), а также описание ошибки (`c' undeclared — объект с именем c не объявлен).
Объявление переменной имеет следующий вид:
<тип переменой> <один или несколько идентификаторов переменных через запятую>;
Например, переменные n и m типа int можно объявить такой строкой:
int n, m;
Переменную x типа double можно объявить такой строкой:
double x;
Значения переменных сразу после объявления не определены и являются произвольными. Предположение о том, что все переменные первоначально имеют нулевые значения, является ошибочным.
Идентификатор переменной — это ее имя, которое должно быть последовательностью букв латинского алфавита, символа подчеркивания и цифр, начинающейся с буквы. Примеры правильных идентификаторов: а, i, Year, school179. Имена переменных чувствительны к регистру букв, то есть Number, number, NUMBER и nUMbeR — это четыре разных переменных.
Типы данных
При объявлении переменной мы должны указать ее тип. Существует несколько стандартных типов, кроме того, программист может создавать собственные типы данных. Для представления целых чисел существуют следующие стандартные типы:
В языках С, C++ есть следующие стандартные типы данных для представления целых чисел.
Тип
|
Описание
|
Размер
|
Диапазон
|
Синоним
|
int
|
Целые числа
|
4 байта
|
-231..231-1
|
|
unsigned int
|
Беззнаковые целые
|
4 байта
|
0..232-1
|
unsigned
|
long int
|
Длинные целые
|
4 байта
|
-231..231-1
|
long
|
unsigned long
|
Беззнаковые длинные
|
4 байта
|
0..232-1
|
|
short int
|
Короткие целые
|
2 байта
|
-215..215-1
|
short
|
unsigned short
|
Беззнаковые короткие
|
2 байта
|
0..216-1
|
|
При этом в стандарте языка C++ не оговаривается конкретный размер каждого из вышеперечисленных типов, для каждого компилятора они могут быть своими. Приведенные выше числа верны для компиляторов GCC, MS VC++, а вот для Borland C++ версии 3.1 размер переменной типа int — 2 байта.
Для представления действительных чисел существует два стандартных типа:
Имя типа
|
Размер
|
float
|
4 байта
|
double
|
8 байт
|
Как правило, для хранения целых чисел следует использовать тип int, а для действительных чисел — double.
Арифметические операторы
Арифметическая инструкция — это некоторое выражение, состоящее из констант, идентификаторов переменных и арифметических операторов, которая завершается точкой с запятой. Самый главный арифметический оператор — это оператор присваивания ‘=’, который присваивает одной переменной, идентификатор которой указывается слева от оператора ‘=’ значение некоторого выражения, которое стоит справа. Например:
a=2;
b=a+1;
В последней строке встретился оператор сложения ‘+’. Кроме оператора сложения, есть еще операторы вычитания ‘-’, умножения ‘*’, деления ‘/’ и взятия остатка от деления целых чисел ‘%’.
Особого внимания заслуживает оператор деления. Если оба его аргумента имеют целочисленный тип (то есть один из типов, перечисленных в первой таблице или целочисленные константы), то этот оператор рассматривается, как оператор деления целых чисел с остатком. Если же хотя бы один из операторов будет иметь дробный тип, то оператор деления выполняется, как оператор деления десятичных дробей.
В арифметическом выражении сначала выполняются слева направо все операторы умножения и деления, затем слева направо все операторы сложения и вычитания, затем справа налево все операторы присваивания. При необходимости порядок действий можно изменить при помощи скобок.
Для того, чтобы вывести на экран значение переменной или текстовой строки нужно использовать объект ‘cout’ и оператор ‘<<’, который в данном случае следует называть "Поместить в". cout — объект, связанный со стандартным выводом программы, как правило, это терминал. Для того, чтобы перейти при печати на новую строку необходимо поместить в cout стандартный объект endl.
Текстовые строки при выводе на экран необходимо заключать в двойные кавычки. Если хочется вывести на экран несколько объектов (переменных, текстовых строк и т.д.), то их нужно разделять между собой оператором ‘<<’.
Для того, чтобы считать значение переменной нужно использовать объект ‘cin’ и оператор ‘>>’, который надо называть "Извлечь из". При этом считывание данных будет производиться со стандартного ввода программы, как правило, являющегося клавиатурой. Если хочется за одну операцию считать несколько переменных, то их идентификаторы нужно разделять между собой оператором ‘>>’.
Более сложный пример
Обобщим все изложенное выше в более сложной программе, которая находит сумму двух введенных чисел.
#include
using namespace std;
int main()
{
int a,b,s;
cout<<"Введите два числа: ";
cin>>a>>b;
s=a+b;
cout< return 0;
}
Упражнения
Напишите программу, содержащую объявление следующих переменных. Выведите на экран значения всех объявленных переменных. Объясните, почему получился именно такой результат.
int a = 13/5;
int b = 13%5;
int c = 13.0/5;
double d = 13/5;
double e = 13%5;
double f = 13.0/5;
double g = 13/5 + 2/5;
double h = 13.0/5 + 2.0/5;
int i = 13.0/5 + 2.0/5;
Дано действительное число x. Вычислите число x4. Какое наименьшее число операций умножения необходимо для этого?
Дано число x. Вычислите число x6 при помощи трех операций умножения.
Дано число x. Вычислите число x7 при помощи четырех операций умножения.
Дано число x. Вычислите число x8 при помощи трех операций умножения.
Дано число x. Вычислите число x13 при помощи пяти операций умножения.
Дано число x. Вычислите число x21 при помощи шести операций умножения.
Дано (пользователь ввел с клавиатуры) натуральное число. Найдите (выведите на экран) его последнюю цифру.
Дано двузначное число. Найдите число десятков в нем.
Дано натуральное число. Найдите число десятков в его десятичной записи (то есть вторую справа цифру его десятичной записи).
Дано трехзначное число. Найдите сумму его цифр.
Даны три целых числа: h, m, s. Определите угол (в градусах) между часовой стрелкой на циферблате часов в момент времени “h часов, m минут, s секунд” и между часовой стрелкой в полночь.
#include
using namespace std;
int a, b,c;
int main()
{
setlocale(LC_ALL, "rus");
cin>>a>>b;
c=a+b;
cout<<"c="< return 0;
}
Достарыңызбен бөлісу: |