Главная | Форум | Реклама | Shop Flash-JePo | Картинки | Регистрация | Вход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Историческая справка
JeepersДата: Пятница, 25.03.2011, 15:12 | Сообщение # 1




Администратор портала







Главный Админ
Сталин
Группа: Администраторы
Сообщений: 937
Награды: 0
Репутация: 13

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

Введение

С -- это язык программирования, созданный в 70-х годах XX века для разработки системы UNIX и программного обеспечения для нее. В 80-х годах XX века на основе языка C был создан язык C++, являющийся объектно-ориентированным расширением языка C++. В настоящее время языки C и C++ являются наиболее распространенными языками для профессиональной разработки программного обеспечения для всех операционных систем. Синтаксис языка C и C++ не зависит от используемой системы и компилятора, однако набор доступных библиотек (например, для разработки графических приложений) является системно-зависимым и не стандартизирован. В данных листках речь будет идти о языке C++. Многое из того, о чем пойдет ниже речь, верно и для языка C, но мы на этом останавливаться не будем. Мы будем использовать компилятор gcc для системы Linux, но все рассматриваемые примеры должны правильно компилироваться любым компилятором, соответствующим стандарту языка C++. Например, таким компилятором является MS Visual C++ последних версий (в то время, как широко распространенный в образовательных учреждениях компилятор Borland C++ 3.1 не соответствует стандарту и для него рассматриваемые программы работать не будут). Hello, world Язык C++ является компилируемым языком. Для того, чтобы написать программу, вам необходимо в любом текстовом редакторе набрать, например, следующий текст и сохранить его в файле, например, hello.cpp.

#include <iostream>
using namespace std;
int main()
{
cout<<"Hello, world!"<<endl;
return 0;
}

Будьте внимательны: язык C++ является чувствительным к регистру букв, то есть заменить main на Main или MAIN нельзя. Весь текст (за исключением текстовой строки "Hello, world!") нужно набирать в нижнем регистре. После этого вам нужно откомпилировать этот файл при помощи следующей команды:
$ c++ hello.cpp

Если ваша программа написана правильно, то компилятор не выдаст никаких сообщений об ошибках и создаст файл a.out. Этот файл содержит исполняемый двоичный машинный код. Вы можете запустить эту программу при помощи следующей команды:
$ ./a.out

Если вам не нравится a.out в качестве имени исполняемого файла, вы можете указать компилятору другое имя, при помощи параметра -o компилятора. Например, если вы хотите, чтобы исполняемый файл назывался hello, можно использовать следующие команды для компиляции и запуска программы:
$ c++ hello.cpp -o hello
$ ./hello

Рассмотрим подробней текст этой программы. В первой строчке мы подключаем к нашей программе файл с именем iostream. Этот файл хранится в каталоге, имеющим имя вроде /usr/include/c++/3.2.1/. В этом файле находится, в частности, определение объектов 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 не объявлен).

Объявление переменной имеет следующий вид:

Quote
<тип переменой> <один или несколько идентификаторов переменных через запятую>;
Например, переменные n и m типа int можно объявить такой строкой:
int n, m;

Переменную x типа double можно объявить такой строкой:
double x;

Значения переменных сразу после объявления не определены и являются произвольными. Предположение о том, что все переменные первоначально имеют нулевые значения, является ошибочным.

Идентификатор переменной -- это ее имя, которое должно быть последовательностью букв латинского алфавита, символа подчеркивания и цифр, начинающейся с буквы. Примеры правильных идентификаторов: а, i, Year, school179. Имена переменных чувствительны к регистру букв, то есть Number, number, NUMBER и nUMbeR -- это четыре разных переменных. Типы данных
При объявлении переменной мы должны указать ее тип. Существует несколько стандартных типов, кроме того, программист может создавать собственные типы данных. Для представления целых чисел существуют следующие стандартные типы: В языках С, C++ есть следующие стандартные типы данных для представления целых чисел.
Тип Описание Размер Диапазон Синоним

Quote
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 байта.

Действительные числа можно записывать в виде десятичных дробей как с фиксированной точкой (например, 3.1415926, 100.001, -10000000.0), так и с плавающей точкой. В последнем случае число имеет вид e

, где -- дробное число (положительное или отрицательное), называемое мантиссой, а

