Курс начального программирования для группы PV-10

Вопросы к экзамену по С++ для PV-11

Правила для оформления решений задач

Пройденные на уроках примеры

Материалы и книги по программированию на С/С++


Оглавление (не закончено!!)

  1. Что такое программирование и технология решения задач.
    1. Технологиия подготовки и решения задачи с помощью программ.
    2. Алгоритмизация или построение алгоритма
    3. Блок-схемы и элементы.
  2. Основы программирования на языке С++
    1. Алфавит,
    2. Идентификаторы,
    3. Ключевые слова и имена
    4. Символы операций и разделителей
    5. Литералы
    6. Комментарии
    7. Переменные
    8. Типы данных
    9. Константы
    10. Операции и арифметические операторы
    11. Стили и нормы программирования
    12. Консольный ввод-вывод
    13. .......

 


Что такое язык программирования

Язык программирования - это фиксированная система обозначений для описания алгоритмов и структур данных.
Для составления программ существуют разнообразные языки программирования. Для обучения подходят Бейсик, Паскаль, Logo и др. Для профессионального программирования используются Java, C++, Python, Perl, PHP, ruby и др. Смотри также Что такое язык программирования

Система программирования - это программное обеспечение компьютера, предназначенное для разработки, отладки и исполнения программ, записанных на определенном языке программирования. Для программирования на С и С++ мы будем использовать свободнораспространяемые пргограммы Code::Blocks или DevC++. Программы могут также компилироваться в

Технологиия подготовки и решения задачи с помощью программ.

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

    1. Постановка задачи.
    2. Математическая формализация (математическое или информационное моделирование)
    3. Алгоритмизация задачи ( разработка алгоритма)
    4. Программирование (составление программы на языке программирования)
    5. Отладка и тестирование программы.
    6. Анализ результатов решения задачи
    7. Использование программы. (проведение расчетов и анализ полученных результатов)
    8. Сопровождение

В чистом виде программированием, т. е. разработкой алгоритма и программы, здесь являются лишь 3, 4 и 5 этапы.

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

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

  1. Постановка задачи:
  2. Анализ и исследование задачи, модели:
  3. Разработка алгоритма:
  4. Пpогpаммиpование:
  5. Тестиpование и отладка:
  6. Анализ решения:
  7. Сопровождение программы:

Алгоритмизация или построение алгоритма.

Алгоpитм — заранее заданное понятное и точное пpедписание возможному исполнителю совеpшить определенную последовательность действий для получения решения задачи за конечное число шагов.

Алгоритм обладает следующими свойствами:

Порядок выполнения алгоритма:

  1. Действия в алгоритме выполняются в порядке их записи
  2. Нельзя менять местами никакие два действия алгоритма
  3. Нельзя не закончив одного действия переходить к следующему

Способы записи алгоритмов:

Для записи алгоритмов могут использоваться специальные языки:

  1. Естественный язык (словесная запись)
  2. Формулы
  3. Псевдокод
  4. Структурограммы
  5. Синтаксические диаграммы
  6. Графический (язык блок-схем)
  1. Естественный язык:
    если условие то действие1 иначе действие2
  2. Структурограмма:
    структурограмма
  3. Синтаксическая диаграмма:
    синтаксическая диаграмма
  4. Графический язык:
    графический язык

Алгоритмизация - процесс разработки алгоритма для решения задачи, которое часто описывается блок-схемой.

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

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

   Для автоматического создания блок-схем из исходных текстов программ и их создания вручную существуют свободные программы — Diagram Designer, Dia, Kivio (входит в пакет KOffice), OpenOffice.org Draw, processWave.org, yEd Graph Editor, AFCE, коммерческие программы Microsoft Visio, diamFC, также существуют программы, предоставляемые как онлайн-услуги

Как составить блок-схему, Как рисовать блок-схему, Алгоритмы линейной и разветвляющейся структуры

Составление алгоритмов графическим способом подчиняется нескольким стандартам:

Название Символ (рисунок) Выполняемая функция (пояснение)
1. Блок вычислений
блок 			вычислений
Выполняет вычислительное действие или группу действий
2. Логический блок
логический блок
Выбор направления выполнения алгоритма в зависимости от условия
3. Блоки ввода/вывода
блок ввода/вывода
Ввод или вывод данных вне зависимости от физического носителя
блок 		ввода/вывода
Вывод данных на печатающее устройство
4. Начало/конец (вход/выход)
начало/конец (вход/выход)
Начало или конец программы, вход или выход в подпрограмму
5. Предопределенный процесс
предопределенный процесс
Вычисления по стандартной или пользовательской подпрограмме
6. Блок модификации
блок модификации
Выполнение действий, изменяющих пункты алгоритма
7. Соединитель
соединитель
Указание связи между прерванными линиями в пределах одной страницы
8. Межстраничный соединитель
межстраничный соединитель
Указание связи между частями схемы, расположенной на разных страницах

 

Типовые алгоритмы.

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

  Линейная алгоритмическая структура - описание последовательности действий, которые выполняются однократно и в заданном порядке.
Это такие алгоритмы, в которых все действия совершаются одно за другим, независимо ни от чего. Такие алгоритмы называются линейными; характерная для них форма организации действий – последовательное выполнение.

Разветвляющаяся алгоритмическая структура (ветвление) - описание действий, последовательность выполнения которых зависит от истинности или ложности условий.
Алгоритм, в котором используется условие, получил название разветвляющегося, так как в зависимости от значения условия выбираются те или иные действия. Словесная формулировка: «Если <условие> то <действие2> иначе <действие1>». Главная задача - проверить условие, а затем, в зависимости от результата проверки, выполнить соответствующее действие. Условие – выражение, находящееся между словами «если» и «то» и принимающее значение «истина» или «ложь». В зависимости от значения условия выполняется либо действие указанное после слова «то», либо действие, указанное после слова «иначе».
Виды ветвлений:

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

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

2.Цикл «do .. while» (цикл с пост условием). Словесная формулировка: «До тех пор, как условие станет истинным, выполнять тело цикла».

3. Цикл «for» (цикл с параметром) является частным случаем цикла с предусловием. Словесная формулировка: «Для каждого значения параметра I, изменяющегося от A до B c шагом С выполнять тело цикла ».

Точнее смотри Основы алгоритмизации и программирования или выборку с этой страницы и основы языка С


Основы программирования на языке С++

Алфавит, идентификаторы, ключевые слова и константы C++

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

  1. слова называют лексемами (элементарными конструкциями),
  2. словосочетания — выражениями, а
  3. предложения — операторами.

Далее рассмотрим алфавит языка программирования C++ и его лексемы.

Алфавит C++

Алфавит (или множество литер) языка программирования C++ основывается на множестве символов таблицы кодов ASCII. Алфавит C++ включает:

Алфавит C++ служит для построения слов, которые в C++ называются лексемами. Различают пять типов лексем:

Почти все типы лексем (кроме ключевых слов и идентификаторов) имеют собственные правила словообразования, включая собственные подмножества алфавита.

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

Идентификаторы

Идентификаторы это имена переменных, функций и меток, используемых в программе. Идентификатор создается объявлением соответствующей ему переменной или функции. После этого его можно ис­пользовать в последующих операторах программы. Идентификатор состоит из последовательности одной или более букв, цифр или символов подчеркиваний( _ ), которая начинается с буквы или символа подчеркивания.

Рассмотрим правила построения идентификаторов из букв алфавита (в C++ три):

  1. Первым символом идентификатора C++ может быть только буква.
  2. Следующими символами идентификатора могут быть буквы, буквы-цифры и символы подчеркивания.
  3. Длина идентификатора неограниченна, однако обычно только первые 31 символ распознаются компилятором.
    (фактически же длина зависит от реализации системы программирования).

NB!

  1. При использовании подчеркиваний в идентификаторе нужно быть осторожным, поскольку идентификаторы, начинающиеся с подчеркивания могут совпадать (войти в конфликт) с именами "скрытых" системных программ.
  2. Компилятор рассматривает буквы верхнего и нижнего регистров как различные символы.
  3. Компилятор не допускает идентификаторов, которые имеют ту же самую орфографию, что и ключевые слова.

Ключевые слова и имена

Часть идентификаторов C++ входит в фиксированный словарь ключевых слов. Эти идентификаторы образуют подмножество ключевых слов (они так и называются ключевыми словами). Прочие идентификаторы после специального объявления становятся именами. Имена служат для обозначения переменных, типов данных, классов, функций и меток. Ключевые слова не могут быть переопределены.

Ниже приводится список ключевых слов:

asm else new this
auto enum operator throw
bool explicit private true
break export protected try
case extern public typedef
catch false register typeid
char float reinterpret_cast typename
class for return union
const friend short unsigned
const_cast goto signed using
continue if sizeof virtual
default inline static void
delete int static__cast volatile
do long struct wchar_t
double mutable switch while
dynamic_cast namespace template

Символы операций и разделителей

Множество лексем, соответствующее множеству символов операций и разделителей строится на основе набора специальных символов и букв(!) алфавита. Единственное правило словообразования для этих категорий лексем заключается в задании фиксированного множества символов операций и разделителей.

Короче символы операции — это один или более символов, определяющих действие над операндами. Внутри знака операции пробелы не допускаются. Операции делятся по количеству участвующих в них операндов на:

Один и тот же символ операции может интерпретироваться по-разному в зависимости от контекста.
Все знаки операций за исключением [ ], ( ) и ? : представляют собой отдельные лексемы.
Большинство стандартных операций может быть переопределено (перегружено).

Символы операций приведены в отдельной заметке – Операции языка C++

Слеующие последовательности специальных символов и букв алфавита образуют множество символов операций (часть из них в зависимости от контекста может быть использована в качестве разделителей): 

, ! != | |= % %= &
&& &= () * *= + ++ +=
- -- -= -> ->* . .* /
/= :: < << <= <<= > >>
>= >>= == ?: [] ^ ^= ~
|| # ## sizeof new delete typeid throw

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

... ; {}

Литералы

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

В C++ существует пять типов литералов:

Комментарии

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

Большинство специалистов сходятся во мнении, что комментарии должны объяснять намерения программиста, а не код; то, что можно выразить на языке программирования, не должно выноситься в комментарии — в частности, надо использовать говорящие названия переменных, функций, классов, методов и пр., разбивать программу на лёгкие для понимания части, стремиться к тому, чтобы структура классов и структура баз данных были максимально понятными и прозрачными и т. д. Есть даже мнение (его придерживаются в экстремальном программировании и некоторых других гибких методологиях программирования), что если для понимания программы требуются комментарии — значит, она плохо написана.

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

Комментарии часто используются для временного отключения части кода. В языках C и C++, некоторые рекомендуют использовать с той же целью директивы препроцессора (#if 0 … #endif).

С точки зрения синтаксиса, существуют два вида комментариев.

Пример кода программы с комментариями:

/* Это начало многострочного комментария. 
Подключаем к нашей программе файл с именем iostream, в котором содержится описание
   стандартной библиотеки ввода-вывода языка C++.
   В этом файле находится, в частности, определение объектов cout и endl
На следующей строчке признак конца многострочного комментария.
*/
#include <iostream> /* Его можно использовать и как однострочный */
using namespace std;
// Две наклонные черты это признак начала однострочного комментария до конца строки.
// Объявляем функцию main, не принимающей никаких аргументов и возвращающей значение int.
int main() {
   /* // Используем многострочный комментарий для временного отключения низлежащего кода
// полезно при поиске ошибок и для отладочных распечатков переменных
int x,y,z,k,m,p;
   x=4; y=5;    z = x + y;
*/

// при помощи оператора << помещаем в объект cout строку "Hello, world!",
// и специальный объект endl, означающий символ перевода строки, // что приводит к печати на экране этой строки и последующему переводу каретки
    
cout<<"Hello, world!"<<endl;
  return 0; }      

Переменные

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

Все переменные в языке C++ должны быть объявлены перед использованием.
При использовании в программе ранее не объявленной переменной компилятор выдаст сообщение об ошибке.

Объявление переменной имеет следующий вид:
<тип переменой> <один или несколько идентификаторов переменных через запятую>;
Например, переменные x и y типа int(целочисленные) можно объявить такой строкой:

     int x, y;  

Переменную f типа double(с плавающей точкой двойной точности) можно объявить такой строкой:

     double f;  

Это один из вариантов объявления переменных. В языке С++ объявление может происходить на любом участке программного кода. Мы объявили переменные х, у и определили, что они могут содержать значения типа int.

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

Типы переменных в C++

Типы данных

В C++ доступны следующие встроенные типы:

Операции сравнения возвращают тип bool. Выражения в скобках после if, while приводятся к типу bool.

Основные типы в C++ подразделяются на две группы: целочисленные типы и типы с плавающей точкой (для краткости их будем называть плавающими типами). Это арифметические типы.
В C++ нет жёсткого стандарта на диапазоны значений арифметических типов (в стандарте языка оговариваются лишь минимально допустимые значения). В принципе, эти диапазоны определяются конкретной реализацией. Обычно выбор этих характеристик диктуется эффективностью использования вычислительных возможностей компьютера. Зависимость языка от реализации создаёт определённые проблемы переносимости. C++ остаётся машинно-зависимым языком.

К целочисленным типам относятся типы, представленные следующими именами основных типов:

char  short  int  long

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

Модификатор типа signed указывает, что переменная может принимать как положительные, так и отрицательные значения. Возможно, что при этом самый левый бит области памяти, выделяемой для хранения значения, используется для представления знака. Если этот бит установлен в 0, то значение переменной считается положительным. Если бит установлен в 1, то значение переменной считается отрицательным.

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

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


Тип Описание Размер    Диапазон    Синоним
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++.

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

Запись Значение
3.14e1 31.4
3.14e5 314000
3.14e-3 0.00314
-1e6 -1000000

К плавающим типам относятся три типа, представленные следующими именами типов, модификаторов и их сочетаний:

Имя типа Байты Биты Min            Max
float 4 32 3.4E-38 3.4E+38
double 8 64 1.7E-308 1.7E+308
long double 10 80 3.4E-4932 3.4E+4932

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

NB! Помимо основных типов в C++ существуют специальные языковые средства, которые позволяют из элементов основных типов создавать новые, так называемые производные типы.

Программы хранят информацию в переменных

Константы

Константами называют неизменяемые величины. Существую константы следующих типов:

Форматы констант, соответствующие каждому типу, приведены в таблице ниже.

Тип константы Формат Примеры констант
Целая Десятичный: последовательность десятичных цифр, начинающаясяне с нуля, если это не число нуль 8, 0, 199226
Восьмеричный: нуль, за которым следуют восьмеричные цифры (0,1,2,3,4,5,6,7) 01, 020, 07155
Шестнадцатеричный: 0х или 0Х, за которым следуют шестнадцатеричные цифры (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) 0хА, 0x1B8, 0X00FF
Вещественная Десятичный:[цифры].[цифры]
5.7,  .001,  123.0
Экспоненциальный:[цифры][.][цифры]{Е¦е}[+¦ -][цифры] 35.0.2Е6,  .11е-З, 5Е10
Символьная Один или два символа, заключенных в апострофы 'А', 'ю', '*', 'db', '\0', '\n', '\012', '\x07\x07'
Строковая Последовательность символов, заключенная в кавычки "Здесь был Vasia","\t3начение r=\0xF5\n"

Константы представляют собой ячейки памяти, в которых хранятся данные в неизменном виде, то есть изменить эти данные нельзя.
Создаваемую константу нужно инициализировать, поскольку потом ей уже нельзя присвоить новое значение.
В языке C++ существует два вида констант: литеральные и именованная.
Литеральная константа – это значение, непосредственно вводимое в самой программе.

int coder = 14;

Переменная coder типа int, а число 14 является литеральной константой.

Именованные константы представлены именем, как и все переменные, однако в отличие от переменной, значение инициализированной константы изменить невозможно.

const unsigned short int moloko=30;
summa=moloko*17;
Используя ключевое слово const, тип переменной создаём сонстанту с именем moloko и присваиваем ей значение 30.

Можно также определить константу директивой препроцессора

#define moloko 30;

Препроцессор перед началом компиляции пройдётся по всему коду и везде где встретит константу молоко заменит её числом 30.
Препроцессор С/С++ это программный инструмент, изменяющий код программы для последующей компиляции и сборки, используемый в языках программирования Си и C++. Препроцессор Си, Директивы препроцессора

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

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

     x=2;
     y=x+5;

В последней строке встретился оператор сложения ‘+’. Кроме оператора сложения, есть еще операторы вычитания ‘-’, умножения ‘*’, деления ‘/’ и взятия остатка от деления целых чисел ‘%’.

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

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

Пример:
 
#include <iostream> 
using namespace std;
int main() {
    int x,y,z,k,m,p; // создаём переменные
    x=4; y=5;
// присваиваем значения переменным x и y     z = x + y; // складываем значения x и y и результат присваиваем переменной z
    k = x * y / z;
// умножаем значение x на y и делим на z, результат присваиваем переменной k
    p = k % 7;
// вычисляем значение остатка от деления значения переменной k на число 7
    long int l=1234567891234;

    m = l / x;
    float g=4.23;
double df=214.524765423;

    return 0;
}

Стили и нормы программирования

Лучшие приемы программирования на C

Правила программирования на С и С++. Главы 1-6

Правила программирования на С и С++. Главы 7-8

Правила форматирования кода.

 1. Каждый новый блок операторов прибавляет 4 пробела. Пример
   
 if (a > b)
 {
     cout << "k" << endl;
     if (t < r)
     {
         cout << "Maybee there is some errors" << endl;
     }
 }
 
 2. Скобки { (как, впрочем, видно из кода) должны стоять на отдельной строчке.
 
 3. Функции НЕ должны отделяться пробелами от передаваемых параметров
 Пример правильного вызова функции:
 sqrt(10)
 Пример неправильного вызова функции:
 sqrt (10)
 
 4. Бинарные операции и знак равно должны отделяться пробелами с двух сторон.
 a = b / c;
 
 5. Унарные операции должны идти слитно с параметрами
 b = -b;
 
 6. Скобки не должны быть отделены от текста внутри них пробелами:
 Пример правильного употребления:
 (a + b)
 Неправильного:
 ( a + b )
 
 7. Тело функции с двух сторон должно быть выделено пустыми строками.
 Пример неправильной программы:
 #include <iostream>
 
 using namespace std;
 int a, b;
 int *p, *m, *r;
 int main()
 {
     какой-то код
 }
 
 Пример правильной программы:
 #include <iostream>
 using namespace std;
 
 int a, b;
 int *p, *m, *r;
 
 int main()
 {
     какой-то код
 }
 
 8. Для перехода на новую строчку надо выводить не строчку "\n", а endl (cout << endl;)


Смотри ещё Правила форматирования программ

Ввод-вывод

Для того, чтобы вывести на экран значение переменной или текстовой строки нужно использовать объект ‘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;
     } Смотри ещё Чтение ввода с клавиатуры

Упражнения


Выполнение простых операций


Условная инструкция, Использование условного оператора

Использование циклов, Цикл forЦикл while,

Хранение значений в массивах, Многомерные массивы

Битовые операции ,Знакомство с логическими (побитовыми) операторами

Символьные строки

Знакомство с функциями

Изменение значений параметров

Значения параметров по умолчанию

Локальные переменные и область видимости

Использование ссылок в C++

Хранение связанной информации в структурах

Смотри точнее Учебник по C++ для начинающих, Программирование на языке С, Самоучитель C++ Герберт Шилдт

Много полезной информации на сайте cplusplus.com

Дополнительная информация для продвинутых:

Файловый ввод-вывод желательно пройти самостоятельно!!!!

Объединения

Указатели

Операции C++


Темы желательные для изучения:

   
1. Введение в язык Си
  • Лексемы и пробельные символы.
  • Основные типы данных.
  • Диапазоны представляемых значений.
  • Декларация переменных.
  • Константы.
 
  2. Структура программы
  • Использование библиотечных функций.
  • Ввод с клавиатуры и вывод на экран.
  • Написание простых программ.
  • Компиляция, компоновка и выполнение программ.
 
  3. Операции
  • Арифметические и логические операции.
  • Операции присваивания.
  • Отношения.
  • Битовые, адресные и прочие операции.
  • Приоритеты и ассоциативность операций.
  • Трассировка программы.
 
  4. Операторы
  • Оператор-выражение и составной оператор.
  • Метки.
  • Управляющие операторы – goto, if-else, switch.
  • Операторы цикла – while, do-while и for.
  • Использование операторов break, continue, и return.
 
  5. Препроцессор
  • Препроцессорные директивы #include, #define, #undef, #if - #else - #endif.
  • Макроопределения с параметрами.
  • Правила оформления деклараций.
 
  6. Массивы
  • Декларация массивов и их размещение в памяти.
  • Индексация элементов массива.
  • Алгоритмы суммирования, поиска и сортировки.
 
  7. Функции
  • Аргументы и параметры.
  • Прототип функции.
  • Возвращение значения функцией.
  • Рекурсия.
  • Программные проекты.
 
  8. Классы памяти
  • Время жизни и область видимости объекта.
  • Декларации на внутреннем и внешнем уровнях.
  • Модификаторы – auto, register, static, extern.
  • Динамическое распределение памяти.
  • Определяемые типы typedef.
 
  9. Структуры
  • Декларация структур.
  • Инициализация и доступ к элементам структуры.
  • Вложенные структуры и массивы структур.
  • Объединения.
 
  10. Файлы
  • Понятие потока – stream.
  • Структура типа FILE.
  • Открытие и закрытие файлов.
  • Операции ввода-вывода.
  • Указатель чтения-записи в файле.
  • Последовательный и произвольный доступ.