- •Конспект лекций (часть 1) Оглавление
- •Введение
- •1. Этапы и проблемы решения задач с использованием компьютера
- •Алфавит языка
- •Ключевые слова
- •Идентификаторы
- •Знаки операций
- •Константы
- •Комментарии
- •2.3. Структура и основные элементы программы
- •2.4. Трансляция программ и их выполнение
- •3. Стандартные (базовые) типы данных, операции и выражения
- •3.1. Типы данных, переменные и константы Понятие типов данных
- •Классификация простых предопределенных типов данных
- •Переменные, константы
- •3.2. Целочисленные типы данных
- •3.3. Вещественные типы данных
- •3.4. Логический тип данных
- •3.5. Символьный тип данных
- •3.6. Операции и выражения
- •Преобразования типов данных
- •Операция присваивания
- •Арифметические операции
- •Операции отношения
- •Логические операции
- •Поразрядные (битовые) операции
- •Операции составного присваивания
- •Условная операция
- •Операция sizeof
- •Приоритеты рассмотренных операций
- •3.7. Ввод и вывод простых типов данных
- •Вывод текстовых строк
- •Ввод/вывод арифметических типов данных
- •Форматирование ввода / вывода
- •4.1. Идеи структурного программирования
- •Условная инструкция (if)
- •Инструкция множественного выбора (switch)
- •Цикл с предусловием (while)
- •Цикл с постусловием (do while)
- •Итерационный цикл (for)
- •Инструкции перехода
- •5. Приемы программирования циклов
- •5.1. Рекуррентные вычисления
- •5.2. Инвариант цикла
- •6. Массивы и указатели
- •6.1. Понятие массива
- •6.2. Объявление массивов Объявление одномерных массивов
- •Объявление многомерных массивов
- •6.3. Ввод-вывод массивов
- •6.4. Текстовые строки как массивы символов
- •6.5. Массивы и указатели
- •7. Разработка программ при работе с массивами
- •8. Функции и структура программы
- •9. Организация ввода/вывода и работа с файлами
- •Быстрое возведение чисел в целую степень
- •Нахождение наибольшего общего делителя (алгоритм Евклида)
Знаки операций
Служат для указания действий над операндами. В зависимости от количества операндов в C++ имеются унарные, бинарные и одна тернарная операции. Знаки операций могут изображаться одним или несколькими символами. Если операция содержит в своем изображении несколько символов, то между символами не должно быть пробелов. Некоторые операции в C++ в зависимости от контекста могут выполнять разные действия. Большинство стандартных операций можно переопределять (перегружать).
Константы
Константы – это данные, значения которых не могут меняться в процессе работы программы. Подробно синтаксические правила записи различных констант будут рассмотрены при изучении соответствующих типов данных. Сейчас только одно замечание по поводу использования алфавита языка при формировании строковых (текстовых) констант: в них можно использовать не только символы алфавита языка C++, но и все другие символы, имеющиеся в используемой таблице символов (символы национальных алфавитов, символы псевдографики и т.д.).
Комментарии
Комментарии – это фрагменты текста, игнорирующиеся компилятором при обработке текста программы. Комментарии в текстах программ используются для различных пояснений к тексту программы, а также для исключения временно не нужных фрагментов текста программы (например, отладочных кодов или вариантов реализации).
В C++ имеются комментарии двух видов: однострочные и многострочные.
Однострочный комментарий начинается двумя символами //(прямой косой черты) и заканчивается в конце строки текста программы.
Многострочный комментарий – начинается символами /*и заканчивается*/и может содержать множество строк. Многострочные комментарии не могут вкладываться друг в друга. Однострочные комментарии могут находиться внутри многострочных комментариев.
2.3. Структура и основные элементы программы
Любая C++ программа представляет собой одну или несколько функций. Вот пример простой программы с одной функцией, обеспечивающей вывод некоторого текста в консольное окно:
#include <iostream>
using namespace std;
int main()
{
cout << "Это пример программы на языке C++" << endl;
return 0;
}
Это исходный код программы (исходный код – это текст, написанный на одном из языков высокого уровня – в данном случае – на языке C++). Его нельзя выполнить. Для выполнения программы с помощью компилятора надо получить результирующую программу (объектный код).
Таким образом, необходимо выполнить следующие действия:
написать текст программы (создать исходный код);
откомпилировать этот текст (получить объектный код результирующей программы);
выполнить результирующую программу.
Особенности выполнения этих действий существенно зависят от используемой системы программирования.
Программа, приведенная выше, имеет несколько недостатков:
При ее выполнении в большинстве случаев (в зависимости от используемой среды программирования) невозможно увидеть результат ее работы;
Выведенный в консольное окно текст на русском языке будет нечитабельным.
Вот второй вариант этой же программы, лишенный этих недостатков:
#include <iostream> /* Директива препроцессору включить в текст заголовочный файл библиотеки классов C++ для управления вводом – выводом */
using namespace std; /* Директива компилятору использовать пространство имен std стандартной библиотеки С++ */
int main() // Основная функция программы – начало выполнения программы
{
setlocale(0, ""); // Установка локальных настроек на вывод русского текста
cout << "Это пример программы на языке С++" << endl; // Вывод на экран
system("Pause"); // Приостановка выполнения программы
return 0; // Выход из функции и из программы
}
А вот пример более сложной программы, содержащей две функции:
#include <iostream>
using namespace std;
int sum(int a, int b)
{
int c = a + b;
return c;
}
int main()
{
setlocale(0, "");
cout << "5 + 7 = " << sum(5, 7) << endl;
system("Pause");
return 0;
}
Более интересный вариант этой же программы, выполняющий сложение любых целых чисел, введенных с клавиатуры:
#include <iostream>
using namespace std;
int sum(int a, int b)
{
int c = a + b;
return c;
}
int main()
{
int s1, s2;
setlocale(0, "");
cout << "Введите первое слагаемое: ";
cin >> s1;
cout << "Введите второе слагаемое: ";
cin >> s2;
cout << s1 << " + " << s2 << " = " << sum(s1, s2) << endl;
system("Pause");
return 0;
}