-- целое число (положительное или отрицательное), называемое порядком. Число, записанное таким образом, равно f?10p . Фактически, порядок означает, на какое число позиций нужно сдвинуть вправо десятичную точку в записи числа . Если же порядок меньше нуля, то сдвиг десятичной точки осуществляется влево. Примеры записи чисел с плавающей точкой:

Quote
3.14e1
означает 31.4
3.14e5
означает 314000
3.14e-3
означает 0.00314
-1e6
означает -1000000
-1e-6
означает -0.000001
Для представления действительных чисел существует два стандартных типа:
Имя типа Размер
float 4 байта
double 8 байт

Как правило, для хранения целых чисел следует использовать тип int, а для действительных чисел -- double.

Арифметические операторы

Арифметическая инструкция -- это некоторое выражение, состоящее из констант, идентификаторов переменных и арифметических операторов, которая завершается точкой с запятой. Самый главный арифметический оператор -- это оператор присваивания =, который присваивает одной переменной, идентификатор которой указывается слева от оператора = значение некоторого выражения, которое стоит справа.
Например:

a=2;
b=a+1;

В последней строке встретился оператор сложения +. Кроме оператора сложения, есть еще операторы вычитания -, умножения *, деления / и взятия остатка от деления целых чисел %. Особого внимания заслуживает оператор деления. Если оба его аргумента имеют целочисленный тип (то есть один из типов, перечисленных в первой таблице или целочисленные константы), то этот оператор рассматривается, как оператор деления целых чисел с остатком. Если же хотя бы один из операторов будет иметь дробный тип, то оператор деления выполняется, как оператор деления десятичных дробей. В арифметическом выражении сначала выполняются слева направо все операторы умножения и деления, затем слева направо все операторы сложения и вычитания, затем справа налево все операторы присваивания. При необходимости порядок действий можно изменить при помощи скобок. Ввод-вывод;

Для того, чтобы вывести на экран значение переменной или текстовой строки нужно использовать объект cout и оператор <<, который в данном случае следует называть "Поместить в". cout -- объект, связанный со стандартным выводом программы, как правило, это терминал. Для того, чтобы перейти при печати на новую строку необходимо поместить в cout стандартный объект endl. Текстовые строки при выводе на экран необходимо заключать в двойные кавычки. Если хочется вывести на экран несколько объектов (переменных, текстовых строк и т.д.), то их нужно разделять между собой оператором <<. Для того, чтобы считать значение переменной нужно использовать объект cin и оператор >>, который надо называть "Извлечь из". При этом считывание данных будет производиться со стандартного ввода программы, как правило, являющегося клавиатурой. Если хочется за одну операцию считать несколько переменных, то их идентификаторы нужно разделять между собой оператором >>. Более сложный пример Обобщим все изложенное выше в более сложной программе, которая находит сумму двух введенных чисел.

#include <iostream>
using namespace std;
int main()
{
int a,b,s;
cout<<"Введите два числа: ";
cin>>a>>b;
s=a+b;
cout<<a<<"+"<<b<<"="<<s<<endl;
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;

  • Дан угол x в градусах. Напечатайте его меру в радианах.
  • Дано число v. Определите, на какую высоту (в метрах) поднимется тело, брошенное вертикально вверх со скоростью v м/c.
  • Дано действительное число x. Вычислите число x4 . Какое наименьшее число операций умножения необходимо для этого?
  • Дано число x. Вычислите число x6 при помощи трех операций умножения.
  • Дано число x. Вычислите число x7 при помощи четырех операций умножения.
  • Дано число x. Вычислите число x8 при помощи трех операций умножения.
  • Дано число x. Вычислите число x13 при помощи пяти операций умножения.
  • Дано число x. Вычислите число x21 при помощи шести операций умножения.
  • Дано натуральное число. Найдите его последнюю цифру.
  • Дано двузначное число. Найдите число десятков в нем.
  • Дано натуральное число. Найдите число десятков в нем.
  • Дано трехзначное число. Найдите сумму его цифр.
  • Даны три целых числа: h, m, s. Определите угол (в градусах) между часовой стрелкой на циферблате часов в момент времени "h часов, m минут, s секунд" и между часовой стрелкой в полночь.

    Требуются: Модераторы, Журналист новостей, Дизайнер!
    Shop Flash-JePo
 
Реклама
  • Страница 1 из 1
  • 1
Поиск: